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.
- {agentic_threat_hunting_framework-0.2.2.dist-info → agentic_threat_hunting_framework-0.2.4.dist-info}/METADATA +1 -1
- agentic_threat_hunting_framework-0.2.4.dist-info/RECORD +47 -0
- athf/__version__.py +1 -1
- athf/cli.py +1 -1
- athf/commands/context.py +29 -15
- athf/commands/hunt.py +1 -3
- athf/commands/init.py +45 -0
- athf/commands/similar.py +2 -2
- athf/core/hunt_manager.py +7 -0
- athf/data/__init__.py +14 -0
- athf/data/docs/CHANGELOG.md +147 -0
- athf/data/docs/CLI_REFERENCE.md +1797 -0
- athf/data/docs/INSTALL.md +594 -0
- athf/data/docs/README.md +31 -0
- athf/data/docs/environment.md +256 -0
- athf/data/docs/getting-started.md +419 -0
- athf/data/docs/level4-agentic-workflows.md +480 -0
- athf/data/docs/lock-pattern.md +149 -0
- athf/data/docs/maturity-model.md +400 -0
- athf/data/docs/why-athf.md +44 -0
- athf/data/hunts/FORMAT_GUIDELINES.md +507 -0
- athf/data/hunts/H-0001.md +453 -0
- athf/data/hunts/H-0002.md +436 -0
- athf/data/hunts/H-0003.md +546 -0
- athf/data/hunts/README.md +231 -0
- athf/data/integrations/MCP_CATALOG.md +45 -0
- athf/data/integrations/README.md +129 -0
- athf/data/integrations/quickstart/splunk.md +162 -0
- athf/data/knowledge/hunting-knowledge.md +2375 -0
- athf/data/prompts/README.md +172 -0
- athf/data/prompts/ai-workflow.md +581 -0
- athf/data/prompts/basic-prompts.md +316 -0
- athf/data/templates/HUNT_LOCK.md +228 -0
- agentic_threat_hunting_framework-0.2.2.dist-info/RECORD +0 -23
- {agentic_threat_hunting_framework-0.2.2.dist-info → agentic_threat_hunting_framework-0.2.4.dist-info}/WHEEL +0 -0
- {agentic_threat_hunting_framework-0.2.2.dist-info → agentic_threat_hunting_framework-0.2.4.dist-info}/entry_points.txt +0 -0
- {agentic_threat_hunting_framework-0.2.2.dist-info → agentic_threat_hunting_framework-0.2.4.dist-info}/licenses/LICENSE +0 -0
- {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,256 @@
|
|
|
1
|
+
# Environment Profile
|
|
2
|
+
|
|
3
|
+
**Last Updated:** YYYY-MM-DD
|
|
4
|
+
**Review Cadence:** Quarterly
|
|
5
|
+
**Maintained By:** [Team/Individual Name]
|
|
6
|
+
|
|
7
|
+
> **⚠️ SENSITIVE DATA WARNING**
|
|
8
|
+
> This file contains technical details about your organization's infrastructure. Treat it with the same security posture as your hunt documentation. Consider what details should remain in private internal systems versus this repository.
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## Purpose
|
|
13
|
+
|
|
14
|
+
This file captures the technical environment context that informs threat hunting decisions. It helps answer:
|
|
15
|
+
|
|
16
|
+
- What technologies are we running that might be vulnerable?
|
|
17
|
+
- Where should we focus hunting efforts based on our attack surface?
|
|
18
|
+
- What data sources and tools do we have available for hunts?
|
|
19
|
+
|
|
20
|
+
**How this file supports hunting:**
|
|
21
|
+
|
|
22
|
+
- **Level 0-1 (Manual):** Reference this when planning hunts to understand available data sources and potential targets
|
|
23
|
+
- **Level 2 (Memory):** Grep this file to remember what tech we have when reviewing past hunts or CVE alerts
|
|
24
|
+
- **Level 3+ (Automated):** Agents use this context to auto-generate hunt ideas, cross-reference CVEs, and prioritize targets
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## Security & Monitoring Tools
|
|
29
|
+
|
|
30
|
+
### SIEM / Log Aggregation
|
|
31
|
+
|
|
32
|
+
- **Product:** [e.g., Splunk Enterprise, Elastic Security, Microsoft Sentinel]
|
|
33
|
+
- **Version:**
|
|
34
|
+
- **Coverage:** [What logs are ingested - endpoints, network, cloud, applications]
|
|
35
|
+
- **Retention:** [How long logs are kept]
|
|
36
|
+
- **Query Access:** [API available? Direct database access?]
|
|
37
|
+
- **Documentation:** [Link to internal wiki/runbooks]
|
|
38
|
+
|
|
39
|
+
### EDR / Endpoint Security
|
|
40
|
+
|
|
41
|
+
- **Product:** [e.g., CrowdStrike Falcon, Microsoft Defender, SentinelOne]
|
|
42
|
+
- **Version:**
|
|
43
|
+
- **Deployment:** [% of endpoints covered, OS types]
|
|
44
|
+
- **Telemetry:** [Process execution, network, file events]
|
|
45
|
+
- **API Access:** [Available for automated queries?]
|
|
46
|
+
- **Documentation:**
|
|
47
|
+
|
|
48
|
+
### Network Security
|
|
49
|
+
|
|
50
|
+
- **Firewalls:** [Vendor/model, management interfaces]
|
|
51
|
+
- **IDS/IPS:** [Snort, Suricata, commercial products]
|
|
52
|
+
- **Network TAPs/SPAN:** [Where traffic is monitored]
|
|
53
|
+
- **Flow Data:** [NetFlow, IPFIX, Zeek logs]
|
|
54
|
+
- **Packet Capture:** [Full PCAP availability, retention]
|
|
55
|
+
- **Documentation:**
|
|
56
|
+
|
|
57
|
+
### Cloud Security
|
|
58
|
+
|
|
59
|
+
- **Cloud Providers:** [AWS, Azure, GCP]
|
|
60
|
+
- **Security Services:** [CloudTrail, Azure Monitor, GCP Cloud Logging]
|
|
61
|
+
- **CSPM Tools:** [Wiz, Prisma Cloud, native tools]
|
|
62
|
+
- **Container Security:** [Falco, Aqua, Sysdig]
|
|
63
|
+
- **Documentation:**
|
|
64
|
+
|
|
65
|
+
### Identity & Access
|
|
66
|
+
|
|
67
|
+
- **Identity Provider:** [Active Directory, Okta, Azure AD]
|
|
68
|
+
- **MFA Solutions:** [Duo, Okta, hardware tokens]
|
|
69
|
+
- **PAM Tools:** [CyberArk, BeyondTrust]
|
|
70
|
+
- **Authentication Logs:** [Where are auth events logged?]
|
|
71
|
+
- **Documentation:**
|
|
72
|
+
|
|
73
|
+
### Other Security Tools
|
|
74
|
+
|
|
75
|
+
- **Vulnerability Scanners:** [Nessus, Qualys, Rapid7]
|
|
76
|
+
- **Asset Management:** [ServiceNow CMDB, custom inventory]
|
|
77
|
+
- **Threat Intelligence:** [Feeds, platforms, sharing communities]
|
|
78
|
+
- **SOAR/Automation:** [Automation platforms, orchestration tools]
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
## Technology Stack
|
|
83
|
+
|
|
84
|
+
### Operating Systems
|
|
85
|
+
|
|
86
|
+
- **Servers:**
|
|
87
|
+
- Linux: [Distributions, versions - e.g., Ubuntu 22.04, RHEL 8]
|
|
88
|
+
- Windows: [Server 2019, Server 2022]
|
|
89
|
+
- Other: [BSD, proprietary systems]
|
|
90
|
+
|
|
91
|
+
- **Workstations:**
|
|
92
|
+
- Windows: [10, 11]
|
|
93
|
+
- macOS: [Versions]
|
|
94
|
+
- Linux: [Desktop distributions]
|
|
95
|
+
|
|
96
|
+
- **Mobile:**
|
|
97
|
+
- iOS: [MDM solution, version requirements]
|
|
98
|
+
- Android: [MDM solution, BYOD policy]
|
|
99
|
+
|
|
100
|
+
### Development Stack
|
|
101
|
+
|
|
102
|
+
- **Languages:** [Python, JavaScript, Java, Go, C#, Ruby, PHP]
|
|
103
|
+
- **Web Frameworks:** [React, Angular, Django, Flask, Spring Boot, .NET]
|
|
104
|
+
- **API Frameworks:** [FastAPI, Express, REST, GraphQL]
|
|
105
|
+
- **Mobile Frameworks:** [React Native, Flutter, native iOS/Android]
|
|
106
|
+
|
|
107
|
+
### Databases & Data Stores
|
|
108
|
+
|
|
109
|
+
- **Relational:** [PostgreSQL, MySQL, SQL Server, Oracle]
|
|
110
|
+
- **NoSQL:** [MongoDB, Cassandra, DynamoDB]
|
|
111
|
+
- **Caching:** [Redis, Memcached]
|
|
112
|
+
- **Data Warehouses:** [Snowflake, Redshift, BigQuery]
|
|
113
|
+
- **Search:** [Elasticsearch, Solr]
|
|
114
|
+
|
|
115
|
+
### Infrastructure & Platforms
|
|
116
|
+
|
|
117
|
+
- **Cloud Platforms:**
|
|
118
|
+
- AWS: [Services used - EC2, S3, Lambda, RDS, ECS, EKS]
|
|
119
|
+
- Azure: [VMs, Blob Storage, Functions, SQL Database, AKS]
|
|
120
|
+
- GCP: [Compute Engine, Cloud Storage, Cloud Functions, Cloud SQL, GKE]
|
|
121
|
+
|
|
122
|
+
- **Containers & Orchestration:**
|
|
123
|
+
- Docker: [Version, registry location]
|
|
124
|
+
- Kubernetes: [Distribution, version, cluster count]
|
|
125
|
+
- OpenShift, Rancher, ECS, AKS, GKE
|
|
126
|
+
|
|
127
|
+
- **CI/CD:**
|
|
128
|
+
- [Jenkins, GitLab CI, GitHub Actions, CircleCI, Azure DevOps]
|
|
129
|
+
- [Artifact repositories - Artifactory, Nexus, container registries]
|
|
130
|
+
|
|
131
|
+
### Networking
|
|
132
|
+
|
|
133
|
+
- **Network Architecture:**
|
|
134
|
+
- [Flat network, segmented, zero-trust zones]
|
|
135
|
+
- [VLANs, subnets, DMZ configuration]
|
|
136
|
+
- [Datacenter/office locations]
|
|
137
|
+
|
|
138
|
+
- **Load Balancers:** [F5, Nginx, HAProxy, cloud-native]
|
|
139
|
+
- **DNS:** [Providers, internal DNS servers]
|
|
140
|
+
- **VPN/Remote Access:** [Technologies, authentication methods]
|
|
141
|
+
- **SD-WAN:** [Vendor, deployment]
|
|
142
|
+
|
|
143
|
+
### Applications & Services
|
|
144
|
+
|
|
145
|
+
- **Productivity:**
|
|
146
|
+
- Email: [Microsoft 365, Google Workspace, on-prem Exchange]
|
|
147
|
+
- Collaboration: [Slack, Teams, Zoom]
|
|
148
|
+
- File Sharing: [SharePoint, Google Drive, Box, Dropbox]
|
|
149
|
+
|
|
150
|
+
- **Development:**
|
|
151
|
+
- Version Control: [GitHub, GitLab, Bitbucket, Azure Repos]
|
|
152
|
+
- Project Management: [Jira, Azure DevOps, Linear]
|
|
153
|
+
- Documentation: [Confluence, Notion, SharePoint, internal wikis]
|
|
154
|
+
|
|
155
|
+
- **Business Applications:**
|
|
156
|
+
- CRM: [Salesforce, HubSpot, Dynamics 365]
|
|
157
|
+
- ERP: [SAP, Oracle, NetSuite]
|
|
158
|
+
- HR Systems: [Workday, ADP]
|
|
159
|
+
- Finance: [QuickBooks, custom systems]
|
|
160
|
+
|
|
161
|
+
---
|
|
162
|
+
|
|
163
|
+
## Internal Documentation & Resources
|
|
164
|
+
|
|
165
|
+
### Architecture Documentation
|
|
166
|
+
|
|
167
|
+
- **System Architecture:** [Link to diagrams, wiki pages]
|
|
168
|
+
- **Network Diagrams:** [Link or file path - e.g., /docs/network-diagram.pdf]
|
|
169
|
+
- **Data Flow Diagrams:** [How data moves through systems]
|
|
170
|
+
- **Security Architecture:** [Security controls, trust boundaries]
|
|
171
|
+
|
|
172
|
+
### Operational Documentation
|
|
173
|
+
|
|
174
|
+
- **Runbooks:** [Location of operational procedures]
|
|
175
|
+
- **Incident Response Plans:** [IR playbooks, escalation paths]
|
|
176
|
+
- **DR/BCP Plans:** [Disaster recovery documentation]
|
|
177
|
+
- **Change Management:** [Where to find change records]
|
|
178
|
+
|
|
179
|
+
### Asset & Configuration Management
|
|
180
|
+
|
|
181
|
+
- **CMDB/Asset Inventory:** [ServiceNow, custom CMDB, spreadsheets]
|
|
182
|
+
- Access: [API endpoint, web interface, query examples]
|
|
183
|
+
- Update Frequency: [Real-time, daily, weekly]
|
|
184
|
+
|
|
185
|
+
- **Configuration Management:** [Ansible, Puppet, Chef, Terraform repos]
|
|
186
|
+
- **Service Catalog:** [What services exist, ownership]
|
|
187
|
+
|
|
188
|
+
### Integration Examples
|
|
189
|
+
|
|
190
|
+
#### Confluence Integration
|
|
191
|
+
|
|
192
|
+
```bash
|
|
193
|
+
# Example: Query Confluence for architecture docs
|
|
194
|
+
curl -u user:token https://confluence.company.com/rest/api/content/search?cql=type=page+and+space=SEC
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
#### ServiceNow CMDB Query
|
|
198
|
+
|
|
199
|
+
```bash
|
|
200
|
+
# Example: Pull asset inventory
|
|
201
|
+
curl "https://instance.service-now.com/api/now/table/cmdb_ci_server" \
|
|
202
|
+
-H "Authorization: Bearer $TOKEN"
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
#### SharePoint Document Access
|
|
206
|
+
|
|
207
|
+
```bash
|
|
208
|
+
# Example: List security documentation
|
|
209
|
+
# Microsoft Graph API: GET /sites/{site-id}/drive/root/children
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
#### Jira Asset Tracking
|
|
213
|
+
|
|
214
|
+
- **Query:** [Link to Jira filter showing infrastructure assets]
|
|
215
|
+
- **Example:** `https://jira.company.com/issues/?jql=project=INFRA+AND+type=Asset`
|
|
216
|
+
|
|
217
|
+
---
|
|
218
|
+
|
|
219
|
+
## Access & Credentials
|
|
220
|
+
|
|
221
|
+
> **Do not store actual credentials here.** Document where to find them.
|
|
222
|
+
|
|
223
|
+
- **Secret Management:** [Vault, AWS Secrets Manager, Azure Key Vault, 1Password]
|
|
224
|
+
- **Service Accounts:** [Where to find hunt-related service account credentials]
|
|
225
|
+
- **API Keys:** [Where API keys for tools/platforms are stored]
|
|
226
|
+
- **Documentation:** [Links to access request procedures, onboarding docs]
|
|
227
|
+
|
|
228
|
+
---
|
|
229
|
+
|
|
230
|
+
## Known Gaps & Blind Spots
|
|
231
|
+
|
|
232
|
+
Document areas where visibility is limited:
|
|
233
|
+
|
|
234
|
+
- **Unmonitored Systems:** [Legacy systems, OT/ICS, contractor networks]
|
|
235
|
+
- **Data Source Gaps:** [Logs not collected, limited retention]
|
|
236
|
+
- **Tool Limitations:** [Known blind spots in EDR/SIEM coverage]
|
|
237
|
+
- **Third-Party Services:** [SaaS apps without logging integration]
|
|
238
|
+
|
|
239
|
+
---
|
|
240
|
+
|
|
241
|
+
## Maintenance Notes
|
|
242
|
+
|
|
243
|
+
### Review Checklist (Quarterly)
|
|
244
|
+
|
|
245
|
+
- [ ] Verify technology versions are current
|
|
246
|
+
- [ ] Add new services/applications deployed
|
|
247
|
+
- [ ] Remove decommissioned systems
|
|
248
|
+
- [ ] Update tool coverage percentages
|
|
249
|
+
- [ ] Refresh internal documentation links
|
|
250
|
+
- [ ] Validate API access and integrations still work
|
|
251
|
+
|
|
252
|
+
### Change Log
|
|
253
|
+
|
|
254
|
+
- **YYYY-MM-DD:** Initial creation
|
|
255
|
+
- **YYYY-MM-DD:** Added new EDR deployment details
|
|
256
|
+
- **YYYY-MM-DD:** Updated cloud services after migration
|
|
@@ -0,0 +1,419 @@
|
|
|
1
|
+
# Getting Started with ATHF
|
|
2
|
+
|
|
3
|
+
This guide walks you through setting up the Agentic Threat Hunting Framework, from your first documented hunt to advanced AI-powered capabilities.
|
|
4
|
+
|
|
5
|
+
**This framework is meant to be flexible.** Adapt it to your environment, data sources, and team structure. Use what works for you, modify what doesn't, and skip what isn't relevant.
|
|
6
|
+
|
|
7
|
+
## Step 1: Choose Your Setup Path
|
|
8
|
+
|
|
9
|
+
ATHF offers two paths to get started:
|
|
10
|
+
|
|
11
|
+
### Option A: CLI-Enabled (Recommended)
|
|
12
|
+
|
|
13
|
+
Install the Python CLI for convenience commands:
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
# Clone and install
|
|
17
|
+
git clone https://github.com/Nebulock-Inc/agentic-threat-hunting-framework
|
|
18
|
+
cd agentic-threat-hunting-framework
|
|
19
|
+
pip install -e .
|
|
20
|
+
|
|
21
|
+
# Verify installation
|
|
22
|
+
athf --version
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
**Benefits:** Interactive hunt creation, automated validation, built-in search and stats
|
|
26
|
+
|
|
27
|
+
### Option B: Markdown-Only
|
|
28
|
+
|
|
29
|
+
Use the framework structure without CLI tools:
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
# Clone only
|
|
33
|
+
git clone https://github.com/Nebulock-Inc/agentic-threat-hunting-framework
|
|
34
|
+
cd agentic-threat-hunting-framework
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
**Benefits:** Maximum simplicity, full control, no dependencies
|
|
38
|
+
|
|
39
|
+
> **Note:** Both paths work equally well. The CLI is optional convenience - the framework structure (hunts/, LOCK pattern, AGENTS.md) is what enables AI assistance.
|
|
40
|
+
|
|
41
|
+
## Step 2: Explore the Structure
|
|
42
|
+
|
|
43
|
+
Take a few minutes to understand the repository layout:
|
|
44
|
+
|
|
45
|
+
```
|
|
46
|
+
agentic-threat-hunting-framework/
|
|
47
|
+
├── README.md # Framework overview
|
|
48
|
+
├── AGENTS.md # AI assistant context
|
|
49
|
+
├── config/ # Workspace configuration
|
|
50
|
+
│ └── .athfconfig.yaml # Hunt prefix, SIEM/EDR settings
|
|
51
|
+
├── athf/ # CLI source code (optional)
|
|
52
|
+
│ ├── commands/ # Hunt management commands
|
|
53
|
+
│ ├── core/ # Hunt parsing and validation
|
|
54
|
+
│ └── utils/ # Helper utilities
|
|
55
|
+
├── hunts/ # Hunt hypothesis cards (H-XXXX.md)
|
|
56
|
+
├── queries/ # Query implementations (H-XXXX.spl/kql)
|
|
57
|
+
├── runs/ # Hunt execution results (H-XXXX_YYYY-MM-DD.md)
|
|
58
|
+
├── templates/ # LOCK-structured hunt templates
|
|
59
|
+
├── knowledge/ # Threat hunting expertise
|
|
60
|
+
├── prompts/ # AI workflow templates
|
|
61
|
+
├── integrations/ # MCP server catalog and quickstart guides
|
|
62
|
+
├── docs/ # Detailed documentation
|
|
63
|
+
└── assets/ # Images and diagrams
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
**Key files to review:**
|
|
67
|
+
|
|
68
|
+
- [templates/](../templates/) - Ready-to-use LOCK hunt templates
|
|
69
|
+
- [hunts/](../hunts/) - Example hunts showing the LOCK pattern
|
|
70
|
+
- [AGENTS.md](../../../AGENTS.md) - Template for AI context (customize later)
|
|
71
|
+
|
|
72
|
+
## Step 3: Document Your First Hunt (Level 1)
|
|
73
|
+
|
|
74
|
+
Start simple. Pick a recent hunt or create a new one and document it using the LOCK pattern.
|
|
75
|
+
|
|
76
|
+
### Create a Hunt File
|
|
77
|
+
|
|
78
|
+
**Using the CLI (Option A):**
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
# Interactive mode - CLI will prompt you for details
|
|
82
|
+
athf hunt new
|
|
83
|
+
|
|
84
|
+
# Or non-interactive with flags
|
|
85
|
+
athf hunt new \
|
|
86
|
+
--technique T1110.001 \
|
|
87
|
+
--title "SSH Brute Force Detection" \
|
|
88
|
+
--platform linux \
|
|
89
|
+
--tactic initial-access
|
|
90
|
+
|
|
91
|
+
# Validate the hunt structure
|
|
92
|
+
athf hunt validate
|
|
93
|
+
|
|
94
|
+
# View your hunt catalog
|
|
95
|
+
athf hunt list
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
**Manual Creation (Option B):**
|
|
99
|
+
|
|
100
|
+
1. Copy a template:
|
|
101
|
+
|
|
102
|
+
```bash
|
|
103
|
+
cp templates/HUNT_LOCK.md hunts/H-0001.md
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
2. Fill out the LOCK sections:
|
|
107
|
+
- **Learn:** What motivated this hunt?
|
|
108
|
+
- **Observe:** What behavior are you looking for?
|
|
109
|
+
- **Check:** What query did you run?
|
|
110
|
+
- **Keep:** What did you find? What's next?
|
|
111
|
+
|
|
112
|
+
3. Save and commit:
|
|
113
|
+
|
|
114
|
+
```bash
|
|
115
|
+
git add hunts/H-0001.md
|
|
116
|
+
git commit -m "Add hunt H-0001: [Brief description]"
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
> **Tip:** The CLI (`athf hunt new`) creates the file with YAML frontmatter automatically. Manual creation gives you full control over the content.
|
|
120
|
+
|
|
121
|
+
### Example Structure
|
|
122
|
+
|
|
123
|
+
See [hunts/H-0001.md](../hunts/H-0001.md) for a complete example. Here's a simplified structure:
|
|
124
|
+
|
|
125
|
+
```markdown
|
|
126
|
+
# H-0001: SSH Brute Force Detection
|
|
127
|
+
|
|
128
|
+
**Learn**
|
|
129
|
+
Recent CTI indicates increased SSH brute force activity targeting cloud infrastructure.
|
|
130
|
+
Available data: Linux auth.log via Splunk (index=linux_secure)
|
|
131
|
+
|
|
132
|
+
**Observe**
|
|
133
|
+
Adversaries may attempt multiple SSH authentication failures from a single source IP.
|
|
134
|
+
Successful login after many failures is highly suspicious.
|
|
135
|
+
|
|
136
|
+
**Check**
|
|
137
|
+
index=linux_secure action=failure
|
|
138
|
+
| stats count by src_ip
|
|
139
|
+
| where count > 20
|
|
140
|
+
|
|
141
|
+
**Keep**
|
|
142
|
+
Found 3 IPs with >100 attempts.
|
|
143
|
+
- 203.0.113.45: 247 attempts, 0 successes
|
|
144
|
+
- 198.51.100.22: 189 attempts, 1 success (investigate)
|
|
145
|
+
- 192.0.2.15: 134 attempts, 0 successes
|
|
146
|
+
|
|
147
|
+
Next: Correlate with EDR to see if successful login led to further activity.
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
**Congratulations!** You're now at Level 1. You have persistent, searchable hunt records.
|
|
151
|
+
|
|
152
|
+
## Step 4: Add AI Context Files (Level 2)
|
|
153
|
+
|
|
154
|
+
To make your hunts AI-accessible, add context files that describe your environment and provide domain expertise.
|
|
155
|
+
|
|
156
|
+
### Customize AGENTS.md
|
|
157
|
+
|
|
158
|
+
1. Open [AGENTS.md](../../../AGENTS.md)
|
|
159
|
+
2. Update the following sections:
|
|
160
|
+
- **Data Sources:** Replace placeholders with your actual SIEM indexes, EDR platforms, etc.
|
|
161
|
+
- **Technology Stack:** List your security tools
|
|
162
|
+
- **Known Visibility Gaps:** Document what you can't see
|
|
163
|
+
|
|
164
|
+
Example customization:
|
|
165
|
+
|
|
166
|
+
```markdown
|
|
167
|
+
## Data Sources
|
|
168
|
+
|
|
169
|
+
### SIEM / Log Aggregation
|
|
170
|
+
- **Platform:** Splunk Enterprise
|
|
171
|
+
- **Indexes:**
|
|
172
|
+
- `index=winlogs` - Windows Event Logs
|
|
173
|
+
- `index=linux_secure` - Linux auth.log
|
|
174
|
+
- `index=edr` - CrowdStrike Falcon telemetry
|
|
175
|
+
- **Retention:** 90 days
|
|
176
|
+
- **Query Language:** SPL
|
|
177
|
+
|
|
178
|
+
### EDR / Endpoint Security
|
|
179
|
+
- **Platform:** CrowdStrike Falcon
|
|
180
|
+
- **Telemetry:** Process execution, network connections, file modifications
|
|
181
|
+
- **Query Access:** Splunk integration via index=edr
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
### Review hunting-knowledge.md
|
|
185
|
+
|
|
186
|
+
The repository includes [knowledge/hunting-knowledge.md](../knowledge/hunting-knowledge.md) with expert threat hunting frameworks. Review it to understand:
|
|
187
|
+
|
|
188
|
+
- How to generate quality hypotheses
|
|
189
|
+
- Observable-to-TTP mapping patterns
|
|
190
|
+
- Analytical rigor best practices
|
|
191
|
+
|
|
192
|
+
**No changes needed** - this file provides universal hunting expertise that AI assistants will apply to your environment.
|
|
193
|
+
|
|
194
|
+
### Test AI Integration
|
|
195
|
+
|
|
196
|
+
1. Open your repository in Claude Code, GitHub Copilot, or Cursor
|
|
197
|
+
2. Ask: "What hunts have we documented?"
|
|
198
|
+
3. Ask: "What data sources do we have for Windows endpoint hunting?"
|
|
199
|
+
4. Ask: "Generate a hypothesis for T1003.001 LSASS dumping"
|
|
200
|
+
|
|
201
|
+
If the AI can answer these questions using your repository context, you're successfully at Level 2!
|
|
202
|
+
|
|
203
|
+
**Time investment:** Approximately 1 week to customize AGENTS.md and test AI integration.
|
|
204
|
+
|
|
205
|
+
### Hunt Metadata Evolution (Level 2+)
|
|
206
|
+
|
|
207
|
+
At Level 2+, enhance your hunt files with **YAML frontmatter** - machine-readable metadata that enables AI to filter, analyze, and track hunts programmatically.
|
|
208
|
+
|
|
209
|
+
**What is YAML Frontmatter?**
|
|
210
|
+
|
|
211
|
+
YAML frontmatter is structured metadata placed at the top of hunt files, enabling:
|
|
212
|
+
|
|
213
|
+
- AI-powered filtering by status, tactics, techniques, platform
|
|
214
|
+
- Automated hunt success metrics calculation
|
|
215
|
+
- ATT&CK coverage gap analysis
|
|
216
|
+
- Hunt relationship tracking
|
|
217
|
+
|
|
218
|
+
**When to Adopt:**
|
|
219
|
+
|
|
220
|
+
| Maturity Level | YAML Recommendation |
|
|
221
|
+
|----------------|---------------------|
|
|
222
|
+
| Level 0-1 (Manual) | Optional - Focus on learning LOCK first |
|
|
223
|
+
| Level 2 (Searchable) | Recommended - Enables AI filtering |
|
|
224
|
+
| Level 3+ (Generative/Agentic) | Required - Automation needs structured data |
|
|
225
|
+
|
|
226
|
+
**How to Add YAML Frontmatter:**
|
|
227
|
+
|
|
228
|
+
1. Open an existing hunt file (e.g., `hunts/H-0001.md`)
|
|
229
|
+
2. Add YAML block at the very top:
|
|
230
|
+
|
|
231
|
+
```yaml
|
|
232
|
+
---
|
|
233
|
+
hunt_id: H-0001
|
|
234
|
+
title: Linux Crontab Persistence Detection
|
|
235
|
+
status: completed
|
|
236
|
+
date: 2025-11-19
|
|
237
|
+
hunter: Security Team
|
|
238
|
+
platform: [Linux]
|
|
239
|
+
tactics: [persistence]
|
|
240
|
+
techniques: [T1053.003]
|
|
241
|
+
data_sources: [Auditd, Syslog]
|
|
242
|
+
related_hunts: []
|
|
243
|
+
findings_count: 3
|
|
244
|
+
true_positives: 1
|
|
245
|
+
false_positives: 1
|
|
246
|
+
customer_deliverables: []
|
|
247
|
+
tags: [linux, cron, persistence]
|
|
248
|
+
---
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
1. Keep the existing markdown metadata section below the title for human readability
|
|
252
|
+
|
|
253
|
+
**Full documentation:** See [hunts/FORMAT_GUIDELINES.md](../hunts/FORMAT_GUIDELINES.md#yaml-frontmatter-optional-at-level-0-1-recommended-at-level-2)
|
|
254
|
+
|
|
255
|
+
**Why Both YAML and Markdown Metadata?**
|
|
256
|
+
|
|
257
|
+
- **YAML** - Enables AI filtering: "Find all completed credential-access hunts"
|
|
258
|
+
- **Markdown** - Provides at-a-glance context when reading hunts
|
|
259
|
+
|
|
260
|
+
**AI Benefits with YAML:**
|
|
261
|
+
|
|
262
|
+
Once you add frontmatter to your hunts, AI can:
|
|
263
|
+
|
|
264
|
+
- Filter: "Show me all Windows persistence hunts"
|
|
265
|
+
- Analyze: "What's our hunt success rate by tactic?"
|
|
266
|
+
- Discover: "Which T1003 sub-techniques have we hunted?"
|
|
267
|
+
- Track: "Find hunts related to H-0015"
|
|
268
|
+
|
|
269
|
+
## Step 5: Connect Tools (Level 3 - Optional)
|
|
270
|
+
|
|
271
|
+
Level 3 is about giving AI the ability to execute queries and interact with your security stack.
|
|
272
|
+
|
|
273
|
+
### Choose Your First Integration
|
|
274
|
+
|
|
275
|
+
Start with the tool you use most frequently:
|
|
276
|
+
|
|
277
|
+
- **Splunk:** [integrations/quickstart/splunk.md](../integrations/quickstart/splunk.md)
|
|
278
|
+
- **Other tools:** Browse [integrations/MCP_CATALOG.md](../integrations/MCP_CATALOG.md)
|
|
279
|
+
|
|
280
|
+
### Setup Process
|
|
281
|
+
|
|
282
|
+
1. **Find the MCP server** for your tool
|
|
283
|
+
2. **Follow the quickstart guide** for configuration
|
|
284
|
+
3. **Test with a simple query** (e.g., "Search for failed SSH logins in the past hour")
|
|
285
|
+
4. **Verify AI can execute** the query and return results
|
|
286
|
+
|
|
287
|
+
### Success Criteria
|
|
288
|
+
|
|
289
|
+
You're at Level 3 when:
|
|
290
|
+
|
|
291
|
+
- Claude can execute queries in your SIEM without copy-paste
|
|
292
|
+
- AI enriches findings with threat intel automatically
|
|
293
|
+
- Tickets are created with full context
|
|
294
|
+
|
|
295
|
+
**Time investment:** 2-4 weeks depending on tool availability and complexity.
|
|
296
|
+
|
|
297
|
+
**Detailed examples:** See [../integrations/README.md](../integrations/README.md)
|
|
298
|
+
|
|
299
|
+
## Step 6: Deploy Agents (Level 4 - Optional)
|
|
300
|
+
|
|
301
|
+
Level 4 is for teams ready to move from reactive assistance to proactive automation.
|
|
302
|
+
|
|
303
|
+
### Planning Your Agent Architecture
|
|
304
|
+
|
|
305
|
+
Before building agents, define:
|
|
306
|
+
|
|
307
|
+
1. **What should agents monitor?** (CTI feeds, internal alerts, anomaly detection)
|
|
308
|
+
2. **What should they generate?** (Draft hunts, enriched tickets, summary reports)
|
|
309
|
+
3. **Where do humans review?** (Approval gates, validation checkpoints)
|
|
310
|
+
4. **What are the guardrails?** (No auto-execution, human-in-the-loop, logging)
|
|
311
|
+
|
|
312
|
+
### Choose an Agent Framework
|
|
313
|
+
|
|
314
|
+
- **LangGraph** - Best for stateful, multi-step workflows
|
|
315
|
+
- **CrewAI** - Best for role-based agent teams
|
|
316
|
+
- **AutoGen** - Best for conversational patterns
|
|
317
|
+
- **Custom** - Build exactly what you need
|
|
318
|
+
|
|
319
|
+
### Start Small
|
|
320
|
+
|
|
321
|
+
Don't build a full agent pipeline on day one:
|
|
322
|
+
|
|
323
|
+
1. **First agent:** CTI monitor that flags new TTPs
|
|
324
|
+
2. **Second agent:** Hypothesis generator that creates draft hunts
|
|
325
|
+
3. **Third agent:** Notifier that alerts your team
|
|
326
|
+
|
|
327
|
+
**Time investment:** 1-3 months with custom development.
|
|
328
|
+
|
|
329
|
+
**Detailed examples:** See [level4-agentic-workflows.md](level4-agentic-workflows.md)
|
|
330
|
+
|
|
331
|
+
## CLI Quick Reference
|
|
332
|
+
|
|
333
|
+
If you installed the CLI (Option A), here are the most useful commands:
|
|
334
|
+
|
|
335
|
+
### Hunt Management
|
|
336
|
+
|
|
337
|
+
```bash
|
|
338
|
+
# Create hunts
|
|
339
|
+
athf hunt new # Interactive mode
|
|
340
|
+
athf hunt new --technique T1003.001 --title "LSASS Dumping"
|
|
341
|
+
|
|
342
|
+
# List and search
|
|
343
|
+
athf hunt list # All hunts
|
|
344
|
+
athf hunt list --status completed # Filter by status
|
|
345
|
+
athf hunt list --platform windows # Filter by platform
|
|
346
|
+
athf hunt search "kerberoasting" # Full-text search
|
|
347
|
+
|
|
348
|
+
# Validation and stats
|
|
349
|
+
athf hunt validate # Validate all hunts
|
|
350
|
+
athf hunt validate H-0001 # Validate specific hunt
|
|
351
|
+
athf hunt stats # Show statistics
|
|
352
|
+
athf hunt coverage # MITRE ATT&CK coverage
|
|
353
|
+
```
|
|
354
|
+
|
|
355
|
+
### Workspace Initialization
|
|
356
|
+
|
|
357
|
+
```bash
|
|
358
|
+
athf init # Interactive setup
|
|
359
|
+
athf init --non-interactive # Use defaults
|
|
360
|
+
```
|
|
361
|
+
|
|
362
|
+
**Full documentation:** [CLI Reference](CLI_REFERENCE.md)
|
|
363
|
+
|
|
364
|
+
## Next Steps
|
|
365
|
+
|
|
366
|
+
**At Level 1:**
|
|
367
|
+
|
|
368
|
+
- Document 5-10 hunts (use `athf hunt new` or manual markdown)
|
|
369
|
+
- Establish a hunt numbering convention (CLI handles this automatically)
|
|
370
|
+
- Train team on LOCK pattern
|
|
371
|
+
- Optional: Run `athf hunt validate` to ensure consistency
|
|
372
|
+
|
|
373
|
+
**At Level 2:**
|
|
374
|
+
|
|
375
|
+
- Customize AGENTS.md for your environment
|
|
376
|
+
- Use AI to search past hunts (or `athf hunt search` for CLI users)
|
|
377
|
+
- Generate hypotheses based on lessons learned
|
|
378
|
+
- Optional: Use `athf hunt stats` and `athf hunt coverage` to identify gaps
|
|
379
|
+
|
|
380
|
+
**At Level 3:**
|
|
381
|
+
|
|
382
|
+
- Connect your most-used tool (Splunk, CrowdStrike, etc.)
|
|
383
|
+
- Run a full hunt with AI executing queries (AI can use `athf hunt new` to document results)
|
|
384
|
+
- Measure time saved vs. manual execution
|
|
385
|
+
|
|
386
|
+
**At Level 4:**
|
|
387
|
+
|
|
388
|
+
- Deploy one monitoring agent (agents can use `athf hunt new --non-interactive` to create hunts autonomously)
|
|
389
|
+
- Review agent-generated drafts (use `athf hunt validate` for automated checks)
|
|
390
|
+
- Iterate on guardrails and approval gates
|
|
391
|
+
|
|
392
|
+
## Common Questions
|
|
393
|
+
|
|
394
|
+
**Q: Do I need to implement all levels?**
|
|
395
|
+
A: No. Most teams will live at Levels 1-2. Levels 3-4 are optional maturity.
|
|
396
|
+
|
|
397
|
+
**Q: How long does it take to get started?**
|
|
398
|
+
A: Level 1 can be operational in a day. Level 2 takes about a week. Levels 3-4 depend on your technical capability and available tools.
|
|
399
|
+
|
|
400
|
+
**Q: Can I customize the LOCK pattern?**
|
|
401
|
+
A: Yes! Adapt it to your methodology. The structure is a starting point, not a prescription.
|
|
402
|
+
|
|
403
|
+
**Q: What if we use a different hunting methodology (PEAK, TaHiTI)?**
|
|
404
|
+
A: ATHF works with any methodology. LOCK is the documentation layer, not a replacement for your existing process.
|
|
405
|
+
|
|
406
|
+
**Q: Do I need to use the CLI?**
|
|
407
|
+
A: No. The CLI is optional convenience tooling. You can achieve all maturity levels (1-4) using just markdown files. The framework structure (hunts/, LOCK pattern, AGENTS.md) is what enables AI assistance, not the CLI.
|
|
408
|
+
|
|
409
|
+
**Q: Can I use the CLI with my existing hunt files?**
|
|
410
|
+
A: Yes! The CLI commands (`athf hunt list`, `athf hunt search`, `athf hunt validate`) work with any markdown files in the hunts/ directory, whether created manually or via CLI.
|
|
411
|
+
|
|
412
|
+
## Need Help?
|
|
413
|
+
|
|
414
|
+
- Browse [docs/](.) for detailed guides
|
|
415
|
+
- Check [integrations/](../integrations/) for tool-specific setup
|
|
416
|
+
- Review [hunts/](../hunts/) for example hunts
|
|
417
|
+
- Open an issue on [GitHub](https://github.com/Nebulock-Inc/agentic-threat-hunting-framework/issues)
|
|
418
|
+
|
|
419
|
+
Happy thrunting!
|