Yesterday, I wrote about the importance of continued learning to stay relevant. A specific area I want to highlight is cloud computing. For better or for worse, cloud computing is the future of IT for most organizations, and as I wrote earlier, the cloud is not magical and brings new security challenges for us to solve. At the same time, cloud computing brings fundamentally new security and recovery capabilities that simply weren’t practical or possible in traditional infrastructure. We have an opportunity to not only help our organizations embrace this transformational technology, but also to make some substantial security enhancements as well. To do this, though, we need to deeply understand cloud computing.
Some good places to start are:
Corporate IT seems to be evolving at an ever increasing pace. As security professionals who want to stay relevant and employed, it’s our duty to understand these changes. For example, most organizations are in the process of migrating IT to the cloud. However, as I’ve previously written, the cloud is not a magical place and requires an updated set of security skills and approaches.
I have no affiliation with O’Reilly, but my experience is that their Safari Books Online is about the most economical resource to help me stay current. It’s about $300 per year, but provides access to many thousands of technical books, video tutorials, and conference recordings. Videos of conferences such as Velocity, Strata, Fluent, The Artificial Intelligence Conference, OSCON, and others are a great way to get a view of the landscape, and you’ll find plenty of books to explore any particular area more deeply.
Another good place to get information is security conference videos. Adrian Crenshaw maintains an extensive list of recorded conference presentations on his website here: http://www.irongeek.com/
Anyone that has been in the IT security field for a while intuitively understands that there are concepts that apply regardless of technology, and that is certainly true, however understanding the technological and business shifts in the use of technology is necessary for us to stay relevant to our organizations. In this industry, we cannot afford to stand still. We must keep learning and growing, otherwise we will become marginalized and ignored in our organizations.
I spent the first nineteen days of National Cyber Security Awareness Month giving some hopefully useful ideas on improving security in your organization. I’m going to spend the remaining days writing about us as IT and security professionals.
To implement change, we need to be able to influence others, such as our managers, our executives, our CEO, or our board of directors. Without the ability to communicate and influence change, our good ideas for improving security remain just that: ideas.
The way we write is often the first thing people learn about us. It represents the first impression of those we need to communicate with. The ideas we are trying to advance are inextricably linked in the minds of our readers with the way the message is presented. Based on what I’ve seen throughout my career, writing is a challenge for many people and I strongly suspect many good ideas fell victim to overly casual writing and a herd of punctuation and spelling mistakes.
Writing is a skill that takes practice. Not just practice, but “deliberate practice” as Anders Ericsson describes in his book “Peak: Secrets from the New Science of Expertise”. Candidly, improving my ability to write is one of the main reasons I started the infosec.engineering blog and in particular, why I challenged myself to write a post every day for NCSAM.
In summary, focus on developing your writing ability. You will benefit professionally, and your organization will benefit more from your ideas.
Over the years, I’ve worked on investigating and cleaning up many breaches, and in nearly every single instance, the IT team that designed and managed the environment had no concept that their system could be exploited in the manner it was. Another commonality is that nearly all of those breaches resulted from a chain of weaknesses, some of which were consciously “accepted”. I argue that it is difficult to design a system resilient to attack if one does not know the tactics adversaries use, and it is equally difficult to assess risks without understanding how controls help block adversarial techniques.
For National Cyber Security Awareness Month, my hope is that people responsible for designing and assessing IT environment take time to learn about adversarial tools and techniques to design more robust environments and processes. This is, unfortunately, not a one-time event, though: techniques change over time, and we need to keep up with the latest trends.
The downside, I suppose, to this advice is that red team can be quite addictive and we’ll lose many competent IT people to the pen test puppy mill.
Zero trust networks are quickly becoming all the rage in the IT world. Building proper defenses into each endpoint and relying on strong authentication schemes seems intuitively right. I’ve had several recent discussions with smart people about how dull the old world of network-based firewalls which grant implicit permissions based on the network location of a particular device (i.e., inside vs. outside the firewall), which is just another way of saying that we should move toward zero trust.
But all this presumes that the “endpoints” can be secured. Many pieces of IT infrastructure, including switches, servers, firewalls, and many other devices contain administrative interfaces that have security that is on par with, or slightly worse than, the average home router. In the past few years, we’ve seen many, many problems with the lights-out management interfaces for various servers; we’ve seen a (so far) non-stop parade of authentication bypass/hardcoded passwords in Cisco devices; and we’ve seen many other devices using various badly configured or exploitable services running on these interfaces, like dropbear, libssh, and others.
These interfaces should NOT be exposed to untrusted networks. That, sadly, means that we need to continue on with architecting, at least to some extent, well thought out networks.
The concept of a “management network” is not new. I was first introduced to the concept over 20 years ago, and I suspect the idea was already old by that point. Remember that a management network, by definition, is a concentration of sensitive interfaces and user sessions that have administrative privileges. A lot has been written about the design of management networks by people much smarter than I am, but I’ll give some ideas/observations here:
- Ensure that only authorized people and devices are able to connect to the management network
- Monitor activities on the management network for indications of unauthorized devices or users
- Keep the number of devices on the management network as small as possible – A one to one relationship would be optimal, but often impractical
An often-overlooked aspect of vulnerability management are software components that exist on a system, such as PHP, Apache Struts, and Ghostscript. These components are often dependencies to other applications. If the packages are installed through a normal package manager, like yum or apt, updates should be applied during periodic updates. There are three things to be aware of, though:
- If a package goes end of life, like what is about to happen PHP5, updates may simply and silently stop being applied, leaving a potentially vulnerable piece of software running on a system.
- If a component is custom compiled, a package manager will not apply updates. Note: this is an argument in favor of using binaries provided by main stream repositories
- Vulnerability scans may not be able to detect vulnerabilities in such components, particularly if using unauthenticated scans.
As we move toward infrastructure-as-code, maintaining these inventories should be less taxing, since the configuration definition for systems should explicitly contain the packages installed. If not, then you’re doing IAC wrong.
Create a list of all these components that exist in your environment, and determine what process is used to identify a vulnerability in them and ensure each is updated when necessary. Many may be updated in the normal course of running operating system updates, while others may require manual tracking to identify when to download, compile, and install updated source code.
It’s hard to manage what you don’t know you have.
Sometimes, despite our best efforts, ransomware will successfully invade our systems. The need for good back ups should be well known by now, but here are a few recommendations:
- Several organizations impacted by the likes of SAMSAM have opted to pay the ransom to recover their data, despite having good backups. This is apparently happening because the time and cost to restore all the impacted systems and data from backup is substantially higher than the cost of the ransom. I previously wrote about why it’s a bad idea to simply clean an infected or compromised system and paying the ransom to get back to operations faster is basically doing just that. I argue that an organization that is tempted to pay the ransom in such a case probably did not properly assess the RTO and RPO that were needed when designing and implementing its recovery program.
- Be aware that some “backup” schemes use real time or near real time replication between systems in remote sites. Ransomware-encrypted files will be replicated to the backup location nearly instantaneously. Remember to make backups or take snapshots if you’re using such a recovery scheme.
- This shouldn’t have to be said, but you (probably) don’t have a backup if you haven’t tested your backup. Test them.
- Over time, we will likely see a shift to injecting techniques that render backups useless to help force ransom payment.
- One of the insidious aspects of some ransomware like SAMSAM is that is can effectively take out all systems on a network. Consider your ability to initiate recovery if all of your administrators have locked up workstations and your (ugh) Sharepoint repository of recovery plans are all encrypted.
- I previously wrote a longer post on how to prevent ransomware infections.
Remote Desktop Protocol, RDP, is becoming a common entry point for bad actors, including many POS terminal breaches, and the main delivery method for enterprise-grade ransomware, like SAMSAM. An underground economy has developed around finding and then selling credentials to access various organizations through RDP.
Though it is a legitimate tool for administering Windows systems remotely, RDP should never be exposed directly to the internet. Firewalls should be configured to disallow RDP access from Internet sources, and systems that run RDP must not permit accounts with default or weak passwords.
Use a service like Shodan to scan your organization’s address ranges to identify RDP services exposed to the Internet. Workstations should be configured via GPO to disable RDP, enabling it only by exception.
We alternately hear “people are the first line of defense” or “people are the last line of defense” in cyber security. I haven’t figured out which one is true. Regardless, we need to understand that there are limits to the effectiveness of awareness training and that our first line of defense or our last line of defense (whichever is correct) is quite fallible.
It comes as no surprise to anyone that training humans is not like defining a rule base in a firewall. We tell a firewall what network traffic to permit, and what to block based on attributes of the traffic. Similarly, we train our employees on how to identify and resist various types of attacks. Firewalls will dutifully and predictably follow the rules it was programmed with. Humans, however, are a different story.
Let’s imagine for a moment that we have developed a perfect security awareness program. It clearly communicates dos and don’ts, how to spot attacks, how to report problems, and so on, in a way that is memorable and engaging. I propose that the outcome will be significantly less than perfect, because of the following factors:
- People act irrationally under stress from things such health problems, family problems, medication, and lack of sleep
- Any given person will act upon the same set of conditions differently based on the time of day, proximity to lunch, day of the week, and many other factors that affect his or her frame of mind at the time
- People in a business setting generally have incentives that may, at least some of the time, run contrary to the recommendations of awareness training, such as project deadlines, management expectations, and so on.
This should tell us that awareness training is, at best, a coarse screen that will catch some problems, but allow many others to pass unimpeded. As such, we should focus on providing awareness education that provides the biggest value, in terms of outcomes, and then focus our remaining effort on enhancing process and technical controls that are designed to provide more predictable, and repeatable security outcomes, similar to the operation of a firewall.
On a related note, I personally think it’s irresponsible to pin the safety of an organization’s systems and data on an employee recognizing that a potentially sophisticated attack. For this reason, I think it is incumbent on us to develop and implement systems that are resilient to such attacks, and allows employees to focus on their job duties.
Web applications are among the most common entry points in data breaches and network intrusions. In the best of conditions, defending web applications can be challenging, but I’ve observed that the are often orphaned as priorities change, staff turns over, and in the wake of organizational changes.
This is not a problem in all organizations, particularly in smaller firms that have a monolithic IT department that manages all technology, though I have seen the problem in small companies, too.
Similar to tracking servers and workstations, organizations should have a system in place to track the ownership of applications, and periodically revalidate ownership and force reassignment when the designated owner leaves or transfers.
The application owner should be responsible for understanding all of the components that compose the application and ensure that each component is properly vulnerability scanned and patched, or shut down and deleted if no longer needed.
Organizations should be on the lookout for applications not being properly maintained through vulnerability scans and other tools that may be available. Unmaintained applications should be treated as an incident to investigate.