Dark Reading is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them.Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.

Application Security

05:10 PM

Developers Need More Usable Static Code Scanners to Head Off Security Bugs

As companies "shift left" -- pushing more responsibility for security onto developers -- the tools that are available are falling short, usability researchers say.

While programmers are increasingly being asked to fix security issues during development, common software security scanners — known as static application security testing (SAST) tools — have a variety of usability issues that make them less accessible to developers, according to research presented at the USENIX Symposium on Usable Privacy and Security (SOUPS) on August 11.

The research, conducted by researchers at Lafayette College and Google, found that the tools failed to provide obvious actions to manage the results of a scan or to fix vulnerabilities, failed to provide recommendations to prioritize vulnerability remediation, and had significant issues scaling to represent a large number of results. Other issues included inaccurate results and problems accurately identifying where in the software the defect occurred.

The research is not meant to call out those specific tools but to identify common problems in static code scanners that could prevent them from being accessible to developers, Justin Smith, assistant professor of computer science at Lafayette College, said during his virtual session at the symposium.

"We are trying to understand the specific usability issues that detract from static analysis tools so we can eventually build easier-to-use tools that will lower the barriers to entry and enable more developers to contribute to security," he said. 

The research comes as developers are increasingly being tasked with taking responsibility for the security of their code, often by getting earlier results of security analyses as they write their code. The simplest form of such tools are linters — named after "lint," a Unix-based code scanner — that use a variety of pattern matching and simple analysis to highlight potential code defects. More extensive static application security testing (SAST) tools perform a variety of analyses using source code to identify potential security vulnerabilities.

However, irrespective of how the tools perform, their usability is often an afterthought, said Smith, who conducted the research while a PhD student at North Carolina State University. The paper, titled "Why Can't Johnny Fix Vulnerabilities: A Usability Evaluation of Static Analysis Tools for Security," describes a heuristic walkthrough approach to analyzing the software as well as a survey of users.

"A lot of the times when people are designing these static analysis tools, their priority is to help them find an issue," he said. "But that mindset leads them to build the scanners that find hundreds of issues and don't make it very easy to actually fix those issues. So, by encouraging people to conduct these inexpensive heuristic walkthroughs or usability evaluations, they can look at their tools from a different perspective."

The researchers focused on four tools: three open source SAST tools and one commercial tool. They selected tools that had a significant user base but are different enough from each other to provide a variety of potential issues to study. The researchers considered 61 different tools, but they decided on the four SAST programs to allow a variety of issues to be found and because they had complex-enough user interfaces to have potential issues.

The open source tools included Find Security Bugs (FSB), a Java code scanner that can find 125 different types of vulnerabilities; RIPS, a PHP application scanner that can find more than 80 different types of vulnerabilities; and Flawfinder, a command-line tool for discovering dangerous code in C and C++. The single commercial tool was not named in the research because of license agreement requirements.

"We were trying to select different types of user interfaces," Smith said. "We could have chosen four linter tools that all had the same interfaces, but then once we got to the fourth [linter], we would likely not find any new usability issues."

The two most common usability issues for the code scanners were a lack of information about results and next steps and a failure to provide intuitive interface elements, or "affordances," to convey information simply and efficiently. The concept of "affordances" is a significant part of usability design, providing elements that simply show a user what potential actions they can take without needing advanced knowledge of the tool or application. A common scenario is a checkbox user interface element that can turn on a feature. 

Several of the tools failed to provide good interface elements for managing the list of vulnerability results. Most of the tools also failed to provide simple point-and-click actions to perform a recommended fix of the code.

To better serve developers, security tools should better communication the discovered issues and how to fix the vulnerabilities, as well as place such alerts within the code editor, to avoid switching between two contexts, the researchers stated in their paper. In addition, the tools should add more context — such as using actual variable names — to more clearly flag problems for developers.

Related Content

Veteran technology journalist of more than 20 years. Former research engineer. Written for more than two dozen publications, including CNET News.com, Dark Reading, MIT's Technology Review, Popular Science, and Wired News. Five awards for journalism, including Best Deadline ... View Full Bio

Recommended Reading:

Comment  | 
Print  | 
More Insights
Newest First  |  Oldest First  |  Threaded View
When It Comes To Security Tools, More Isn't More
Lamont Orange, Chief Information Security Officer at Netskope,  1/11/2021
US Capitol Attack a Wake-up Call for the Integration of Physical & IT Security
Seth Rosenblatt, Contributing Writer,  1/11/2021
IoT Vendor Ubiquiti Suffers Data Breach
Dark Reading Staff 1/11/2021
Register for Dark Reading Newsletters
White Papers
Current Issue
2020: The Year in Security
Download this Tech Digest for a look at the biggest security stories that - so far - have shaped a very strange and stressful year.
Flash Poll
Assessing Cybersecurity Risk in Today's Enterprises
Assessing Cybersecurity Risk in Today's Enterprises
COVID-19 has created a new IT paradigm in the enterprise -- and a new level of cybersecurity risk. This report offers a look at how enterprises are assessing and managing cyber-risk under the new normal.
Twitter Feed
Dark Reading - Bug Report
Bug Report
Enterprise Vulnerabilities
From DHS/US-CERT's National Vulnerability Database
PUBLISHED: 2021-01-15
An issue was discovered in Malwarebytes before 4.0 on macOS. A malicious application was able to perform a privileged action within the Malwarebytes launch daemon. The privileged service improperly validated XPC connections by relying on the PID instead of the audit token. An attacker can construct ...
PUBLISHED: 2021-01-15
Docker Desktop Community before on macOS mishandles certificate checking, leading to local privilege escalation.
PUBLISHED: 2021-01-15
OneDev is an all-in-one devops platform. In OneDev before version 4.0.3, there is a critical vulnerability which can lead to pre-auth remote code execution. AttachmentUploadServlet deserializes untrusted data from the `Attachment-Support` header. This Servlet does not enforce any authentication or a...
PUBLISHED: 2021-01-15
OneDev is an all-in-one devops platform. In OneDev before version 4.0.3, AttachmentUploadServlet also saves user controlled data (`request.getInputStream()`) to a user specified location (`request.getHeader("File-Name")`). This issue may lead to arbitrary file upload which can be used to u...
PUBLISHED: 2021-01-15
OneDev is an all-in-one devops platform. In OneDev before version 4.0.3, the REST UserResource endpoint performs a security check to make sure that only administrators can list user details. However for the `/users/` endpoint there are no security checks enforced so it is possible to retrieve ar...