Core Security Concepts , which covers security basics and sets the stage for the next section.
Secure Software Development , which introduces the 12 roles involved in the software development world as it relates to security. Under each role, we will discuss the various duties and responsibilities that role must deliver for us to achieve secure software.
Secure Supply Chain Management , which is focused on delivering secure software when it is partially or wholly outsourced to external contractors. It is a rare company that does not use contractors in some capacity, so this is a must-read section.
This is normal text.
This is a crucial word that helps make the text make sense.
This is a definition you should try and remember.
This is a topic that a previous sentence promised to cover.
This is a previously-mentioned topic AND a definition you should try and remember.
Introduction
What Does Secure Software Mean?
The phrase secure software means different things to various people. If you are a developer, then code snippets might start dancing around in your head. If you are an architect, visions of design patterns and technology platforms will probably begin to form. For product people, aligning to various security standards might come to mind, while infrastructure folks start dreaming of patches and intrusion detection systems.
The real answer is that all of those responses are correct from each persons point of view. Making software secure requires good code, implementing the right standards, hardening infrastructure and employing the best enterprise security patterns, plus a whole lot more. Slinging good code is just a part of the puzzle, albeit a major part.
So, what will this book do for you?
It will teach you how to document, design, implement, test, deploy, maintain and retire software in a secure manner.
In fact, it breaks content up into 12 different areas, because that is how many different roles are required to come together to roll out secure software.
Who Is the Typical Attacker?
Lets explore the statistical attributes of your average attacker after all, the better you understand your opponent, the better equipped you will be to defeat them. Of course, I have a hidden agenda to this conversation that I will reveal at the end of this discussion.
In 2016 a fairly exhaustive effort was carried out by HackerOne to identify the makeup of hackers across the world. HackerOne helps to connect companies with hackers who can help expose vulnerabilities in the companys systems. The average hacker is a gray-hat someone who helps out companies and people for good, called white hats, and those who sometimes walk on the dark side for fun and profit, commonly called black hats. The color of each hat is based on early westerns from the 1930s in which the good guy normally dressed in white while the bad guys wore black. The gray hat reflects a combination of the two when you mix white with black you get a shade of gray. In short, gray hats are more than willing to help companies find weaknesses, as long as there is some profit or fame to be gained. At other times, you would not want to meet this same character walking down a back alley in the Dark Net. It all depends on what color of hat he is currently wearing.
Here are some interesting details from that report about hackers:
- The vast majority are under the age of 34
- 72% hack for money
- 70% also hack for fun
- 66% thrive on the challenge alone
- 50% claim to do good in the world through their hacking activities
- The United States and Russia have the highest concentration of free-lance hackers
- 17% use hacking as their sole source of income
- 26% generate of their income from bug bounty programs (companies willing to pay for hackers to discover vulnerabilities in their software)
- Hackers make anywhere from $20K to $350K from a single bug bounty program
- 98% are male
While all of this is interesting, take special note of that last statistic 98% of all hackers are male . As in he, not she. Why am I bringing this up? Because no one would ever accuse me of being a politically-correct individual, and I am not going to follow the socially popular trend of equally representing attackers as both genders in this book. Until you write a book you will not appreciate how difficult it is to do such a thing. Therefore, when we discuss an attacker, it will always be a he, because that is what the facts overwhelmingly support. This book will focus on how to implement secure systems, and I will leave the social crusading to others.
Does this offend you? As that timeless philosopher once noted, Haters are going to hate. Besides, my end goal is to really tick off hackers, anyway after all the whole point of this book to beat them at their own game!
TLS vs. SSL
Secure sockets layer, or SSL, is no longer considered to be secure, so we will only mention the use of transport layer security, or TLS in this book. Many books use the phrase TLS/SSL to refer to both, but there is absolutely no scenario in which SSL should be in use. Furthermore, when TLS is mentioned, I am referring to TLS 1.2 or better, as both TLS 1.0 and 1.1 have proven to be insecure.