Die sogenannte „Obfuskation“ bietet einen sehr guten Schutz gegen sämtliche Reverse Engineering-Techniken. Aktuelle Decompiler können relativ einfach den Quellcode aus einem kompilierten Code rekonstruieren. Der folgende Artikel erklärt, wie sich Code-Obfuskation in modernen OOP-Programmiersprachen realisieren lässt und warum dieses obfuscate Verfahren im Kontext des World Wide Web besonders wichtig ist.

Die Flexibilität moderner Programmiersprachen birgt Risiken

Es ist sehr einfach Klassendateien gängiger Programmiersprachen wie Java oder C# zurückentwickeln. Der kompilierte Code ist mit viele Informationen versehen, die auch im ursprünglichen Quellcode enthalten sind. Darüber hinaus bieten viele moderne Programmiersprachen ein hohes Maß an Flexibilität, um einen schnellen und vereinfachten Entwicklungsprozess zu ermöglichen. Obwohl diese Flexibilität zahlreiche Vorteile in verteilten Umgebungen bietet, birgt sie auch einige potenzielle Risiken, die sich Hacker und Exploit-Entwickler eventuell zunutze machen könnten.

Was versteht man unter Obfuskation?

Code-Obfuscate ist aktuell das beste Verfahren, um Code gegen Reverse Engineering- und Hacking-Techniken zu schützen. Durch das Obfuscate-Verfahren wird der kompilierte Code des Programms zwar kryptisch und unverständlich, funktioniert jedoch weiterhin einwandfrei nach dem ursprünglichen Quellcode. Obfuskation lässt sich sowohl manuell als auch durch den Einsatz spezieller Programme, den sogenannten „Obfuskatoren“, realisieren. Die Software ist so komplizierter zu dechiffrieren, was sie unempfindlicher gegen sämtliche Reengineering- und Exploit-Techniken macht. Durch Obfuskation wird aus einem bestimmten Satz von Klassendateien „K“ ein anderer Satz von Klassendateien „K*“. Ergebnis der Obfuskation ist, dass der Code für die beiden Klassendateien nicht mehr der gleiche ist. Als Beispiel dient uns der folgende Java-Quellcode:

