TechBeacon recently published an article on the Three Application Security Fundamentals Every Developer Should Know. The article bases its recommendations for developers on research that came out of a recent USENIX Security conference for developers and application security specialists. While I recommend you read the TechBeacon article for the entire commentary, here’s the a short synopsis of the 3 fundamentals.
The three fundamentals that the article covers in more details, include:
1. Focus on best practices and code review
2. Perform code security checks, especially threat assessments
3. Focus testers on the low-hanging fruit—breadth, not depth
These fundamentals may sound like common sense, but they are often ignored when there’s pressure to get applications to production quickly. This pressure has probably been the most severe over the last year during the COVID-19 pandemic, where more employees have been working from home, demanding updated applications to help with the work from home phenomenon.
The article starts with a discussion of best practices and getting back to fundamentals as an important start to setting the base for developers, which helps to ensure application security later. Once fundamentals are established, getting security in place is simplified.
As an application security company, we’re obviously going to focus a little more on the second recommendation, “Perform code security checks, especially threat assessments.” The TechRepublic article points out that less than half of the developers who replied to the survey followed any of the common security techniques, which included identifying known vulnerabilities in libraries, doing penetration testing, conducting threat assessment, doing a code review, and running an automated code review.
It should be no surprise then, that 2020 had a fourth record year of reported vulnerabilities in code released to production. Combine that with record numbers of zero day attacks, and you’ve got a recipe for disaster.
If you look at how most organizations handle application security today, there’s two places where security should be emphasized. First there’s pre-production/development, and ideally organizations should be thinking about security during the development of the application. In the past that meant coding with security in mind and security testing, including SAST (Static Application Security Testing) and DAST (Dynamic Application Security Testing).
The second area organizations should be focusing on security for applications is during production or runtime of the application. In the past that has meant security in two places. First the network perimeter, and the use of a web application firewall (WAF), along with the security on the server the application is running on. Most organizations continue to rely on standard anti-virus or Endpoint Detection and Response (EDR) solutions (solutions that are designed for end-user systems, rather than servers) to protect their servers.
Since neither of these areas of security focus have been successful at fending off attacks in the recent years, then maybe it’s time to rethink the way organizations approach application security, both during development and in production. The release of a new NIST SP800-53 Revision 5 Security and Privacy Framework is a good indication that things need to change and gives us insight as to what the next generation of application security is going to look like.
The latest revision of NIST SP800-53 includes the requirement of RASP (Runtime Application Self-Protection) and IAST (Interactive Application Security Testing). It’s a first in recognizing these two advancements in application security by now requiring them as part of the security framework.
If you’re not familiar with RASP, it’s not a new concept. The product category has existed since 2012, and came about because of the need for security that is specific to the challenges and threats that web applications face. If you are thinking the WAF is providing all the application security requirements, you would not be alone, but you would be missing out on many application security needs. While WAFs have been around in their current form since around 2002, WAFs function as a network perimeter security solution and they have failed to meet the security needs around many of the issues that applications face in today’s threat landscape. A typical RASP solution has code level visibility into the application and can analyze all the activity related to the application to accurately identify when an attack occurs, thereby reducing the amount of false positives. Unlike WAFs which only see the traffic coming to and from the server, a RASP can see what’s happening inside the application, to determine if there’s inappropriate use of the application itself. In addition, RASP is really the first security category to offer self protection for the application.
By running on same server as the application, RASP solutions provide continuous security for the application during runtime. For example, as mentioned earlier, a RASP solution has complete visibility into the application, so a RASP solution can analyze an application’s execution to validate the execution of the code, and can understand the context of the application’s interactions.
If RASP solutions have been around since 2012 , you may be wondering why they have not had more success, and why has it taken so long for the NIST to recognize their value as part of the application security framework? As with any new technology, early RASP solutions had some teething problems at the beginning. The first RASP solutions were high impact, using a considerable amount of CPU and memory, and adding not insignificant latency to an application, making it difficult to use them for a mission critical application. RASP solutions have improved over time, and some of the latest RASP solutions, like the one from K2 Cyber Security offers significant application protection while at the same time using minimal resources and adding negligible latency to an application.
IAST is the other new recommendation for application security coming from the NIST revised draft, and if you haven’t heard of IAST, there’s a good definition available from Optiv:
“IAST is an emerging application security testing approach which combines elements of both of its more established siblings in SAST (Static Application Security Testing) and DAST (Dynamic Application Security Testing). IAST instruments the application binary which can enable both DAST-like confirmation of exploit success and SAST-like coverage of the application code. In some cases, IAST allows security testing as part of general application testing process which provides significant benefits to DevOps approaches. IAST holds the potential to drive tests with fewer false positives/negatives and higher speed than SAST and DAST.”
With these two new requirements (RASP and IAST) for application security being added to the NIST framework, it’s really time to rethink how your organization is doing application security.
Here at K2 Cyber Security, we’d like to help out with your RASP and IAST requirements. K2 offers an ideal runtime protection security solution that detects true zero-day attacks, while at the same time generates the least false positives and alerts. Rather than rely on technologies like signatures, heuristics, fuzzy logic, machine learning or AI, we use a deterministic approach to detect true zero-day attacks, without being limited to detecting attacks based on prior attack knowledge. Deterministic security uses application execution validation, and verifies the API calls are functioning the way the code intended. There is no use of any prior knowledge about an attack or the underlying vulnerability, which gives our approach the true ability to detect new zero-day attacks. Our technology has 8 patents granted/pending, and has no false alerts.
K2’s technology can also be used with DAST testing tools to provide IAST results during penetration and vulnerability testing. We’ve also recently published a video, The Need for Deterministic Security. The video explains why the technologies used in today’s security tools, including web application firewalls (WAFs) fail to prevent zero day attacks and how deterministic security fills the need for detecting zero day attacks. The video covers why technologies like artificial intelligence, machine learning, heuristics, fuzzy logic, pattern and signature matching fail to detect true zero day attacks, giving very specific examples of attacks where these technologies work, and where they fail to detect an attack.
The video also explains why deterministic security works against true zero day attacks and how K2 uses deterministic security. Watch the video now.
Change how you protect your applications, include RASP and check out K2’s application workload security.