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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
cobol-shield — مجموعة أدوات تقوية الأمان لأنظمة COBOL القديمة — كشف Unicode غير المرئي، تحليل حدود التنسيق، سلامة تحويل المصدر | Kitploit
أدوات/GitHubGitHub/luiscastellanos-dev/cobol-shield
أدوات دفاعيةتحليل الشفرة الثابت (SAST)تحليل الثغرات الأمنيةDevSecOpsأمن سلسلة التوريد
GitHubluiscastellanos-dev/cobol-shield

cobol-shield

مجموعة أدوات تقوية الأمان لأنظمة COBOL القديمة — كشف Unicode غير المرئي، تحليل حدود التنسيق، سلامة تحويل المصدر

عرض المستودع
22منذ شهر واحدلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
مشاركة
الموقع الإلكتروني

cobol-shield

مجموعة أدوات تدقيق أمني لأنظمة COBOL القديمة

جزء من منهجية أبحاث VTR | DOI: 10.5281/zenodo.22063208 الحالة: قابل لإعادة الإنتاج | الترخيص: MIT | المسار: البنية التحتية الحرجة

ما الذي تقوم به

تكتشف تباينات سياق الترجمة، وهجمات Unicode غير المرئية، وأنماط COBOL غير الآمنة في مصادر GnuCOBOL. الملف المصدري نفسه عند ترجمته باستخدام -fixed مقابل -free ينتج برامج مختلفة — هذه الأداة تجعل هذا التباين قابلاً للملاحظة وإعادة الإنتاج.

كيفية إعادة الإنتاج في 3 أوامر

git clone https://github.com/LuisCastellanos-dev/cobol-shield
cd cobol-shield
bash tools/poc_compiler_flag.sh

ما الذي لا تقوم به

لا تدّعي هذه الأداة أو تُثبت تنفيذ تعليمات برمجية عن بُعد، أو تصعيد الصلاحيات، أو استغلال الشبكة. تُصنَّف النتائج كـ CONFIRMADO أو PROBABLE أو OBSERVADO وفق منهجية VTR — يعكس التصنيف قوة الأدلة، وليس شدة التأثير.


مجموعة أدوات تدقيق أمني لأنظمة COBOL القديمة

تكتشف هجمات Unicode غير المرئية، وأنماط COBOL غير الآمنة، ومشكلات سلامة تحويل التنسيق في مصادر GnuCOBOL. تم التحقق منها باستخدام GnuCOBOL 3.1.2. لم يتم التحقق من السلوك على IBM Enterprise COBOL أو Micro Focus — قد تختلف دلالات الأعلام الخاصة بالمترجم.

PIC X يقبل كل شيء. يجب ألا تقبل دفعتك ذلك.


النطاق

يغطي cobol-shield سطحين متميزين للتهديد:

1. أحرف Unicode غير المرئية — CVE-2021-42574 ومتجهات من فئة Glassworm التي تتجاوز المراجعة البصرية للشيفرة وتُفسد حقول PIC X بصمت.

2. التحليل الساكن لـ COBOL — أنماط غير آمنة في المصادر القديمة: مساحة العمل غير المهيأة، تجاوز STRING/UNSTRING غير المُتحقق منه، عدم تطابق أحجام REDEFINES، والشروط الموضعية بالتنسيق الثابت التي يتغير معناها عند التحويل.


الأدوات

الملفالغرض
tools/check-invisibles.pyمدقق CI — يخرج بالرمز 1 عند اكتشاف Unicode غير مرئي
tools/clean-invisibles.pyأداة تعقيم مع سجل تدقيق جنائي
src/AUDITOR-INVISIBLE.cobمدقق بايتات داخل COBOL باستخدام HEX-OF
tools/cobol_rules.pyقواعد التحليل الساكن R-01 حتى R-04
tools/transform_renumber.pyمحاكي إزاحة إعادة الترقيم بالتنسيق الثابت (المرحلة 2)
tools/poc_compiler_flag.shإثبات المفهوم القاطع — الملف نفسه، -fixed مقابل -free، تباين علم المترجم
tools/poc_differential.shإثبات المفهوم التفاضلي للمرحلة 2 — SOURCE A مقابل SOURCE B (ترحيل يدوي)