class OriginalHey {

public OriginalHey() {

int number=99;

}

public String getHey(String helloname){

return helloname;

}

Nach dem Obfuscate-Verfahren werden in diesem Code alle Namen der Klasse geändert oder zerhackt und die Zeilennummern entfernt. Dadurch entsteht dann der folgende obfuskierte Code:

class x {

public static boolean x;

public x() {

int a=1;

}

public String x(String x){

return y;

}

An dem obigen Beispiel erkennen Sie, dass die OriginalHey-Klasse und ihre Methode durch das Obfuscate-Verfahren geändert wurden. Der Name der Methode „x“ ist nichtssagend und viel schwieriger zu verstehen als getHey(). Wenn Sie den Bytecode mit dem ursprünglichen Bytecode vergleichen, sehen Sie, dass sämtliche Zeilennummern und Zeilenumbrüche entfernt wurde. Dadurch erhalten Hacker und Exploit-Entwickler weniger Informationen, wodurch der Prozess des Reverse Engineerings wesentlich erschwert wird.

Typische Obfuskationstechniken

Neben dem Austauschen von Buchstaben bzw. Zahlen und dem Entfernen von Zeilennummern, gibt es auch noch eine Vielzahl anderer Tricks, die von den einzelnen Obfuskatoren eingesetzt werden, um Quellcode zu obfuskieren. Eine effektive Möglichkeit zur Verschleierung von Quellcode ist die Aneinanderreihung bedeutungsloser Zeichenketten. Bei diesem Obfuscate-Verfahren wird ein Symbol in der Klassendatei durch eine Zeichenkette ersetzt. Der Ersatz kann beispielsweise ein bestimmtes Schlüsselwort sein oder ein völlig bedeutungsloses Symbol, wie zum Beispiel „***“.

Eine andere Technik, die bei vielen Obfuskatoren implementiert wird, zielt auf bestimmte Decompiler ab, wie zum Beispiel JODE oder Mocha. Hier wird durch das sogenannte „Dependency Injection-Verfahren“ eine schlechte Anweisung absichtlich in den Code eingebaut. Beim normalen Einsatz macht der Code keinerlei Probleme. Möchte man den Code jedoch mit einem Decompiler analysieren, lässt die schlechte Anweisung den Decompiler abstürzen. Als Beispiel für eine solche schlechte Anweisung dient uns der folgende Java-Code:

Method void main(java.lang.String[])

0 new #5

3 invokespecial #15

6 return

Nach dem Obfuscate-Verfahren wird in diesem Code am Ende eine schlechte Anweisung „pop“ eingefügt:

Method void main(java.lang.String[])

0 new #5

3 invokespecial #15

6 return

7 pop

Die Funktion verfügt jetzt nach der Returnanweisung auch über eine Abhebungsanweisung. Eine Funktion kann nach ihrem Rücksprung jedoch nichts mehr bewirken, sodass die Abhebungsanweisung beim normalen Einsatz ignoriert wird. Möchte man den Code mit einem Decompiler inspizieren, bewirkt dies einen Absturz des Programms.

Die National Security Agency (NSA) ist ein Auslandsgeheimdienst der Vereinigten Staaten von Amerika. Seine Hauptaufgabe besteht in der Überwachung elektronischer Kommunikation ausländischer Geheimdienste und Militärs. Das bringt ihm, berechtigt oder nicht, einige Kritik ein. Wussten Sie aber, dass Entwicklung und Forschung im Bereich von Sicherheit und Verschlüsselung auch Aufgaben des Geheimdienstes sind? Quellcode der Behörde befindet sich beispielsweise in fast jedem Android-Mobiltelefon und auf nahezu jedem Linux-Server.

Geschichte und Entwicklung der NSA

Gegründet wurde der Vorläufer der NSA, die Army Security Agency (ASA) 1945 durch den damaligen Präsidenten Harry S. Truman. Sie war zunächst eine Unterabteilung des Verteidigungsministeriums. Hauptgrund der Gründung war in der Anfangszeit die Spionage gegen das Deutsche Reich. Später trug der beginnende Kalte Krieg mit der Sowjetunion zum Fortbestand und Ausbau der Abteilung bei.

Im Jahr 1952 ging die NSA aus der ASA hervor. Sie ist mittlerweile der größte Auslandsgeheimdienst der USA.

De NSA hat über die Jahre beträchtliche Verdienste an der Entwicklung von Sicherheitsstandards in Hard- und Software erworben. Zum Beispiel auf dem Feld der Kryptografie.

Aufgaben der NSA heute

Die Aufgaben der NSA sind gesetzlich festgelegt. Sie hat Informationen zu sammeln, die zum Schutz der nationalen Sicherheit benötigt werden. Die zweite Hauptaufgabe ist der Schutz vor Angriffen auf geheime Informationen der US-Regierung. Die NSA untersteht dem Verteidigungsministerium. Das Internet wiederum basiert auf einer Entwicklung des US-Militärs, dem APRANET. Daher war die Behörde von Anfang an in die Entwicklung von Sicherheitsstandards eingebunden. Sie hat sich im Laufe der Jahre maßgeblich an der Forschung im Bereich der Verschlüsselungstechnik beteiligt. Dies beschreibt zugleich auch das dritte große Aufgabenfeld der NSA.

Entwicklung von Verschlüsselung

Die verschlüsselte Übertragung von Daten wurde in den 1970er Jahren als Schutz vor unbefugtem Abhören etabliert. Die NSA arbeitete früh an der Entwicklung und Implementierung von Algorithmen mit.

Der Data Encryption Standard (DES) wurde ab 1977 durch die US-Regierung für die verschlüsselte Übertragung von Daten eingesetzt. Der symmetrische Verschlüsselungsalgorithmus war für lange Zeit erste Wahl, wenn im Internet Daten verschlüsselt versandt werden sollten. Erst in den 1990er Jahren äußerten Forscher vermehrt Sicherheitsbedenken. Die Entwicklung erfolgte durch die Firma IBM, die US-amerikanische Behörde NBS (National Bureau of Standards) und die NSA. Sie war auch in die Planung und Ausschreibung eingebunden.

Am Nachfolger von DES, dem Advanced Encryption Standard (AES), war der Geheimdienst dann nicht mehr beteiligt.

Entwicklung von Software

Im Open-Source-Bereich hat die NSA gemeinsam mit Red Hat-Linux die Kernel-Erweiterung SELinux entwickelt. Diese setzt das Prinzip der Mandatory Access Control (MAC) für Zugangsrechte um. Nach der ist jeglicher Zugriff verboten, es sei denn, er wird explizit erlaubt. Das System wurde in den Linux-Kernel integriert (ab Version 2.6). In das Smartphone-Betriebssystem Android fand es mit der Version 4.3 als SEAndroid Einzug.

Seit 2017 veröffentlicht die NSA zahlreiche Programme auf Github.com in einem eigenen Repository. Darunter befinden sich einige zum Aufspüren von Sicherheitslücken. Auch Programme zum Absichern der eigenen Kommunikation werden angeboten, beispielsweise das VPN-Tool goSecure.

Für Aufsehen sorgte das kostenfreie Angebot des mächtigen Reverse-Engineering-Frameworks Ghidra. Dieses wird von Fachleuten als ernstzunehmender Konkurrent für das bekannte „IDA Pro“ angesehen.

Für alle Programme ist der Quellcode öffentlich. Daher können sich Sicherheitsexperten weltweit daran beteiligen, sie auf ihre korrekte Funktionalität zu überprüfen.

Dies wurde für Ghidra intensiv betrieben. Dabei fanden Forscher einen gravierenden Fehler im Code. Es herrscht aber Einigkeit unter den Fachleuten, dass es sich um einen Bug und keine Hintertür handelt.

Engagement im Bereich IT-Sicherheit

Die Behörde überprüft und zertifiziert Verschlüsselungsalgorithmen. Sie arbeitet mit Entwicklern von Verschlüsselung zusammen, beispielsweise beim Protokoll RSA.

In der „NSA Suite B“ werden die getesteten Produkte veröffentlicht und in Sicherheitsstufen eingeteilt. Sie empfiehlt beispielsweise folgende Standards:

-Verschlüsselung: AES (Schlüssellänge 128/256 für „geheim“/“streng geheim“)

-Digitale Signatur: ECDSA (Schlüssellänge 256/384 für „geheim“/“streng geheim“)

-Schlüsseltausch: ECDH (Schlüssellänge 256/384 für „geheim“/“streng geheim“)

-Hashfunktion: SHA-2 (Schlüssellänge 256/384 für „geheim“/“streng geheim“)

Die NSA veröffentlicht zudem Schwachstellen und Möglichkeiten, sich davor zu schützen. Über die Plattform Github.com lässt sich der „Hardware-and-Firmware-Security-Guidance“ herunterladen. Dieser gibt Anleitungen, sein System auf Verwundbarkeiten („Vulnerabilities“) zu überprüfen. Möglichkeiten zum Patchen werden dort beschrieben.

Sponsoring durch die NSA

Auch im Bereich der Ausbildung und Förderung junger IT-Talente engagiert sich die NSA. Sie pflegt Kooperationen mit Schulen. Ausgewählte Universitäten sponsert sie als Center of Academic Excellence (CAE). Zudem beteiligt der Geheimdienst sich an der Ausschreibung von Preisen für Forschungsergebnisse von Wissenschaftlern und Ingenieuren.

 

Wann haben Sie das letzte Mal eine handschriftliche Nachricht gesendet? Wenn Sie wie die meisten modernen Menschen sind, ist das wahrscheinlich schon eine ganze Weile her (mit Ausnahme von Feiertags- oder Geburtstagskarten). Das liegt daran, dass E-Mails zu einem festen Bestandteil unseres persönlichen und beruflichen Lebens geworden sind. Aber obwohl E-Mails so weit verbreitet sind, sind sie nicht immer sicher. Hier kommt S/MIME als Verschlüsselungsverfahren für Ihre E-Mails ins Spiel.

Definition

S/MIME steht für Secure/Multipurpose Internet Mail Extensions und ist ein Standard für die Verschlüsselung und Signatur von E-Mails und MIME-Daten mit öffentlichen Schlüsseln. Was S/MIME ermöglicht, sind drei Dinge:

