BLA
BLA는 오픈소스 Blue Defense MCP와 CLI로, 소프트웨어 자산을 자동 AI 리버스 엔지니어링으로부터 보호합니다
Wazuh 규칙을 붙여 브라우저에서 누락·중복·로드 문제를 확인
Paste your Wazuh custom rules and decoders and see, in your browser, what wazuh-analysisd 4.14.7 will warn about at load: rules ignored because a parent is missing or loads later, duplicate IDs, stati
보안JavaScript · DockerfileGitHub @xuxu298온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Static pre-check for Wazuh custom rules and decoders: ignored rules, missing parents, load-order traps, duplicate IDs. Browser page, CLI and MCP server. Calibrated against wazuh-analysisd 4.14.7.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
ATK Rule Pre-check for Wazuh: find ignored rules before you restart
Paste or point it at your custom Wazuh rule and decoder files. It tells you what wazuh-analysisd will report when it loads them: rules it will ignore because a parent is missing or loads later, duplicate IDs, and the mistakes that stop the manager from starting. It does not run Wazuh, reads files only, and sends nothing anywhere.
Three ways to run the same core:README 전문 보기 ↗Paste or point it at your custom Wazuh rule and decoder files. It tells you what wazuh-analysisd will report when it loads them: rules it will ignore because a parent is missing or loads later, duplicate IDs, and the mistakes that stop the manager from starting. It does not run Wazuh, reads files only, and sends nothing anywhere.
Three ways to run the same core:
node cli.js /var/ossec/etc/rules /var/ossec/etc/decodersmcp-server.jsNode.js 18 or newer. No dependencies.
git clone https://github.com/xuxu298/wazuh-rule-precheck
cd wazuh-rule-precheck
node cli.js /var/ossec/etc/rules /var/ossec/etc/decoders # text report
node cli.js --json local_rules.xml # JSON
node cli.js --v5 /var/ossec/etc/rules # Wazuh 5.0 readiness (see below)
Exit code: 2 something stops the manager, 1 rules will be ignored, 0 nothing found.
{ "mcpServers": { "wazuh-rule-precheck": { "command": "node", "args": ["/path/to/wazuh-rule-precheck/mcp-server.js"] } } }
Tools: wazuh_rule_precheck (files, wazuh_version) and wazuh_v5_readiness (files).
Or in Docker (stdio, runs with no network):
docker build -t wazuh-rule-precheck .
docker run -i --rm --network none wazuh-rule-precheck
Offline, read-only, no credentials. A Claude skill is in SKILL.md.
| Finding | What Wazuh 4.14.7 does | Message |
|---|---|---|
<field name="srcip"> or any of the 17 static fields | rejects the file, manager does not start | Field 'srcip' is static + CRITICAL (1220) |
| XML not well formed | rejects the file, manager does not start | (1226) … XMLERR |
decoder <parent> that does not exist | configuration error, manager does not start | (2101) |
if_sid missing, or defined only later in the load order | drops it; with none left, ignores the rule | (7617), (7619) |
if_matched_sid missing | ignores the rule | (7620) |
if_group matching no rule loaded so far | ignores the rule | (7610) |
rule ID already loaded, no overwrite="yes" | keeps the first one | (7612) |
overwrite="yes" on an ID that does not exist | loads it as a new rule | (7613) |
Load order matters: Wazuh loads the stock rule files and your files from etc/rules together, sorted by file name, and a parent must already be loaded when its child is read. etc/rules/0010-my_rules.xml with <if_sid>5715</if_sid> is ignored, because it sorts before 0095-sshd_rules.xml; the same rule in local_rules.xml loads.
Each finding was produced first by the real wazuh-analysisd -t 4.14.7 on a test file, then predicted from the same file: 15 cases, 15 matches (node test/test-calib.js, cases in test/cases/). That includes how if_group matches: a case-insensitive substring of a loaded rule's groups, with | alternatives and ^ anchors, the way OS_WordMatch does it.
On the public SOCFortress Wazuh-Rules set (69 rule files, 6 decoder files), wazuh-analysisd -t printed 52 warnings of these kinds and this tool found 55. The 3 extra are real: wazuh-analysisd keeps only the last 50 load messages (ERRORLIST_MAXSIZE 50 in src/analysisd/logmsg.h, oldest dropped first). With 60 broken rules in one file, -t and ossec.log named only the last 25 (test/cases/cap50). On a large ruleset, some ignored rules never show up in the logs.
--v5)Wazuh 5.0 does not load XML rules or decoders and ships no converter. --v5 lists, per rule and decoder, the elements that the 5.0 migration guides (wazuh/wazuh v5.0.0-beta5, docs/guide/migration/rules-4x-to-5x.md and xml-decoders-migration.md) mark as unsupported: rule chaining (if_sid, if_group, if_level), correlation (frequency, if_matched_*, same_*), CDB <list>, <time>, pcre2, <plugin_decoder>, <accumulate/> and others. Based on the 5.0 migration guide, not run on a 5.0 engine. A pre-release can change before GA.
It knows only the files you give it and the stock ruleset index for the chosen version (4.14.7 for now). Rules in files you did not pass are invisible to it. It does not run Wazuh: it does not test regex syntax, decoder extraction, CDB lists (7616), rule matching on real events, or whether a rule ever fires. Stock groups are treated as always loaded.
data/stock-4.14.7.json holds metadata only: stock rule file names and the rule IDs in each, rule group names, decoder names, and the list of static field names. It was extracted from the ruleset/ directory of wazuh/wazuh at tag v4.14.7; the static field list comes from src/analysisd/rules.c at the same tag. The Wazuh ruleset is © Wazuh, Inc. and licensed under GPLv2. No rule or decoder text (regex, match, description) is copied into this repository.
Apache-2.0 for the code in this repository. See LICENSE.
Built by Dong Nguyen, ATK New Technology. If a rule still does not do what you need, we fix Wazuh rules for people who run it: https://atkvn.com/wazuh-rule-precheck.html