Add SOC IR Playbook Library web application with MITRE ATT&CK integration - #2
Draft
vector1one wants to merge 4 commits into
Draft
Add SOC IR Playbook Library web application with MITRE ATT&CK integration#2vector1one wants to merge 4 commits into
vector1one wants to merge 4 commits into
Conversation
edit/delete/export) into the main project, replacing the v3.0 monolith. Update the SIEM/tool tab set: drop Security Onion and Carbon Black, keep Sysmon, OSQuery and Velociraptor, and add a new Elastic Detection Rules tab (generated as Elastic Security TOML rule definitions for the 696 steps that already had Elastic EQL queries). Active tabs trimmed from 6 to 5 across app.js, get_config.sh, Dockerfile and docker-compose.yml.
- Replace per-file JSON loading with a single SQLite-backed endpoint. init_db.py seeds all 216 library playbooks on first boot; subsequent saves/edits/deletes go through the DB (INSERT OR REPLACE / DELETE). - Add SOP tab: upload PDFs with name + category, view inline via the browser's native PDF viewer, delete from the UI. PDFs stored at /data/sops/, metadata in the sops SQLite table. - Replace all CGI shell scripts with Python3 equivalents (.py) for proper JSON + multipart-upload handling. - Dockerfile: add python3 + sqlite packages, register .py CGI handler, add Apache Alias /sops/ -> /data/sops/, switch CMD to entrypoint.sh. - docker-compose: volume changed from ./playbooks-data:/playbooks to ./app-data:/data. - app.js: remove manifest/per-file loading; single loadPlaybooks() call; new SOP state + renderSopPanel() + uploadSop() + viewSop() + delete. - index.html: add SOPs nav item and panel; update badges/subtitle. - style.css: add SOP layout, card, upload form and delete button styles.
- Unify SOPs and reference docs into a single `documents` table with a
`type` column ('sop' or 'doc'). init_db.py migrates the legacy `sops`
table on first run so existing data is preserved.
- All files now stored under /data/docs/ (one directory, two types).
Apache Alias updated from /sops/ to /docs/.
- New "Query Reference" panel (panel-docs) with categories:
Elastic EQL · Elasticsearch Detection · Velociraptor VQL · General Reference.
Upload, inline PDF view, and delete work identically to SOPs.
- load_sops.py, upload_sop.py, delete_sop.py updated to pass/filter by type.
- app.js: loadDocs(), renderDocsPanel(), viewDoc(), uploadDoc(),
confirmDeleteDoc() added; called from init().
- index.html: 🔍 Query Reference nav item + panel.
- style.css: doc-badge purple variant + nav icon.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR introduces a complete web-based SOC Incident Response Playbook Library application with MITRE ATT&CK framework integration, threat group profiles, and multi-tool/SIEM query generation support.
Key Changes
Core Application
app/app.js,app/index.html) - Full-featured playbook library interface with:Playbook Library
app/playbooks/manifest.json) - Centralized registry of all playbooks with metadata (ID, severity, MITRE techniques, related playbooks)MITRE ATT&CK Integration
app/playbooks/mitre-techniques.json) - Comprehensive MITRE ATT&CK technique referencescripts/generate-mitre-techniques.mjs,scripts/generate_mitre_group_playbooks.py) - Automated playbook generation from MITRE datascripts/generate_elastic_detection_rules.py) - Tool-specific query generationBackend & Infrastructure
load_playbooks.sh- Load playbook librarysave_playbook.sh- Create custom playbooksupdate_playbook.sh- Modify existing playbooksdelete_playbook.sh- Remove playbooksget_config.sh- Retrieve active tool configurationConfiguration & Documentation
Dockerfilewith MITRE technique generation build stageREADME.mdwith application overview.dockerignoreand.gitignorefor cleaner buildsdocker-compose.ymlfor application deploymentNotable Implementation Details
https://claude.ai/code/session_01TjKtRapWpjp13ZPwHTCMix