  1. Stellen Sie gegenüber Ihren E-Mail-Empfängern sicher, dass Sie tatsächlicher Absender der E-Mail sind.
  2. Ermöglicht das verschlüsselte Senden und/oder Empfangen von E-Mails
  3. Erleichtern Sie die sichere gemeinsame Nutzung von Dokumenten in Netzwerken, indem Sie die Datenintegrität sicherstellen. Dies bedeutet, dass diese Zertifikate in einigen Fällen auch als Signaturzertifikate für Dokumente dienen, indem Dateien signiert und verschlüsselt werden, bevor sie per E-Mail gesendet werden.

Es wurde ursprünglich von RSA Security, Inc. entwickelt und basiert auf dem Verschlüsselungsmechanismus des Unternehmens für öffentliche Schlüssel. Die meisten E-Mail-Dienste und -Softwares verwenden S/MIME, um die E-Mail-Kommunikation zu sichern.

Wie funktioniert S/MIME?

S/MIME, basierend auf Public Key Infrastructure oder Asymmetric Encryption, bietet E-Mail-Sicherheit durch Verschlüsselung, Authentifizierung und Integrität. Mit anderen Worten, Sie können Ihre E-Mails digital signieren, sodass nur der vorgesehene Empfänger die Nachricht sehen kann und erfährt, dass die E-Mail wirklich von Ihnen stammt. Während die E-Mail unterwegs ist, wird ihre Integrität durch die Verschlüsselung sichergestellt, da sie verhindert, dass unbefugte Dritte die Daten abfangen und manipulieren.

Auf diese Weise geht S/MIME einen Schritt über die Verschlüsselung von E-Mail-Servern hinaus. Die Installation eines digitalen Zertifikats auf einem E-Mail-Server ist immer eine gute Idee, da hierdurch Hacker-Angriffe verhindert werden können. Dies reicht jedoch meist nicht aus. Selbst wenn Ihr E-Mail-Server verschlüsselt wurde, kann das einen Hacker nicht sicher davon abhalten, E-Mails aus Ihrem Posteingang zu stehlen, da die E-Mails unverschlüsselt auf den Servern gespeichert werden. Es schützt auch nicht, wenn Ihre E-Mails von einem anderen Server übertragen werden.

Beide Nachteile können mit einem S/MIME-Zertifikat behoben werden. Um S/MIME zu implementieren, müssen Sie ein S/MIME-Zertifikat (auch als „Client-Zertifikat“ bezeichnet) installieren.

S/MIME-Zertifikate basieren auf asymmetrischer Verschlüsselung. Es handelt sich also um zwei unterschiedliche Schlüssel – einen öffentlichen und einen privaten Schlüssel. Ein öffentlicher Schlüssel kann dabei nur einen privaten Schlüssel haben und umgekehrt. Dies liegt daran, dass sie in mathematischer Beziehung zueinander stehen. Der öffentliche Schlüssel wird tatsächlich vom privaten Schlüssel abgeleitet.

Die Verwendung von S/MIME

Bei Verwendung von S/MIME sendet ein Absender eine E-Mail, indem er sie über den öffentlichen Schlüssel des Empfängers verschlüsselt. Auf der anderen Seite entschlüsselt der Empfänger die E-Mail mit dem privaten Schlüssel, den er hat. Es gibt keine Möglichkeit für andere, die E-Mail in einem verschlüsselten Format zu sehen oder zu manipulieren. In einfachen Worten wird dieser gesamte Vorgang als „Signieren“ bezeichnet.

Dadurch wird die Wahrscheinlichkeit eines Eingriffs durch Dritte während der Übertragung der E-Mail verringert. Eine weiterer Vorteil ist die leichtere Authentifizierung des Absenders durch den Empfänger, da die Signatur des Absenders an jede E-Mail angehängt wird.

Obwohl S/MIME von vielen E-Mail-Clients unterstützt wird, wurde es nicht allgemein implementiert. In der Vergangenheit wurde es in erster Linie von Regierungsvertretern und Technikfreaks verwendet, da die Implementierung für normale Benutzer zu umständlich war.

Eine ähnliche Verschlüsselungsmethode ist eine Technologie namens PGP (Pretty Good Privacy), die oft als Alternative zu S/MIME genannt wird.

IT-Sicherheit ist ein Thema, um das sich Verantwortliche in jedem Unternehmen, das Daten digital verarbeitet, Gedanken machen sollten. Doch im Alltag besteht die Gefahr, dass es beim guten Vorsatz bleibt, wenn nicht explizit ein Mitarbeiter, als IT-Sicherheitsbeauftragter, mit dieser Aufgabe betraut wird. Daher gibt es die Möglichkeit, einen Mitarbeiter vorzusehen, der sich haupt- oder nebenamtlich darum kümmert, das eigene System abzusichern.

Muss jedes Unternehmen einen IT-Sicherheitsbeauftragten bestellen?

IT-Sicherheit ist vom Datenschutz zu unterscheiden. Der eine Bereich umfasst die Absicherung der IT-Infrastruktur, der andere den Umgang mit personenbezogenen Daten. Zu trennen sind beide Felder dennoch nicht. Bei einem Systemeinbruch durch einen Hacker, sind meistens auch persönliche Daten von Kunden und Mitarbeitern betroffen. Für die meisten Firmen gibt es zwar keine Pflicht, einen IT-Sicherheitsbeauftragten zu bestellen. Wenn aber Daten abfließen konnten, weil eklatante Sicherheitsmängel in der IT vorlagen, kann eine Haftung der Geschäftsführung gegeben sein. Diese kann sich, je nach Rechtsform des Unternehmens, aus nachfolgenden Gesetzen ergeben:

-Gesetz betreffend die Gesellschaften mit beschränkter Haftung (GmbHG),

-dem Aktiengesetz (AktG),

-Gesetz zur Kontrolle und Transparenz im Unternehmensbereich (KonTraG).

Für Unternehmen, die eine Tätigkeit im Bereich der kritischen Infrastrukturen (KRITIS) ausüben, ist die Benennung eines IT-Sicherheitsbeauftragten ohnehin vorgeschrieben. Dies ist im IT-Sicherheitsgesetz festgelegt (IT-SIG). Zu den Unternehmen zählen beispielsweise Energieerzeuger, Telekommunikationsanbieter und Wasserwerke.

Wo ist ein IT-Sicherheitsbeauftragter angegliedert?

Die Rolle des IT-Sicherheitsbeauftragten ist nicht starr festgeschrieben. Dies ist beim Datenschutz anders. Die Rechte und Pflichten des Datenschutzbeauftragten sind im Bundesdatenschutzgesetz in den Paragraphen 6 und 7 festgelegt. Unter anderem ist dort geregelt, dass er rechtzeitig in Entscheidungen eingebunden werden soll und nicht weisungsgebunden sein darf.

Es ist sinnvoll, sich daran zu orientieren. Ein IT-Sicherheitsbeauftragter sollte direkt der Geschäftsführung unterstellt sein. Handelt es sich um einen Mitarbeiter der IT-Abteilung, besteht die Gefahr, dass es zu Interessenskonflikten kommt. Zudem sollte er standardmäßig gehört werden, bevor im IT-Bereich Entscheidungen getroffen werden. Außerdem muss ihm die Möglichkeit gegeben werden, auf die für seine Tätigkeit notwendigen Informationen Zugriff zu bekommen. Daher muss er freien Zutritt zu allen Bereichen haben und Zugriff auf die Systeme bekommen. Sinnvoll ist es auch, ihm das Recht zu geben, Kontrollen durchzuführen.

Welche Aufgaben erfüllt ein IT-Sicherheitsbeauftragter?

Grundsätzlich soll ein IT-Sicherheitsbeauftragter über Aufbau und Struktur der Informationstechnik im Unternehmen Bescheid wissen. Ihm obliegt es, sich zu Beginn seiner Tätigkeit einen kompletten Überblick zu verschaffen. Dazu muss er genau wissen, wie und wo Daten erhoben und weiterverarbeitet werden. Es ist für ihn notwendig, Kenntnis zu haben, welche Systeme und was für Hardwareprodukte eingesetzt werden. Zudem muss er die Schnittstellen zwischen den einzelnen Bereichen kennen. Dieses Wissen muss er laufend aktualisieren.

Darüber hinaus muss er über die aktuelle Bedrohungslage informiert sein. Nur so ist ihm möglich, die konkrete Gefährdung des eigenen Unternehmens einzuschätzen. Dies kann sich auf Schadsoftware, wie beispielsweise als Mailanhänge kursierende Verschlüsselungstrojaner beziehen. Ebenso aber auch auf unsichere Hardware, wie zum Beispiel eingesetzte Router, deren Verschlüsselung angreifbar ist.

Aus diesen Informationen soll ein IT-Sicherheitsbeauftragter konkrete Maßnahmen zur Einhaltung und Verbesserung der Datensicherheit entwickeln und vorschlagen. Dies sollte in Form von Richtlinien oder eines Maßnahmenkatalogs geschehen. Wichtig ist es, die Schutzziele und Maßnahmen zur Einhaltung zu dokumentieren. Nur so kann das Unternehmen im Schadensfall nachweisen, dass es Vorkehrungen getroffen hat und nicht fahrlässig gehandelt wurde.

Als Orientierung kann hierbei die Beschreibung eines Informationssicherheitsmanagements (ISMS) vom Bundesamt für Sicherheit in der Informationstechnik (BSI) dienen. Dort sind mögliche Gefahren systematisch in den Grundschutzkatalogen aufgelistet. Dies betrifft Elementarschäden wie Feuer und Wasser, aber auch Datenverlust durch Fehlbedienung oder Sabotage. Zudem werden dort konkrete Einschätzungen der Gefährdung von Geräten mit spezifischen Betriebssystemen gegeben. In der Folge sind dort Maßnahmen beschrieben, die zur Absicherung einzelner Endgeräte empfohlen werden.

Weitere Orientierungen können an den Normen:

– ISO/IEC 27001 (IT-Sicherheitsverfahren, Informationssicherheits-Managementsysteme, Anforderungen, zuletzt aktualisiert im Juni 2017) und

-ISO/IEC 27002 (IT-Sicherheitsverfahren – Leitfaden für das Informationssicherheits-Management, zuletzt aktualisiert im Oktober 2013)

erfolgen.

Die Umsetzung der vorgeschlagenen Maßnahmen wird in der Praxis nach Beratung mit der Geschäftsführung geschehen. Schließlich können durch Austausch unsicherer Hardware oder Umstrukturierung von Arbeitsabläufen Kosten entstehen.

Zudem sollten vorgegebene Richtlinien auch in Audits oder Revisionen kontrolliert werden.

Weiterhin muss ein IT-Sicherheitsbeauftragter den Mitarbeitern als Ansprechpartner zur Verfügung stehen. Sie sollen ihm aufkommende Fragen, die IT-Sicherheit betreffend, stellen können. Auch Schulungen der Mitarbeiter führt ein IT-Sicherheitsbeauftragter durch.

Bei konkreten Gefährdungen, soll er kurzfristige Warnungen und Verhaltenshinweise an die Mitarbeiter herausgeben.

Zudem erstellt ein IT-Sicherheitsbeauftragter, Pläne für das Verhalten im Schadensfall und macht diese den Mitarbeitern zugänglich.

Voraussetzungen für den IT-Sicherheitsbeauftragten

In gewisser Weise muss ein IT-Sicherheitsbeauftragter Allrounder im IT-Bereich sein. Er benötigt das notwendige Fachwissen im gesamten überwachten Bereich. Um Kontrollen durchführen zu können, muss er in der Lage sein, die verwendeten Systeme auch selber zu bedienen. Zudem müssen seine Vorschläge zur Verbesserung praxistauglich sein, was ebenfalls entsprechende Kenntnisse voraussetzt.

Darüber hinaus muss er über aktuelle Entwicklungen in der Hardware, hier insbesondere in sicherheitsrelevanten Belangen, informiert sein.

Insbesondere aber muss er Kenntnisse im Bereich der IT-Security haben. Angriffe lassen sich am wirksamsten abwehren, wenn man weiß, wie sie im Detail funktionieren. Auch kann nur dann eine Überprüfung der eigenen Systeme auf eine Anfälligkeit erfolgen.

Einige Universitäten bieten Studiengänge mit Spezialisierung auf den Bereich an. Zudem gibt es diverse Anbieter von Fortbildungen und Zertifizierungen für dieses Tätigkeitsfeld.

Für kleine und mittelständische Unternehmen ist die Variante interessant, einen IT-Sicherheitsbeauftragten von einem externen Dienstleister zu verpflichten. Dies vermeidet den Schulungsaufwand eigener Mitarbeiter. Zudem kann es eine objektive Herangehensweise garantieren, wenn eine externe Person die Aufgabe übernimmt. Diese wird üblicherweise keine persönlichen Bindungen zu den Mitarbeitern haben und auch gegenüber der Geschäftsführung unbefangener auftreten. Weiterhin hat dieses Modell einen Vorteil, wenn die Größe der eigenen IT-Landschaft es nicht rechtfertigt, einen Mitarbeiter komplett mit der Aufgabe der IT-Sicherheit zu betrauen.

Fazit

Jedes Unternehmen tut gut daran, sich mit dem Thema zu beschäftigen, ob ein IT-Sicherheitsbeauftragter bestellt werden soll. Einerseits trägt es die Verantwortung für die ihm anvertrauten Daten, was bis zu einer persönlichen Haftung der Geschäftsführung bei Missbrauch führen kann. Andererseits gibt es inzwischen Bedrohungen, wie Verschlüsselungstrojaner, die auch umsichtige und vorsichtige Unternehmen betreffen und erhebliche Schäden anrichten.

Bei SHA256 handelt es sich um eine Variante der kryptologischen Hashfunktion Secure Hash Algorithm, in der Version 2. Hashfunktionen werden in der Informationstechnik vorrangig dazu benutzt, die Integrität von Daten zu garantieren. Sie eignen sich hierzu besonders, da der Ausgabewert beliebig langer Datensätze immer die gleiche, kompakte Größe hat. Die Änderung an nur einem Bit hingegen führt dazu, dass ein komplett anderer Hashwert entsteht. Dies hat zur Folge, dass kein Rückschluss auf Länge und Inhalte der übertragenen Daten möglich ist.

Ein paar Details zu Hashfunktionen wie SHA256

Eine Hashfunktion führt eine Berechnung mit den Bestandteilen des Inhalts durch. Ähnlich einer Prüfsumme. In der einfachsten Form könnte dies eine Quersummenberechnung sein. Diese könnte solange durchgeführt werden, bis das Ergebnis immer eine bestimmte Anzahl Stellen hat. Hierbei würde es, trotz unterschiedlicher Ausgangszahlen, massenhaft Überschneidungen beim Ergebnis geben. Diese nennt man Hash-Kollisionen. Daher ist eine derart simple Rechenoperation für diesen Zweck ungeeignet. Vielmehr verwendet man stattdessen komplexe Algorithmen. Neben der Anforderung, dass es zu keinen Kollisionen kommen darf, muss ein guter Hash-Algorithmus weitere Voraussetzungen erfüllen. Eine ist die Effizienz der Berechnung, eine weitere der Lawineneffekt. Hiermit ist gemeint, dass kleinste Veränderungen am Eingabewert größtmögliche Veränderungen am Ausgangswert verursachen sollen. Besonders wichtig ist die Unumkehrbarkeit. Es muss unmöglich sein, den Eingabewert anhand des Ausgabewerts zu errechnen. Man spricht hier von einem Einweg-Hash. Wesentlich ist zudem die Unkenntlichkeit der zugrunde liegenden Daten. Diese sind, nimmt man die Übersetzung des englischen Begriffs „to hash“ wörtlich, nach Durchführung der Berechnungen „zerhackt“.

Die Geschichte

Der SHA wurde in seiner ersten Fassung (SHA-0) vom National Institute of Standards and Technology (NIST) sowie der National Security Agency (NSA) entwickelt und 1993 vorgestellt. Aufgrund einer Schwäche im Algorithmus, wurde bereits 1995 der Nachfolger SHA-1 vorgestellt. Dieser wiederum gilt seit 2005 als nicht mehr sicher. Forschern war es gelungen, den Rechenaufwand zur Erzeugung von Kollisionen soweit zu reduzieren, dass eine Berechnung in einem endlichen Zeitraum möglich schien. Aus diesem Grund wurde SHA-2 entwickelt. Ihn gibt es in den Varianten SHA224, SHA256, SHA384 und SHA512. Die Ziffer beschreibt die Länge der Bitfolge in der Ausgabe. Die Darstellung erfolgt in der Regel allerdings in hexadezimaler Schreibweise. Dies ist kompakter und Veränderungen an der Ausgabe sind für den Menschen leichter erkennbar.

SHA-3 ist seit 2015 veröffentlicht, aber bislang noch nicht sehr verbreitet. Diesem liegt ein komplett anderer Algorithmus zur Berechnung zugrunde. SHA-2, mit ausreichender Ausgabelänge, kann allerdings nach wie vor als sicher angesehen werden.

Wie funktioniert SHA-2?

Der Eingangswert wird in gleichlange Elemente unterteilt. Diese nennt man Blöcke. Da ein Vielfaches der Blocklänge benötigt wird, ist es in der Regel notwendig, die Daten aufzufüllen, also zu expandieren. Der aufgefüllte Wert ist das Padding. Die Verarbeitung erfolgt danach blockweise. Es werden die Blöcke durchlaufen und dabei jeweils als Schlüssel für Zwischenberechnungen an den nachfolgend zu kodierenden Daten verwendet. Der Datensatz wird in 64 Runden (SHA224 und SHA256) oder 80 Runden (SHA384 und SHA512) durchlaufen. Das Ergebnis der letzten Berechnung ist der Ausgabewert, also der Hash.

Anwendungszwecke von SHA256

Der Hashwert einer Datei wird oftmals im Zusammenhang mit deren Download bereitgestellt. Hier ist SHA256 inzwischen eine der häufigsten Varianten. Der Nutzer kann nach dem vollständigen Download den Hashwert seiner Datei lokal berechnen und mit dem Wert auf der Anbieterseite abgleichen. Stimmt er überein, besteht eine absolute Sicherheit, dass die korrekte Datei fehlerfrei übertragen wurde. Man spricht in diesem Zusammenhang auch vom digitalen Fingerabdruck einer Datei. Zur Berechnung des Hashwertes können kostenlose Programme wie HashCalc verwendet werden.

Anwendung von Suchalgorithmen

Den im Vergleich zum Inhalt um ein Vielfaches kürzeren Fingerabdruck kann man auch zur Indexierung von Dateien, beispielsweise in Datenbanken, nutzen. Hier ist es oft üblich, dass Metadaten wie Dateinamen und Pfad, getrennt vom eigentlichen Inhalt gespeichert werden. Zum einen muss dann nicht nach dem gesamten Inhalt gesucht werden. Zum anderen können die entstandenen Hashwerte der Dateien sortiert werden, was die Anwendung von Suchalgorithmen erleichtert.

In ähnlicher Weise kann SHA256 bei digitalen Zertifikaten zur Anwendung kommen. So findet das Verfahren bei der Erstellung von TLS/SSL-Zertifikaten Anwendung. Weiterhin wird es für die Signaturerstellung bei den Verschlüsselungsverfahren S/MIME und PGP genutzt. Auch IPSec, das Protokoll zum Aufbau einer sicheren Internetverbindung, nutzt SHA256 zur Authentifizierung im Zusammenhang mit dem Verfahren HMAC (Keyed-Hash Message Authentication Code).

SHA256 bei der Erstellung von Blockchains

Zudem kann SHA256 Bestandteil der Erstellung von Blockchains sein. Dieses Prinzip ist vor allem im Zuge der Verbreitung von Bitcoins bekannt geworden. Es ist aber auch auf andere Bereiche übertragbar. Verwendet man einen sicheren Hash-Algorithmus, ist es möglich, Transaktionen dezentral zu verwalten. Jede Transaktion besteht aus einer Kopfzeile (Header) und einem Datenteil und wird in einem Block festgehalten. Diese Blöcke werden nun untrennbar miteinander verbunden. Im Header einer Transaktion werden der SHA256-Hashwert des vorhergehenden Headers und des eigenen Datenteils festgehalten. Nach Beendigung der Transaktion wird die Blockchain wieder auf mehrere redundante Speicherorte (Knoten) hochgeladen. Eine Manipulation ist somit ausgeschlossen. Wird eine Transaktion entfernt oder verändert, stimmen die Hashwerte der folgenden Transaktionen nicht mehr. Zudem ist jedes beteiligte System in der Lage, die Integrität der Blockchain anhand der Hashwerte zu berechnen.

Eine Flut oder Cyber Attacke, Fehler in der Lieferkette oder der Verlust eines wichtigen Mitarbeiters. Es ist der Albtraum eines Unternehmers, aber schwerwiegende Betriebsstörungen können jederzeit auftreten. Beim Business Continuity Planning (BCP) geht es darum, einen Plan für die Bewältigung schwieriger Situationen zu haben, damit das Unternehmen so störungsfrei wie möglich weiter funktioniert.

Egal, ob es sich um ein privates Unternehmen, eine Organisation des öffentlichen Sektors oder eine Wohltätigkeitsorganisation handelt, Mitarbeiter der entsprechenden Führungsetagen müssen wissen, wie sie auch unter schwierigsten Bedingungen die Geschäfte am Leben erhalten können. Genau dafür gibt es BCP.

Was ist Business Continuity Planning?

Business Continuity Planning ist die Vorausplanung und Vorbereitung innerhalb einer Organisation, um sicherzustellen, dass sie in der Lage ist, ihre kritischen Geschäftsfunktionen während und nach dem Eintreten von Notfällen auszuführen. Solche katastrophalen Ereignisse können Naturkatastrophen, Geschäftskrisen, Pandemien, Gewalt am Arbeitsplatz oder Ereignisse sein, die zu einer Störung des Geschäftsbetriebs führen könnten. Beim effektiven Business Continuity Management wird nicht nur für Ereignisse geplant und vorbereitet, durch die Funktionen vollständig gestoppt werden, sondern auch für Ereignisse, die sich möglicherweise bloß sehr negativ auf einzelne Dienste oder Funktionen auswirken, sodass einzelne Tätigkeitsfelder einer Organisation starken Störungen unterliegen. BCP stellt sicher, dass Personal sowie Sach- und Vermögenswerte geschützt und im Katastrophenfall schnell wieder einsatzfähig sind.

Die Vorteile von BCP

