agentic-threat-hunting-framework 0.2.2__py3-none-any.whl → 0.2.4__py3-none-any.whl

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.
Files changed (38) hide show
  1. {agentic_threat_hunting_framework-0.2.2.dist-info → agentic_threat_hunting_framework-0.2.4.dist-info}/METADATA +1 -1
  2. agentic_threat_hunting_framework-0.2.4.dist-info/RECORD +47 -0
  3. athf/__version__.py +1 -1
  4. athf/cli.py +1 -1
  5. athf/commands/context.py +29 -15
  6. athf/commands/hunt.py +1 -3
  7. athf/commands/init.py +45 -0
  8. athf/commands/similar.py +2 -2
  9. athf/core/hunt_manager.py +7 -0
  10. athf/data/__init__.py +14 -0
  11. athf/data/docs/CHANGELOG.md +147 -0
  12. athf/data/docs/CLI_REFERENCE.md +1797 -0
  13. athf/data/docs/INSTALL.md +594 -0
  14. athf/data/docs/README.md +31 -0
  15. athf/data/docs/environment.md +256 -0
  16. athf/data/docs/getting-started.md +419 -0
  17. athf/data/docs/level4-agentic-workflows.md +480 -0
  18. athf/data/docs/lock-pattern.md +149 -0
  19. athf/data/docs/maturity-model.md +400 -0
  20. athf/data/docs/why-athf.md +44 -0
  21. athf/data/hunts/FORMAT_GUIDELINES.md +507 -0
  22. athf/data/hunts/H-0001.md +453 -0
  23. athf/data/hunts/H-0002.md +436 -0
  24. athf/data/hunts/H-0003.md +546 -0
  25. athf/data/hunts/README.md +231 -0
  26. athf/data/integrations/MCP_CATALOG.md +45 -0
  27. athf/data/integrations/README.md +129 -0
  28. athf/data/integrations/quickstart/splunk.md +162 -0
  29. athf/data/knowledge/hunting-knowledge.md +2375 -0
  30. athf/data/prompts/README.md +172 -0
  31. athf/data/prompts/ai-workflow.md +581 -0
  32. athf/data/prompts/basic-prompts.md +316 -0
  33. athf/data/templates/HUNT_LOCK.md +228 -0
  34. agentic_threat_hunting_framework-0.2.2.dist-info/RECORD +0 -23
  35. {agentic_threat_hunting_framework-0.2.2.dist-info → agentic_threat_hunting_framework-0.2.4.dist-info}/WHEEL +0 -0
  36. {agentic_threat_hunting_framework-0.2.2.dist-info → agentic_threat_hunting_framework-0.2.4.dist-info}/entry_points.txt +0 -0
  37. {agentic_threat_hunting_framework-0.2.2.dist-info → agentic_threat_hunting_framework-0.2.4.dist-info}/licenses/LICENSE +0 -0
  38. {agentic_threat_hunting_framework-0.2.2.dist-info → agentic_threat_hunting_framework-0.2.4.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,594 @@
1
+ # ATHF Installation & Development Guide
2
+
3
+ This guide covers installation methods and development setup for the Agentic Threat Hunting Framework (ATHF).
4
+
5
+ ## Quick Start
6
+
7
+ The fastest way to get started:
8
+
9
+ ```bash
10
+ pip install agentic-threat-hunting-framework
11
+ athf init
12
+ ```
13
+
14
+ That's it! You're ready to start threat hunting.
15
+
16
+ ---
17
+
18
+ ## Installation Options
19
+
20
+ ### Option 1: Install from PyPI (Recommended)
21
+
22
+ **Best for**: Most users who want a stable, production-ready installation.
23
+
24
+ ```bash
25
+ # Install the latest stable release
26
+ pip install agentic-threat-hunting-framework
27
+
28
+ # Verify installation
29
+ athf --version
30
+
31
+ # Initialize your workspace
32
+ athf init
33
+ ```
34
+
35
+ **Requirements**:
36
+ - Python 3.8 or higher
37
+ - pip (comes with Python)
38
+
39
+ **Virtual Environment (Recommended)**:
40
+
41
+ ```bash
42
+ # Create a virtual environment
43
+ python3 -m venv athf-env
44
+
45
+ # Activate it
46
+ source athf-env/bin/activate # On macOS/Linux
47
+ athf-env\Scripts\activate # On Windows
48
+
49
+ # Install ATHF
50
+ pip install agentic-threat-hunting-framework
51
+ ```
52
+
53
+ ---
54
+
55
+ ### Option 2: Install from Source
56
+
57
+ **Best for**: Contributors, developers, or users who want the latest features.
58
+
59
+ ```bash
60
+ # Clone the repository
61
+ git clone https://github.com/Nebulock-Inc/agentic-threat-hunting-framework.git
62
+ cd agentic-threat-hunting-framework
63
+
64
+ # Install in editable mode (changes take effect immediately)
65
+ pip install -e .
66
+
67
+ # Or install normally
68
+ pip install .
69
+
70
+ # Verify installation
71
+ athf --version
72
+ ```
73
+
74
+ ---
75
+
76
+ ### Option 3: No Installation (Pure Markdown)
77
+
78
+ **Best for**: Users who prefer a documentation-only approach or don't want to install Python packages.
79
+
80
+ ```bash
81
+ # Clone the repository
82
+ git clone https://github.com/Nebulock-Inc/agentic-threat-hunting-framework.git
83
+ cd agentic-threat-hunting-framework
84
+
85
+ # Copy the template structure
86
+ mkdir -p my-hunts/hunts my-hunts/queries my-hunts/runs
87
+ cp templates/HUNT_LOCK.md my-hunts/templates/
88
+ cp docs/AGENTS.md my-hunts/
89
+
90
+ # Start creating hunts by copying the template
91
+ cp templates/HUNT_LOCK.md my-hunts/hunts/H-0001.md
92
+ ```
93
+
94
+ **Pros**:
95
+ - No installation required
96
+ - Works with any text editor
97
+ - Complete control over file structure
98
+ - AI assistants can edit markdown directly
99
+
100
+ **Cons**:
101
+ - No validation or automation
102
+ - Manual hunt ID tracking
103
+ - No built-in search or statistics
104
+ - No standardized workflow
105
+
106
+ ---
107
+
108
+ ## Development & Customization
109
+
110
+ ATHF is designed to be forked and customized for your organization. This section covers setting up your development environment and maintaining code quality in your fork.
111
+
112
+ ### Setting Up Your Fork for Development
113
+
114
+ ```bash
115
+ # Fork and clone your repository
116
+ git clone https://github.com/YOUR-ORG/agentic-threat-hunting-framework
117
+ cd agentic-threat-hunting-framework
118
+
119
+ # Install with development dependencies
120
+ pip install -e ".[dev]"
121
+
122
+ # Set up pre-commit hooks (recommended)
123
+ pre-commit install
124
+
125
+ # Run tests
126
+ pytest tests/ -v
127
+
128
+ # Run type checking
129
+ mypy athf --ignore-missing-imports
130
+
131
+ # Run linting
132
+ flake8 athf
133
+ black athf --check
134
+ isort athf --check-only
135
+ ```
136
+
137
+ ### Pre-commit Hooks (Optional)
138
+
139
+ Pre-commit hooks help maintain code quality as you customize ATHF for your organization. Once installed, they run automatically on every commit and check:
140
+
141
+ - **Code formatting** (black, isort)
142
+ - **Linting** (flake8)
143
+ - **Security** (bandit)
144
+ - **Type checking** (mypy)
145
+ - **File hygiene** (trailing whitespace, end-of-file fixes, etc.)
146
+
147
+ **Installing Pre-commit Hooks**:
148
+
149
+ ```bash
150
+ # Install pre-commit (included in dev dependencies)
151
+ pip install -e ".[dev]"
152
+
153
+ # Set up the git hook
154
+ pre-commit install
155
+
156
+ # Run manually on all files (optional)
157
+ pre-commit run --all-files
158
+ ```
159
+
160
+ **Running Individual Tools**:
161
+
162
+ ```bash
163
+ # Format code
164
+ black athf
165
+ isort athf
166
+
167
+ # Check formatting without changes
168
+ black athf --check
169
+ isort athf --check-only
170
+
171
+ # Lint code
172
+ flake8 athf
173
+
174
+ # Check security issues
175
+ bandit -r athf -c pyproject.toml
176
+
177
+ # Type check
178
+ mypy athf --ignore-missing-imports
179
+ ```
180
+
181
+ ### Code Quality Standards
182
+
183
+ When customizing ATHF for your team:
184
+
185
+ **Type Hints**: Maintain type annotations for better IDE support and catch errors early:
186
+
187
+ ```python
188
+ def get_config_path() -> Path:
189
+ """Get config file path."""
190
+ return Path("config/.athfconfig.yaml")
191
+
192
+ def search_hunts(query: str) -> list[dict]:
193
+ """Search hunts by query string."""
194
+ results = []
195
+ return results
196
+ ```
197
+
198
+ The mypy configuration in `pyproject.toml` enforces:
199
+ - `disallow_untyped_defs = true` - All functions need type annotations
200
+ - `disallow_incomplete_defs = true` - Function signatures must be complete
201
+
202
+ **Testing**: Add tests for custom features you build. ATHF uses pytest:
203
+
204
+ ```bash
205
+ # Run all tests
206
+ pytest tests/ -v
207
+
208
+ # Run specific test file
209
+ pytest tests/test_commands.py -v
210
+
211
+ # Run with coverage
212
+ pytest tests/ -v --cov=athf --cov-report=term-missing
213
+
214
+ # Run specific test
215
+ pytest tests/test_commands.py::TestInitCommand::test_init_creates_structure_non_interactive -v
216
+ ```
217
+
218
+ Tests use Click's `CliRunner` to test actual CLI commands rather than mocks. See [tests/test_commands.py](../../../tests/test_commands.py) for examples.
219
+
220
+ **Documentation**: Keep your fork's documentation current:
221
+ - **AGENTS.md** - Update with your environment details, data sources, team context
222
+ - **environment.md** - Document your tech stack, tools, known gaps
223
+ - **Hunt files** - Use LOCK pattern consistently across all hunts
224
+ - **Custom features** - Document any custom commands or extensions you build
225
+
226
+ **Security**: Run bandit to check for security issues in custom code:
227
+
228
+ ```bash
229
+ # Check all Python files
230
+ bandit -r athf -c pyproject.toml
231
+
232
+ # Check specific file
233
+ bandit athf/commands/hunt.py
234
+ ```
235
+
236
+ ### Testing Your Changes
237
+
238
+ Before committing significant customizations:
239
+
240
+ ```bash
241
+ # 1. Run all tests
242
+ pytest tests/ -v
243
+
244
+ # 2. Check types
245
+ mypy athf --ignore-missing-imports
246
+
247
+ # 3. Format code
248
+ black athf
249
+ isort athf
250
+
251
+ # 4. Check security
252
+ bandit -r athf -c pyproject.toml
253
+
254
+ # 5. Or run pre-commit on everything
255
+ pre-commit run --all-files
256
+ ```
257
+
258
+ ### Customization Examples
259
+
260
+ **Adding a Custom Command**:
261
+
262
+ ```python
263
+ # athf/commands/custom.py
264
+ import click
265
+ from rich.console import Console
266
+
267
+ console = Console()
268
+
269
+ @click.command()
270
+ def mycustom() -> None:
271
+ """My custom command."""
272
+ console.print("[cyan]Running custom command![/cyan]")
273
+
274
+ # Register in athf/cli.py
275
+ from athf.commands import custom
276
+ cli.add_command(custom.mycustom)
277
+ ```
278
+
279
+ **Extending Hunt Metadata**: Modify the hunt template in `athf/core/template_engine.py` to add custom fields:
280
+
281
+ ```python
282
+ HUNT_TEMPLATE = """---
283
+ hunt_id: {{ hunt_id }}
284
+ title: {{ title }}
285
+ # Your custom fields
286
+ priority: {{ priority | default('medium') }}
287
+ owner_team: {{ owner_team | default('SOC') }}
288
+ ---
289
+ ```
290
+
291
+ **Custom Workflows**: ATHF's structure makes it easy to build custom workflows:
292
+
293
+ ```bash
294
+ #!/bin/bash
295
+ # weekly-hunt-report.sh
296
+
297
+ # Get all completed hunts from last week
298
+ athf hunt list --status completed --output json | \
299
+ jq '[.[] | select(.date >= "2025-11-29")]' | \
300
+ athf stats
301
+ ```
302
+
303
+ ### CI/CD Integration
304
+
305
+ ATHF includes a GitHub Actions workflow ([.github/workflows/tests.yml](../../../.github/workflows/tests.yml)) that runs:
306
+
307
+ - Tests across Python 3.8-3.12 on Ubuntu, macOS, Windows
308
+ - Linting with flake8
309
+ - Type checking with mypy
310
+ - Hunt validation
311
+ - Package building
312
+
313
+ Customize the workflow for your organization's needs.
314
+
315
+ ### Tools Configuration
316
+
317
+ All tools are configured in `pyproject.toml`:
318
+
319
+ - **Black**: Line length 127, targets Python 3.8-3.12
320
+ - **isort**: Black-compatible profile
321
+ - **mypy**: Strict type checking enabled
322
+ - **pytest**: Test discovery, coverage reporting
323
+ - **bandit**: Security checks with test exclusions
324
+
325
+ See [pyproject.toml](../../../pyproject.toml) for full configuration.
326
+
327
+ ---
328
+
329
+ ## Platform-Specific Instructions
330
+
331
+ ### macOS
332
+
333
+ ```bash
334
+ # Python 3 usually comes pre-installed on modern macOS
335
+ python3 --version
336
+
337
+ # If not installed, get it from homebrew
338
+ brew install python3
339
+
340
+ # Install ATHF
341
+ pip3 install agentic-threat-hunting-framework
342
+
343
+ # Add to PATH if needed (check installation output)
344
+ export PATH="$HOME/Library/Python/3.x/bin:$PATH"
345
+ ```
346
+
347
+ Add the PATH export to your `~/.zshrc` or `~/.bash_profile` to make it permanent.
348
+
349
+ ### Linux (Ubuntu/Debian)
350
+
351
+ ```bash
352
+ # Install Python 3 and pip
353
+ sudo apt update
354
+ sudo apt install python3 python3-pip python3-venv
355
+
356
+ # Install ATHF
357
+ pip3 install agentic-threat-hunting-framework
358
+
359
+ # Add to PATH if needed
360
+ export PATH="$HOME/.local/bin:$PATH"
361
+ ```
362
+
363
+ Add the PATH export to your `~/.bashrc` to make it permanent.
364
+
365
+ ### Windows
366
+
367
+ ```powershell
368
+ # Download Python from python.org (ensure "Add to PATH" is checked)
369
+
370
+ # Verify installation
371
+ python --version
372
+
373
+ # Install ATHF
374
+ pip install agentic-threat-hunting-framework
375
+
376
+ # Verify
377
+ athf --version
378
+ ```
379
+
380
+ If `athf` is not recognized, add Python Scripts to your PATH:
381
+ - `C:\Users\<YourUser>\AppData\Local\Programs\Python\Python3x\Scripts`
382
+
383
+ ---
384
+
385
+ ## Verifying Installation
386
+
387
+ After installation, verify everything works:
388
+
389
+ ```bash
390
+ # Check version
391
+ athf --version
392
+
393
+ # Get help
394
+ athf --help
395
+
396
+ # List available commands
397
+ athf hunt --help
398
+
399
+ # Initialize a test workspace
400
+ mkdir athf-test
401
+ cd athf-test
402
+ athf init --non-interactive
403
+
404
+ # Create a test hunt
405
+ athf hunt new --technique T1003.001 --title "Test Hunt" --non-interactive
406
+
407
+ # List hunts
408
+ athf hunt list
409
+
410
+ # View statistics
411
+ athf hunt stats
412
+ ```
413
+
414
+ If all commands work, you're ready to go!
415
+
416
+ ---
417
+
418
+ ## Troubleshooting
419
+
420
+ ### "athf: command not found"
421
+
422
+ **Cause**: The Python scripts directory is not in your PATH.
423
+
424
+ **Solution**:
425
+
426
+ 1. Find where pip installed the package:
427
+ ```bash
428
+ pip show agentic-threat-hunting-framework
429
+ ```
430
+
431
+ 2. The scripts are typically in:
432
+ - **macOS**: `~/Library/Python/3.x/bin`
433
+ - **Linux**: `~/.local/bin`
434
+ - **Windows**: `%APPDATA%\Python\Python3x\Scripts`
435
+
436
+ 3. Add to PATH:
437
+ ```bash
438
+ # macOS/Linux (add to ~/.zshrc or ~/.bashrc)
439
+ export PATH="$HOME/Library/Python/3.9/bin:$PATH"
440
+
441
+ # Windows (use System Properties > Environment Variables)
442
+ ```
443
+
444
+ 4. Reload your shell or open a new terminal.
445
+
446
+ ### "No module named 'athf'"
447
+
448
+ **Cause**: Package not installed or wrong Python environment.
449
+
450
+ **Solution**:
451
+
452
+ ```bash
453
+ # Check if installed
454
+ pip list | grep athf
455
+
456
+ # If not listed, install it
457
+ pip install agentic-threat-hunting-framework
458
+
459
+ # Check which Python pip is using
460
+ pip --version
461
+
462
+ # Make sure it matches your Python
463
+ python --version
464
+ ```
465
+
466
+ ### "ERROR: Could not find a version that satisfies the requirement"
467
+
468
+ **Cause**: Python version too old (< 3.8).
469
+
470
+ **Solution**:
471
+
472
+ ```bash
473
+ # Check Python version
474
+ python --version
475
+
476
+ # Upgrade Python to 3.8 or higher
477
+ # - macOS: brew install python3
478
+ # - Linux: sudo apt install python3.11
479
+ # - Windows: Download from python.org
480
+ ```
481
+
482
+ ### "Permission denied" errors
483
+
484
+ **Cause**: Installing globally without sudo (Linux/macOS).
485
+
486
+ **Solution** (choose one):
487
+
488
+ ```bash
489
+ # Option 1: Install for current user only (recommended)
490
+ pip install --user agentic-threat-hunting-framework
491
+
492
+ # Option 2: Use a virtual environment (best practice)
493
+ python3 -m venv athf-env
494
+ source athf-env/bin/activate
495
+ pip install agentic-threat-hunting-framework
496
+
497
+ # Option 3: Install globally (not recommended)
498
+ sudo pip install agentic-threat-hunting-framework
499
+ ```
500
+
501
+ ### Import errors with dependencies
502
+
503
+ **Cause**: Dependency version conflicts.
504
+
505
+ **Solution**:
506
+
507
+ ```bash
508
+ # Use a fresh virtual environment
509
+ python3 -m venv fresh-env
510
+ source fresh-env/bin/activate
511
+
512
+ # Install ATHF in the clean environment
513
+ pip install agentic-threat-hunting-framework
514
+
515
+ # Verify dependencies
516
+ pip list
517
+ ```
518
+
519
+ ### Windows: "python is not recognized"
520
+
521
+ **Cause**: Python not installed or not in PATH.
522
+
523
+ **Solution**:
524
+
525
+ 1. Download Python from [python.org](https://www.python.org/downloads/)
526
+ 2. During installation, **check "Add Python to PATH"**
527
+ 3. Restart your terminal
528
+ 4. Verify: `python --version`
529
+
530
+ ---
531
+
532
+ ## Upgrading ATHF
533
+
534
+ To upgrade to the latest version:
535
+
536
+ ```bash
537
+ # Upgrade from PyPI
538
+ pip install --upgrade agentic-threat-hunting-framework
539
+
540
+ # Or from source
541
+ cd agentic-threat-hunting-framework
542
+ git pull
543
+ pip install --upgrade .
544
+
545
+ # Verify new version
546
+ athf --version
547
+ ```
548
+
549
+ ---
550
+
551
+ ## Uninstalling ATHF
552
+
553
+ To remove ATHF:
554
+
555
+ ```bash
556
+ # Uninstall the package
557
+ pip uninstall agentic-threat-hunting-framework
558
+
559
+ # Remove your workspace (optional - this deletes your hunts!)
560
+ # rm -rf /path/to/your/athf-workspace
561
+ ```
562
+
563
+ Your hunt files are separate from the package installation, so uninstalling ATHF won't delete your hunts.
564
+
565
+ ---
566
+
567
+ ## Next Steps
568
+
569
+ After installation:
570
+
571
+ 1. **Initialize your workspace**: `athf init`
572
+ 2. **Read the getting started guide**: [getting-started.md](getting-started.md)
573
+ 3. **Review the CLI reference**: [CLI_REFERENCE.md](CLI_REFERENCE.md)
574
+ 4. **Create your first hunt**: `athf hunt new`
575
+ 5. **Explore example hunts**: [../hunts/H-0001.md](../hunts/H-0001.md)
576
+
577
+ ---
578
+
579
+ ## Getting Help
580
+
581
+ - **CLI help**: `athf --help` or `athf <command> --help`
582
+ - **Documentation**: [getting-started.md](getting-started.md)
583
+ - **Issues**: [GitHub Issues](https://github.com/Nebulock-Inc/agentic-threat-hunting-framework/issues)
584
+ - **Discussions**: [GitHub Discussions](https://github.com/Nebulock-Inc/agentic-threat-hunting-framework/discussions)
585
+
586
+ ---
587
+
588
+ ## System Requirements
589
+
590
+ - **Python**: 3.8 or higher
591
+ - **OS**: macOS, Linux, or Windows
592
+ - **Disk Space**: ~5 MB for package, more for your hunt data
593
+ - **Memory**: Minimal (< 50 MB)
594
+ - **Dependencies**: 4 packages (click, pyyaml, rich, jinja2)
@@ -0,0 +1,31 @@
1
+ # ATHF Documentation
2
+
3
+ Complete documentation for the Agentic Threat Hunting Framework.
4
+
5
+ ## Getting Started
6
+
7
+ - **[Getting Started Guide](getting-started.md)** - Step-by-step setup and onboarding
8
+ - **[Installation](INSTALL.md)** - Detailed installation instructions
9
+ - **[Why ATHF?](why-athf.md)** - The problem and solution
10
+
11
+ ## Core Concepts
12
+
13
+ - **[The LOCK Pattern](lock-pattern.md)** - Learn → Observe → Check → Keep
14
+ - **[Maturity Model](maturity-model.md)** - The five levels of agentic hunting
15
+ - **[Environment Setup](environment.md)** - Tech stack and data sources
16
+
17
+ ## Advanced Topics
18
+
19
+ - **[Level 4: Agentic Workflows](level4-agentic-workflows.md)** - Autonomous agent capabilities
20
+
21
+ ## Reference
22
+
23
+ - **[CLI Reference](CLI_REFERENCE.md)** - Complete command-line interface documentation
24
+ - **[Changelog](CHANGELOG.md)** - Version history and updates
25
+
26
+ ## Quick Links
27
+
28
+ - [Main README](../../../README.md)
29
+ - [AGENTS.md](../../../AGENTS.md) - AI assistant context
30
+ - [Example Hunts](../../../SHOWCASE.md)
31
+ - [Using ATHF](../../../USING_ATHF.md) - Adoption guide