DARPA makes finding software vulnerabilities fun
- 06 December, 2013 21:56
DARPA’s Crowd Sourced Formal Verification (CSFV) program uses game players’ actions to find software vulnerabilities
The U.S. Department of Defense may have found a new way to scan millions of lines of software code for vulnerabilities, by turning the practice into a set of video games and puzzles and having volunteers do the work.
Having gamers identify potentially problematic chunks of code could help lower the work load of trained vulnerability analysts by "an order of magnitude or more," said John Murray, a program director in SRI International's computer science laboratory who helped create one of the games, called Xylem.
DARPA (the Defense Advanced Research Projects Agency) has set up a site, called Verigames, that offers five free games that can be played online or, in Xylem's case, on an Apple iPad.
Verigames is set up in a manner similar to other online crowd-sourcing projects, such as SETI@homel, which has users' computers scan for extraterrestrial signals, and Fold.it, which invites participants to play online puzzles for protein folding.
The games are designed in such a way that when users solve puzzles in order to advance to the next level of game play, they are actually generating program annotations and mathematical proofs that can identify or prove the absence of flaws in software written in either C or Java. DARPA funded the games and the portal through its Crowd Sourced Formal Verification (CSFV) program.
Formal software verification typically relies on engineers reviewing code for possible errors and omissions that could be used by an attacker to compromise a system.
This approach is slow and costly, though. DARPA is hoping the work can be reconfigured into a game format that would be enjoyable enough to interact with so that large numbers of people would do at least some of this work voluntarily. The idea is to map what in essence are really hard math problems onto puzzle games that would be fun to play, according to DARPA materials.
The vast bulk of analysis on a software program is conducted by automated testing programs, which flag sections that look questionable, Murray explained.
"We are able to take those small snippets of code that need further analysis and turn them into the parameters to generate a puzzle," he said. Certain types of vulnerabilities, such as buffer overflows or flaws that result in privilege escalation, fit particularly well to the puzzle format, Murray said.
DARPA has awarded grants to a number of companies to build games around the resulting puzzles.
In Xylem, for instance, the user explores a never seen-before tropical island and catalogues unusual plants -- which are actually representations of sections of code -- by writing short descriptions about them.
In another game, called CircuitBot, the user links up a team of robots to carry out a mission. Flow Jam requires the user to analyze and adjust a cable network to maximize its throughput.
Despite the relative benign nature of all the games, only persons 18 and over are allowed to play, due to government regulations regarding volunteer participants. Over time, however, DARPA hopes to build up a game playing community that would reduce the number of software errors in commercial and open source software.
The games are now reviewing open source programs that are being used by the Defense Department and other governmental and commercial organizations. If an error is found through game play, the agency will notify the managers of the software.