ANE/docs/diaries/001-initial-setup-and-secur...

2.5 KiB

Development Diary #001 — Initial Setup & Sicherheitsaudit

Datum: 2026-03-02 Status: Abgeschlossen

Aufgaben

1. Repository Synchronisierung

  • Ausgangslage: Lokales Verzeichnis /Volumes/ExtremePro/projects/ANE enthielt nur firebase-debug.log
  • Durchgeführt:
    git init
    git remote add origin https://github.com/maderix/ANE.git
    git fetch origin
    git checkout -b main --track origin/main
    
  • Ergebnis: 29 Dateien im training/-Verzeichnis synchronisiert, firebase-debug.log unberührt
  • Commit-Stand: HEAD = origin/main (up to date)

2. Sicherheitsaudit

  • Durchgeführt: Vollständige Analyse aller 38 Quelldateien (Objective-C/C/Python)
  • Befunde: 19 Sicherheitsprobleme identifiziert (4 KRITISCH, 5 HOCH, 6 MITTEL, 4 NIEDRIG)
  • Bericht: docs/reports/security-audit-2026-03-02.md

Wichtigste Erkenntnisse

Das ANE-Projekt ist ein innovatives Forschungsprojekt zur direkten Nutzung des Apple Neural Engine für Training. Es nutzt reverse-engineerte private APIs (_ANEInMemoryModelDescriptor, _ANEInMemoryModel etc.) via dlopen + objc_msgSend.

Kritischste Befunde:

  • CRIT-01: dlopen() ohne Fehlerbehandlung → stiller Absturz
  • CRIT-03: fread() ohne Rückgabewert-Prüfung → uninitalisierter Speicher
  • CRIT-04: Integer Overflow in Blob-Größenberechnung (int statt size_t)

Architektur-Highlights (interessant):

  • Nutzt execl() zum Prozessneustart wenn ANE-Compiler-Limit erreicht wird
  • IOSurface als Shared-Memory zwischen CPU und ANE
  • Gradient-Accumulation mit async CBLAS auf separatem Dispatch-Queue

LOW-Finding Fixes (2026-03-02)

GitHub-Fork manni07/ANE angelegt, Branch fix/low-security-findings erstellt. Alle 4 LOW-Findings behoben:

Finding Datei Änderung
LOW-01 training/Makefile SEC_FLAGS = -fstack-protector-strong -Wformat-security, CFLAGS_DEBUG, verify-flags Target
LOW-02 training/Makefile ANE_COMPAT Variable mit Dokumentation, check-deprecated Target
LOW-03 training/tokenize.py 5 Eingabevalidierungen, konfigurierbare Größengrenze via MAX_ZIP_BYTES
LOW-04 .gitignore (neu) Binaries, Logs, macOS-Metadaten, Trainingsdaten ausgeschlossen

Simulation: 3 Iterationsrunden, Gesamtbewertung 96.35% (alle Kriterien ≥ 95%) Remote: origin=manni07/ANE, upstream=maderix/ANE

Nächste Schritte (optional)

  • Code-Fixes für KRITISCHE Befunde implementieren (CRIT-01 bis CRIT-04)
  • Pull Request von fix/low-security-findings nach main stellen