Skip to content

Add Insider Threat Analyst agent preset to Security category #18

Description

@ahmadvh

Context

Octochains provides built-in "preset" agents, pre-configured domain specialists designed to run in parallel pipelines. Each preset pairs a role (e.g., "CEO Agent") with a SKILL.md file defining its domain procedure.

The Security category uses these presets to analyze log and endpoint data from different angles without overlap:

  • security_threat_hunter (Merged): Focuses on external intrusions (IoCs, MITRE ATT&CK tactics).
  • insider_threat_analyst (This Issue): Focuses on internal misuse by legitimate, authenticated users.

Goal

Implement the insider_threat_analyst agent preset, following the same pattern as security_threat_hunter.

Refer to Adding a New Official Agent Preset in CONTRIBUTING.md for the setup guide.


Preset Specification

  • Role: "Insider Threat Analyst"
  • Goal: Detect anomalous behavior from authenticated users (e.g., unusual data exports, off-hours access, unauthorized exfiltration).
  • Expected Inputs: Access logs, export/download records, and privileged account activity.
  • Skill Name: insider-threat-behavioral-analysis
  • Skill Requirements:
    • Identify behavioral baseline deviations (timing, access volume).
    • Distinguish between user negligence and malicious intent (or flag if ambiguous).
    • Scope Constraint: Do NOT analyze external IoCs or unauthenticated intrusions (leave those to security_threat_hunter).

Checklist

  • Create Skill: Add src/octochains/agents/skills/security/insider-threat-behavioral-analysis/SKILL.md (include name, description, and version frontmatter).
  • Create Factory Function: Add insider_threat_analyst() to src/octochains/agents/presets.py (see cfo_agent or security_threat_hunter for reference).
  • Export Agent: Import and add insider_threat_analyst to __all__ in src/octochains/agents/__init__.py.
  • Add Tests: Update tests/test_presets.py to verify:
    • Fails fast without an llm_callable
    • Attaches the correct skill
    • Contains non-empty role and goal fields
    • Merges extra_skills correctly

First-time contributor? This is a beginner-friendly "follow the recipe" task with established patterns in the codebase. Feel free to drop a comment below if you want to discuss the skill spec before opening a PR!

Metadata

Metadata

Assignees

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions