deadair؛ کدوم رولهای SIEM کور شدن؟
خلاصهٔ کاملتر
تو صفحهٔ پروژه اومده که یه رول تشخیص میتونه فعال باشه، زمانبندیشده باشه و هیچ خطایی هم نده، ولی دادهای که قراره روش کار کنه اصلاً نرسیده باشه. deadair یه ابزار متنبازه که با Go نوشته شده و دقیقاً همینو میگیره: اینونتوری زندهٔ رولها رو میخونه، ورودی هر رول رو با منطق خود بکاند resolve میکنه (یعنی از خود Elastic یا OpenSearch میپرسه این الگوی ایندکس به چی میخوره) و بعد سراغ منابع واقعی داده میره.
چهار جور مشکل رو علامت میزنه: رولی که ایندکس یا alias یا data stream ـش به هیچ منبعی نمیخوره؛ رولی که همهٔ منابع منطبقش خالی یا بیات شدن؛ رولی که فیلدهای اعلامشدهش تو مپینگ نیست یا تأخیر ingest ـش از حاشیهٔ lookback بیشتر شده و یه پنجرهٔ کور درست کرده؛ و حالت برعکس، یعنی دادهای که سالم ذخیره میشه ولی هیچ رول فعالی نمیخونتش.
کارش چهار مرحلهست: Inventory، Resolve، Measure و Report. تو مرحلهٔ Measure تعداد داکیومنت، تازهترین رویداد، مپینگ فیلدها، تاریخچهٔ اسکیما و تأخیر ingest رو اندازه میگیره و آخرش خروجی رو به شکل ترمینال، JSON، HTML، رولآپ ناوگانی و متریک Prometheus بیرون میده، همراه شواهد پشت هر حکم. سازنده صریح میگه این ابزار فقط ثابت میکنه پیشنیازهای دادهٔ یه رول موجود و سالمه، نه اینکه منطق رول درسته؛ برای اون باید تست end-to-end بذاری کنارش.
برای CI و چند سرور هم زیرفرمان داره: یه رول کاندید رو جدا از بکلاگ میسنجه، دو گزارش رو با هم مقایسه میکنه تا فقط رگرسیون جدید بیلد رو بشکنه، و میتونه نتیجه رو به شکل متریک سرو کنه.
deadair scan --rule new-rule.json
deadair diff yesterday.json today.json
deadair scan --fleet fleet.json
deadair serve --interval 5m
کدهای خروجی (exit code) هم ثابتن: 0 یعنی سالم، 1 یعنی finding داره و 2 یعنی خود اسکن شکست خورده. از نظر امنیتی، دسترسی به بکاند فقط خوندنیه، فایلهای گزارش و state با دسترسی 0600 نوشته میشن، سوییچ --redact اسم تننت و رول و منبع رو با هش پایدار جایگزین میکنه و اکسپورتر هم پیشفرض فقط روی loopback گوش میده. تو CI فعلاً Elastic Security نسخهٔ 8.19.19 و 9.4.4 و OpenSearch Security Analytics نسخهٔ 2.19.6 و 3.7.0 تست میشن.
نکات کلیدی:
- با Elastic Security و OpenSearch Security Analytics کار میکنه؛ نسخههای تستشده تو CI: 8.19.19 و 9.4.4 و 2.19.6 و 3.7.0
- چهار یافتهٔ اصلی: منبع منطبق نداره، همهٔ منابع بیات/خالیان، فیلد گمشده یا پنجرهٔ کور تأخیر، و تلهمتری بیمصرف
- exit code های ثابت: 0 سالم، 1 یافته، 2 شکست اسکن؛ مناسب گیت CI
- خروجی ترمینال، JSON، HTML، رولآپ ناوگانی و متریک Prometheus
- بدون ایجنت و بدون ارسال تلهمتری؛ گزارشها خودشون آرتیفکت حساس SOC حساب میشن
- لایسنس Apache-2.0 و نصب با go install




