Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

الخلاصاتاتصالالخصوصية© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
gitgalaxy — محرك رسوم بيانية معرفية استدلالي خالٍ من AST للاستخبارات العميقة للمستودعات وفحص الأمان وفق نموذج الثقة المعدومة (Zero-Trust). يتكامل كمكوّن في GitLab CI/CD، ويحظر الأكواد الخبيثة، ويصدّر بيانات القياس بصيغة SARIF إلى لوحة تحكم أمان GitLab. | Kitploit
أدوات/GitLabGitLab/squid-protocol1/gitgalaxy
ماسحات الثغرات الأمنيةتحليل الشفرة الثابت (SAST)تحليل الكودتحليل البرمجيات الخبيثةDevSecOpsكشف الأسرار
GitLabsquid-protocol1/gitgalaxy

gitgalaxy

محرك رسوم بيانية معرفية استدلالي خالٍ من AST للاستخبارات العميقة للمستودعات وفحص الأمان وفق نموذج الثقة المعدومة (Zero-Trust). يتكامل كمكوّن في GitLab CI/CD، ويحظر الأكواد الخبيثة، ويصدّر بيانات القياس بصيغة SARIF إلى لوحة تحكم أمان GitLab.

عرض المستودع
34منذ 27 أياملم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة
# GitGalaxy

**ذكاء بنيوي على مستوى المستودع دون تجميع.**

