
OpenAnt من Knostic هو المنتج الرائد مفتوح المصدر القائم على LLM لاكتشاف الثغرات، حيث يساعد المدافعين على اكتشاف الثغرات الأمنية المؤكدة بشكل استباقي مع تقليل كل من الإيجابيات الكاذبة والسلبيات الكاذبة. المرحلة 1 تكتشف. المرحلة 2 تهاجم. ما يصمد هو الحقيقي.
OpenAnt من Knostic هو أول منتج مفتوح المصدر لاكتشاف الثغرات الأمنية وإصلاحها يعتمد على نماذج اللغة الكبيرة (LLM) (يُسمى الآن harness) يساعد المدافعين على اكتشاف العيوب الأمنية المُتحقَّق منها بشكل استباقي مع تقليل كل من الإيجابيات الكاذبة والسلبيات الكاذبة. المرحلة 1 تكتشف. المرحلة 2 تهاجم. ما ينجو هو الحقيقي.
ضع في اعتبارك أن هذا بدأ كمشروع بحثي، ومع تطويرنا لقدرات جديدة، غالبًا ما نطلقها كنسخة تجريبية. نرحب بالمساهمات.
يمكنك العثور على ورقتنا البحثية حول بناء OpenAnt على arXiv: OpenAnt: LLM-Powered Vulnerability Discovery Through Code Decomposition, Adversarial Verification, and Dynamic Testing، بقلم Nahum Korda وGadi Evron.
كان هذا سؤالًا ذا صلة في ملف readme عندما أطلقنا OpenAnt لأول مرة، نظرًا لأنه تم إصدار العديد من الـ harnesses الأخرى. ما زلنا نأمل أنه مع انفجار الثغرات الأمنية المكتشفة بالذكاء الاصطناعي، سيساعد OpenAnt مشرفي المصادر المفتوحة على البقاء متقدمين على المهاجمين، حيث يمكنهم استخدامه بأنفسهم. أو إرسال مستودعهم للفحص دون أي تكلفة.
هناك أيضًا حقيقة أن تركيز Knostic ينصب على حماية الوكلاء ومساعدي البرمجة وليس على أبحاث الثغرات الأمنية أو أمن التطبيقات، ونحن نحب المصادر المفتوحة، لذا قررنا إصدار OpenAnt تحت رخصة Apache 2. علاوة على ذلك، ربما سمعت عن Aardvark من OpenAI (المعروف الآن باسم Codex Security) وClaude Code Security من Anthropic، وليس لدينا أي نية للتنافس معهما.
للاطلاع على التفاصيل التقنية والقيود وتكاليف الرموز (tokens)، راجع منشور المدونة هذا: https://knostic.ai/blog/openant
لإرسال مستودعك للفحص: https://knostic.ai/blog/oss-scan
المشرف والبحث: Gadi Evron
البحث الأصلي والتفكير الإبداعي والنموذج الأولي الأصلي: Nahum Korda. التحويل الأولي إلى منتج: Alex Raihelgaus، Daniel Geyshis.
مع الشكر إلى: Michal Kamensky، Imri Goldberg، Daniel Cuthbert. Josh Grossman، وAvi Douglen.
إذا أعجبك عملنا، اطّلع على ما نقوم به في Knostic لحماية وكلائك ومساعدي البرمجة، ومنعهم من حذف قرصك الصلب وشيفرتك، والتحكم في مخاطر سلسلة التوريد المرتبطة مثل خوادم MCP والإضافات والمهارات.
ابنِ ملف CLI الثنائي (يتطلب Go 1.25+):
cd apps/openant-cli && make build
يقوم هذا بتجميع مصدر Go ويُخرج الملف التنفيذي إلى apps/openant-cli/bin/openant.
أنشئ رابطًا رمزيًا له في PATH الخاص بك حتى تتمكن من تشغيل openant من أي مكان:
ln -sf "$(pwd)/apps/openant-cli/bin/openant" /usr/local/bin/openant
ملاحظة: شغّل هذا من جذر المستودع حتى يتم تحويل $(pwd) إلى المسار المطلق الصحيح.
يقوم OpenAnt بتوجيه كل مرحلة من مراحل خط المعالجة عبر زوج (مزوّد، نموذج) قابل للتكوين. أسرع طريق هو المعالج التفاعلي:
openant setup llm
تقوم بتسمية الإعداد (مثل my-llm)، وتختار مزودًا لكل مرحلة من مراحل خط الأنابيب (أي من المحولات المضمّنة أدناه)، وتُدخل مفتاح API الخاص به مرة واحدة لكل مزود (يستخدم Bedrock سلسلة بيانات اعتماد AWS بدلاً من ذلك — اترك المفتاح فارغًا)، ويقوم المعالج بفحص كل زوج فريد من المزود+النموذج بطلب من رمز واحد قبل كتابة ~/.config/openant/config.json. شغّل فحصًا ضده باستخدام --llm-config:
openant scan /path/to/repo --llm-config my-llm
تعكس الإعدادات الافتراضية للمعالج توصيات المشروع لكل مرحلة (نماذج استدلال أقوى للكشف / التحقق / مراجعة إمكانية الوصول؛ نماذج أخف للسياق والتقرير وتوليد الاختبارات) — يمكنك تجاوز أي إجابة حسب رغبتك.
| نوع المزوّد | مفتاح API من | ملاحظات |
|---|---|---|
anthropic | console.anthropic.com | المحوّل المرجعي. غير مشمول في اشتراكات Claude Pro / Max — فاتورة منفصلة. |
openai | platform.openai.com | غير مشمول في اشتراكات ChatGPT / Codex — فاتورة منفصلة. |
google | aistudio.google.com | غير مشمول في Gemini Advanced — فاتورة منفصلة. |
bedrock | — (سلسلة بيانات اعتماد AWS) | Claude على AWS Bedrock. لا يوجد api_key: تأتي بيانات الاعتماد من متغيرات البيئة AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY أو ملف تعريف ~/.aws، والمنطقة من AWS_REGION. معرّفات النماذج هي ملفات تعريف الاستدلال (us.anthropic.claude-sonnet-4-6، global.anthropic.claude-haiku-4-5-20251001-v1:0، ...) — فعّلها ضمن "Model access" في وحدة تحكم Bedrock واعرضها باستخدام aws bedrock list-inference-profiles. متاح عبر openant setup llm (اترك مفتاح API فارغًا — سلسلة بيانات اعتماد AWS، يتم تخطي الفحص) — الدليل الكامل: utilities/llm/providers/BEDROCK.md. |
openrouter | openrouter.ai | بوابة إلى العديد من المزوّدين بمفتاح واحد ورصيد مدفوع مسبقًا واحد (يقرأ أيضًا OPENROUTER_API_KEY). معرّفات النماذج هي معرّفات vendor/model (anthropic/claude-sonnet-4.6، openai/gpt-4o-mini، ...) — تصفّحها على openrouter.ai/models. متاح عبر openant setup llm (اترك عنوان URL الأساسي فارغًا لاستخدام الإعداد الافتراضي لـ OpenRouter) — الدليل الكامل: utilities/llm/providers/OPENROUTER.md. |
ollama | — (خادم محلي) | نماذج محلية عبر Ollama. لا يوجد api_key: اتركه فارغًا (يُرسَل عنصر نائب تلقائيًا)؛ عنوان URL الأساسي الافتراضي هو http://localhost:11434/v1. يجب سحب النماذج أولًا (ollama pull <model>)؛ معرّفات النماذج هي بالضبط ما يعرضه ollama list. الاستدلال المحلي مجاني — تقرير تكلفة بقيمة $0. متاح عبر openant setup llm — الدليل الكامل: utilities/llm/providers/OLLAMA.md. |
جميعها تدعم استدعاء الأدوات، لذا يمكن لأي منها تشغيل مرحلتي enhance وverify التي تستخدم حلقة استخدام الأدوات الوكيلية. بالنسبة لـ Ollama، اختر نموذجًا يدعم الأدوات لتلك المراحل — قد لا تتعامل النماذج المحلية الصغيرة جدًا مع استدعاءات الأدوات بشكل موثوق.
إذا كنت تريد الإعدادات الافتراضية الحالية لـ Claude لكل مرحلة ولا شيء غير ذلك، فتجاوز المعالج:
openant set-api-key sk-ant-...
openant scan /path/to/repo
يستخدم هذا إعداد openant-default المدمج (المُجمَّع داخل الملف التنفيذي، دون الحاجة إلى config.json) — Claude Opus 4.6 لمراحل الكشف، وSonnet 4 للباقي.
يكتب لك المعالج ~/.config/openant/config.json، لكن يمكنك تعديله مباشرة أيضًا. يجب أن يسرد كل llm-config جميع مراحل خط الأنابيب السبع: