آشکارساز متنباز سوءاستفاده از CI/CD با کمک LLM
خلاصهٔ کاملتر
به گفتهٔ Help Net Security، پروژهٔ متنباز CI/CD Abuse Detector از یه مدل زبانی بزرگ استفاده میکنه تا تغییرهای مشکوک تو پایپلاینهای CI/CD، ورکفلوها و پیکربندیهای اتوماسیون رو علامت بزنه. این ریپازیتوری تمپلیتهای آمادهٔ drop-in برای GitHub Actions، GitLab CI و Azure DevOps داره.
پروژه یه زنجیرهٔ حملهٔ رایج تو کامپرومایز زنجیرهٔ تأمین نرمافزار رو هدف گرفته: اعتبارنامهٔ دزدیدهشدهٔ توسعهدهنده برای پوشکردن تغییر به فایلهای ورکفلو استفاده میشه و اون ورکفلوها بعد سکرتهای ذخیرهشده تو محیط CI رو برمیدارن. هدف آشکارساز اینه که این دستکاریها رو موقع کد ریویو و قبل از اینکه ورکفلوی تغییریافته اجرا بشه بگیره.
نویسنده توضیح میده که تحلیل تو شش مرحله انجام میشه. اول فایلهای تغییریافتهٔ یه pull request با الگوهای مسیر برای پیکربندیهای CI/CD، build، release و packaging مچ میشن. فایلهای منطبق جداجدا diff میشن و هر diff به ۱۰٬۰۰۰ کاراکتر محدود میشه تا جلوی تلاش برای دور زدن با مخفیکردن تغییر مخرب لای انبوهی از تغییرات بیخطر گرفته بشه. بعد یه مرحلهٔ پیشغربال با قواعد regex و متادیتا، برچسبهای زمینهای به هر diff میچسبونه.
بعد diff و برچسبهاش از طریق رابط خط فرمان Claude Code به Claude فرستاده میشن که محتوا رو در برابر یه threat model متمرکز روی «برداشت سکرت» تحلیل میکنه و verdictها هم طبق یه اسکیمای JSON مشخص برمیگردن. گزینههای خروجی شامل خلاصهٔ مرحلهٔ GitHub، ایشوی ریپازیتوری، اعلان Slack با webhook و ارسال verdict به Elasticsearch هستن، اون هم وقتی شدت به آستانهٔ تنظیمشده برسه. یه fail gate اختیاری هم میتونه وقتی شدت از یه آستانهٔ جدا بالاتر بره، pull request رو بلاک کنه؛ ولی رفتار پیشفرض فقط هشداره.
برای راهاندازی، تیمها سه فایل رو تو ریپوشون کپی میکنن: یه فایل YAML ورکفلو، یه فایل markdown پرامپت و یه اسکیمای JSON برای فرمت verdict. احراز هویت هم یا به کلید API انتروپیک نیاز داره یا برای استقرار سازمانی، یه جفت URL اندپوینت Foundry و کلید API که بهعنوان repository secret ذخیره میشن. چند متغیر محیطی هم رفتار رو تنظیم میکنن؛ مثلاً CI_CD_ABUSE_ALERT_THRESHOLD حداقل شدت برای هشدار (پیشفرض high)، CI_CD_ABUSE_FAIL_ON_SEVERITY آستانهٔ بلاککردن (بهطور پیشفرض خالی، یعنی حالت فقطهشدار) و CI_CD_ABUSE_INCLUDE_PUSHES که تحلیل پوشهای مستقیم به main و master رو فعال میکنه (پیشفرض true). پیشپردازش تو تمپلیتها به bash، jq و grep تکیه داره و تنها وابستگی تحلیلیِ اضافهشده به محیط CI، همون Claude Code CLI نصبشده با Node هست.
نویسنده تأکید میکنه که این ریپازیتوری یه نمونهٔ اولیه (prototype) و پیادهسازی مرجعه که به پژوهش Elastic Security Labs با عنوان «Detecting CI/CD pipeline abuse with LLM-augmented analysis» گره خورده. Elastic خودش میگه این پروژه بیرون کاتالوگ محصولات رسمیشه، پشتیبانی محدودی داره و نقشهٔ راه ثابتی هم براش تعریف نشده. ابزار بهرایگان روی GitHub (با نام elastic/cicd-abuse-detector) در دسترسه.
نکات کلیدی:
- CI/CD Abuse Detector با یه LLM تغییرهای مشکوک ورکفلوهای CI/CD رو موقع کد ریویو و قبل از اجرا میگیره
- هدفش گرفتن حملهٔ زنجیرهٔ تأمینه: اعتبارنامهٔ دزدیدهشده که ورکفلو رو برای برداشت سکرت دستکاری میکنه
- تحلیل تو شش مرحله انجام میشه و diffها از طریق Claude Code CLI به Claude فرستاده میشن؛ verdict طبق اسکیمای JSON برمیگرده
- تمپلیت آمادهٔ GitHub Actions، GitLab CI و Azure DevOps داره و بهطور پیشفرض فقط هشدار میده (fail gate اختیاریه)
- پروژه یه prototype از Elastic Security Labs هست و بهرایگان روی GitHub در دسترسه




