Skip to content

Commit

Permalink
remove go1.12 from travis config, update README
Browse files Browse the repository at this point in the history
  • Loading branch information
dmitris committed Apr 29, 2020
1 parent 54a9975 commit 97fc581
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 16 deletions.
1 change: 0 additions & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ language: go
sudo: false

go:
- "1.12"
- "1.13"
- "1.14.2"
- tip
30 changes: 15 additions & 15 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
Gryffin (beta) [![Build Status](https://travis-ci.org/yahoo/gryffin.svg?branch=master)](https://travis-ci.org/yahoo/gryffin) [![GoDoc](https://godoc.org/github.com/yahoo/gryffin?status.svg)](https://godoc.org/github.com/yahoo/gryffin)
==========

Gryffin is a large scale web security scanning platform. It is not yet another scanner. It was written to solve two specific problems with existing scanners: coverage and scale.
Gryffin is a large scale web security scanning platform. It is not yet another scanner. It was written to solve two specific problems with existing scanners: coverage and scale.

Better coverage translates to fewer false negatives. Inherent scalability translates to capability of scanning, and supporting a large elastic application infrastructure. Simply put, the ability to scan 1000 applications today to 100,000 applications tomorrow by straightforward horizontal scaling.
Better coverage translates to fewer false negatives. Inherent scalability translates to capability of scanning, and supporting a large elastic application infrastructure. Simply put, the ability to scan 1000 applications today to 100,000 applications tomorrow by straightforward horizontal scaling.

## Coverage
Coverage has two dimensions - one during crawl and the other during fuzzing. In crawl phase, coverage implies being able to find as much of the application footprint. In scan phase, or while fuzzing, it implies being able to test each part of the application for an applied set of vulnerabilities in a deep.

#### Crawl Coverage
Today a large number of web applications are template-driven, meaning the same code or path generates millions of URLs. For a security scanner, it just needs one of the millions of URLs generated by the same code or path. Gryffin's crawler does just that.
Today a large number of web applications are template-driven, meaning the same code or path generates millions of URLs. For a security scanner, it just needs one of the millions of URLs generated by the same code or path. Gryffin's crawler does just that.

##### Page Deduplication
##### Page Deduplication
At the heart of Gryffin is a deduplication engine that compares a new page with already seen pages. If the HTML structure of the new page is similar to those already seen, it is classified as a duplicate and not crawled further.

##### DOM Rendering and Navigation
Expand All @@ -22,24 +22,24 @@ As Gryffin is a scanning platform, not a scanner, it does not have its own fuzze

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 the future, and might or might not be part of the Gryffin repository.

For demonstration purposes, Gryffin comes integrated with sqlmap and arachni. It does not endorse them or any other scanner in particular.
For demonstration purposes, Gryffin comes integrated with sqlmap and arachni. It does not endorse them or any other scanner in particular.

The philosophy is to improve scan coverage by being able to fuzz for just what you need.

## Scale
While Gryffin is available as a standalone package, it's primarily built for scale.
While Gryffin is available as a standalone package, it's primarily built for scale.

Gryffin is built on the publisher-subscriber model. Each component is either a publisher, or a subscriber, or both. This allows Gryffin to scale horizontally by simply adding more subscriber or publisher nodes.

## Operating Gryffin

### Pre-requisites
### Pre-requisites

1. Go
1. Go - `go1.13` or later
2. PhantomJS, v2
3. Sqlmap (for fuzzing SQLi)
4. Arachni (for fuzzing XSS and web vulnerabilities)
5. NSQ ,
5. NSQ ,
- running lookupd at port 4160,4161
- running nsqd at port 4150,4151
- with `--max-msg-size=5000000`
Expand All @@ -58,26 +58,26 @@ go get -u github.com/yahoo/gryffin/...

(WIP)

## TODO
## TODO

1. Mobile browser user agent
2. Preconfigured docker images
2. Preconfigured docker images
3. Redis for sharing states across machines
4. Instruction to run gryffin (distributed or standalone)
5. Documentation for html-distance
6. Implement a JSON serializable cookiejar.
6. Implement a JSON serializable cookiejar.
7. Identify duplicate url patterns based on simhash result.

## Talks and Slides

- AppsecUSA 2015: [abstract](http://sched.co/3Vgm), [slide](http://go-talks.appspot.com/github.com/yukinying/talks/gryffin/gryffin.slide), [recording](https://youtu.be/IWiR2CPOHvc)

## Credits
## Credits

- Adonis Fung @ Yahoo, for the asynchronous phantomjs based crawler and DOM event navigator.
- [Simhash algorithm](http://www.cs.princeton.edu/courses/archive/spring04/cos598B/bib/CharikarEstim.pdf) by Moses Charikar
- Simhash implementation provided by [mfonda/simhash](https://github.com/mfonda/simhash).
- [Sqlmap](http://sqlmap.org/)
- Simhash implementation provided by [mfonda/simhash](https://github.com/mfonda/simhash).
- [Sqlmap](http://sqlmap.org/)
- [Arachni](http://www.arachni-scanner.com/)


Expand Down

0 comments on commit 97fc581

Please sign in to comment.