[Docs](https://squid-protocol.github.io/gitgalaxy/) ·
[Visualizer](https://gitgalaxy.io/) ·
[Language Crucible](https://github.com/squid-protocol/language-crucible) ·
[Keyword Rosetta](https://github.com/squid-protocol/keyword-rosetta) ·
[Raw Output](https://github.com/squid-protocol/gitgalaxy-raw-output)

**1 scan · 97 structural signals · 50+ languages · no compilation · 17
risk-exposure categories · 6 outputs**

## النسخة المختصرة

يبني GitGalaxy **رسمًا بيانيًا بنيويًا مستقلًا عن اللغة لمستودع كامل**
مباشرةً من النص المصدري — دون بناء، ودون سلسلة أدوات خاصة بكل لغة.

وهو مصمم للمستودعات متعددة اللغات، أو المعطوبة جزئيًا، أو القديمة،
أو المثقلة بالمكتبات الخارجية، أو التي يصعب تحليلها عبر سير عمل يبدأ بالبناء:

``` text
Go + C++ + Python + Java + Bash + YAML
+ generated code + vendored code + legacy code
+ half-migrated modules + broken dependencies
```

بدلاً من محلل منفصل لكل لغة، يستخرج GitGalaxy مفردات مشتركة من **البصمات البنيوية** — الدوال، والأصناف، والوسائط، وتدفق التحكم، وتغيير الحالة، والإدخال/الإخراج، وواجهات برمجة التطبيقات، والاعتماديات — ويوحّدها في نموذج مستودع حتمي واحد يغذّي تحليل البنية المعمارية، وترتيب أولويات التعرض للمخاطر، وتوليد SBOM، وإعادة الهيكلة وتحليل الملكية، وسياق قاعدة الشيفرة الموجّه للذكاء الاصطناعي، وبوابات CI/CD.

> **الأطروحة المركزية:** التحليل الكامل للغة ليس ضرورياً دائماً لاستعادة
> معلومات بنيوية عالية الفائدة على نطاق المستودع.

كيف تُختبر هذه الأطروحة — مقابل Tree-sitter وCtags، ومقابل مجموعة اختبار
ضابطة مزروعة، ثم مقابل تاريخ Git — مُلخَّص في
[الدقة، مقيسة](#accuracy-measured) أدناه ومفصَّل بالكامل في
[برنامج التحقق](https://gitlab.com/squid-protocol1/gitgalaxy/-/blob/main/docs/validation.md).

------------------------------------------------------------------------

## ما الذي يمنحك إياه الفحص

أمر واحد:

``` bash
pip install gitgalaxy
galaxyscope path/to/repo
```

ستة عروض منسّقة للمسح الحتمي نفسه:

| المخرجات | الغرض |
|---|---|
| **موجز معمارية LLM** | سياق مضغوط موجّه للآلة/الوكيل (أدناه) |
| **SARIF** | تكامل لوحات معلومات CI/الأمن |
| **CycloneDX SBOM** | جرد التبعيات/الامتثال |
| **SQLite** | رسم بياني معرفي للمستودع قابل للاستعلام |
| **بيانات تدقيق JSON** | سير عمل التحليل الجنائي/الأتمتة |
| **بيانات تصوّر ثلاثي الأبعاد** | طوبولوجيا المستودع التفاعلية |

### موجز المعمارية

التقرير الرئيسي هو موجز Markdown واحد مصمّم لتسليم مهندس — أو
وكيل ذكاء اصطناعي — نموذج ذهني عملي لمستودع لم يره من قبل. إنه
حزمة مكتفية ذاتيًا: معادلات المخاطر مطبوعة في التقرير نفسه،
ومطالبة تفسير مضمّنة تتيح لأي LLM سردها دون
اختلاق معاني الأرقام. تغطي الأقسام الحالة الكلية وتركيب
اللغات، وطوبولوجيا الشبكة (الوحداتية، نقاط الوصل، الكثافة
الدورية)، ونقاط اختناق التبعيات، وأثقل الدوال والملفات، والبصمات
البنائية لكل ملف مع نطاق تأثير PageRank، وقوائم الإصابات المستهدفة والتراكمية
للمخاطر، وتدقيقات سلسلة التوريد، وأهداف إعادة الهيكلة مرتّبة حسب التقلب
ومركزية التأليف — بالإضافة إلى قائمة مفصّلة بكل ملف *رفض*
مسحه، ولماذا.

مثالان، ممسوحان في 2026-08-31 بالمحرك الحالي. كلا المستودعين
عام — استنسخ أيًّا منهما وشغّل `galaxyscope --llm-only <path>` لإعادة إنتاج
الموجز الكامل:

**curl** — 4,250 عنصرًا، 696 ممسوحًا، 112,653 سطرًا عبر C وPerl وPython
وShell وM4 وMakefile. يصنّف الموجز `src/tool_setup.h` كأعلى
ركيزة بنائية (80 اتصالًا واردًا) ويضع دالة *Perl* —
`APPEND_imap` في `tests/ftpserver.pl`، التأثير 2135، 1,672 سطرًا — في
قمة قائمة إصابات الدوال على مستوى المستودع، في التصنيف نفسه مع كود C. هذا
الرسم البياني العابر للغات هو المنتج: مجموعة إشارات واحدة قابلة للمقارنة عبر كل
لغة في المستودع. التحذير الصادق في الموجز نفسه: 16.4% فقط من
العناصر مُسحت — مرشّح الاستيعاب يُسقط الملفات الثنائية والكود المولّد
وبيانات الاختبار بقوة، ويسرد §5 من الموجز كل استبعاد حسب
الامتداد والسبب.

**cics-genapp** (عيّنة CICS COBOL/DB2 من IBM) — 92.1% ممسوح: 44 برنامج
COBOL، و29 مهمة JCL. تتصدّر قائمة الإصابات التراكمية للسطح البنائي
`base/src/lgupdb01.cbl` (سطح الطفرة ~100%، حمل التعقيد 92%)، وأثقل
فقرة في المستودع هي `UPDATE-POLICY-DB2-INFO` — منطق قفل الصفوف
`SELECT FOR UPDATE`، وهو بالضبط ما يريد صائن ذلك البرنامج
النظر إليه أولًا. يُظهر الموجز نفسه أيضًا قيدًا بوضوح: على
معمارية مسطّحة بلا رسم بياني استيراد حقيقي، تنحدر قائمة "الركائز
البنائية" إلى ملفات بلا اتصالات، ويقول التقرير إنه يجب التحقق من
أعداد الاتصالات قبل الوثوق بها.

مئات الموجزات غير المحرّرة لمستودعات مختارة بشكل مستقل
مُودعة في
[gitgalaxy-raw-output](https://github.com/squid-protocol/gitgalaxy-raw-output);
وموجز المسح الذاتي دائم الحداثة لهذا المستودع نفسه في
[`docs/gitgalaxy_architecture_brief.md`](https://gitlab.com/squid-protocol1/gitgalaxy/-/blob/main/docs/gitgalaxy_architecture_brief.md).

### رسم بياني واحد، مستهلكون كثر

| المستهلك | السؤال |
|---|---|
| المعمارية | ممّ يتكوّن هذا المستودع؟ |
| التحليل البنائي | أين توجد الدوال والأصناف وواجهات API والتبعيات وبنى التحكم؟ |
| ملف السطح البنائي (سابقًا التعرّض للمخاطر) | أين يتركّز نمط بنائي/محتوى معيّن؟ |
| إعادة الهيكلة | أي الملفات معقّدة أو عالية التغيّر أو حاملة للحمل؟ |
| سلسلة التوريد | ما التبعيات الموجودة فعليًا على القرص؟ |
| سياق الذكاء الاصطناعي | ما المعمارية والعلاقات التي ينبغي أن يعرفها الوكيل؟ |
| ترحيل الأنظمة القديمة | أين الوحدات البنائية الواجب تحويلها؟ |
| التحليل التاريخي | كيف يتغيّر التعرّض المقيس مع تطور المستودع؟ |

![GitGalaxy architecture pipeline](https://assets.kitploit.com/production/public/readmes/7003/c082f81cf091b2c568775d3ffcbbc143348e16b78fb59e3021e26f94d1df624c.png)

------------------------------------------------------------------------

## الدقة، مقيسة

يُسند برنامجا قياس دائمين المزاعم أعلاه، وثالث للتبعيات ورسوم
الاستدعاء قيد الإنجاز. السرد الكامل —
المنهجية والأحكام والحدود وما سيأتي — في
[برنامج التحقق](https://gitlab.com/squid-protocol1/gitgalaxy/-/blob/main/docs/validation.md); وهذا هو الملخص.

### التحقق البنائي: GitGalaxy مقابل Tree-sitter مقابل Ctags

يُقاس GitGalaxy مقابل **Tree-sitter وUniversal Ctags** على
مجموعة [Language Crucible](https://github.com/squid-protocol/language-crucible)
المثبّتة — 24 من 45 لغة تحصل على الأدوات الثلاث كلها، و13 أخرى تحصل على اثنتين، وكل
خلاف يُحقّق فيه مقابل المصدر الحقيقي ويُسجّل بحكم
(200 من 201 شكل تباين مسجّل تم التحقق منه). على تلك المجموعة، دقة الدوال
المتحقَّق منها في GitGalaxy هي 100% عبر جميع اللغات الـ31 القابلة للمقارنة مع
tree-sitter، وهو ليس الأداة التي وُجدت مخطئة في أي خلاف متحقَّق منه على صنف
أو وسيط. الحد: ثلاثة أهداف بنائية، ومجموعة واحدة ثابتة —
لا "يحلّل بدقة AST" بشكل عام.

![Tri-comparison](https://gitlab.com/squid-protocol1/gitgalaxy/-/raw/main/docs/self_scan/tri_comparison_chart.svg)

### التحقق من الرسم البياني: الاستيرادات والاستدعاءات (قيد الإنجاز)

نطاق التأثير وPageRank و"الركائز البنائية" تأتي من **رسم الاستيراد البياني**. أما
تصنيفات مستوى الدوال فتأتي من **رسم الاستدعاء البياني**. لا يُقاس أي من الرسمين في كل
اللغات بعد، ويوضّح المخطط أدناه أيّها مُقاس:
- اللغات المقيسة تُظهر الدقة والاستدعاء مع n.
- كل لغة لم تُقس بعد مُدرجة بالاسم.

حتى 2026-09-26، من أصل 59 لغة:
- **رسم الاستيراد البياني مُقاس في 20.** تُفحص حواف المحرك مقابل عبارات الاستيراد
  الخاصة بكل لغة على مستودعات حقيقية مثبّتة
  ([`import_graph_accuracy.py`](https://gitlab.com/squid-protocol1/gitgalaxy/-/blob/main/tests/tools/import_graph_accuracy.py)).
- **أسماء المُستدعى مُقاسة في 11**، مقابل tree-sitter.
- **حلّ الاستدعاء مُقاس في 3**، مقابل محلّل مرجعي:
  - Python، مقابل pyan3: دقة 99.8% على 1,806 رابطًا محكَّمًا، واستدعاء 51.6%;
  - TypeScript، مقابل مدقّق أنواع TypeScript 6.0.2: دقة 99.9% على 1,520 رابطًا محكَّمًا،
    واستدعاء 57.1%;
  - Java، مقابل scip-java (حلّ javac نفسه): دقة 92.7% على 3,474 رابطًا محكَّمًا،
    واستدعاء 41.0%. الاستدعاء لدالة محمّلة زيادة يُربط فقط عندما يختار عدد وسائطه
    تحميلًا واحدًا ([#3835](https://github.com/squid-protocol/gitgalaxy/issues/3835)).

  رابط الاستدعاء، عند إنشائه، يكون صحيحًا عادةً، لكن نحو نصف الاستدعاءات أو أكثر تُترك
  غير مربوطة. لذا فإن fan-in وPageRank على مستوى الدوال هما حدّ أدنى.

الحدود:
- رسوم اللغات الـ38 الأخرى مبنية بالطريقة نفسها لكنها **غير مقيسة**.
- عدة لغات مقيسة تستند إلى مستودع واحد بأقل من 100 استيراد. يُخفت المخطط
  تلك.
- تشير `*` إلى رقم لا تزال خلافاته بانتظار حكم مقابل المصدر.

خطة سدّ هذه الفجوات هي
[epic #3772](https://github.com/squid-protocol/gitgalaxy/issues/3772).

![Graph accuracy coverage](https://gitlab.com/squid-protocol1/gitgalaxy/-/raw/main/docs/self_scan/graph_coverage_chart.svg)

### الاتساق العابر للغات: مجموعة التحكم Keyword Rosetta

يسأل البرنامج الأحدث السؤال المعاكس: **هل يقيس GitGalaxy
القصد المتطابق بشكل متطابق في كل لغة؟** مجموعة
[keyword-rosetta](https://github.com/squid-protocol/keyword-rosetta)
تزرع البرنامج نفسه ذا المجسّات الـ12 في جميع اللغات المدعومة الـ50 بأعداد
إشارات معروفة بدقة — لذا فإن أي تباين هو تحيّز لغوي مقيس، بحكم البناء.
يلوّن المخطط كل انحراف حسب *السبب*، لا الحجم: الأحمر عيب محرك
مفتوح (قاعدة تطابق بنية خاطئة، أو وزن تنقيط يقع داخل
عدّ)؛ والرمادي تباين موثّق صادق عليه السجل — اللغة
لا تستطيع التعبير عن البنية، أو خيار تنقيط متعمّد، أو صدى لصف آخر.
الجواب الحالي: في المتوسط 94% من اللغات تقع ضمن ±25% من
الوسيط العابر للغات لكل مقياس مُبوّب (56 مقياسًا قابلًا للتمثيل، 54 منها تحافظ على ≥80%)،
و**نسبة العيوب المفتوحة 0.0% (1 من 2,844 خلية قابلة للمقارنة عبر 59 مقياسًا
مُبوّبًا)** — خلية واحدة غير مفسّرة، `classes_found` في مجموعة
`bms` (CICS Basic Mapping Support) المزروعة حديثًا؛ وكل خلية أخرى خارج النطاق هي
تباين صادق عليه السجل (طبقة صرامة، أو بنية لا تستطيع اللغة
التعبير عنها، أو صدى لصف آخر، أو خيار تنقيط
متعمّد)، وليس عيب محرك مفتوح. أضعف المقاييس مُسمّاة بدلًا من
إخفائها — `cog_raw` يحافظ على 74% من اللغات داخل النطاق، و`raw_arch_api` 78%،
و`avg_func_args` 80% — لكن خلاياها دون النطاق موثّقة، وليست عيوبًا.
ويصمد الادعاء أيضًا أمام التوسّع: عندما زرعت المجموعة أول
مجسّ عدسة أمنية — سرّ واحد مضمّن بشكل متطابق في كل لغة —
قرأ `credential_material` (سابقًا `risk_secrets_risk`; ويبقى اسم `risk_*`
عمود قاعدة البيانات — انظر [`docs/vectors.md`](https://gitlab.com/squid-protocol1/gitgalaxy/-/blob/main/docs/vectors.md)) **درجة
موحّدة عبر جميع اللغات الـ50** (25.000 متطابقة لكل عمود). الاستثناءان
الصيغيان الخاملان اللذان كانت العدسة تتخطاهما أصلًا، واعتماد الصيغة المقيس
على الطول، سُجّلا ورُفعا في اليوم نفسه
([#2978](https://github.com/squid-protocol/gitgalaxy/issues/2978),
[#2979](https://github.com/squid-protocol/gitgalaxy/issues/2979)). وقد أُغلق #2978:
إذ تعمل العدسة الآن على الصيغ الخاملة الخمس كلها
(plaintext/markdown/json/yaml/csv)، مع خيار إلغاء `SECURITY_SCAN_INERT_FORMATS`
في الإعداد للمستودعات التي يقايض فيها ذلك ضجيجًا كبيرًا من الوثائق/الإعدادات مقابل
التغطية، وإعادة التحقق من مجموعة keyword-rosetta مقابل الإصلاح المدمج
تقع الآن بالكامل داخل النطاق (مدخل `secrets-lens-inert-formats` في السجل).
كل انحراف مسجّل في سجل مُصادق عليه، والعمل متتبَّع حسب عائلة السبب
ضمن [خارطة طريق العقد](https://gitlab.com/squid-protocol1/gitgalaxy/-/blob/main/docs/contract_roadmap.md)، وأصناف
العيوب المكتشفة بهذه الطريقة
[مُرفوعة كمسائل GitGalaxy](https://github.com/squid-protocol/keyword-rosetta/blob/main/docs/findings_by_language.md).

![Cross-language variance chart](https://raw.githubusercontent.com/squid-protocol/keyword-rosetta/main/docs/bias_variance_chart.svg)

مجموعة تحكم تُثبت عدم تكافؤ القياس على قصد متطابق؛ لكنها لا تقول
شيئًا عن الدقة على كود حقيقي (وهي مهمة المقارنة الثلاثية أعلاه) — كما أن
تحيّزًا ثابتًا لكل ملف يحافظ على التصنيف *داخل* اللغة. أما
[تقرير الحدوث](https://github.com/squid-protocol/keyword-rosetta/blob/main/docs/incidence_report.md)
فيقيس حجم كل شكل مؤكَّد مقابل كود حقيقي مرخّص.

------------------------------------------------------------------------

## الحجم الواقعي

مثال: **Kubernetes** — نحو 1.39 مليون سطر عبر Go وYAML وJSON وShell وProto.
مسح من طرف إلى طرف: **50.83 ثانية**. يتبع زمن المسح نموذجًا ملائمًا ذا نظامين
(مستوٍ ~0.11 ثانية دون ~4.3 ألف سطر، ثم `time(s) ≈ 3.36e-05 × LOC^0.969`، R²=0.88
عبر 599 مستودعًا) — لذا فإن حفنة من القيم الشاذة فوق 20 مليون سطر لا تزال تستغرق دقائق، والمسح
السريع يُثبت الإنتاجية، لا جودة الرؤية؛ أما مسألة الدقة فتُعالج
بشكل منفصل أدناه.

![GitGalaxy scan
speed](https://assets.kitploit.com/production/public/readmes/7003/596585161af8eeb861f49e2968927d69059333f145c0e2b6e9bb0cb9c9d7bc36.png)

انظر [مستودع المخرجات
الخام](https://github.com/squid-protocol/gitgalaxy-raw-output) للحصول على
عناصر غير محرّرة.

------------------------------------------------------------------------

# ملف السطح البنائي: ما يدّعيه GitGalaxy (سابقًا "التعرّض للمخاطر")

كانت متجهات GitGalaxy الـ13 لكل ملف تُسمّى أصلًا `risk_*` وتوصف بأنها
**قياسات التعرّض للمخاطر**. والسؤال الذي كان هذا القسم يتركه مفتوحًا —
"هل ترتبط هذه البصمات تجريبيًا بأصناف ذات معنى من مخاطر البرمجيات؟" — قد اختُبر منذ ذلك الحين، لا مجرد طُرح. برنامج
التحقق temporal-crucible (epic
[#2982](https://github.com/squid-protocol/gitgalaxy/issues/2982)، نحو 3,550
لقطة ممسوحة، مستودعان، ثلاث عائلات تصنيف، وكل اختبار مسجّل مسبقًا قبل النظر إلى البيانات) أجرى تلك التجربة
حتى الاستنفاد، والنتيجة الصادقة أدّت إلى إعادة تسمية
([#2991](https://github.com/squid-protocol/gitgalaxy/issues/2991)): تُسمّى
المتجهات الآن **ملف السطح البنائي**. ويبقى `risk_*` اسم عمود قاعدة البيانات / مفتاح JSON
للتوافق (انظر
[`docs/vectors.md`](https://gitlab.com/squid-protocol1/gitgalaxy/-/blob/main/docs/vectors.md) لجدول الأسماء الكامل وملاحظة
الإهمال).

**ما وجده السجل، معادًا بصياغة صادقة:**

- **المخاطر القائمة لكل ملف، مُبطلة.** الفرضية التأسيسية — أن مستوى `risk_*`
  لملف ما، أو تغيّره بعد إصلاح، يتتبّع احتمال العيب — لم تصمد. كان وسيط الفارق البنائي بعد إصلاح أمني
  +0.000 (مؤكَّد بالتكافؤ قرب الصفر على مستودع ثانٍ مستقل، وليس مجرد غير دال)؛ وصنّف التعرّض البنائي المجموع
  *أخيرًا* من بين ست خصائص للتنبؤ بالملفات التي مسّها الإصلاح؛ وسجّل متجه بنائي متعدد المتغيرات من 26 إشارة
  عند مستوى الصدفة (AUC 0.479) تحت تقسيم زمني، دون عدد أسطر بسيط (0.531). السجل الكامل في
  `docs/HYPOTHESES.md` الخاص بـ temporal-crucible ومربوط من
  [#2982](https://github.com/squid-protocol/gitgalaxy/issues/2982).
- **ما تحققت منه المتجهات فعليًا:** وصف **النشاط والمحتوى**،
  لا احتمال العيب. المركّب المُشكَّل بالإصلاح يتتبّع بموثوقية
  تدرّج إصلاح أمني → إصلاح عادي → تحكم → تراجع؛ والفوارق
  تقابل أحداث كود حقيقية (إضافة كود حماية، إدخال خيوط، تخفيف علامات
  الدَّين). هذا هو التصوير بالأشعة الذي يسمّيه هذا المستند الآن
  بدقة — انظر [`docs/vectors.md`](https://gitlab.com/squid-protocol1/gitgalaxy/-/blob/main/docs/vectors.md) متجهًا بمتجه.
- **إشارة على مستوى النظام / التاريخ، معادة بصياغة كالنتيجة التنبؤية
  الفعلية.** نجت خاصيتان *فعلًا* من التحقق: **الانتكاس** (الملف
  الذي حصل على آخر إصلاح يحصل على التالي — النتيجة الأكثر تكرارًا في
  البرنامج، p<1e-4 على كلا المستودعين) و**إنتروبيا التغيّر /
  Hassan HCM**، المتحقَّق منها خارج التحديد على تصنيفات أخطاء جديدة (AUC 0.868 مقابل
  0.830 لعدد الأسطر). كلتاهما مقياسا **تاريخ**، لا مقياسا محتوى
  بنائي — وكلتاهما مُصفَّرتان حاليًا في كل مسح
  (`GITGALAXY_DISABLE_GIT_HISTORY`، متتبَّع في
  [temporal-crucible#29](https://github.com/squid-protocol/temporal-crucible/issues/29)).
  هذه بذرة **طبقة تنبؤية** منفصلة، مسمّاة بصدق — إذ سُمّي متجها
  `hist_stability`/`hist_churn` لإبراز تلك الحالة
  صراحةً — مشروطة بشحن وضع التاريخ المُفعَّل ثم اجتياز
  عقد ترقية رفع العيوب في [#2987](https://github.com/squid-protocol/gitgalaxy/issues/2987).

قراءة عالية لملف السطح البنائي تعني:

> **هذا الموضع يحتوي على قدر أكبر من نمط بنائي/محتوى معيّن،
> نسبةً إلى بقية المستودع.**

ولا تعني:

> "هذا الكود أكثر احتمالًا لاحتواء عيب" — النسخة لكل ملف من
> هذا الادعاء اختُبرت ولم تصمد.

تغطي البصمات الأساسية أنماطًا تشمل مجالات مثل:

-   الأسرار
-   سطح الحقن
-   العمليات غير الآمنة/الذاكرة
-   التنفيذ الديناميكي
-   الإدخال/الإخراج
-   التزامن
-   طفرة الحالة
-   الانعكاس
-   واجهات API
-   التبعيات
-   الإنتروبيا
-   خصائص بنائية/أمنية أخرى

انظر [`docs/vectors.md`](https://gitlab.com/squid-protocol1/gitgalaxy/-/blob/main/docs/vectors.md) لجدول إعادة التسمية لكل متجه،
والأدلة، والاستخدامات الملائمة/غير الملائمة، و
`docs/HYPOTHESES.md` في
[temporal-crucible](https://github.com/squid-protocol/temporal-crucible) لسجل التحقق الكامل الذي يلخّصه هذا القسم.

------------------------------------------------------------------------

# أدلة، لا مجرد مزاعم

### Language Crucible

مجموعة مثبّتة من المصادر الواقعية تشمل مشاريع مثل Godot وRoslyn
وcurl وKubernetes وبرمجيات رحلة Apollo 11.

[Language Crucible](https://github.com/squid-protocol/language-crucible)

### انحدار Golden-master

يُعاد مسح المصدر الحقيقي ويُقارن بمخرجات متوقعة مُودعة بحيث يكون لتغيّرات المحلّل فرق
قابل للملاحظة. يُعاد توليده بـ
[`tests/tools/update_golden_master.py`](https://gitlab.com/squid-protocol1/gitgalaxy/-/blob/main/tests/tools/update_golden_master.py)،
ولا يُحرَّر يدويًا أبدًا.

### المقارنة الثلاثية

تُحلَّل المجموعة نفسها مقابل GitGalaxy وTree-sitter وCtags حيث
تتوفر التغطية — 24 من 45 لغة تحصل على الأدوات الثلاث كلها، و200 من 201 تباينًا مسجّلًا
تم التحقق منه. على المجموعة المثبّتة، لا يكون GitGalaxy أبدًا الأداة
التي وُجدت مخطئة في خلاف متحقَّق منه على دقة دالة أو صنف أو وسيط،
ويطابق استدعاء دوال tree-sitter في كل مكان إلا تعريف shell متداخلًا واحدًا
يتخطاه بالتصميم. انظر
[المنهجية](https://gitlab.com/squid-protocol1/gitgalaxy/-/blob/main/docs/self_scan/tri_comparison_README.md) و
[برنامج التحقق](https://gitlab.com/squid-protocol1/gitgalaxy/-/blob/main/docs/validation.md) للصورة الكاملة وحدودها.

### مجموعة التحكم Keyword Rosetta

البرنامج نفسه ذو المجسّات الـ12 مزروع في جميع اللغات المدعومة الـ50 بأعداد
إشارات معروفة بدقة، لقياس الاتساق العابر للغات لكل مقياس —
مع سجل انحرافات مُصادق عليه وعيوب المحرك الناتجة
[مرفوعة كمسائل](https://github.com/squid-protocol/keyword-rosetta/blob/main/docs/findings_by_language.md).

[Keyword Rosetta](https://github.com/squid-protocol/keyword-rosetta)

### مخرجات المستودعات الخام

تُحتفظ بمخرجات GitGalaxy غير المحرّرة لمئات المستودعات
المختارة بشكل مستقل.

[Raw Output](https://github.com/squid-protocol/gitgalaxy-raw-output)

### مجموعة الانحدار

**7,043 اختبارًا** في المجموعة الافتراضية (`python -m pytest tests/`)، منها
**6,165** اختبارًا لكل بصمة عبر جميع اللغات الـ45 ذات البصمات
البنائية — مطابقات موجبة، واستثناءات صريحة، ومدخلات
عدائية/ReDoS. انظر [`tests/README.md`](https://gitlab.com/squid-protocol1/gitgalaxy/-/blob/main/tests/README.md) للتفصيل، و
[`docs/why_gitgalaxy_beats_ast_here.md`](https://gitlab.com/squid-protocol1/gitgalaxy/-/blob/main/docs/why_gitgalaxy_beats_ast_here.md)
لحالات محددة مدعومة بالأدلة يتفوّق فيها هذا الاستخراج على قراءة AST.

### Temporal Crucible (التحقق التاريخي)

لم يعد السؤال عمّا إذا كان ملف السطح البنائي يقابل أحداثًا أمنية وصيانوية حقيقية عبر تاريخ Git
سؤالًا مفتوحًا — فقد اختُبر. مسح برنامج
[Temporal Crucible](https://github.com/squid-protocol/temporal-crucible)
نحو 3,550 لقطة مستودع عبر مستودعين (curl، nDPI)
وثلاث عائلات تصنيف (التزامات إصلاح/إدخال CVE، تصنيفات الأخطاء، عائلات CWE)،
مع تسجيل كل اختبار تأكيدي مسبقًا قبل النظر إلى البيانات. وما وجده، بصياغة صادقة:

-   **المخاطر البنائية القائمة لكل ملف لا تتنبأ بالعيوب** — فهي تُختزل
    إلى عدد أسطر، وهو فرض صفري مؤكَّد باختبار التكافؤ على مستودع ثانٍ
    مستقل (وليس مجرد "غير دال").
-   **مقياسا *تاريخ* يتنبآن فعلًا**: الانتكاس (الملف الذي حصل على آخر
    إصلاح يحصل على التالي — p<1e-4 على كلا المستودعين، النتيجة الأكثر تكرارًا
    في البرنامج) وإنتروبيا التغيّر (Hassan HCM)، المتحقَّق منها
    خارج التحديد على تصنيفات أخطاء جديدة.
-   **البنية تصف؛ والتاريخ يتنبأ.** مات من التنبؤات في
    السجل أكثر مما نجا منه — وهذا هو انتظام التسجيل المسبق يعمل،
    لا خيبة أمل.

السجل الكامل عام وقابل لإعادة الإنتاج: [سجل
الفرضيات](https://github.com/squid-protocol/temporal-crucible/blob/main/docs/HYPOTHESES.md)
المسجّل مسبقًا و[فهرس المتنبئ × النتيجة](https://github.com/squid-protocol/temporal-crucible/blob/main/docs/EXPERIMENTS.md)
لكل ما حاول البرنامج ربطه. التصميم والمنهج:
[برنامج التحقق](https://gitlab.com/squid-protocol1/gitgalaxy/-/blob/main/docs/validation.md#the-next-validation-risk-over-git-history).

[Temporal Crucible](https://github.com/squid-protocol/temporal-crucible)

------------------------------------------------------------------------

# ما هو GitGalaxy --- وما ليس هو

### GitGalaxy هو

-   ذكاء بنائي على نطاق المستودع
-   تحليل مصدر لا يعتمد على اللغة
-   تمثيل بنائي مشترك عبر كود غير متجانس
-   ترتيب أولويات التعرّض للمخاطر
-   رسم خرائط المعمارية
-   توليد أدلة أصلي في CI
-   مفيد على المستودعات المعطوبة/غير المُصرَّفة
-   مصمّم للتشغيل المحلي/دون اتصال

### GitGalaxy ليس

-   بديلًا عن تحليل تدفق البيانات العميق في CodeQL
-   بديلًا عن منظومة قواعد Semgrep
-   بديلًا عن قواعد بيانات CVE للتبعيات
-   إثباتًا لقابلية الاستغلال
-   محلّلًا زمن التشغيل
-   محلّلًا كاملًا للغة
-   ضمانًا بأن التعرّض العالي ثغرة أمنية

| الأداة | السؤال الأساسي |
|---|---|
| **GitGalaxy** | كيف يبدو هذا المستودع بأكمله، من الناحية البنيوية، وأين ينبغي توجيه الانتباه أولاً؟ |
| Tree-sitter | ما البنية النحوية التي يحتويها هذا المصدر؟ |
| Ctags | أين توجد الكيانات البرمجية القابلة للتنقل؟ |
| Semgrep | هل يطابق هذا الكود نمطًا محددًا؟ |
| CodeQL | ما علاقات البيانات/التحكم التي يمكن أن يثبتها التحليل الأعمق؟ |
| أدوات SCA/CVE | هل ترتبط هذه التبعية/الإصدار بإشعار معروف؟ |

------------------------------------------------------------------------

# تاريخ Git والبنية المعمارية

يدمج GitGalaxy بالفعل تاريخ Git في إشارات مثل معدل التغيير (churn)،
وتركّز المساهمين، والتعرّض لعامل الحافلة (bus-factor)، ونقاط إعادة الهيكلة الساخنة،
وملكية الملفات، والنشاط الزمني. الاتجاه البحثي هو توسيع هذا من
**التاريخ كإشارة سياقية** إلى **التاريخ كمصدر تحقق خارجي لنموذج التعرّض** — تصميم التجربة موجود في
[برنامج التحقق](https://gitlab.com/squid-protocol1/gitgalaxy/-/blob/main/docs/validation.md#the-next-validation-risk-over-git-history).

------------------------------------------------------------------------

---

[Read more](https://gitlab.com/squid-protocol1/gitgalaxy)
تنزيل الأداة