agentic-threat-hunting-framework 0.1.0__tar.gz → 0.2.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {agentic_threat_hunting_framework-0.1.0/agentic_threat_hunting_framework.egg-info → agentic_threat_hunting_framework-0.2.1}/PKG-INFO +64 -53
- {agentic_threat_hunting_framework-0.1.0 → agentic_threat_hunting_framework-0.2.1}/README.md +61 -52
- {agentic_threat_hunting_framework-0.1.0 → agentic_threat_hunting_framework-0.2.1/agentic_threat_hunting_framework.egg-info}/PKG-INFO +64 -53
- {agentic_threat_hunting_framework-0.1.0 → agentic_threat_hunting_framework-0.2.1}/agentic_threat_hunting_framework.egg-info/SOURCES.txt +6 -0
- {agentic_threat_hunting_framework-0.1.0 → agentic_threat_hunting_framework-0.2.1}/agentic_threat_hunting_framework.egg-info/requires.txt +3 -0
- {agentic_threat_hunting_framework-0.1.0 → agentic_threat_hunting_framework-0.2.1}/athf/__version__.py +1 -1
- {agentic_threat_hunting_framework-0.1.0 → agentic_threat_hunting_framework-0.2.1}/athf/cli.py +7 -1
- agentic_threat_hunting_framework-0.2.1/athf/commands/context.py +358 -0
- agentic_threat_hunting_framework-0.2.1/athf/commands/env.py +374 -0
- {agentic_threat_hunting_framework-0.1.0 → agentic_threat_hunting_framework-0.2.1}/athf/commands/hunt.py +92 -15
- agentic_threat_hunting_framework-0.2.1/athf/commands/investigate.py +744 -0
- agentic_threat_hunting_framework-0.2.1/athf/commands/similar.py +376 -0
- agentic_threat_hunting_framework-0.2.1/athf/core/attack_matrix.py +131 -0
- {agentic_threat_hunting_framework-0.1.0 → agentic_threat_hunting_framework-0.2.1}/athf/core/hunt_manager.py +78 -10
- agentic_threat_hunting_framework-0.2.1/athf/core/investigation_parser.py +211 -0
- {agentic_threat_hunting_framework-0.1.0 → agentic_threat_hunting_framework-0.2.1}/docs/CHANGELOG.md +40 -7
- agentic_threat_hunting_framework-0.2.1/docs/CLI_REFERENCE.md +1797 -0
- {agentic_threat_hunting_framework-0.1.0 → agentic_threat_hunting_framework-0.2.1}/docs/INSTALL.md +15 -15
- {agentic_threat_hunting_framework-0.1.0 → agentic_threat_hunting_framework-0.2.1}/pyproject.toml +5 -2
- agentic_threat_hunting_framework-0.1.0/docs/CLI_REFERENCE.md +0 -956
- {agentic_threat_hunting_framework-0.1.0 → agentic_threat_hunting_framework-0.2.1}/LICENSE +0 -0
- {agentic_threat_hunting_framework-0.1.0 → agentic_threat_hunting_framework-0.2.1}/MANIFEST.in +0 -0
- {agentic_threat_hunting_framework-0.1.0 → agentic_threat_hunting_framework-0.2.1}/USING_ATHF.md +0 -0
- {agentic_threat_hunting_framework-0.1.0 → agentic_threat_hunting_framework-0.2.1}/agentic_threat_hunting_framework.egg-info/dependency_links.txt +0 -0
- {agentic_threat_hunting_framework-0.1.0 → agentic_threat_hunting_framework-0.2.1}/agentic_threat_hunting_framework.egg-info/entry_points.txt +0 -0
- {agentic_threat_hunting_framework-0.1.0 → agentic_threat_hunting_framework-0.2.1}/agentic_threat_hunting_framework.egg-info/top_level.txt +0 -0
- {agentic_threat_hunting_framework-0.1.0 → agentic_threat_hunting_framework-0.2.1}/assets/athf-cli-workflow.gif +0 -0
- {agentic_threat_hunting_framework-0.1.0 → agentic_threat_hunting_framework-0.2.1}/assets/athf-level0.gif +0 -0
- {agentic_threat_hunting_framework-0.1.0 → agentic_threat_hunting_framework-0.2.1}/assets/athf-level1.gif +0 -0
- {agentic_threat_hunting_framework-0.1.0 → agentic_threat_hunting_framework-0.2.1}/assets/athf-level2.gif +0 -0
- {agentic_threat_hunting_framework-0.1.0 → agentic_threat_hunting_framework-0.2.1}/assets/athf-level3.gif +0 -0
- {agentic_threat_hunting_framework-0.1.0 → agentic_threat_hunting_framework-0.2.1}/assets/athf_fivelevels.png +0 -0
- {agentic_threat_hunting_framework-0.1.0 → agentic_threat_hunting_framework-0.2.1}/assets/athf_level_3.png +0 -0
- {agentic_threat_hunting_framework-0.1.0 → agentic_threat_hunting_framework-0.2.1}/assets/athf_lock.png +0 -0
- {agentic_threat_hunting_framework-0.1.0 → agentic_threat_hunting_framework-0.2.1}/assets/athf_logo.png +0 -0
- {agentic_threat_hunting_framework-0.1.0 → agentic_threat_hunting_framework-0.2.1}/assets/athf_manual_v_ai.png +0 -0
- {agentic_threat_hunting_framework-0.1.0 → agentic_threat_hunting_framework-0.2.1}/athf/__init__.py +0 -0
- {agentic_threat_hunting_framework-0.1.0 → agentic_threat_hunting_framework-0.2.1}/athf/commands/__init__.py +0 -0
- {agentic_threat_hunting_framework-0.1.0 → agentic_threat_hunting_framework-0.2.1}/athf/commands/init.py +0 -0
- {agentic_threat_hunting_framework-0.1.0 → agentic_threat_hunting_framework-0.2.1}/athf/core/__init__.py +0 -0
- {agentic_threat_hunting_framework-0.1.0 → agentic_threat_hunting_framework-0.2.1}/athf/core/hunt_parser.py +0 -0
- {agentic_threat_hunting_framework-0.1.0 → agentic_threat_hunting_framework-0.2.1}/athf/core/template_engine.py +0 -0
- {agentic_threat_hunting_framework-0.1.0 → agentic_threat_hunting_framework-0.2.1}/athf/utils/__init__.py +0 -0
- {agentic_threat_hunting_framework-0.1.0 → agentic_threat_hunting_framework-0.2.1}/docs/README.md +0 -0
- {agentic_threat_hunting_framework-0.1.0 → agentic_threat_hunting_framework-0.2.1}/docs/environment.md +0 -0
- {agentic_threat_hunting_framework-0.1.0 → agentic_threat_hunting_framework-0.2.1}/docs/getting-started.md +0 -0
- {agentic_threat_hunting_framework-0.1.0 → agentic_threat_hunting_framework-0.2.1}/docs/level4-agentic-workflows.md +0 -0
- {agentic_threat_hunting_framework-0.1.0 → agentic_threat_hunting_framework-0.2.1}/docs/lock-pattern.md +0 -0
- {agentic_threat_hunting_framework-0.1.0 → agentic_threat_hunting_framework-0.2.1}/docs/maturity-model.md +0 -0
- {agentic_threat_hunting_framework-0.1.0 → agentic_threat_hunting_framework-0.2.1}/docs/why-athf.md +0 -0
- {agentic_threat_hunting_framework-0.1.0 → agentic_threat_hunting_framework-0.2.1}/hunts/FORMAT_GUIDELINES.md +0 -0
- {agentic_threat_hunting_framework-0.1.0 → agentic_threat_hunting_framework-0.2.1}/hunts/H-0001.md +0 -0
- {agentic_threat_hunting_framework-0.1.0 → agentic_threat_hunting_framework-0.2.1}/hunts/H-0002.md +0 -0
- {agentic_threat_hunting_framework-0.1.0 → agentic_threat_hunting_framework-0.2.1}/hunts/H-0003.md +0 -0
- {agentic_threat_hunting_framework-0.1.0 → agentic_threat_hunting_framework-0.2.1}/hunts/README.md +0 -0
- {agentic_threat_hunting_framework-0.1.0 → agentic_threat_hunting_framework-0.2.1}/integrations/MCP_CATALOG.md +0 -0
- {agentic_threat_hunting_framework-0.1.0 → agentic_threat_hunting_framework-0.2.1}/integrations/README.md +0 -0
- {agentic_threat_hunting_framework-0.1.0 → agentic_threat_hunting_framework-0.2.1}/integrations/quickstart/splunk.md +0 -0
- {agentic_threat_hunting_framework-0.1.0 → agentic_threat_hunting_framework-0.2.1}/knowledge/hunting-knowledge.md +0 -0
- {agentic_threat_hunting_framework-0.1.0 → agentic_threat_hunting_framework-0.2.1}/setup.cfg +0 -0
- {agentic_threat_hunting_framework-0.1.0 → agentic_threat_hunting_framework-0.2.1}/setup.py +0 -0
- {agentic_threat_hunting_framework-0.1.0 → agentic_threat_hunting_framework-0.2.1}/templates/HUNT_LOCK.md +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: agentic-threat-hunting-framework
|
|
3
|
-
Version: 0.1
|
|
3
|
+
Version: 0.2.1
|
|
4
4
|
Summary: Agentic Threat Hunting Framework - Memory and AI for threat hunters
|
|
5
5
|
Author-email: Sydney Marrone <athf@nebulock.io>
|
|
6
6
|
Maintainer-email: Sydney Marrone <athf@nebulock.io>
|
|
@@ -46,30 +46,23 @@ Requires-Dist: types-PyYAML>=6.0.0; extra == "dev"
|
|
|
46
46
|
Provides-Extra: docs
|
|
47
47
|
Requires-Dist: mkdocs>=1.5.0; extra == "docs"
|
|
48
48
|
Requires-Dist: mkdocs-material>=9.0.0; extra == "docs"
|
|
49
|
+
Provides-Extra: similarity
|
|
50
|
+
Requires-Dist: scikit-learn>=1.0.0; extra == "similarity"
|
|
49
51
|
Dynamic: license-file
|
|
50
52
|
|
|
51
|
-
|
|
52
|
-
<img src="assets/athf_logo.png" alt="ATHF Logo" width="400"/>
|
|
53
|
-
</p>
|
|
53
|
+
# Agentic Threat Hunting Framework (ATHF)
|
|
54
54
|
|
|
55
|
-
|
|
55
|
+