قواعد التحليل الساكن

تُنتج كل قاعدة مخرجات VTR Finding Schema v1 متوافقة مع cryptofault وvtr-forensic-img عبر context_loader.

القاعدةالاسمالخطورةالتصنيف
R-01UNINITIALIZED_WSعاليةHECHO
R-02UNSTRING_NO_OVERFLOWعاليةHECHO
R-03REDEFINES_SIZE_MISMATCHعاليةHECHO
R-04FORMAT_BOUNDARY_ANALYSISمعلوماتPROYECCION

R-01 — UNINITIALIZED_WS تكتشف متغيرات Working-Storage المُعلنة دون جملة VALUE ودون INITIALIZE أو MOVE في PROCEDURE DIVISION. خطر سلوك غير معرّف صامت في بيئات الدفعات وCICS.

R-02 — UNSTRING_NO_OVERFLOW تكتشف جمل STRING/UNSTRING دون معالجة ON OVERFLOW. اقتطاع صامت عندما يتجاوز الإدخال طول الحقل الهدف.

R-03 — REDEFINES_SIZE_MISMATCH تكتشف REDEFINES حيث يُعلن الحقل المُعاد تعريفه بايتات أكثر من قاعدته. خطر انتهاك حدود الذاكرة — سلوك يعتمد على المترجم.

R-04 — FORMAT_BOUNDARY_ANALYSIS (المرحلة 1 — ملاحظات فقط) تكتشف الشروط الموضعية في مصادر COBOL بالتنسيق الثابت:

  • COL73_NONEMPTY — محتوى غير فراغي في منطقة التعريف (الأعمدة 73–80)
  • COL7_VERB — فعل COBOL قابل للتنفيذ في سطر مُعلَّق (العمود 7 = * / / / D)
  • SOURCE_BOUNDARY — محتوى يتجاوز العمود 80

تُنتج R-04 severity=info، classification=PROYECCION. توثّق شروط التنسيق — وليست ثغرات. يتطلب التأثير تحليلًا تفاضليًا للتحويل (المرحلة 2).


التباين الدلالي لعلم المترجم — إثبات المفهوم القاطع

الأطروحة المركزية: ملف COBOL بالتنسيق الثابت له دلالات مختلفة اعتمادًا على علم المترجم المستخدم لبنائه — وهذا العلم يعيش خارج الملف المصدري.

مُثبت باستخدام GnuCOBOL 3.1.2، قطعة أثرية واحدة، دون تعديل:

bash tools/poc_compiler_flag.sh
cobc -x -fixed poc-same-file.cbl → compiles → output: 0000001000
cobc -x -free  poc-same-file.cbl → 10 compilation errors

تحت -fixed: السطر 6 العمود 7=* هو مؤشر التعليق — MOVE 999999 خامل، يُنفَّذ البرنامج ويعرض 1000.

تحت -free: تُفسَّر أرقام التسلسل 000100...001000 كقيم عددية حرفية — يُبلَّغ عن فقدان ترويسة PROGRAM-ID، ويُنتج كل سطر خطأً. الملف نفسه غير صالح نحويًا.

علم المترجم ليس داخل الملف المصدري. إنه يعيش في Makefile، أو إعدادات CI، أو استدعاء المشغّل. تغييره — عمدًا أو عرضًا — يغيّر ما إذا كان البرنامج صالحًا وما الذي يفعله.

الأدلة: corpus/fixed-format/poc-evidence.md
موثّق SHA-256 وسجل الأخطاء الكامل.

التحويل التفاضلي — المرحلة 2 (ترحيل يدوي)

يُثبت إثبات مفهوم سابق الأطروحة نفسها عبر الترحيل اليدوي:

