I love developing new software, and I also love security. But I also love cooking for my family. Both are full of reward, but occasionally come with challenges along the way.
Reason to Stew
Once I unpacked all my ingredients, I went to work. I grabbed some fresh herbs from my garden, started to sear the chicken, added the onions, garlic, fresh herbs, and then deglazed with a little of the wine. I was about to pour in the chicken stock when my wife asked me, “did you check the expiration date on that?” Oh, no. Ugh. Sigh. It expired a year ago.
And of course, I had already been to the store. Dinner had to be done in a flash. But I now had new information. The expiration date. Did I want to tempt making my family sick with the old stock, or head back to the store for new stock? If dinner was not on the table soon, my project was surely going to be given to another team (in this case: P’Terry’s).
A Proper About-Face
I didn’t stew. I also didn’t really want to go to the store again. But, in the end that is exactly what I did. Paying attention to the information I had at hand would have saved me another trip to the store. But more importantly, using this vulnerable source of chicken stock could have put my family at risk.
In the future, when I get the itch to break out that Dutch oven again, I’ll be sure to check the expiration date of all my ingredients. Checking it is a simple practice of avoiding known risks (and will also save me from some unwanted Emergency Room bills).
The not so subtle hint here is that software components are the ingredients of software. Just like real food, they have an expiration date.
Some Things Don’t Age Well
Let me start with an example. Using an xml processing library with a “best if used by date” somewhere in 2005 might not be so good for your software. Using fresh ingredients helps ensure safer, tastier finished products. Known vulnerabilities are out there, and it is worth checking to see if the components you are using in development are still “fresh”. It also means, less rework for you (or trips to the store for me).
In our 2014 Open Source Development and Application Security Survey, 63% of the +3,300 participants said that no one was actively monitoring their open source components for changes in vulnerability data. That is, no one was in their kitchen asking “is that thing expired?”. The cooks did not have an easy way to check for the expiration date or for known vulnerabilities, even though the components were labeled (albeit in small print).
As Brian Fox, our VP of Product Management, likes to say, “Components don’t age like a fine wine, they rot like milk”. If you are part of the 63% that are not tracking, the time is coming to do so. With applications recognized as the #1 source of attacks leading to breachs, the quality standards in our software kitchens need to improve. At lunch today or tomorrow, I’ll invite you to stew this one over with your colleagues.