• Stars
    star
    131
  • Rank 275,867 (Top 6 %)
  • Language
    HTML
  • License
    MIT License
  • Created over 7 years ago
  • Updated over 7 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A static-code-analysis tool for performing security-focused code reviews. It enables an auditor to swiftly map the attack-surface of a large application, with an emphasis on identifying development anti-patterns and footguns.

Build Status npm npm

drek

drek is a static-code-analysis tool that can be used to perform security-focused code reviews. It enables an auditor to swiftly map the attack-surface of a large application, with an emphasis on identifying development anti-patterns and footguns.

Much like grep, drek scans a codebase for user-defined regular-expressions. Unlike grep, drek outputs its results into an ergonomic html report that allows for sorting, filtering, and annotating of points-of-interest.

drek is the successor to watchtower (project, article).

Installing

drek can be installed via npm:

[sudo] npm install -g drek

Example

Scan the codebase at /path/to/app for the signatures contained within /path/to/signatures/*.yml:

drek /path/to/app -s '/path/to/signatures/*.yml' -p 'My App' > ./drek-report.html

Interactive Examples

The following are reports on the Damn Vulnerable Web Application:

Usage

Reports

drek can output points-of-interest as csv, html, json, or xml, though the html report is the primary use-case.

The html report allows auditors to do the following:

  • Categorize each point-of-interest by "severity".
  • Filter points-of-interest by severity and filetype.
  • Save annotations to localStorage.
  • Export a PDF to share audit results.

Signatures

drek can be configured to scan for any user-defined regular-expressions on a per-filetype basis via signature files.

Signature files are yml files that conform to a simple schema. See the drek-signatures repository for a collection of example signature files.

Configuration

drek may optionally be configured via a ~/.drekrc file (example) as parsed by rc. It accepts the following values:

Property Type Description
dateFormat string Report date format, as parsed by moment.js.
signatures array Path to .yml signature files to apply. (Accepts glob wildcards.)
ignore array File paths to exclude from scan. (Accepts glob wildcards.)

More Repositories

1

novahot

A webshell framework for penetration testers.
JavaScript
293
star
2

watchtower

Watchtower is a Static Code Analysis tool designed to assist security auditors who are tasked with performing manual code reviews. It is platform- and language-agnostic.
Ruby
112
star
3

node-did

A dead-simple, cli-based task journaler.
JavaScript
52
star
4

wash

`wash` is a framework for creating and interfacing with trojans that can establish a "web shell" on a compromised web server. It is designed with penetration testers in mind, and thus is highly versatile and extensible.
JavaScript
28
star
5

wit-cms

A flat-file, markdown-based, blog-aware content-management system for Express.
JavaScript
27
star
6

cdash

A minimalist cryptocurrency portfolio dashboard for the command-line that draws market data from the Coin Market Cap API.
Go
14
star
7

drek-signatures

Example signature files for drek.
11
star
8

pharse

A command-line option-parsing class for PHP
PHP
10
star
9

git-weekly-report

A tool to quickly generate weekly work summaries based off of git commit messages
Ruby
10
star
10

node-nvidia-smi

Node wrapper around nvidia-smi.
JavaScript
7
star
11

balance-of-power

Pico8 tactics
Lua
7
star
12

github-local-backup

Backs up Github repositories to your local filesystem.
JavaScript
7
star
13

arduino-radioshack-tri-color-led-strip-2760339

In progress
C++
5
star
14

clinc

A minimalist, scriptable command-line interface for GRBL.
JavaScript
4
star
15

wit-cms-bootstrap

An example site built around wit-cms.
HTML
3
star
16

git-ripped

git-ripped is a git post-commit script that encourages you to take an exercise break after every commit.
Python
3
star
17

tiny-and-weird

"Tiny and Weird" is a lightweight tool designed to minify and obfuscate PHP code - it makes it tiny and weird!
PHP
3
star
18

presentation-timer-pro

A presentation timer written in PhoneGap. It provides configurable color cues at different points in your presentation to help you stay on pace.
JavaScript
3
star
19

mind-machine

A "mind machine" for Google Cardboard.
JavaScript
2
star
20

llm

Bring large-language models to the CLI.
Go
2
star
21

st

Personal fork of suckless st.
C
1
star
22

streamify-string

Accepts a string and returns a readable stream that outputs the string.
JavaScript
1
star
23

torque-honda-civic-gen-8-themeset

A Torque themeset for the generation 8 Honda Civic.
1
star
24

mock-email-list

Generates a list of mock email addresses and writes them to stdout.
Go
1
star