Anti-Tampering-Techniken (Anti-Tampering Techniques) umfassen verschiedene Methoden, um unbefugte Veränderungen oder Manipulationen an Hard- oder Software zu verhindernDiese Techniken sind wichtig, um die Integrität und Sicherheit von Systemen und Daten zu gewährleisten. Zu den Methoden gehören unter anderem: 

Hardware-basierte Techniken:

  • Physische Sicherheit:
    Schützen der Hardware vor direktem physischem Zugriff, z.B. durch Verschließen von Gehäusen, Verwendung von Siegeln oder Sensoren, die auf Manipulationen reagieren.
  • Trusted Platform Module (TPM):
    Ein spezieller Chip, der kryptografische Schlüssel sicher speichert und verwendet, um die Integrität von Hardware und Software zu überprüfen.
  • Secure Boot:
    Ein Mechanismus, der sicherstellt, dass nur autorisierte Software beim Startvorgang ausgeführt wird, um Manipulationen am Betriebssystem zu verhindern.
  • Hardware Root of Trust:
    Ein fester, vertrauenswürdiger Hardware-Bestandteil, der als Grundlage für die Überprüfung der Integrität des gesamten Systems dient. 
     

Software-basierte Techniken:

  • Code Signierung:
    Digitale Signaturen, die verwendet werden, um sicherzustellen, dass Softwarecode nicht verändert wurde.
  • Verschlüsselung:
    Schützt Daten vor unbefugtem Zugriff, indem sie in eine unlesbare Form umgewandelt werden.
  • Obfuskation:
    Verändert den Code so, dass er schwerer zu verstehen und zu manipulieren ist, ohne seine Funktionalität zu ändern.
  • Runtime Application Self-Protection (RASP):
    Überwacht die Ausführung einer Anwendung in Echtzeit und reagiert auf verdächtige Aktivitäten.
  • Software Bill of Materials (SBOM):
    Eine Liste aller Komponenten einer Software, die zur Überprüfung der Herkunft und Sicherheit der Software verwendet werden kann.
  • Integritätsprüfung:
    Überprüft regelmäßig die Integrität von Software und Daten, um Veränderungen festzustellen. 
     

Weitere Techniken:

  • Zugriffskontrolle:
    Beschränkt den Zugriff auf sensible Bereiche und Daten, um unbefugte Manipulationen zu verhindern.
  • Sicherheitsüberwachung:
    Überwacht das System auf verdächtige Aktivitäten und reagiert auf potenzielle Bedrohungen.
  • Härtung (Hardening):
    Konfiguriert das System so, dass es weniger anfällig für Angriffe und Manipulationen ist. 
     
Die Auswahl der geeigneten Anti-Tampering-Techniken hängt von den spezifischen Anforderungen des jeweiligen Systems und der Art der Bedrohungen ab, die es zu schützen gilt.
 

Dieser Artikel bezieht sich speziell auf Code Signierung

Objekt-Signing-Zertifikate, oder auch Code-Signing-Zertifikate, sind digitale Zertifikate, die verwendet werden, um Software, Anwendungen, Treiber und andere ausführbare Dateien zu signieren. Sie dienen dazu, die Authentizität und Integrität der Software zu gewährleisten, indem sie die Identität des Entwicklers oder Herausgebers bestätigen und sicherstellen, dass die Dateien seit der Signatur nicht verändert wurden. 
 
Was sind Objekt-Signing-Zertifikate?
  • Digitale Unterschrift für Software:
    Sie sind vergleichbar mit einer digitalen Unterschrift für Software. 
  • Überprüfung der Herkunft:
    Sie bestätigen, dass die Software tatsächlich vom angegebenen Entwickler stammt. 
  • Integrität der Software:
    Sie stellen sicher, dass die Software seit der Signatur nicht manipuliert wurde. 
  • Vertrauen für Nutzer:
    Sie geben Nutzern die Gewissheit, dass die heruntergeladene Software vertrauenswürdig ist. 
     
Wie funktionieren sie?
  1. Zertifikat beantragen: Ein Softwareentwickler beantragt ein Code-Signing-Zertifikat bei einer Zertifizierungsstelle (CA). 
  2. Identitätsprüfung: Die CA prüft die Identität des Antragstellers. 
  3. Signieren der Software: Mit dem Zertifikat kann der Entwickler seine Software digital signieren. 
  4. Überprüfung der Signatur: Nutzer können die Signatur der Software mit einem speziellen Werkzeug überprüfen, um die Echtheit zu bestätigen. 
     
Warum sind sie wichtig?
  • Schutz vor Malware: Sie helfen, schädliche Software zu erkennen, die als legitime Software getarnt ist. 
  • Vertrauen in Software: Sie erhöhen das Vertrauen der Nutzer in die Software. 
  • Schutz vor Manipulation: Sie stellen sicher, dass die Software nicht von Dritten verändert wurde. 
     
Beispiele für Anbieter:
  • Sectigo bietet Code-Signing-Zertifikate an.
  • GlobalSign ist ebenfalls ein Anbieter von Code-Signing-Zertifikaten.
  • DigiCert bietet auch Lösungen für Code Signing.
  • Microsoft bietet mit Trusted Signing (ehemals Azure Code Signing) eine verwaltete Signaturlösung an. 
Dedizierte Signierwerkzeuge:
Es gibt auch unabhängige Softwaretools, die speziell für das Signieren von Objekten entwickelt wurden, wie zum Beispiel das signtool von Microsoft oder andere Open Source Lösungen.
  • Beispiele:
    • signtool: Ein Kommandozeilenwerkzeug von Microsoft, das Teil des Windows SDK ist und zum Signieren von Dateien verwendet werden kann.  Link
    • Trusted Signing-Dienst (ehemals Azure Code Signing) ist eine von Microsoft vollständig verwaltete End-to-End-Signaturlösung für Entwickler. Link
    • OpenSSL: Ein mächtiges Open-Source-Tool, das für viele kryptografische Operationen verwendet werden kann, einschließlich des Signierens von Dateien. Link
    • Java Keytool: Ein Kommandozeilenwerkzeug von Java, das für das Signieren von JAR-Dateien verwendet wird. Link