Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
cobol-shield — Sicherheits-Hardening-Toolkit für COBOL-Legacy-Systeme — Erkennung unsichtbarer Unicode-Zeichen, Analyse von Formatgrenzen, Integrität der Quelltexttransformation | Kitploit
Tools/GitHubGitHub/luiscastellanos-dev/cobol-shield
DefensivwerkzeugeStatische Code-Analyse (SAST)SchwachstellenanalyseDevSecOpsLieferkettensicherheit
GitHubluiscastellanos-dev/cobol-shield

cobol-shield

Sicherheits-Hardening-Toolkit für COBOL-Legacy-Systeme — Erkennung unsichtbarer Unicode-Zeichen, Analyse von Formatgrenzen, Integrität der Quelltexttransformation

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Repository anzeigen
Webseite
29vor 1 MonatNoch nicht geprüft
Teilen

cobol-shield

Security-Auditing-Toolkit für COBOL-Legacy-Systeme

Teil der VTR Research Methodology | DOI: 10.5281/zenodo.22063208 Status: Reproduzierbar | Lizenz: MIT | Track: Kritische Infrastruktur

Was es tut

Erkennt Abweichungen im Kompilierungskontext, unsichtbare Unicode-Angriffe und unsichere COBOL-Muster in GnuCOBOL-Quellen. Dieselbe Quelldatei, kompiliert mit -fixed vs. -free, erzeugt unterschiedliche Programme — dieses Tool macht diese Divergenz beobachtbar und reproduzierbar.

So reproduzieren Sie es in 3 Befehlen

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

Was es NICHT ist

Dieses Tool beansprucht oder demonstriert keine Remote-Code-Ausführung, Privilegieneskalation oder Netzwerkausnutzung. Befunde werden gemäß VTR-Methodik als CONFIRMADO, PROBABLE oder OBSERVADO klassifiziert — die Klassifizierung spiegelt die Beweiskraft wider, nicht die Schwere der Auswirkung.


Security-Auditing-Toolkit für COBOL-Legacy-Systeme

Erkennt unsichtbare Unicode-Angriffe, unsichere COBOL-Muster und Integritätsprobleme bei Formattransformationen in GnuCOBOL-Quellen. Validiert mit GnuCOBOL 3.1.2. Verhalten bei IBM Enterprise COBOL oder Micro Focus nicht verifiziert — compiler-spezifische Flag-Semantik kann abweichen.

PIC X akzeptiert alles. Ihr Batch sollte das nicht.


Umfang

cobol-shield deckt zwei unterschiedliche Angriffsflächen ab:

1. Unsichtbare Unicode-Zeichen — CVE-2021-42574 und Vektoren der Glassworm-Klasse, die die visuelle Code-Review umgehen und PIC X-Felder stillschweigend korrumpieren.

2. COBOL-Statische Analyse — unsichere Muster in Legacy-Quellen: nicht initialisierter Working-Storage, ungeprüfter STRING/UNSTRING-Überlauf, REDEFINES-Größenabweichungen und positionsabhängige Bedingungen im Fixed-Format, die ihre Bedeutung unter Transformation ändern.


Tools

DateiZweck
tools/check-invisibles.pyCI-Checker — beendet mit 1 bei Erkennung unsichtbarer Unicode-Zeichen
tools/clean-invisibles.pySanitizer mit forensischem Audit-Log
src/AUDITOR-INVISIBLE.cobByte-Validator in COBOL unter Verwendung von HEX-OF
tools/cobol_rules.pyStatische Analyseregeln R-01 bis R-04
tools/transform_renumber.pyFixed-Format-Renumber-Shift-Simulator (Phase 2)
tools/poc_compiler_flag.shDefinitiver PoC — dieselbe Datei, -fixed vs. -free, Compiler-Flag-Divergenz
tools/poc_differential.shDifferentieller PoC Phase 2 — SOURCE A vs. SOURCE B (manuelle Migration)

Regeln der statischen Analyse

Jede Regel erzeugt eine Ausgabe im VTR Finding Schema v1, kompatibel mit cryptofault und vtr-forensic-img über context_loader.

RegelNameSchweregradKlassifizierung
R-01UNINITIALIZED_WSHochHECHO
R-02UNSTRING_NO_OVERFLOWHochHECHO
R-03REDEFINES_SIZE_MISMATCHHochHECHO
R-04FORMAT_BOUNDARY_ANALYSISInfoPROYECCION

R-01 — UNINITIALIZED_WS Erkennt Working-Storage-Variablen, die ohne VALUE-Klausel und ohne INITIALIZE oder MOVE in der PROCEDURE DIVISION deklariert sind. Risiko stillen undefinierten Verhaltens in Batch- und CICS-Umgebungen.

