اگر به دنبال یافتن نقصهای امنیتی در کدهای پیچیده هستید، احتمالاً میدانید که یک پرامپت ساده از مدلهای زبانی، کوهی از نتایج نادرست و «مثبت کاذب» تولید میکند. اما تصور کنید ارتشی از تحلیلگران متخصص داشته باشید که هر کدام تکه کوچکی از کد را کالبدشکافی کرده و در نهایت تنها نتایج اثباتشده را روی میز شما بگذارند.
Open-Kritt دقیقاً همین رویکرد را پیاده میکند. این ابزار پژوهش امنیتی، برخلاف ابزارهای رایج که تنها بر پرامپتهای ساده LLM تکیه میکنند، از یک سامانهٔ عاملمحور (Agentic) استفاده میکند تا چندین عامل هوش مصنوعی را برای یافتن و اعتبارسنجی فعالانهٔ حفرههای امنیتی در مخازن کد سازماندهی کند. این رویکرد یادآور دستاوردهای اخیر در این حوزه است، جایی که عامل هوش مصنوعی گیتهاب توانست ۲۴ آسیبپذیری بحرانی را در اپلیکیشنهای اندروید شناسایی کند. این ابزار متنباز و قابل میزبانی شخصی (Self-hosted) توسط پژوهشگری به نام Blockian توسعه یافته است؛ کسی که با استفاده از ابزارهای داخلی این سیستم، توانست بیش از ۱,۵۰۰,۰۰۰ دلار جایزه شکار باگ (Bug Bounty) به دست آورد. این پروژه که با زبان جاوااسکریپت نوشته شده، در مخزن اصلی خود تا همین حالا ۲۲۸۴ ستاره کسب کرده است.
بسیاری از توسعهدهندگان متوجه شدهاند که متصل کردن یک مدل زبانی بزرگ (LLM) — مثل کتابخانهداری که میلیاردها صفحه را خوانده و حالا با همان لحن کتابها جواب میدهد — به یک مخزن کد، نسبت سیگنال به نویز بسیار ضعیفی دارد. یافتهها اغلب سخت اعتبارسنجی میشوند و هیچ روش ثابتی برای رتبهبندی شدت نتایج وجود ندارد. همانطور که در تحلیلهای قبلی ما دربارهی امنیت مدلهای بازمتن اشاره کردیم، اتکای صرف به خروجی مدل بدون لایهی اعتبارسنجی، منجر به توهمات فنی میشود. Open-Kritt این مشکل را با خرد کردن پژوهش به وظایف کوچک و صریح حل میکند که توسط عاملهای موازی اجرا میشوند. به جای ارسال یک پرامپت بزرگ برای کل کدبیس، این سیستم خروجیهای عاملها را ادغام کرده و آنها را در قالب یافتههایی تبدیل میکند که تکراریهایشان حذف، رتبهبندی و قابل اعتبارسنجی شدهاند.
بر اساس مستندات پروژه که در ۱۴ اکتبر ۲۰۲۶ منتشر شد، این رویکرد به توسعهدهندگان امنیتی اجازه میدهد کنترل کاملی بر پرامپتها، جریانهای کاری (Workflows)، ارائهدهندگان مدل و زیرساخت خود داشته باشند. این ابزار بهطور خاص برای پژوهشگران امنیتی و توسعهدهندگانی طراحی شده که روشی سختگیرانهتر و دقیقتر از تحلیلهای سادهٔ چتمحور میخواهند.
قابلیتهای کلیدی
این پلتفرم یک خط لوله (Pipeline) ساختاریافته برای پژوهشهای امنیتی فراهم میکند:
- ساخت جریان کاری: کاربران میتوانند پرامپتهای متمرکز را به صورت زنجیروار به «کتابهای راهنمای» (Playbooks) پژوهش امنیتی تبدیل کنند که قابلیت استفاده مجدد دارند.
- اسکن خودکار: ابزار با استفاده از مدلهایی مثل Codex، Claude Code یا Grok Build، مخازن محلی یا راه دور و تمامی وابستگیهای آنها را تحلیل میکند.
- اعتبارسنجی یافتهها: اسکریپتهای پسپردازش (Post-scripts) وظیفه دارند نقصها را تایید کنند، مدلهای اثبات مفهوم (PoC) بسازند و گزارشهای نهایی را تولید کنند.
- خروجی ساختاریافته: نتایج در یک آرشیو ZIP بستهبندی میشوند که شامل یافتههای نرمالشده، دادههای ساختاریافته، خروجیهای پسپردازش، گزارشها و PoCها است که همگی توسط یک مانیفست (Manifest) قابل اشتراک به هم متصل شدهاند. اسکنهای تکمیلشده یک خروجی کامل تولید میکنند، در حالی که اسکنهای متوقف شده یا شکستخورده که همچنان حاوی یافته هستند، به عنوان «خروجی جزئی» (Partial Export) علامتگذاری میشوند. همچنین، گزارشها و سورسکدهای PoC که تحت تاثیر یک مهاجم بودهاند، به صورت متن ساده (Plain Text) حفظ میشوند.
- رتبهبندی نتایج: سیستم از رتبهبندهای شدت سفارشی و یک طرحواره (Schema) واحد برای یافتهها استفاده میکند تا اطمینان حاصل شود که نتایج به درستی اولویتبندی شدهاند.
یکپارچگی مدلها و راهاندازی
کاربران میتوانند دسترسی به مدلهای خود را از طریق OpenAI، Anthropic، DeepSeek، OpenRouter، xAI یا از طریق ورود به Codex فراهم کنند. پیشنیازهای فنی این استک شامل Git، Docker (همراه با Docker Compose) و Node.js نسخه ۲۰ یا بالاتر است.
برای راهاندازی، کاربران مخزن را کلون کرده و با دستور ./kritt setup کلیدهای API و روشهای ورود را تنظیم میکنند و سپس با دستور ./kritt start سامانه را روی آدرس http://localhost:5173 فعال میکنند. برای محیطهای سروری که فاقد مرورگر یا دسکتاپ هستند، رابط خط فرمان ./kritt-headless وضعیت اسکن، فازهای مختلف و دلایل شکست را نمایش میدهد، هرچند محتوای دقیق یافتههای مربوط به آسیبپذیریها را در ترمینال چاپ نمیکند.
الزامات محیطی
دقت در تنظیمات محیطی برای عملکرد صحیح ابزار حیاتی است:
- سیستمعامل: سیستمعامل خاصی ذکر نشده، اما تایید شده که روی سرورهای بدون محیط دسکتاپ به درستی اجرا میشود.
- سختافزار: در مستندات اصلی به سختافزار خاصی اشاره نشده است.
- وابستگیها: Git، Docker (با Docker Compose) و Node.js 20+.
- دسترسی به مدل: داشتن حداقل یک روش دسترسی (کلید API یا ورود به حساب) اجباری است.
- شبکه: در مستندات ترجمهشده برای کاربران چین، اشاره شده که دانلود وابستگیهای npm یا تصاویر داکر ممکن است به دلیل محدودیتها، نیاز به تغییر به یک Mirror یا منبع شتابدهنده داشته باشد.
هشدارهای امنیتی حیاتی
به دلیل اینکه این یک ابزار امنیتی است که کد اجرا میکند، مستندات بر روی چندین پیکربندی پرخطر تاکید ویژهای دارند:
- فقدان احراز هویت پیشفرض: بکاند ابزار فاقد لایه احراز هویت در سطح اپلیکیشن است و بهطور پیشفرض به 127.0.0.1 متصل میشود. این استک باید خصوصی بماند؛ قرار دادن آن در معرض اینترنت عمومی بسیار خطرناک است.
- اجرای Root: عاملهایی که ابزارهایشان فعال است، در کانتینرهای One-shot با دسترسی Root اجرا میشوند. آنها دسترسی مستقیم به اینترنت و نسخههای قابل نوشتن از مخزن کد دارند که برای نصب ابزارها، کامپایل تارگتها، اجرای تستها و ساخت PoCها ضروری است.
- الزام به ایزولاسیون: تیم توسعه بهشدت توصیه میکند که پیش از اسکن کدهای نامعتبر، ابزار روی یک میزبان داکر اختصاصی یا ماشین مجازی (VM) اجرا شود. کاربران باید ابتدا مستندات مدل تهدید (Threat Model) را مطالعه کنند.
- اعتبارنامهها: توکن گیتهاب (
GITHUB_TOKEN) اختیاری است و تنها در صورتی که نیاز به دسترسی به مخازن خصوصی گیتهاب باشد، مورد نیاز است.
دسترسی و ترجمه
یک ترجمه جدید چینی از مستندات در آدرس yangshun2005/open-kritt-cn با هدف کاهش موانع برای توسعهدهندگان غیرانگلیسیزبان منتشر شده است. برای این کاربران، مستندات انگلیسی میتواند یک مانع باشد، چرا که خواندن اشتباه حتی یک خط در جزئیات پیکربندی میتواند منجر به یک ساعت عیبیابی (Debugging) شود.
این نسخه صرفاً یک ترجمه ماشینی ساده نیست و از دو لایه متمایز تشکیل شده است:
- راهنمای شروع سریع چینی: که در ابتدای مستندات به عنوان مطالب تکمیلی قرار گرفته تا کاربران بتوانند بدون خواندن کل سند، پروژه را راهاندازی کنند.
- ترجمه وفادار: ترجمه کامل بدنه README اصلی که کاربران را به ارسال Pull Request یا Issue برای اصلاح اصطلاحات فنی مانند «یافته» (Finding)، «پساسکریپت» (Post-script) و «رتبهبند شدت» (Severity Ranker) دعوت میکند.
این ترجمه تنها یک لایه مستنداتی است؛ هسته نرمافزاری همچنان تحت لایسنس AGPL-3.0 و در مخزن اصلی Kritt-ai/open-kritt نگهداری میشود. نسخه چینی در حال حاضر ستارهای از خود ندارد و عدد ۲۲۸۴ مربوط به پروژه اصلی است.
برای یک پژوهشگر حرفهای، این تغییر به معنای حرکت به سمت «امنیت عاملمحور» است. در اینجا، Open-Kritt با هوش مصنوعی نه به عنوان یک چتبات، بلکه به عنوان نیروی کاری از تحلیلگران متخصص برخورد میکند. این رویکرد، دشواریهای دستی در تفکیک مثبتهای کاذب را کاهش داده و مسیر رسیدن به یک PoC قابل اثبات را تسریع میکند. در مقابل، استفادهی مخرب از این فناوریها نیز در حال افزایش است؛ برای مثال، گزارش Crowdstrike نشان میدهد که یک مهاجم توانست با کمک ابزارهای مبتنی بر AI به بانکهای کره نفوذ کند.
با متنباز کردن تقطیر یک استراتژی میلیون دلاری — که توسط پروفایلهای Immunefi، HackenProof، blockian.xyz و حساب @Kritt_AI در X تایید شده — این پروژه معیار جدیدی برای مقیاسپذیری تلاشهای پژوهشگران مستقل در برابر کدهای پیچیده تعریف میکند.
گام بعدی شما
- اگر پژوهشگر باگ هستید، Open-Kritt را در یک VM ایزوله نصب کنید تا ریسک اجرای کدهای نامعتبر را به صفر برسانید.
- جریانهای کاری (Playbooks) خود را بر اساس متداولترین نقصهای امنیتی در زبان مورد نظرتان طراحی کنید.
- برای کاهش هزینههای استنتاج، از مدلهای ارزانتر برای اسکن اولیه و مدلهای قدرتمندتر برای اعتبارسنجی نهایی استفاده کنید.
اما داستان سختافزاری این تحول حتی شگفتانگیزتر است — به تحلیل ما دربارهی تراشههای Blackwell مراجعه کنید.




گفتگو