  1. Es kann im äußersten Fall nicht nur Daten und Produktionszyklen, sondern Leben retten.

 

  1. Es schafft Vertrauen bei Mitarbeitern, Kunden & Geschäftspartnern.

 

  1. Es stellt die Einhaltung der Industriestandards sicher (aus versicherungstechnischer Sicht relevant).

 

  1. Es schützt den Brand Value und das Image.

 

  1. Es pflegt eine belastbare Organisationskultur.

 

  1. Es liefert wertvolle Geschäftsdaten.

 

  1. Es hilft, finanzielles Risiko zu mindern.

 

  1. Es schützt die Lieferkette.

 

  1. Es gibt Unternehmen im besten Fall einen Wettbewerbsvorteil

Schlüsselelemente im Business Continuity Management

Durch die Durchführung einer Business Impact Analysis (BIA) können mögliche Schwachstellen sowie die Auswirkungen einer Katastrophe auf verschiedene Abteilungen aufgedeckt werden. Der BIA informiert eine Organisation über die wichtigsten Funktionen und Systeme, die in einem Business Continuity Plan priorisiert werden müssen.Ein Business-Continuity-Plan besteht aus drei Schlüsselelementen: Ausfallsicherheit, Wiederherstellung und Kontingenz.

Ein Unternehmen kann die Ausfallsicherheit erhöhen, indem es kritische Funktionen und Infrastrukturen mit Blick auf verschiedene Katastrophenmöglichkeiten entwirft. Dies kann Personalwechsel, Datenredundanz und die Aufrechterhaltung eines Kapazitätsüberschusses umfassen. Durch die Gewährleistung der Ausfallsicherheit in verschiedenen Szenarien können Unternehmen wichtige Dienste auch ohne Unterbrechung vor Ort und außerhalb des Standorts bereitstellen.

BCP als Notfallplan

Eine schnelle Wiederherstellung der Geschäftsfunktionen nach einem Notfall ist von entscheidender Bedeutung. Das Festlegen von Zielen für die Wiederherstellungszeit für verschiedene Systeme, Netzwerke oder Anwendungen kann helfen, Prioritäten für die Elemente festzulegen, die zuerst wiederhergestellt werden müssen. Andere Wiederherstellungsstrategien umfassen Ressourceninventare, Vereinbarungen mit Dritten zur Übernahme von Unternehmensaktivitäten und die Nutzung umgebauter Räume für geschäftskritische Funktionen.

Ein Notfallplan enthält Verfahren für eine Vielzahl externer Szenarien und kann eine Befehlskette enthalten, die die Verantwortlichkeiten innerhalb der Organisation während eines Katastrophenfalls verteilt. Diese Aufgaben können den Austausch von Hardware, die Anmietung von Büroräumen für Notfälle, die Schadensbeurteilung und die Beauftragung von Drittanbietern umfassen.

Ein entscheidender Faktor für einen schnellen Wiederanlauf beschädigter Geschäftsfunktionen sind kontinuierliche IT-Funktionen: Mit der heutigen Technologie können viele Vorsichtsmaßnahmen getroffen werden, um Daten, Informationen und Vorgänge zu schützen. Die Schlüsselwörter Datensicherung und Backup spielen hierbei in unserer digitalen Welt eine zentrale Rolle. Ein cloudbasierter Rechenzentrumsdienst ermöglicht Unternehmen, Ressourcen schnell zu verschieben und trotzdem auf dieselben Anwendungen und Informationen zuzugreifen. Der Business Continuity Plan und die IT-Infrastruktur einer Organisation sollten diese Strategie berücksichtigen.

Fünf Schritte zur Business Continuity-Planung

 

Um einen effektiven Business Continuity Plan zu erstellen, sollte ein Unternehmen die folgenden fünf Schritte ausführen:

 

Schritt 1: Risikobewertung

 

– Bewertung der Sicherheit vor bestimmten Szenarien

 

– Überprüfung der Points of Failure

 

– Bewertung der Auswirkungen verschiedener Geschäftsunterbrechungsszenarien

 

– Bestimmung der Eintrittswahrscheinlichkeit eines Risikos anhand eines Ratingsystems

 

– Entwicklung eines Plans zum weiteren Vorgehen anhand voriger Priorisierung

 

Schritt 2: Business Impact Analysis (BIA)

– Analyse der Recovery Point Objectives (RPO) und Recovery Time Objectives (RTO)

 

– Identifizieren kritischer Geschäftsprozesse und Workflows sowie unterstützender Produktionsanwendungen

 

– Identifizieren von Interdependenzen, sowohl intern als auch extern

 

– Identifizieren von kritischem Personal, einschließlich Backups, Fähigkeiten, primären und sekundären Kontakten

 

– Identifizieren eventueller spezieller Umstände

 

Schritt 3: Entwicklung eines Business Continuity Plans

 

– Abnahme der Business Impact Analysis durch die Geschäftsleitung

 

– Zusammenfassen der Risikobewertung und der BIA-Ergebnisse, um einen umsetzbaren und gründlichen Plan zu erstellen

 

– Entwicklung von unabhängigen Abteilungs- und Standortplänen

 

– Überprüfung des Plans mit den wichtigsten Interessengruppen zur Fertigstellung und Verteilung

 

Schritt 4: Implementierung planen

 

– Verteilung des Plans an alle wichtigen Stakeholder

 

– Durchführung von Schulungen, um sicherzustellen, dass die Mitarbeiter mit den im Plan beschriebenen Schritten vertraut sind

 

Schritt 5: Testen und Wartung planen

 

– Durchführung von Simulationsübungen, um sicherzustellen, dass die wichtigsten Stakeholder mit den Planschritten vertraut sind

 

– Durchführung von halbjährlichen Planprüfungen

 

– Durchführung jährlicher Business Impact Assessments