Contributing¶
Adding a New Phase¶
- Create a new module in
entrascout/checks/ - Export an
async def run(ctx, http, snap, om)function - Return a list of
Findingobjects - Register the phase in
entrascout/checks/__init__.py
Finding Factory¶
Use the helper factories from checks._helpers:
from entrascout.checks._helpers import lead, issue, data, validation
return [
issue(
phase="my_phase",
check="my_check",
title="Something is exposed",
severity=Severity.HIGH,
target="target.com",
description="...",
tags=[ChainTag.AZ_BLOB_PUBLIC_LISTING],
recommendation="Disable public access",
),
]
Chain Tags¶
If your finding enables new attack primitives:
- Add a
ChainTagvalue inmodels.py - Map it in
TAG_ENABLES - Add MITRE IDs in
TAG_MITRE