SOURCE A (fixed-format, col7='*' dormant):   output → 0000001000
SOURCE B (free-format,  code active):         output → 0000999999

SHA-256 A: b70a948a0df5e8f685e82f5bffc9c4710f2c0a7a23b6294e7ca20092c2d25d37
SHA-256 B: f5fd80f79ed3e5be97628f89790256d6fba80605dce2b7985b729b5fef6f26d5

القيد: SOURCE B تمثيل يدوي لترحيل غير صحيح، وليس مخرجات IBM Z Open Editor أو IBM SCU تحت إعادة ترقيم حقيقية. إثبات مفهوم علم المترجم أعلاه لا يعاني من هذا القيد.


اكتشاف Unicode

النطاقات المكتشفة:

نقطة الترميزالاسمالخطر
U+0001–U+001FC0 Controlsإنهاء الدفعات بشكل غير طبيعي
U+200B–U+200FZero-Widthإفساد البيانات، اقتطاع VSAM
U+202A–U+202EBidi OverrideTrojan Source — CVE-2021-42574
U+2066–U+2069Bidi Isolateانتحال الاتجاه
U+FE00–U+FE0FVariation Selectorsإخفاء معلومات من فئة Glassworm
U+E000–U+F8FFPrivate Use Areaإخفاء الحمولة
U+FEFFBOMبايت مُسبق صامت
# Byte-level inspection
hexdump -C source.cob | grep -E "e2 80 (8b|ae)"

الاستخدام

# Unicode CI check — exits 1 on detection
python3 tools/check-invisibles.py .

# Sanitize with forensic audit log
python3 tools/clean-invisibles.py . --report audit-$(date +%Y%m%d).log

# Run static analysis rules
python3 -c "
from tools.cobol_rules import scan_path_r01, scan_path_r02, scan_path_r03, scan_path_r04
import json
for f in scan_path_r02('your-source.cbl'):
    print(f.to_json())
"

# Transformation differential PoC
bash tools/poc_differential.sh

GitHub Action

- name: Check for invisible Unicode
  run: python3 tools/check-invisibles.py .

لماذا COBOL

PIC X(n) هو مخزن بايتات خام. يقبل أي تسلسل بايتات دون تحقق. عندما تمرّر طبقة Zowe API بيانات JSON إلى copybook COBOL عبر MOVE، يدخل Unicode غير المرئي السجل بصمت.

يضيف COBOL بالتنسيق الثابت سطحًا ثانيًا: دلالات الأعمدة الموضعية (العمود 7 كمنطقة مؤشر، الأعمدة 73–80 كمنطقة تعريف) تعتمد على التنسيق. أداة الترحيل التي لا تحافظ على هذه الدلالات يمكنها تنشيط شيفرة خاملة أو إفساد بنية البرنامج بصمت.

الآلية المشتركة مع CVE-2021-42574 هي فجوة الاكتشاف — محتوى يتجاوز الفحص البصري. متجه اقتطاع حقل البيانات و متجه تحويل التنسيق متميزان عن انقلاب دلالات الشيفرة المصدرية الموصوف في CVE-2021-42574.


مجموعة الاختبارات

pip install pytest
python -m pytest tests/ -q
# 159 tests, 0 failures

المراجع

  • CVE-2021-42574 — Trojan Source
  • Glassworm — Aikido Security, March 2026
  • IBM Enterprise COBOL Programming Guide — Source Format
  • GnuCOBOL Programmer's Guide
  • Open Mainframe Project — Zowe
  • VTR Finding Schema v1 — tools/vtr_finding.py

القيود المعروفة

نطاق المترجم: تم التحقق من جميع القواعد مقابل GnuCOBOL 3.1.2 فقط. يمتلك IBM Enterprise COBOL وMicro Focus COBOL دلالات أعلام مختلفة، وسلوك حدود الأعمدة، ودعم امتدادات مختلف. النتائج على هذين المترجمين غير مُتحقق منها — صنّفها كـ INFERENCIA حتى يتم اختبارها.

تنزيل الأداة