Back to skill

Security audit

Suricata IDS Monitor

Security checks for vulnerabilities and agentic risk

Overview

This skill performs useful Suricata alert reporting, but its local-only privacy claims conflict with Telegram delivery, credential use, memory writes, and scheduled recurring execution.

Install only after reviewing and narrowing the data flows. Treat Suricata logs and generated reports as sensitive. Do not rely on the local-only privacy claim unless Telegram delivery, memory writes, and cron scheduling are removed or made explicit opt-in, and prefer group or ACL-based log access instead of chmod 644.

Vulnerability Patterns
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
Findings (2)

T09 · Insecure Skill Coding Practices

Warning
Location
SKILL.md:124
Finding

Undisclosed Transmission of Sensitive Suricata Telemetry to Telegram

Content
View full analysis
Remediation
View remediation

T05 · Unauthorized Access and Privilege Escalation

Warning
Location
SKILL.md:27
Finding

Suricata Log Made Readable by All Local Users

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • YARA SignaturesMalware Match, Webshell Match, Cryptominer Match
Findings (15)

YARA rule 'agent_skill_credential_exfiltration_webhook': AI agent skill credential harvesting followed by webhook or external exfiltration [agent_skills]

Critical
Category
YARA Match
Confidence
86% confidence
Finding

The combination of reading environment-stored bot credentials and immediately sending report contents to a webhook-like external endpoint matches a strong exfiltration pattern. Although the apparent purpose is notification rather than overt credential theft, in this context it still creates an externally connected channel that can move sensitive IDS-derived data off-host under misleading local-only claims.

Content

Scanner excerpt · SKILL.md (reported line 129)May include surrounding context.

cata rule for: [top signature] [ ] If RED posture: run eva-security-audit skill

STATUS: [GREEN/YELLOW/RED] GREEN = 0 critical, <10 high in 24h YELLOW = 1–5 critical OR 10–50 high RED = >5 critical OR >50 high OR C2/exploit signatures detected

text

### 4. Deliver