R-02 — UNSTRING_NO_OVERFLOW Erkennt STRING/UNSTRING-Anweisungen ohne ON OVERFLOW-Behandlung. Stille Abschneidung, wenn die Eingabe die Zielfeldlänge überschreitet.

R-03 — REDEFINES_SIZE_MISMATCH Erkennt REDEFINES, bei denen das redefinierte Feld mehr Bytes deklariert als seine Basis. Risiko einer Speichergrenzverletzung — compilerabhängiges Verhalten.

R-04 — FORMAT_BOUNDARY_ANALYSIS (Phase 1 — nur Beobachtungen) Erkennt positionsabhängige Bedingungen in Fixed-Format-COBOL-Quellen:

  • COL73_NONEMPTY — Nicht-Leerzeichen-Inhalt im Identifikationsbereich (Spalten 73–80)
  • COL7_VERB — ausführbares COBOL-Verb in einer kommentierten Zeile (Spalte 7 = * / / / D)
  • SOURCE_BOUNDARY — Inhalt jenseits von Spalte 80

R-04 erzeugt severity=info, classification=PROYECCION. Es dokumentiert Formatbedingungen — keine Schwachstellen. Auswirkungen erfordern eine differentielle Transformationsanalyse (Phase 2).


Semantische Divergenz von Compiler-Flags — Definitiver PoC

Die zentrale These: Eine COBOL-Datei im Fixed-Format hat unterschiedliche Semantik, je nachdem, mit welchem Compiler-Flag sie gebaut wird — und dieses Flag liegt außerhalb der Quelldatei.

Demonstriert mit GnuCOBOL 3.1.2, einzelnes Artefakt, keine Modifikation:

bash tools/poc_compiler_flag.sh
cobc -x -fixed poc-same-file.cbl → kompiliert → Ausgabe: 0000001000
cobc -x -free  poc-same-file.cbl → 10 Kompilierungsfehler

Unter -fixed: Zeile 6, Spalte 7 = * ist der Kommentarindikator — MOVE 999999 ist inaktiv, das Programm läuft und zeigt 1000 an.

Unter -free: Sequenznummern 000100...001000 werden als numerische Literale geparst — der PROGRAM-ID-Header wird als fehlend gemeldet, jede Zeile erzeugt einen Fehler. Dieselbe Datei ist syntaktisch ungültig.

Das Compiler-Flag befindet sich nicht in der Quelldatei. Es lebt im Makefile, in der CI-Konfiguration oder im Operator-Aufruf. Eine Änderung — beabsichtigt oder versehentlich — ändert, ob das Programm gültig ist und was es tut.

Nachweis: corpus/fixed-format/poc-evidence.md
SHA-256 und vollständiges Fehlerprotokoll dokumentiert.

Transformationsdifferential — Phase 2 (manuelle Migration)

Ein früherer PoC demonstriert dieselbe These über manuelle Migration:

SOURCE A (Fixed-Format, Spalte 7='*' inaktiv):   Ausgabe → 0000001000
SOURCE B (Free-Format,  Code aktiv):              Ausgabe → 0000999999

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

Einschränkung: SOURCE B ist eine manuelle Darstellung einer fehlerhaften Migration, nicht die Ausgabe von IBM Z Open Editor oder IBM SCU unter realer Renummerierung. Der obige Compiler-Flag-PoC hat diese Einschränkung nicht.


Unicode-Erkennung

Erkannte Bereiche:

CodepointNameRisiko
U+0001–U+001FC0-SteuerzeichenBatch-Abbrüche
U+200B–U+200FZero-WidthDatenkorruption, VSAM-Abschneidung
U+202A–U+202EBidi-OverrideTrojan Source — CVE-2021-42574
U+2066–U+2069Bidi-IsolateRichtungs-Spoofing
U+FE00–U+FE0FVariation SelectorsSteganographie der Glassworm-Klasse
U+E000–U+F8FFPrivate Use AreaPayload-Versteck
U+FEFFBOMStilles vorangestelltes Byte
# Byte-level inspection
hexdump -C source.cob | grep -E "e2 80 (8b|ae)"

Verwendung

# 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 .

Warum COBOL

PIC X(n) ist ein roher Byte-Puffer. Er akzeptiert jede Byte-Sequenz ohne Validierung. Wenn eine Zowe-API-Schicht JSON über MOVE an ein COBOL-Copybook übergibt, gelangt unsichtbares Unicode stillschweigend in den Datensatz.

Fixed-Format-COBOL fügt eine zweite Angriffsfläche hinzu: positionsabhängige Spaltensemantik (Spalte 7 als Indikatorbereich, Spalten 73–80 als Identifikationsbereich) ist formatabhängig. Ein Migrationstool, das diese Semantik nicht bewahrt, kann inaktiven Code aktivieren oder die Programmstruktur stillschweigend korrumpieren.

Tool herunterladen