Yahoo! has released a large scale web security scanning platform aimed at improving the safety of the Web.
Called Gryffin, the new project has been published to Github in beta under the BSD-style license, and Yahoo! says that it is more than just another scanner, as it aims at addressing two issues that current initiatives have, namely coverage and scale.
The project’s Github page explains that coverage has two dimensions, namely crawl andf uzzing. The first implies the ability to find as much of the application’s footprint as possible, while the latter involves testing all of the application’s components for an applied set of vulnerabilities.
With web applications being template driven, meaning that the same code or path can generate large number of URLs, Gryffin’s crawler requires only one of the URLs to work. Moreover, it has a deduplication engine that compares a new page with an existing one, which allows it to avoid crawling the same page twice.
Gryffin’s crawler also uses PhantomJS for DOM rendering and navigation, which allows it to discover links and code paths in rich applications that are heavily driven by client-side JavaScript. However, the scanning platform does not have fuzzer modules, even for common vulnerabilities like XSS and SQL Injection, as it wants to allow users to fuzz for just what they need.
“It’s not wise to reinvent the wheel where you do not have to. Gryffin at production scale at Yahoo uses open source and custom fuzzers. Some of these custom fuzzers might be open sourced in future and might or might not be part of Gryffin repository. For demonstration purpose, Gryffin comes integrated with sqlmap and arachni. It does not endorse them or any other scanner in particular,” Yahoo! explains.
Gryffin has been released as a standalone package, but Yahoo! says that it is actually build for scale, on the publisher-subscriber model. The platform’s components are either publishers or subscribers, or both, which allows it to scale horizontally by adding new nodes to it.
The list of prerequisites for Gryffin includes Go, PhantomJS v2, Sqlmap (for fuzzing SQLi), Arachni (for fuzzing XSS and web vulnerabilities), NSQ (running lookupd at port 4160,4161; running nsqd at port 4150,4151; with –max-msg-size=5000000), and Kibana and Elastic search, for dashboarding (listening to JSON over port 5000, with a prefigured docker image.