**To Telegram** (use telegram-notifier skill):
```python
# After building the report string above:
import os, requests
requests.post(
    f"https://api.telegram.org/bot{os.environ['TELEGRAM_BOT_TOKEN']}/sendMessage",
    json={"chat_id": os.environ['TELEGRAM_CHAT_ID'], "text": report},
    timeout=10
)

To memory:

bash
echo "[report]" >> memory/$(date +%Y-%m-%d).md

Schedule daily monitoring

bash
openclaw cron add \
  --name "suricata-monitor:daily" \
  --cron "0 7 * * *" \
  --prompt "Run the suricata-monitor skill. Look back 24 hours. Send report to Telegram and append to today's memory file."

Signature categories to watch

| Category | Severity | Action | |----------|

Description-Behavior Mismatch

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

The skill is presented as a read-only analyzer, but it also documents writing reports to memory files and installing a scheduled cron job. Hidden write and persistence behaviors undermine least surprise and can cause unauthorized state changes or repeated execution beyond the user's intended one-time analysis.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

High
Category
Not specified by scanner
Confidence
99% confidence
Finding

The documentation explicitly says 'No data leaves your machine' and 'Reads /var/log/suricata/eve.json only,' but later instructions contradict both claims by sending reports to Telegram and appending data to local memory files. This is a significant trust and transparency failure that can lead operators to expose sensitive IDS findings under a false privacy guarantee.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill is presented as a read-only analyzer, but it also documents writing reports to memory files and installing a scheduled cron job. Hidden write and persistence behaviors undermine least surprise and can cause unauthorized state changes or repeated execution beyond the user's intended one-time analysis.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The description says to use the skill for an "automated threat intelligence snapshot," "after a scan triggers alerts," or as a "daily security briefing module," but it does not define explicit trigger phrases or exclusion conditions. In a manifest/markdown context, this breadth makes activation scope ambiguous and could cause unintended invocation in general security-analysis conversations.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The documentation includes commands to relax log permissions and later transmit report contents externally, but it does not warn users about confidentiality, integrity, or privilege implications. Lowering permissions on IDS logs can expose sensitive telemetry to more local users, and external transmission can leak internal network indicators.

Content

No source excerpt is available for this finding.

Sudo/Root Execution

Medium
Category
Privilege Escalation
Confidence
93% confidence
Finding

The specific recommendation to set mode 644 on eve.json is unsafe because it makes a security log globally readable. In context, the file may contain sensitive incident and network data, so this permission change can expose information to unintended local principals.

Content

Scanner excerpt · SKILL.md (reported line 30)May include surrounding context.

If the log is permission-denied:

bash
sudo chmod 644 /var/log/suricata/eve.json

Sudo/Root Execution

Medium
Category
Privilege Escalation
Confidence
93% confidence
Finding

The specific recommendation to set mode 644 on eve.json is unsafe because it makes a security log globally readable. In context, the file may contain sensitive incident and network data, so this permission change can expose information to unintended local principals.

Content

Scanner excerpt · SKILL.md (reported line 30)May include surrounding context.

If the log is permission-denied:

bash
sudo chmod 644 /var/log/suricata/eve.json

Sudo/Root Execution

Medium
Category
Privilege Escalation
Confidence
70% confidence
Finding

Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.

Content

Scanner excerpt · SKILL.md (reported line 97)May include surrounding context.

md
Alerts: X total  |  Critical: X  High: X  Medium: X  Low: X

TOP ATTACKER IPs
  1. [ip]  — X hits  (Block: sudo ufw deny from [ip])
  2. ...

TOP SIGNATURES

Sudo/Root Execution

Medium
Category
Privilege Escalation
Confidence
70% confidence
Finding

Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.

Content

Scanner excerpt · SKILL.md (reported line 112)May include surrounding context.

md
Alerts: X total  |  Critical: X  High: X  Medium: X  Low: X

TOP ATTACKER IPs
  1. [ip]  — X hits  (Block: sudo ufw deny from [ip])
  2. ...

TOP SIGNATURES

Sudo/Root Execution

Medium
Category
Privilege Escalation
Confidence
70% confidence
Finding

Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.

Content

Scanner excerpt · SKILL.md (reported line 113)May include surrounding context.

md
Alerts: X total  |  Critical: X  High: X  Medium: X  Low: X

TOP ATTACKER IPs
  1. [ip]  — X hits  (Block: sudo ufw deny from [ip])
  2. ...

TOP SIGNATURES

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The skill accesses Telegram bot credentials from environment variables even though its advertised scope is local log analysis. Pulling credentials into scope for an unnecessary external-send path increases the blast radius: a skill trusted for local inspection can become a bridge for outbound transmission using privileged secrets already present in the environment.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
97% confidence
Finding

This code posts the generated Suricata report to Telegram, creating a clear outbound data channel from sensitive IDS telemetry to a third-party service. In the context of a skill advertised as local-only, the external send materially increases risk of unintended disclosure of attacker IPs, internal destination IPs, ports, and detection details.

Content

Scanner excerpt · SKILL.md (reported line 129)May include surrounding context.

python
# After building the report string above:
import os, requests
requests.post(
    f"https://api.telegram.org/bot{os.environ['TELEGRAM_BOT_TOKEN']}/sendMessage",
    json={"chat_id": os.environ['TELEGRAM_CHAT_ID'], "text": report},
    timeout=10

External Transmission

Medium
Category
Data Exfiltration
Confidence
94% confidence
Finding

The explicit Telegram API endpoint confirms that the skill is designed to send data to an external service. Given the surrounding false privacy assurances, this is more dangerous than a normal notifier because operators may not realize alert data leaves the host.

Content

Scanner excerpt · SKILL.md (reported line 130)May include surrounding context.

md
# After building the report string above:
import os, requests
requests.post(
    f"https://api.telegram.org/bot{os.environ['TELEGRAM_BOT_TOKEN']}/sendMessage",
    json={"chat_id": os.environ['TELEGRAM_CHAT_ID'], "text": report},
    timeout=10
)

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The cron-based self-scheduling capability extends the skill from passive analysis into persistence and repeated autonomous execution. In security-sensitive environments, unattended recurrence can amplify mistakes, create noisy or unwanted outbound activity, and make the skill harder to audit or contain.

Content

No source excerpt is available for this finding.