Security incident triage helper built during a weekend hackathon. We cluster noisy SOC logs, surface high-signal clusters, and generate concise AI-guided playbooks to accelerate analyst response.
- Ingests security events, clusters related activity, and surfaces severity/confidence with stats.
- Generates AI analyses (structured, rapid, IOC, timeline, risk, detection) via local Ollama LLM.
- Caches AI outputs per cluster/method with a one-click “Regenerate” option.
- Exports clusters to CSV for sharing and downstream work.
- Frontend: React (soc-triage-web) with rich markdown rendering and analysis viewer.
- Backend: Node/Express + MongoDB for events, clusters, and cached AI analyses.
- LLM: Local Ollama endpoint (default model
mistral, override withOLLAMA_MODEL).
- Building the Frontend
cd soc-triage-web
npm install
npm run build
# generates a static html and js file for optimized production builds
- Backend
cd backend
npm install
cp .env.example .env # create if missing
# set MONGO_URI, OLLAMA_URL (e.g., http://localhost:11434), OLLAMA_MODEL, PORT
node app.js
# this starts the app on localhost port 5000
- Regenerate clusters: POST
/api/clusters/regenerateor use UI button. - Analyze a cluster: UI “🤖 Analyze with AI” → GET
/api/clusters/:id/analyze?method=standard|rapid|ioc|timeline|risk|detection. - Force refresh analysis: add
regenerate=trueto the analyze endpoint or click “🔄 Regenerate” in the panel.
- Ollama must be running locally to generate analyses; cached responses still serve if available.
- Caching lives in MongoDB (
ai_analyses+analysis_timestampsper cluster). - Build for prod:
npm run buildinsoc-triage-weband serve thebuild/folder via Express static hosting (already wired inbackend/app.js).
MIT