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
Oldest First  |  Newest First  |  Threaded View
Manchester United Suffers Cyberattack
Dark Reading Staff 11/23/2020
As 'Anywhere Work' Evolves, Security Will Be Key Challenge
Robert Lemos, Contributing Writer,  11/23/2020
Cloud Security Startup Lightspin Emerges From Stealth
Kelly Sheridan, Staff Editor, Dark Reading,  11/24/2020
Register for Dark Reading Newsletters
White Papers
Cartoon Contest
Write a Caption, Win an Amazon Gift Card! Click Here
Latest Comment: This comment is waiting for review by our moderators.
Current Issue
2021 Top Enterprise IT Trends
We've identified the key trends that are poised to impact the IT landscape in 2021. Find out why they're important and how they will affect you today!
Flash Poll
Twitter Feed
Dark Reading - Bug Report
Bug Report
Enterprise Vulnerabilities
From DHS/US-CERT's National Vulnerability Database
PUBLISHED: 2020-11-28
An issue was discovered in the Linux kernel before 5.2.6. On NUMA systems, the Linux fair scheduler has a use-after-free in show_numa_stats() because NUMA fault statistics are inappropriately freed, aka CID-16d51a590a8c.
PUBLISHED: 2020-11-28
An issue was discovered in __split_huge_pmd in mm/huge_memory.c in the Linux kernel before 5.7.5. The copy-on-write implementation can grant unintended write access because of a race condition in a THP mapcount check, aka CID-c444eb564fb1.
PUBLISHED: 2020-11-28
An issue was discovered in mm/mmap.c in the Linux kernel before 5.7.11. There is a race condition between certain expand functions (expand_downwards and expand_upwards) and page-table free operations from an munmap call, aka CID-246c320a8cfe.
PUBLISHED: 2020-11-28
An issue was discovered in kmem_cache_alloc_bulk in mm/slub.c in the Linux kernel before 5.5.11. The slowpath lacks the required TID increment, aka CID-fd4d9c7d0c71.
PUBLISHED: 2020-11-28
An issue was discovered in romfs_dev_read in fs/romfs/storage.c in the Linux kernel before 5.8.4. Uninitialized memory leaks to userspace, aka CID-bcf85fcedfdd.