Threat Model Generator: مدل تهدید پروژه رو خودش مینویسه
خلاصهٔ کاملتر
تیم Alpha-Omega ابزاری به اسم Threat Model Generator منتشر کرده: مجموعهای از agent skill (یعنی دستورالعملهایی که یه عامل هوش مصنوعی مثل Claude Code لودشون میکنه) که برای یه پروژهٔ اوپنسورس، مدل تهدید مینویسه. تو مستندات پروژه اومده که خروجی در واقع «قرارداد امنیتی ضمنی» بین پروژه و کاربرهای پاییندستیه: پروژه چه فرضی دربارهٔ ورودی و محیطش داره، چه خاصیت امنیتیای رو تضمین میکنه، کدوم رو صراحتاً رد میکنه، و چی میمونه گردن کسی که ازش استفاده میکنه.
نویسندهها تأکید دارن که این اسکنر آسیبپذیری نیست و لیست فایندینگ بیرون نمیده. سند همزمان به درد دو نفر میخوره: کسی که پروژه رو تو محصولش میذاره و میخواد بدونه حالا چی گردن خودشه، و نگهدارندهای که باید تصمیم بگیره یه گزارش آسیبپذیری معتبره، بیرون از مدله، یا اصلاً رفتار عمدی پروژهست.
روند کارش draft-first هست: اول کدبیس و مستندات موجود رو میخونه، یه پیشنویس مینویسه و هر ادعا رو برچسب میزنه که از مستندات دراومده، از خود نگهدارنده، یا حدس مدل بوده. سؤالهای بازش هم موجموج میرن داخل بخش §1.18 همون سند، نه یه فایل جدا. هر بار جوابها رو بهش بدی، ادعاهای مربوطه ارتقا پیدا میکنن و سؤالها حذف میشن؛ وقتی دیگه هیچ ادعای حدسی تو سند نمونده باشه، مدل به وضعیت accepted میرسه.
برای CI هم اسکریپت new_threat_model.py رو گذاشتن که کل مسیر رو خودکار میکنه: ریپو رو کلون میکنه، اسکیلها رو نصب میکنه، یه CLI عامل (GitHub Copilot یا Claude) رو اجرا میکنه، خروجی رو اعتبارسنجی میکنه و تا چند پاس خطاها رو به خودش برمیگردونه تا خودش تعمیرشون کنه.
python new_threat_model.py --repo https://github.com/madler/zlib --out ./out/zlibیه اسکریپت دوم به اسم fetch_security_context.py هم تاریخچهٔ امنیتی پروژه رو از بیرون جمع میکنه: اعلانهای امنیتی GitHub، رکوردهای OSV.dev همراه با کامیتهای اصلاح، ایشوهای امنیتی و اونهایی که با wontfix بسته شدن، و لینک گزارشهای ممیزی روی سایت پروژه. چون متن ایشو رو هر کسی میتونه بنویسه، این فایل بهعنوان دادهٔ نامطمئن به عامل داده میشه و ازش خواسته میشه هر تلاش برای تزریق دستور رو گزارش کنه.
نکات کلیدی:
- خروجی سهتاییه: threat-model.md بهعلاوهٔ سایدکار threat-model.yaml و خروجی JSON مطابق schema.json؛ ترتیب اعتبارشون prose بعد yaml بعد json.
- ساختارش یه orchestrator داره و هفت تخصص جدا: recon، surface، interview، authoring، backtest، sidecar و triage.
- new_threat_model.py فقط با کتابخونهٔ استاندارد پایتون ۳.۹ به بالا کار میکنه و هیچ وابستگی خارجی نداره.
- فچ صفحهها ضد SSRF محافظت شده: آدرس file://، لوپبک، رنج خصوصی و endpoint متادیتای کلاود رد میشن و ریدایرکتی که هاست عوض کنه هدر Authorization رو دور میندازه.
- لایسنس MIT و بخشی از خانوادهٔ ابزارهای Alpha-Omega، کنار scrutineer.




