1. Corporations behave like sociopaths.
2. Corporations don't really exist. They're a legal fiction that, in reality, is just a group of people working towards a common goal (maximum profit).
I wonder if it's counter-productive to think and speak of corporations as some sort of separate entity to the people it is composed of. I think the notion that 'corporations are evil sociopaths' is one of those thought-stopping 'mind-killers'. Corporations don't have intent, good or bad; they don't really exist (except in our minds).
As harsh as it may sound, if we want a 'corporation' to behave ethically, then we should assign blame to those that are perpetrating the harm: to the employees, managers and owners of that corporation. It's their collective efforts and actions that have led to unethical outcomes, not the singular effort of some invisible corporate spectre.
I think it's the only possible way to fight this 'diffusion of responsibility' that allows a whole bunch of (mostly) normal people to all do tiny unethical acts that, when viewed in aggregate, are abhorrent. I suspect whatever the best solution is will be similar (or analogous) to how you overcome the 'bystander effect': rather than saying 'someone call 911', say 'you, guy in the red shirt (point at him), call 911'.
tl;dr - It turns out the Ring of Gyges is not a ring at all. It's a multi-story building filled with rows of cubicles.