{"id":600,"date":"2018-03-25T13:30:08","date_gmt":"2018-03-25T21:30:08","guid":{"rendered":"http:\/\/unmitigatedrisk.com\/?p=600"},"modified":"2019-02-25T07:44:16","modified_gmt":"2019-02-25T15:44:16","slug":"the-evolution-of-security-thinking","status":"publish","type":"post","link":"https:\/\/unmitigatedrisk.com\/?p=600","title":{"rendered":"The Evolution of Security Thinking"},"content":{"rendered":"<p><span style=\"font-weight: 400;\">In design sometimes we refer to the strategies used during the design process as <\/span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Design_thinking\"><span style=\"font-weight: 400;\">Design thinking<\/span><\/a><span style=\"font-weight: 400;\">. \u00a0The application of these strategies helps ensure you are solving the right problems and doing so in a repeatable way. You can attribute much of the massive improvements in usability in software and devices over the two decades to these strategies.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">If we look at how we have evolved thinking around building secure systems over the last two decades we can see that we have evolved similar strategies to help ensure positive security outcomes.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">If we go back to the late 80s we see systems that were largely designed for a world of honest actors. There was little real business happening on the Internet at the time and the hard problems to be solved were all related to how do we enable a global network of interconnected systems so thats where efforts were put. These efforts led us to the Internet of today but it also gave us systems vulnerable to trivial attacks such as the <\/span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Morris_worm\"><span style=\"font-weight: 400;\">Morris Worm<\/span><\/a><span style=\"font-weight: 400;\">.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">By the 90s the modern \u201csecurity industry\u201d was born and products designed to protect these insecure systems from the internet started to come to market. One of the most impactful examples of this was the <\/span><a href=\"http:\/\/www.avolio.com\/papers\/fwtk-history.html\"><span style=\"font-weight: 400;\">TIS Firewall Toolkit<\/span><\/a><span style=\"font-weight: 400;\">, other examples of this way of thinking include <\/span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Antivirus_software\"><span style=\"font-weight: 400;\">Antivirus products<\/span><\/a><span style=\"font-weight: 400;\"> and other agents that promised to keep our applications and operating systems safe from \u201cattackers\u201d.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">By the late 90s and early 2000s, it was clear that these agents were never going to be effective at keeping the bad guys out and that we needed to be building systems that were <\/span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Secure_by_default\"><span style=\"font-weight: 400;\">Secure by Default<\/span><\/a><span style=\"font-weight: 400;\">, <\/span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Secure_by_design\"><span style=\"font-weight: 400;\">Secure by Design<\/span><\/a><span style=\"font-weight: 400;\"> and <\/span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Privacy_by_design\"><span style=\"font-weight: 400;\">Private by Design<\/span><\/a><span style=\"font-weight: 400;\">. This shift in thinking meant that solution developers needed to develop their own strategies and tooling to ensure systems could be built to be inherently resilient to the risks they were exposed to. The concept of <\/span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Threat_model\"><span style=\"font-weight: 400;\">Threat Modeling<\/span><\/a><span style=\"font-weight: 400;\"> is probably the most concrete example of this, believe it or not, this basic concept was essentially absent from software development up until this point.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">By this time the <\/span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Technical_debt\"><span style=\"font-weight: 400;\">technical debt<\/span><\/a><span style=\"font-weight: 400;\"> in deployed systems was so great we spent most of a decade just trying to rectify the mistakes of the past. <\/span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Windows_XP\"><span style=\"font-weight: 400;\">Windows XP SP2<\/span><\/a><span style=\"font-weight: 400;\"> and the <\/span><a href=\"https:\/\/gcn.com\/articles\/2002\/07\/19\/microsofts-february-standdown-cost-100-million.aspx?admgarea=TC_SecCybersSec\"><span style=\"font-weight: 400;\">Microsoft Security Stand Down<\/span><\/a><span style=\"font-weight: 400;\"> is probably the most visible example of the industry making this shift, it also leads to the <\/span><a href=\"https:\/\/cloudblogs.microsoft.com\/microsoftsecure\/2012\/02\/01\/security-development-lifecycle-a-living-process\/\"><span style=\"font-weight: 400;\">Security Development Lifecycle<\/span><\/a><span style=\"font-weight: 400;\"> that largely informs how we as an industry, approach building secure systems today.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">During this timeline, <\/span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Cryptography\"><span style=\"font-weight: 400;\">cryptography<\/span><\/a><span style=\"font-weight: 400;\"> was treated as something that you sprinkled on top of existing systems with the hope to make them more confidential and secure. As an industry, we largely relied on the <\/span><a href=\"https:\/\/www.nist.gov\/topics\/cryptography\"><span style=\"font-weight: 400;\">US Government<\/span><\/a><span style=\"font-weight: 400;\"> to define the algorithms we used and to tell us how to use them securely. As a general rule only products designed for government use or for the small group of \u201c<\/span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Cypherpunk\"><span style=\"font-weight: 400;\">cypherpunks<\/span><\/a><span style=\"font-weight: 400;\">\u201d even considered the inclusion of cryptography due to the complexity of \u201cgetting it right\u201d.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Things are changing again, we see the IETF via the <\/span><a href=\"https:\/\/irtf.org\/cfrg\"><span style=\"font-weight: 400;\">CFRG<\/span><\/a><span style=\"font-weight: 400;\"> working to standardize on international and independently created and cryptographic algorithms in lieu of relying exclusively on governments to do this standardization. We also see the concept of <\/span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Formal_verification\"><span style=\"font-weight: 400;\">Formal Verification<\/span><\/a><span style=\"font-weight: 400;\"> being applied to cryptographic systems (<\/span><a href=\"http:\/\/galois.com\"><span style=\"font-weight: 400;\">Galois<\/span><\/a><span style=\"font-weight: 400;\"> is doing great work here with <\/span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Cryptol\"><span style=\"font-weight: 400;\">Cryptol<\/span><\/a><span style=\"font-weight: 400;\"> as are other great projects in the <a href=\"https:\/\/en.wikipedia.org\/wiki\/Verifiable_computing\">verifiable computing<\/a> space) which is leading us to have frameworks we can apply to build these concepts into other products securely (check out the <\/span><a href=\"http:\/\/noiseprotocol.org\/\"><span style=\"font-weight: 400;\">Noise Protocol Framework <\/span><\/a><span style=\"font-weight: 400;\">as an example).<\/span><\/p>\n<p><span style=\"font-weight: 400;\">I think the <\/span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Signal_Protocol\">Signal Protocol<\/a>,<span style=\"font-weight: 400;\"><a href=\"https:\/\/roughtime.googlesource.com\/roughtime\"> Rough time<\/a>, <a href=\"https:\/\/www.certificate-transparency.org\/\">Certificate Transparency<\/a> and even\u00a0<\/span><a href=\"https:\/\/www.theverge.com\/2018\/3\/7\/17091766\/blockchain-bitcoin-ethereum-cryptocurrency-meaning\"><span style=\"font-weight: 400;\">Blockchain Technologies<\/span><\/a><span style=\"font-weight: 400;\">\u00a0are examples of the next phase of evolution in our thinking about how we build secure systems. Not because of \u201cdecentralization\u201d or some anti-government bent in technologists, instead, these systems were designed with a more-complete understanding of security risks associated with their use.<\/span><\/p>\n<blockquote><p>Trust is a necessary component of human existence. It can give us peace of mind but It can also give us broken hearts. The same is true in the context of system design. Trust cautiously.<\/p><\/blockquote>\n<p><span style=\"font-weight: 400;\">These systems, by design, go to great length to limit the need for \u201ctrust\u201d for a system to work as intended. They do this by minimizing the dependencies that a system takes in its design, this is because each of those dependencies represents an attack vector as we advance technology our attackers become more advanced as well. They also make extensive use of cryptography to make that possible.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">This focus on dependency reduction is why we see Blockchain enthusiasts taking the maximalist position of \u201cDecentralize all the Things\u201d. In my opinion, centralization is not always a bad thing, over-centralization maybe, but centralization can provide value to users and that value is what we should be focused on as solution developers.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">My personal take is that when we look back on the next decade we will the say the trend was not \u201cblockchain\u201d but instead this is when we evolved our security thinking and tooling to better utilize cryptography. Specifically that this is when we started to use cryptography to make transparency, confidentiality and verifiability part of the core of the solutions we build instead of thinking of it as a layer we apply once we are done.<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In design sometimes we refer to the strategies used during the design process as Design thinking. \u00a0The application of these strategies helps ensure you are solving the right problems and doing so in a repeatable way. You can attribute much of the massive improvements in usability in software and devices over the two decades to [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[104,3,7,4],"tags":[32,197,168],"class_list":["post-600","post","type-post","status-publish","format-standard","hentry","category-bitcoin-2","category-security","category-standards","category-thoughts","tag-cryptography","tag-sdl","tag-security"],"_links":{"self":[{"href":"https:\/\/unmitigatedrisk.com\/index.php?rest_route=\/wp\/v2\/posts\/600","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/unmitigatedrisk.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/unmitigatedrisk.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/unmitigatedrisk.com\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/unmitigatedrisk.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=600"}],"version-history":[{"count":0,"href":"https:\/\/unmitigatedrisk.com\/index.php?rest_route=\/wp\/v2\/posts\/600\/revisions"}],"wp:attachment":[{"href":"https:\/\/unmitigatedrisk.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=600"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/unmitigatedrisk.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=600"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/unmitigatedrisk.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=600"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}