|
|
56
56
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
57
|
+
[](https://pypi.org/project/agentic-threat-hunting-framework/)
|
|
58
|
+
[](https://pypi.org/project/agentic-threat-hunting-framework/)
|
|
59
|
+
[](https://www.python.org/downloads/)
|
|
60
|
+
[](https://github.com/Nebulock-Inc/agentic-threat-hunting-framework/blob/main/LICENSE)
|
|
61
|
+
[](https://github.com/Nebulock-Inc/agentic-threat-hunting-framework/stargazers)
|
|
62
62
|
|
|
63
|
-
|
|
64
|
-
<strong><a href="#-quick-start">Quick Start</a></strong> •
|
|
65
|
-
<strong><a href="#installation">Installation</a></strong> •
|
|
66
|
-
<strong><a href="#documentation">Documentation</a></strong> •
|
|
67
|
-
<strong><a href="SHOWCASE.md">Examples</a></strong>
|
|
68
|
-
</p>
|
|
63
|
+
**[Quick Start](#-quick-start)** • **[Installation](#installation)** • **[Documentation](#documentation)** • **[Examples](https://github.com/Nebulock-Inc/agentic-threat-hunting-framework/blob/main/SHOWCASE.md)**
|
|
69
64
|
|
|
70
|
-
|
|
71
|
-
<em>Give your threat hunting program memory and agency.</em>
|
|
72
|
-
</p>
|
|
65
|
+
*Give your threat hunting program memory and agency.*
|
|
73
66
|
|
|
74
67
|
The **Agentic Threat Hunting Framework (ATHF)** is the memory and automation layer for your threat hunting program. It gives your hunts structure, persistence, and context - making every past investigation accessible to both humans and AI.
|
|
75
68
|
|
|
@@ -92,13 +85,13 @@ Even AI tools start from zero every time without access to your environment, you
|
|
|
92
85
|
|
|
93
86
|
ATHF changes that by giving your hunts structure, persistence, and context.
|
|
94
87
|
|
|
95
|
-
**Read more:** [docs/why-athf.md](docs/why-athf.md)
|
|
88
|
+
**Read more:** [docs/why-athf.md](https://github.com/Nebulock-Inc/agentic-threat-hunting-framework/blob/main/docs/why-athf.md)
|
|
96
89
|
|
|
97
90
|
## The LOCK Pattern
|
|
98
91
|
|
|
99
92
|
Every threat hunt follows the same basic loop: **Learn → Observe → Check → Keep**.
|
|
100
93
|
|
|
101
|
-

|
|
94
|
+

|
|
102
95
|
|
|
103
96
|
- **Learn:** Gather context from threat intel, alerts, or anomalies
|
|
104
97
|
- **Observe:** Form a hypothesis about adversary behavior
|
|
@@ -107,7 +100,7 @@ Every threat hunt follows the same basic loop: **Learn → Observe → Check →
|
|
|
107
100
|
|
|
108
101
|
**Why LOCK?** It's small enough to use and strict enough for agents to interpret. By capturing every hunt in this format, ATHF makes it possible for AI assistants to recall prior work and suggest refined queries based on past results.
|
|
109
102
|
|
|
110
|
-
**Read more:** [docs/lock-pattern.md](docs/lock-pattern.md)
|
|
103
|
+
**Read more:** [docs/lock-pattern.md](https://github.com/Nebulock-Inc/agentic-threat-hunting-framework/blob/main/docs/lock-pattern.md)
|
|
111
104
|
|
|
112
105
|
## The Five Levels of Agentic Hunting
|
|
113
106
|
|
|
@@ -115,7 +108,7 @@ ATHF defines a simple maturity model. Each level builds on the previous one.
|
|
|
115
108
|
|
|
116
109
|
**Most teams will live at Levels 1–2. Everything beyond that is optional maturity.**
|
|
117
110
|
|
|
118
|
-

|
|
111
|
+

|
|
119
112
|
|
|
120
113
|
| Level | Capability | What You Get |
|
|
121
114
|
|-------|-----------|--------------|
|
|
@@ -130,17 +123,15 @@ ATHF defines a simple maturity model. Each level builds on the previous one.
|
|
|
130
123
|
**Level 3:** 2-4 weeks (optional)
|
|
131
124
|
**Level 4:** 1-3 months (optional)
|
|
132
125
|
|
|
133
|
-
**Read more:** [docs/maturity-model.md](docs/maturity-model.md)
|
|
126
|
+
**Read more:** [docs/maturity-model.md](https://github.com/Nebulock-Inc/agentic-threat-hunting-framework/blob/main/docs/maturity-model.md)
|
|
134
127
|
|
|
135
128
|
## 🚀 Quick Start
|
|
136
129
|
|
|
137
|
-
### Option 1:
|
|
130
|
+
### Option 1: Install from PyPI (Recommended)
|
|
138
131
|
|
|
139
132
|
```bash
|
|
140
|
-
#
|
|
141
|
-
|
|
142
|
-
cd agentic-threat-hunting-framework
|
|
143
|
-
pip install -e .
|
|
133
|
+
# Install ATHF
|
|
134
|
+
pip install agentic-threat-hunting-framework
|
|
144
135
|
|
|
145
136
|
# Initialize your hunt program
|
|
146
137
|
athf init
|
|
@@ -149,7 +140,20 @@ athf init
|
|
|
149
140
|
athf hunt new --technique T1003.001 --title "LSASS Credential Dumping"
|
|
150
141
|
```
|
|
151
142
|
|
|
152
|
-
### Option 2:
|
|
143
|
+
### Option 2: Install from Source (Development)
|
|
144
|
+
|
|
145
|
+
```bash
|
|
146
|
+
# Clone and install from source
|
|
147
|
+
git clone https://github.com/Nebulock-Inc/agentic-threat-hunting-framework
|
|
148
|
+
cd agentic-threat-hunting-framework
|
|
149
|
+
pip install -e .
|
|
150
|
+
|
|
151
|
+
# Initialize and start hunting
|
|
152
|
+
athf init
|
|
153
|
+
athf hunt new --technique T1003.001
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
### Option 3: Pure Markdown (No Installation)
|
|
153
157
|
|
|
154
158
|
```bash
|
|
155
159
|
# Clone the repository
|
|
@@ -165,7 +169,7 @@ cp templates/HUNT_LOCK.md hunts/H-0001.md
|
|
|
165
169
|
|
|
166
170
|
**Choose your AI assistant:** Claude Code, GitHub Copilot, or Cursor - any tool that can read your repository files.
|
|
167
171
|
|
|
168
|
-
**Full guide:** [docs/getting-started.md](docs/getting-started.md)
|
|
172
|
+
**Full guide:** [docs/getting-started.md](https://github.com/Nebulock-Inc/agentic-threat-hunting-framework/blob/main/docs/getting-started.md)
|
|
169
173
|
|
|
170
174
|
## 🔧 CLI Commands
|
|
171
175
|
|
|
@@ -206,32 +210,39 @@ athf hunt stats # Show statistics
|
|
|
206
210
|
athf hunt coverage # MITRE ATT&CK coverage
|
|
207
211
|
```
|
|
208
212
|
|
|
209
|
-
**Full documentation:** [CLI Reference](docs/CLI_REFERENCE.md)
|
|
213
|
+
**Full documentation:** [CLI Reference](https://github.com/Nebulock-Inc/agentic-threat-hunting-framework/blob/main/docs/CLI_REFERENCE.md)
|
|
210
214
|
|
|
211
215
|
## 📺 See It In Action
|
|
212
216
|
|
|
213
|
-

|
|
217
|
+

|
|
214
218
|
|
|
215
219
|
Watch ATHF in action: initialize a workspace, create hunts, and explore your threat hunting catalog in under 60 seconds.
|
|
216
220
|
|
|
217
|
-
**[View example hunts →](SHOWCASE.md)**
|
|
221
|
+
**[View example hunts →](https://github.com/Nebulock-Inc/agentic-threat-hunting-framework/blob/main/SHOWCASE.md)**
|
|
218
222
|
|
|
219
223
|
## Installation
|
|
220
224
|
|
|
221
225
|
### Prerequisites
|
|
222
226
|
- Python 3.8-3.13 (for CLI option)
|
|
223
|
-
- Git
|
|
224
227
|
- Your favorite AI code assistant
|
|
225
228
|
|
|
226
|
-
###
|
|
229
|
+
### From PyPI (Recommended)
|
|
230
|
+
|
|
231
|
+
```bash
|
|
232
|
+
pip install agentic-threat-hunting-framework
|
|
233
|
+
athf init
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
### From Source (Development)
|
|
227
237
|
|
|
228
238
|
```bash
|
|
229
239
|
git clone https://github.com/Nebulock-Inc/agentic-threat-hunting-framework
|
|
230
240
|
cd agentic-threat-hunting-framework
|
|
231
241
|
pip install -e .
|
|
242
|
+
athf init
|
|
232
243
|
```
|
|
233
244
|
|
|
234
|
-
### Markdown-Only Setup (No
|
|
245
|
+
### Markdown-Only Setup (No Installation)
|
|
235
246
|
|
|
236
247
|
```bash
|
|
237
248
|
git clone https://github.com/Nebulock-Inc/agentic-threat-hunting-framework
|
|
@@ -244,24 +255,24 @@ Start documenting hunts in the `hunts/` directory using the LOCK pattern.
|
|
|
244
255
|
|
|
245
256
|
### Core Concepts
|
|
246
257
|
|
|
247
|
-
- [Why ATHF Exists](docs/why-athf.md) - The problem and solution
|
|
248
|
-
- [The LOCK Pattern](docs/lock-pattern.md) - Structure for all hunts
|
|
249
|
-
- [Maturity Model](docs/maturity-model.md) - The five levels explained
|
|
250
|
-
- [Getting Started](docs/getting-started.md) - Step-by-step onboarding
|
|
258
|
+
- [Why ATHF Exists](https://github.com/Nebulock-Inc/agentic-threat-hunting-framework/blob/main/docs/why-athf.md) - The problem and solution
|
|
259
|
+
- [The LOCK Pattern](https://github.com/Nebulock-Inc/agentic-threat-hunting-framework/blob/main/docs/lock-pattern.md) - Structure for all hunts
|
|
260
|
+
- [Maturity Model](https://github.com/Nebulock-Inc/agentic-threat-hunting-framework/blob/main/docs/maturity-model.md) - The five levels explained
|
|
261
|
+
- [Getting Started](https://github.com/Nebulock-Inc/agentic-threat-hunting-framework/blob/main/docs/getting-started.md) - Step-by-step onboarding
|
|
251
262
|
|
|
252
263
|
### Level-Specific Guides
|
|
253
264
|
|
|
254
|
-
- [Level 1: Documented Hunts](docs/maturity-model.md#level-1-documented-hunts)
|
|
255
|
-
- [Level 2: Searchable Memory](docs/maturity-model.md#level-2-searchable-memory)
|
|
256
|
-
- [Level 3: Generative Capabilities](docs/level4-agentic-workflows.md)
|
|
257
|
-
- [Level 4: Agentic Workflows](docs/level4-agentic-workflows.md)
|
|
265
|
+
- [Level 1: Documented Hunts](https://github.com/Nebulock-Inc/agentic-threat-hunting-framework/blob/main/docs/maturity-model.md#level-1-documented-hunts)
|
|
266
|
+
- [Level 2: Searchable Memory](https://github.com/Nebulock-Inc/agentic-threat-hunting-framework/blob/main/docs/maturity-model.md#level-2-searchable-memory)
|
|
267
|
+
- [Level 3: Generative Capabilities](https://github.com/Nebulock-Inc/agentic-threat-hunting-framework/blob/main/docs/level4-agentic-workflows.md)
|
|
268
|
+
- [Level 4: Agentic Workflows](https://github.com/Nebulock-Inc/agentic-threat-hunting-framework/blob/main/docs/level4-agentic-workflows.md)
|
|
258
269
|
|
|
259
270
|
### Integration & Customization
|
|
260
271
|
|
|
261
|
-
- [Installation & Development](docs/INSTALL.md) - Setup, fork customization, testing
|
|
262
|
-
- [MCP Catalog](integrations/MCP_CATALOG.md) - Available tool integrations
|
|
263
|
-
- [Quickstart Guides](integrations/quickstart/) - Setup for specific tools
|
|
264
|
-
- [Using ATHF](USING_ATHF.md) - Adoption and customization
|
|
272
|
+
- [Installation & Development](https://github.com/Nebulock-Inc/agentic-threat-hunting-framework/blob/main/docs/INSTALL.md) - Setup, fork customization, testing
|
|
273
|
+
- [MCP Catalog](https://github.com/Nebulock-Inc/agentic-threat-hunting-framework/blob/main/integrations/MCP_CATALOG.md) - Available tool integrations
|
|
274
|
+
- [Quickstart Guides](https://github.com/Nebulock-Inc/agentic-threat-hunting-framework/tree/main/integrations/quickstart/) - Setup for specific tools
|
|
275
|
+
- [Using ATHF](https://github.com/Nebulock-Inc/agentic-threat-hunting-framework/blob/main/USING_ATHF.md) - Adoption and customization
|
|
265
276
|
|
|
266
277
|
## 🎖️ Featured Hunts
|
|
267
278
|
|
|
@@ -272,7 +283,7 @@ Detected Atomic Stealer collecting Safari cookies via AppleScript.
|
|
|
272
283
|
|
|
273
284
|
**Key Insight:** Behavior-based detection outperformed signature-based approaches. Process signature validation identified unsigned malware attempting data collection.
|
|
274
285
|
|
|
275
|
-
[View full hunt →](hunts/H-0001.md) | [See more examples →](SHOWCASE.md)
|
|
286
|
+
[View full hunt →](https://github.com/Nebulock-Inc/agentic-threat-hunting-framework/blob/main/hunts/H-0001.md) | [See more examples →](https://github.com/Nebulock-Inc/agentic-threat-hunting-framework/blob/main/SHOWCASE.md)
|
|
276
287
|
|
|
277
288
|
## Why This Matters
|
|
278
289
|
|
|
@@ -290,7 +301,7 @@ When your framework has memory, you stop losing knowledge to turnover or forgott
|
|
|
290
301
|
|
|
291
302
|
- **GitHub Discussions:** [Ask questions, share hunts](https://github.com/Nebulock-Inc/agentic-threat-hunting-framework/discussions)
|
|
292
303
|
- **Issues:** [Report bugs or request features](https://github.com/Nebulock-Inc/agentic-threat-hunting-framework/issues)
|
|
293
|
-
- **Adoption Guide:** See [USING_ATHF.md](USING_ATHF.md) for how to use ATHF in your organization
|
|
304
|
+
- **Adoption Guide:** See [USING_ATHF.md](https://github.com/Nebulock-Inc/agentic-threat-hunting-framework/blob/main/USING_ATHF.md) for how to use ATHF in your organization
|
|
294
305
|
- **LinkedIn:** [Nebulock Inc.](https://www.linkedin.com/company/nebulock-inc) - Follow for updates
|
|
295
306
|
|
|
296
307
|
## 📖 Using ATHF
|
|
@@ -299,7 +310,7 @@ ATHF is a framework to internalize, not a platform to extend. Fork it, customize
|
|
|
299
310
|
|
|
300
311
|
**Repository:** [https://github.com/Nebulock-Inc/agentic-threat-hunting-framework](https://github.com/Nebulock-Inc/agentic-threat-hunting-framework)
|
|
301
312
|
|
|
302
|
-
See [USING_ATHF.md](USING_ATHF.md) for adoption guidance. Your hunts stay yours—sharing back is optional but appreciated ([Discussions](https://github.com/Nebulock-Inc/agentic-threat-hunting-framework/discussions)).
|
|
313
|
+
See [USING_ATHF.md](https://github.com/Nebulock-Inc/agentic-threat-hunting-framework/blob/main/USING_ATHF.md) for adoption guidance. Your hunts stay yours—sharing back is optional but appreciated ([Discussions](https://github.com/Nebulock-Inc/agentic-threat-hunting-framework/discussions)).
|
|
303
314
|
|
|
304
315
|
The goal is to help every threat hunting team move from ad-hoc memory to structured, agentic capability.
|
|
305
316
|
|
|
@@ -309,7 +320,7 @@ The goal is to help every threat hunting team move from ad-hoc memory to structu
|
|
|
309
320
|
|
|
310
321
|
ATHF is designed to be forked and customized for your organization.
|
|
311
322
|
|
|
312
|
-
**See [docs/INSTALL.md#development--customization](docs/INSTALL.md#development--customization) for:**
|
|
323
|
+
**See [docs/INSTALL.md#development--customization](https://github.com/Nebulock-Inc/agentic-threat-hunting-framework/blob/main/docs/INSTALL.md#development--customization) for:**
|
|
313
324
|
- Setting up your fork for development
|
|
314
325
|
- Pre-commit hooks for code quality
|
|
315
326
|
- Testing and type checking
|
|
@@ -1,25 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
<img src="assets/athf_logo.png" alt="ATHF Logo" width="400"/>
|
|
3
|
-
</p>
|
|
1
|
+
# Agentic Threat Hunting Framework (ATHF)
|
|
4
2
|
|
|
5
|
-
|
|
3
|
+

|
|
6
4
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
5
|
+
[](https://pypi.org/project/agentic-threat-hunting-framework/)
|
|
6
|
+
[](https://pypi.org/project/agentic-threat-hunting-framework/)
|
|
7
|
+
[](https://www.python.org/downloads/)
|
|
8
|
+
[](https://github.com/Nebulock-Inc/agentic-threat-hunting-framework/blob/main/LICENSE)
|
|
9
|
+
[](https://github.com/Nebulock-Inc/agentic-threat-hunting-framework/stargazers)
|
|
12
10
|
|
|
13
|
-
|
|
14
|
-
<strong><a href="#-quick-start">Quick Start</a></strong> •
|
|
15
|
-
<strong><a href="#installation">Installation</a></strong> •
|
|
16
|
-
<strong><a href="#documentation">Documentation</a></strong> •
|
|
17
|
-
<strong><a href="SHOWCASE.md">Examples</a></strong>
|
|
18
|
-
</p>
|
|
11
|
+
**[Quick Start](#-quick-start)** • **[Installation](#installation)** • **[Documentation](#documentation)** • **[Examples](https://github.com/Nebulock-Inc/agentic-threat-hunting-framework/blob/main/SHOWCASE.md)**
|
|
19
12
|
|
|
20
|
-
|
|
21
|
-
<em>Give your threat hunting program memory and agency.</em>
|
|
22
|
-
</p>
|
|
13
|
+
*Give your threat hunting program memory and agency.*
|
|
23
14
|
|
|
24
15
|
The **Agentic Threat Hunting Framework (ATHF)** is the memory and automation layer for your threat hunting program. It gives your hunts structure, persistence, and context - making every past investigation accessible to both humans and AI.
|
|
25
16
|
|
|
@@ -42,13 +33,13 @@ Even AI tools start from zero every time without access to your environment, you
|
|
|
42
33
|
|
|
43
34
|
ATHF changes that by giving your hunts structure, persistence, and context.
|
|
44
35
|
|
|
45
|
-
**Read more:** [docs/why-athf.md](docs/why-athf.md)
|
|
36
|
+
**Read more:** [docs/why-athf.md](https://github.com/Nebulock-Inc/agentic-threat-hunting-framework/blob/main/docs/why-athf.md)
|
|
46
37
|
|
|
47
38
|
## The LOCK Pattern
|
|
48
39
|
|
|
49
40
|
Every threat hunt follows the same basic loop: **Learn → Observe → Check → Keep**.
|
|
50
41
|
|
|
51
|
-

|
|
42
|
+

|
|
52
43
|
|
|
53
44
|
- **Learn:** Gather context from threat intel, alerts, or anomalies
|
|
54
45
|
- **Observe:** Form a hypothesis about adversary behavior
|
|
@@ -57,7 +48,7 @@ Every threat hunt follows the same basic loop: **Learn → Observe → Check →
|
|
|
57
48
|
|
|
58
49
|
**Why LOCK?** It's small enough to use and strict enough for agents to interpret. By capturing every hunt in this format, ATHF makes it possible for AI assistants to recall prior work and suggest refined queries based on past results.
|
|
59
50
|
|
|
60
|
-
**Read more:** [docs/lock-pattern.md](docs/lock-pattern.md)
|
|
51
|
+
**Read more:** [docs/lock-pattern.md](https://github.com/Nebulock-Inc/agentic-threat-hunting-framework/blob/main/docs/lock-pattern.md)
|
|
61
52
|
|
|
62
53
|
## The Five Levels of Agentic Hunting
|
|
63
54
|
|
|
@@ -65,7 +56,7 @@ ATHF defines a simple maturity model. Each level builds on the previous one.
|
|
|
65
56
|
|
|
66
57
|
**Most teams will live at Levels 1–2. Everything beyond that is optional maturity.**
|
|
67
58
|
|
|
68
|
-

|
|
59
|
+

|
|
69
60
|
|
|
70
61
|
| Level | Capability | What You Get |
|
|
71
62
|
|-------|-----------|--------------|
|
|
@@ -80,17 +71,15 @@ ATHF defines a simple maturity model. Each level builds on the previous one.
|
|
|
80
71
|
**Level 3:** 2-4 weeks (optional)
|
|
81
72
|
**Level 4:** 1-3 months (optional)
|
|
82
73
|
|
|
83
|
-
**Read more:** [docs/maturity-model.md](docs/maturity-model.md)
|
|
74
|
+
**Read more:** [docs/maturity-model.md](https://github.com/Nebulock-Inc/agentic-threat-hunting-framework/blob/main/docs/maturity-model.md)
|
|
84
75
|
|
|
85
76
|
## 🚀 Quick Start
|
|
86
77
|
|
|
87
|
-
### Option 1:
|
|
78
|
+
### Option 1: Install from PyPI (Recommended)
|
|
88
79
|
|
|
89
80
|
```bash
|
|
90
|
-
#
|
|
91
|
-
|
|
92
|
-
cd agentic-threat-hunting-framework
|
|
93
|
-
pip install -e .
|
|
81
|
+
# Install ATHF
|
|
82
|
+
pip install agentic-threat-hunting-framework
|
|
94
83
|
|
|
95
84
|
# Initialize your hunt program
|
|
96
85
|
athf init
|
|
@@ -99,7 +88,20 @@ athf init
|
|
|
99
88
|
athf hunt new --technique T1003.001 --title "LSASS Credential Dumping"
|
|
100
89
|
```
|
|
101
90
|
|
|
102
|
-
### Option 2:
|
|
91
|
+
### Option 2: Install from Source (Development)
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
# Clone and install from source
|
|
95
|
+
git clone https://github.com/Nebulock-Inc/agentic-threat-hunting-framework
|
|
96
|
+
cd agentic-threat-hunting-framework
|
|
97
|
+
pip install -e .
|
|
98
|
+
|
|
99
|
+
# Initialize and start hunting
|
|
100
|
+
athf init
|
|
101
|
+
athf hunt new --technique T1003.001
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
### Option 3: Pure Markdown (No Installation)
|
|
103
105
|
|
|
104
106
|
```bash
|
|
105
107
|
# Clone the repository
|
|
@@ -115,7 +117,7 @@ cp templates/HUNT_LOCK.md hunts/H-0001.md
|
|
|
115
117
|
|
|
116
118
|
**Choose your AI assistant:** Claude Code, GitHub Copilot, or Cursor - any tool that can read your repository files.
|
|
117
119
|
|
|
118
|
-
**Full guide:** [docs/getting-started.md](docs/getting-started.md)
|
|
120
|
+
**Full guide:** [docs/getting-started.md](https://github.com/Nebulock-Inc/agentic-threat-hunting-framework/blob/main/docs/getting-started.md)
|
|
119
121
|
|
|
120
122
|
## 🔧 CLI Commands
|
|
121
123
|
|
|
@@ -156,32 +158,39 @@ athf hunt stats # Show statistics
|
|
|
156
158
|
athf hunt coverage # MITRE ATT&CK coverage
|
|
157
159
|
```
|
|
158
160
|
|
|
159
|
-
**Full documentation:** [CLI Reference](docs/CLI_REFERENCE.md)
|
|
161
|
+
**Full documentation:** [CLI Reference](https://github.com/Nebulock-Inc/agentic-threat-hunting-framework/blob/main/docs/CLI_REFERENCE.md)
|
|
160
162
|
|
|
161
163
|
## 📺 See It In Action
|
|
162
164
|
|
|
163
|
-

|
|
165
|
+

|
|
164
166
|
|
|
165
167
|
Watch ATHF in action: initialize a workspace, create hunts, and explore your threat hunting catalog in under 60 seconds.
|
|
166
168
|
|
|
167
|
-
**[View example hunts →](SHOWCASE.md)**
|
|
169
|
+
**[View example hunts →](https://github.com/Nebulock-Inc/agentic-threat-hunting-framework/blob/main/SHOWCASE.md)**
|
|
168
170
|
|
|
169
171
|
## Installation
|
|
170
172
|
|
|
171
173
|
### Prerequisites
|
|
172
174
|
- Python 3.8-3.13 (for CLI option)
|
|
173
|
-
- Git
|
|
174
175
|
- Your favorite AI code assistant
|
|
175
176
|
|
|
176
|
-
###
|
|
177
|
+
### From PyPI (Recommended)
|
|
178
|
+
|
|
179
|
+
```bash
|
|
180
|
+
pip install agentic-threat-hunting-framework
|
|
181
|
+
athf init
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
### From Source (Development)
|
|
177
185
|
|
|
178
186
|
```bash
|
|
179
187
|
git clone https://github.com/Nebulock-Inc/agentic-threat-hunting-framework
|
|
180
188
|
cd agentic-threat-hunting-framework
|
|
181
189
|
pip install -e .
|
|
190
|
+
athf init
|
|
182
191
|
```
|
|
183
192
|
|
|
184
|
-
### Markdown-Only Setup (No
|
|
193
|
+
### Markdown-Only Setup (No Installation)
|
|
185
194
|
|
|
186
195
|
```bash
|
|
187
196
|
git clone https://github.com/Nebulock-Inc/agentic-threat-hunting-framework
|
|
@@ -194,24 +203,24 @@ Start documenting hunts in the `hunts/` directory using the LOCK pattern.
|
|
|
194
203
|
|
|
195
204
|
### Core Concepts
|
|
196
205
|
|
|
197
|
-
- [Why ATHF Exists](docs/why-athf.md) - The problem and solution
|
|
198
|
-
- [The LOCK Pattern](docs/lock-pattern.md) - Structure for all hunts
|
|
199
|
-
- [Maturity Model](docs/maturity-model.md) - The five levels explained
|
|
200
|
-
- [Getting Started](docs/getting-started.md) - Step-by-step onboarding
|
|
206
|
+
- [Why ATHF Exists](https://github.com/Nebulock-Inc/agentic-threat-hunting-framework/blob/main/docs/why-athf.md) - The problem and solution
|
|
207
|
+
- [The LOCK Pattern](https://github.com/Nebulock-Inc/agentic-threat-hunting-framework/blob/main/docs/lock-pattern.md) - Structure for all hunts
|
|
208
|
+
- [Maturity Model](https://github.com/Nebulock-Inc/agentic-threat-hunting-framework/blob/main/docs/maturity-model.md) - The five levels explained
|
|
209
|
+
- [Getting Started](https://github.com/Nebulock-Inc/agentic-threat-hunting-framework/blob/main/docs/getting-started.md) - Step-by-step onboarding
|
|
201
210
|
|
|
202
211
|
### Level-Specific Guides
|
|
203
212
|
|
|
204
|
-
- [Level 1: Documented Hunts](docs/maturity-model.md#level-1-documented-hunts)
|
|
205
|
-
- [Level 2: Searchable Memory](docs/maturity-model.md#level-2-searchable-memory)
|
|
206
|
-
- [Level 3: Generative Capabilities](docs/level4-agentic-workflows.md)
|
|
207
|
-
- [Level 4: Agentic Workflows](docs/level4-agentic-workflows.md)
|
|
213
|
+
- [Level 1: Documented Hunts](https://github.com/Nebulock-Inc/agentic-threat-hunting-framework/blob/main/docs/maturity-model.md#level-1-documented-hunts)
|
|
214
|
+
- [Level 2: Searchable Memory](https://github.com/Nebulock-Inc/agentic-threat-hunting-framework/blob/main/docs/maturity-model.md#level-2-searchable-memory)
|
|
215
|
+
- [Level 3: Generative Capabilities](https://github.com/Nebulock-Inc/agentic-threat-hunting-framework/blob/main/docs/level4-agentic-workflows.md)
|
|
216
|
+
- [Level 4: Agentic Workflows](https://github.com/Nebulock-Inc/agentic-threat-hunting-framework/blob/main/docs/level4-agentic-workflows.md)
|
|
208
217
|
|
|
209
218
|
### Integration & Customization
|
|
210
219
|
|
|
211
|
-
- [Installation & Development](docs/INSTALL.md) - Setup, fork customization, testing
|
|
212
|
-
- [MCP Catalog](integrations/MCP_CATALOG.md) - Available tool integrations
|
|
213
|
-
- [Quickstart Guides](integrations/quickstart/) - Setup for specific tools
|
|
214
|
-
- [Using ATHF](USING_ATHF.md) - Adoption and customization
|
|
220
|
+
- [Installation & Development](https://github.com/Nebulock-Inc/agentic-threat-hunting-framework/blob/main/docs/INSTALL.md) - Setup, fork customization, testing
|
|
221
|
+
- [MCP Catalog](https://github.com/Nebulock-Inc/agentic-threat-hunting-framework/blob/main/integrations/MCP_CATALOG.md) - Available tool integrations
|
|
222
|
+
- [Quickstart Guides](https://github.com/Nebulock-Inc/agentic-threat-hunting-framework/tree/main/integrations/quickstart/) - Setup for specific tools
|
|
223
|
+
- [Using ATHF](https://github.com/Nebulock-Inc/agentic-threat-hunting-framework/blob/main/USING_ATHF.md) - Adoption and customization
|
|
215
224
|
|
|
216
225
|
## 🎖️ Featured Hunts
|
|
217
226
|
|
|
@@ -222,7 +231,7 @@ Detected Atomic Stealer collecting Safari cookies via AppleScript.
|
|
|
222
231
|
|
|
223
232
|
**Key Insight:** Behavior-based detection outperformed signature-based approaches. Process signature validation identified unsigned malware attempting data collection.
|
|
224
233
|
|
|
225
|
-
[View full hunt →](hunts/H-0001.md) | [See more examples →](SHOWCASE.md)
|
|
234
|
+
[View full hunt →](https://github.com/Nebulock-Inc/agentic-threat-hunting-framework/blob/main/hunts/H-0001.md) | [See more examples →](https://github.com/Nebulock-Inc/agentic-threat-hunting-framework/blob/main/SHOWCASE.md)
|
|
226
235
|
|
|
227
236
|
## Why This Matters
|
|
228
237
|
|
|
@@ -240,7 +249,7 @@ When your framework has memory, you stop losing knowledge to turnover or forgott
|
|
|
240
249
|
|
|
241
250
|
- **GitHub Discussions:** [Ask questions, share hunts](https://github.com/Nebulock-Inc/agentic-threat-hunting-framework/discussions)
|
|
242
251
|
- **Issues:** [Report bugs or request features](https://github.com/Nebulock-Inc/agentic-threat-hunting-framework/issues)
|
|
243
|
-
- **Adoption Guide:** See [USING_ATHF.md](USING_ATHF.md) for how to use ATHF in your organization
|
|
252
|
+
- **Adoption Guide:** See [USING_ATHF.md](https://github.com/Nebulock-Inc/agentic-threat-hunting-framework/blob/main/USING_ATHF.md) for how to use ATHF in your organization
|
|
244
253
|
- **LinkedIn:** [Nebulock Inc.](https://www.linkedin.com/company/nebulock-inc) - Follow for updates
|
|
245
254
|
|
|
246
255
|
## 📖 Using ATHF
|
|
@@ -249,7 +258,7 @@ ATHF is a framework to internalize, not a platform to extend. Fork it, customize
|
|
|
249
258
|
|
|
250
259
|
**Repository:** [https://github.com/Nebulock-Inc/agentic-threat-hunting-framework](https://github.com/Nebulock-Inc/agentic-threat-hunting-framework)
|
|
251
260
|
|
|
252
|
-
See [USING_ATHF.md](USING_ATHF.md) for adoption guidance. Your hunts stay yours—sharing back is optional but appreciated ([Discussions](https://github.com/Nebulock-Inc/agentic-threat-hunting-framework/discussions)).
|
|
261
|
+
See [USING_ATHF.md](https://github.com/Nebulock-Inc/agentic-threat-hunting-framework/blob/main/USING_ATHF.md) for adoption guidance. Your hunts stay yours—sharing back is optional but appreciated ([Discussions](https://github.com/Nebulock-Inc/agentic-threat-hunting-framework/discussions)).
|
|
253
262
|
|
|
254
263
|
The goal is to help every threat hunting team move from ad-hoc memory to structured, agentic capability.
|
|
255
264
|
|
|
@@ -259,7 +268,7 @@ The goal is to help every threat hunting team move from ad-hoc memory to structu
|
|
|
259
268
|
|
|
260
269
|
ATHF is designed to be forked and customized for your organization.
|
|
261
270
|
|
|
262
|
-
**See [docs/INSTALL.md#development--customization](docs/INSTALL.md#development--customization) for:**
|
|
271
|
+
**See [docs/INSTALL.md#development--customization](https://github.com/Nebulock-Inc/agentic-threat-hunting-framework/blob/main/docs/INSTALL.md#development--customization) for:**
|
|
263
272
|
- Setting up your fork for development
|
|
264
273
|
- Pre-commit hooks for code quality
|
|
265
274
|
- Testing and type checking
|