Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Configures host-based intrusion detection systems (HIDS) to monitor endpoint file integrity, system calls, and configuration changes for security violations. Use when deploying OSSEC, Wazuh, or AIDE for endpoint monitoring, building file integrity monitoring (FIM) policies, or meeting compliance requirements for change detection. Activates for requests involving HIDS configuration, file integrity monitoring, OSSEC/Wazuh deployment, or host-based detection.
.claude/skills/configuring-host-based-intrusion-detection/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | — | — |
| case-11 | ✗→✓ | ▲ Improved | — | — |
| case-06 | ✗→✓ | ▲ Improved | — | — |
| case-10 | ✗→✓ | ▲ Improved | — | — |
| case-02 | ✗→✓ | ▲ Improved | — | — |
Use this skill when:
Do not use this skill for network-based IDS (Suricata, Snort) or for EDR deployment.
Windows:
powershell# Download and install Wazuh agent Invoke-WebRequest -Uri "https://packages.wazuh.com/4.x/windows/wazuh-agent-4.9.0-1.msi" ` -OutFile "wazuh-agent.msi" msiexec /i wazuh-agent.msi /q WAZUH_MANAGER="wazuh-manager.corp.com" ` WAZUH_REGISTRATION_SERVER="wazuh-manager.corp.com" WAZUH_AGENT_GROUP="windows-workstations" net start WazuhSvc
Linux (Debian/Ubuntu):
bashcurl -s https://packages.wazuh.com/key/GPG-KEY-WAZUH | gpg --dearmor -o /usr/share/keyrings/wazuh.gpg echo "deb [signed-by=/usr/share/keyrings/wazuh.gpg] https://packages.wazuh.com/4.x/apt/ stable main" \ > /etc/apt/sources.list.d/wazuh.list apt-get update && apt-get install wazuh-agent -y sed -i 's/MANAGER_IP/wazuh-manager.corp.com/' /var/ossec/etc/ossec.conf systemctl daemon-reload && systemctl enable --now wazuh-agent
Edit agent configuration (/var/ossec/etc/ossec.conf or C:\Program Files (x86)\ossec-agent\ossec.conf):
xml<syscheck> <!-- Scan frequency: every 12 hours --> <frequency>43200</frequency> <scan_on_start>yes</scan_on_start> <alert_new_files>yes</alert_new_files> <!-- Linux critical directories --> <directories check_all="yes" realtime="yes">/etc</directories> <directories check_all="yes" realtime="yes">/usr/bin</directories> <directories check_all="yes" realtime="yes">/usr/sbin</directories> <directories check_all="yes" realtime="yes">/bin</directories> <directories check_all="yes" realtime="yes">/sbin</directories> <directories check_all="yes">/boot</directories> <!-- Windows critical directories --> <directories check_all="yes" realtime="yes">C:\Windows\System32</directories> <directories check_all="yes" realtime="yes">C:\Windows\SysWOW64</directories> <directories check_all="yes" realtime="yes">%PROGRAMFILES%</directories> <!-- Windows registry monitoring --> <windows_registry>HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run</windows_registry> <windows_registry>HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce</windows_registry> <windows_registry>HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services</windows_registry> <!-- Ignore frequently changing files --> <ignore>/etc/mtab</ignore> <ignore>/etc/resolv.conf</ignore> <ignore type="sregex">.log$</ignore> </syscheck>
xml<rootcheck> <disabled>no</disabled> <frequency>43200</frequency> <rootkit_files>/var/ossec/etc/shared/rootkit_files.txt</rootkit_files> <rootkit_trojans>/var/ossec/etc/shared/rootkit_trojans.txt</rootkit_trojans> <system_audit>/var/ossec/etc/shared/system_audit_rcl.txt</system_audit> <check_dev>yes</check_dev> <check_files>yes</check_files> <check_if>yes</check_if> <check_pids>yes</check_pids> <check_ports>yes</check_ports> <check_sys>yes</check_sys> <check_trojans>yes</check_trojans> <check_unixaudit>yes</check_unixaudit> </rootcheck>
xml<!-- Custom rules in /var/ossec/etc/rules/local_rules.xml --> <group name="local,syscheck,"> <!-- Alert on critical binary modifications --> <rule id="100001" level="12"> <if_sid>550</if_sid> <match>/usr/bin/|/usr/sbin/|/bin/|/sbin/</match> <description>Critical system binary modified: $(file)</description> <group>syscheck,pci_dss_11.5,</group> </rule> <!-- Alert on new executable in temp directories --> <rule id="100002" level="10"> <if_sid>554</if_sid> <match>/tmp/|/var/tmp/</match> <description>New file created in temp directory: $(file)</description> <group>syscheck,malware,</group> </rule> <!-- Alert on SSH configuration changes --> <rule id="100003" level="10"> <if_sid>550</if_sid> <match>/etc/ssh/sshd_config</match> <description>SSH configuration modified</description> <group>syscheck,authentication,</group> </rule> </group>
xml<!-- Auto-block IP after repeated authentication failures --> <active-response> <command>firewall-drop</command> <location>local</location> <rules_id>5712</rules_id> <timeout>600</timeout> </active-response> <!-- Disable account after brute force detection --> <active-response> <disabled>no</disabled> <command>disable-account</command> <location>local</location> <rules_id>100100</rules_id> <timeout>3600</timeout> </active-response>
# Wazuh to Splunk via Filebeat
# Edit /etc/filebeat/filebeat.yml:
filebeat.inputs:
- type: log
paths:
- /var/ossec/logs/alerts/alerts.json
json.keys_under_root: true
output.elasticsearch:
hosts: ["https://splunk-hec:8088"]
# Wazuh to Elastic via direct integration
# Wazuh indexer feeds directly into OpenSearch/Elasticsearch
# Dashboard: https://wazuh-dashboard:5601| Term | Definition | |------|-----------| | HIDS | Host-based Intrusion Detection System; monitors individual endpoints for malicious activity | | FIM | File Integrity Monitoring; detects unauthorized changes to files by comparing cryptographic hashes | | Syscheck | Wazuh/OSSEC module for file integrity monitoring and registry monitoring | | Rootcheck | Wazuh/OSSEC module for rootkit and malware detection | | Active Response | Automated defensive action triggered by HIDS alert (IP block, account disable) | | CDB List | Constant Database list used for custom lookups in Wazuh rules |
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-16 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-19 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-09 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-03 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-13 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-08 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-07 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-05 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-21 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-11 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-06 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-10 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-15 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-20 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-14 | pass→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-02 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-18 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-17 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-04 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-12 | pass→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-22 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +32 percentage points is the difference between those two pass rates over the 22 comparable cases.
The per-case answers from this run were removed by the retention sweep, so the case table below shows the verdicts without the text either arm produced. The counts above were recorded at the time and are unaffected. Answers are now kept for 180 days.
Other measured skills in the registry, with their headline benchmark lift.