So here we are in the first week of a new year and we're already talking about a massive security vulnerability. It doesn't give one a warm and fuzzy feeling about what's to come.
There have been plenty of articles predicting the year that's ahead and this won't be another. Instead, let's look at what is certain -- and what can be done about it.
Here's the certainty: The systems we build, and the components on which they're built, are now so complex as to make it almost impossible to guarantee the stability and security of the whole, or even of any part of the whole. Put another way, we have to assume that pretty much everything is broken -- and broken in some catastrophic way -- the day that it's deployed. So what do we do about it?
First of all, if we can't protect the system we have to protect the critical data held within the system. That makes encryption more important than ever before. Data must be encrypted in transit and at rest. It must be encrypted every time, all the time. And that means that we have to make the process of encryption and decryption as secure, as automatic and as friction-free as possible. In other words, we have to lower the total cost of encryption to the point that there's not really a decision to be made around encryption -- it's just assumed at every step of the process.
And speaking of those steps, we have to assume that each step is broken and each transition between steps is compromised. This marks the end of the "encrypt once and forget it" method. Each app or service must be separately encrypted and each API must carry encryption for data passing through the process. That's a lot of extra encryption baggage but it's the cost we pay for building such wonderful, and wonderfully complex, systems.
Finally, we might just need to slow things down ever so slightly. Not the individual applications -- they should run as fast as hardware and security will allow. But companies are now taking pride in the scores of releases pushed each day as though speed was the only virtue worth pursuing in the modern enterprise. There's no denying that speed is important, but as any race-car driver will tell you, control is important too.
Agile is a very useful discipline and devops and very useful framework in which to implement agile. But in some organizations agile has become an excuse for sloppy and we're now seeing that there is a huge price to be paid for sloppy design and engineering.The new year has started on a note of danger, but let's all take a breath: There's much to be learned here and much to be done to make the rest of the year less dangerous. It's time to get to work.