The scanners

Seven scanners, one API.

Aegis does not write its own detection rules. It runs seven open-source scanners and normalizes what they report. This is what each one looks at and how Aegis runs it.

What runs

The seven, at a glance

Every scanner runs over the same directory and returns JSON, which Aegis parses. Nothing trusts a scanner's process state.

The seven scanners Aegis runs, what each examines, and its time limit
ScannerLooks atReadsTime limitWorth knowing
SemgrepSource code in many languagesThe scan directory, recursively5 minutesRules from Semgrep's registry by default; metrics off
BanditPython source for insecure patternsThe scan directory, recursively5 minutesAegis raises shell=True subprocess calls and eval() to CRITICAL
pip-auditPython dependencies with known vulnerabilitiesrequirements.txt5 minutesRemediation names the first fixed version when there is one
SafetyPython dependencies, against Safety's own databaserequirements.txt2 minutesA second opinion alongside pip-audit
detect-secretsHardcoded secrets and high-entropy stringsEvery file in the directory5 minutesThe finding names the kind of secret, never the secret
CheckovInfrastructure-as-code misconfigurationThe scan directory; Checkov detects the frameworks5 minutesTerraform, CloudFormation, Kubernetes, and Dockerfiles, among others
TrivyKnown vulnerabilities in the filesystemThe scan directory (trivy fs)5 minutesA pinned release binary; it scans a directory, not container images
When one goes wrong

A broken scanner is a result, not a crash

Each scanner runs as its own subprocess under a time limit. A scanner that is not installed, exits with an error, returns output Aegis cannot parse, or runs out of time is recorded for that scan as failed or timed out, with how long it ran. The other scanners still run, and the scan still finishes.

A scanner that did not complete cannot say a problem is gone, so Aegis leaves that scanner's open findings open until a scan in which it does complete.

One severity scale

Each scanner's severity, on one scale

Five levels

CRITICAL, HIGH, MEDIUM, LOW, and INFO. Trivy's UNKNOWN becomes INFO.

Mapping files

Each scanner has a mapping file. It can raise or lower a particular rule's severity and attach CWE tags the scanner leaves out.

Examples Aegis pins today

Bandit's shell=True subprocess and eval() rules are CRITICAL with CWE-78 and CWE-95, and Trivy's Log4Shell entry is raised from HIGH to CRITICAL.

Contact

Questions about this tool?

Write to Renkara Media Group and a person will answer.