Skip to content

Commit fef618f

Browse files
committed
feat: enhance reconnaissance, add AI recon analyzer, multi-stage test generation, and --instruction flag
1 parent be7d055 commit fef618f

File tree

10 files changed

+294
-545
lines changed

10 files changed

+294
-545
lines changed

.gitignore

Lines changed: 73 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,28 +4,92 @@ env/
44
.venv/
55
.env
66
.sisyphus
7+
ENV/
8+
env.bak/
9+
venv.bak/
710

811
# Application results
912
results/
13+
strix_runs/
14+
test_output.txt
15+
all_tests.txt
1016

11-
# Python Cache
17+
# Python Cache and Compilation
1218
__pycache__/
13-
*.pyc
14-
*.pyo
15-
*.pyd
19+
*.py[cod]
20+
*$py.class
21+
*.so
1622
.pytest_cache/
1723
.coverage
24+
.coverage.*
25+
coverage.xml
1826
htmlcov/
1927
*.egg-info/
28+
.eggs/
29+
*.egg
30+
build/
31+
develop-eggs/
32+
dist/
33+
downloads/
34+
eggs/
35+
.installed.cfg
36+
lib/
37+
lib64/
38+
parts/
39+
sdist/
40+
var/
41+
wheels/
42+
share/python-wheels/
43+
.ruff_cache/
44+
.mypy_cache/
45+
.tox/
46+
47+
# Logs
48+
*.log
2049

2150
# macOS
2251
.DS_Store
52+
.AppleDouble
53+
.LSOverride
54+
Icon
55+
._*
56+
.DocumentRevisions-V100
57+
.fseventsd
58+
.Spotlight-V100
59+
.Trashes
60+
.VolumeIcon.icns
61+
.AppleDB
62+
.AppleDesktop
63+
Network Trash Folder
64+
Temporary Items
65+
.apdisk
66+
67+
# Windows
68+
Thumbs.db
69+
Thumbs.db:encryptable
70+
ehthumbs.db
71+
ehthumbs_vista.db
72+
*.stackdump
73+
[Dd]esktop.ini
74+
$RECYCLE.BIN/
75+
*.cab
76+
*.msi
77+
*.msix
78+
*.msm
79+
*.msp
80+
*.lnk
2381

24-
# IDEs
82+
# IDEs and Editors
2583
.idea/
2684
.vscode/
2785
.cursor/
28-
test_output.txt
29-
all_tests.txt
30-
results/
31-
strix_runs/
86+
*.swp
87+
*.swo
88+
*~
89+
.history/
90+
*.code-workspace
91+
.metadata/
92+
93+
# Jupyter Notebook
94+
.ipynb_checkpoints
95+

README.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@ AI-augmented, schema-driven API penetration testing from OpenAPI/Swagger specs,
1111
SecNode API helps security engineers and backend teams run repeatable API risk assessments in staging and CI without writing one-off test scripts for every target.
1212

1313
- Ingests local or remote OpenAPI/Swagger schema files
14-
- Uses an LLM to understand API behavior and generate adversarial test cases
14+
- Performs **Multi-stage specialized AI generation** (Auth, Injection, Infrastructure, Business Logic) to maximize vulnerability coverage
15+
- Performs enhanced reconnaissance (mutations, method probing, parameter fuzzing) augmented by an **AI Recon Analyzer** for shadow endpoints
1516
- Executes tests concurrently with optional proxy routing
1617
- Supports autonomous agent mode with request budgets and iterative replanning
1718
- Supports direct microservices mode with controller/planner/worker boundaries
@@ -120,6 +121,7 @@ secnodeapi --target https://api.example.com/swagger.json --dry-run --dry-run-out
120121
secnodeapi --target https://api.example.com/swagger.json --auth-header "Authorization: Bearer <token>"
121122
secnodeapi --target https://api.example.com/swagger.json --proxy http://127.0.0.1:8080 --insecure
122123
secnodeapi --target https://api.example.com/swagger.json --mode agent --request-budget 500 --max-iterations 6
124+
secnodeapi --target https://api.example.com/swagger.json --mode agent --instruction "username=admin, role=superuser" --instruction "username=user"
123125
secnodeapi --target https://api.example.com/swagger.json --mode microservices
124126
```
125127

@@ -132,6 +134,7 @@ secnodeapi --target https://api.example.com/swagger.json --mode microservices
132134
- `--auth-header` single inline auth header
133135
- `--auth-file` JSON file of auth headers
134136
- `--identities-file` JSON identities for differential auth testing
137+
- `--instruction` comma-separated key=value pairs for instruction sets (repeatable)
135138
- `--schema-only` output normalized API structure and exit
136139
- `--dry-run` generate tests without executing
137140
- `--dry-run-output` write generated tests to JSON (requires `--dry-run`)

0 commit comments

Comments
 (0)