bg_image
header

CORS - Cross Origin Resource Sharing

CORS (Cross-Origin Resource Sharing) ist ein Sicherheitsmechanismus, der von Webbrowsern implementiert wird, um zu kontrollieren, welche Webseiten auf Ressourcen von anderen Domains zugreifen dürfen. Standardmäßig blockieren Browser aus Sicherheitsgründen sogenannte Cross-Origin-Anfragen, also Anfragen von einer Webseite an eine andere Domain, ein anderes Protokoll oder einen anderen Port.

Warum gibt es CORS?

Ohne CORS könnten bösartige Webseiten im Hintergrund Anfragen an andere Server senden (z. B. API-Server oder Banking-Seiten), wodurch sensible Daten gestohlen oder missbraucht werden könnten (Cross-Site Request Forgery, CSRF). CORS sorgt dafür, dass nur explizit erlaubte Webseiten auf Ressourcen zugreifen dürfen.

Wie funktioniert CORS?

Wenn eine Webanwendung eine Cross-Origin-Anfrage stellt (z. B. von http://example.com an https://api.example.com), sendet der Browser automatisch eine CORS-Anfrage. Der Server kann dann in den HTTP-Headern antworten, ob die Anfrage erlaubt ist:

  1. Ohne CORS-Header:
    Der Browser blockiert die Anfrage.

  2. Mit CORS-Headern:
    Der Server kann mit Access-Control-Allow-Origin: * (alle Domains) oder einer bestimmten Domain (Access-Control-Allow-Origin: https://example.com) antworten. Damit wird der Zugriff erlaubt.

Preflight-Requests

Für einige Anfragen (z. B. mit PUT, DELETE, speziellen Headern) führt der Browser einen Preflight-Request mit der OPTIONS-Methode aus. Der Server muss dann mit den richtigen CORS-Headern antworten, um die Hauptanfrage zu ermöglichen.

Fazit

CORS ist eine wichtige Sicherheitsmaßnahme, die verhindert, dass unerlaubte Webseiten auf fremde Ressourcen zugreifen. Entwickler müssen serverseitig die richtigen Header setzen, um den Zugriff für legitime Clients zu erlauben.


Prinzip der minimalen Rechte

Das Least Privilege Principle (Prinzip der minimalen Rechte) ist ein fundamentales Sicherheitsprinzip in der Informationstechnologie und im Management von Zugriffsrechten. Es besagt, dass jeder Benutzer, jedes Programm oder jeder Prozess nur die minimalen Berechtigungen erhalten sollte, die notwendig sind, um seine Aufgaben zu erfüllen. Dies hilft, das Risiko von Sicherheitsvorfällen zu minimieren, indem der potenzielle Schaden begrenzt wird, der durch missbräuchliche Nutzung oder Kompromittierung entstehen kann.

Hauptziele des Least Privilege Principle:

  1. Minimierung von Risiken: Durch Begrenzung der Berechtigungen wird das Risiko reduziert, dass böswillige Akteure oder Malware Zugriff auf kritische Systeme oder sensible Daten erlangen.
  2. Begrenzung von Schäden: Selbst wenn ein Konto oder ein System kompromittiert wird, bleibt der Schaden begrenzt, da der Angreifer nur auf die Ressourcen zugreifen kann, die für die betreffende Rolle notwendig sind.
  3. Erhöhung der Sicherheit: Es hilft, Sicherheitslücken zu reduzieren und die Gesamtintegrität des Systems zu verbessern, indem unnötige Rechte und Privilegien entfernt werden.

Implementierung des Least Privilege Principle:

  1. Rollenbasierte Zugriffskontrolle (RBAC): Benutzer und Prozesse sollten basierend auf ihrer Rolle nur die notwendigen Rechte erhalten. Zum Beispiel sollten normale Benutzer keine Administratorrechte haben.
  2. Feingranulare Berechtigungen: Berechtigungen sollten so spezifisch wie möglich vergeben werden. Zum Beispiel könnte ein Mitarbeiter in der Buchhaltung nur Zugriff auf die Buchhaltungsdaten haben, nicht aber auf Personalakten.
  3. Regelmäßige Überprüfung und Anpassung: Zugriffsrechte sollten regelmäßig überprüft und angepasst werden, um sicherzustellen, dass sie den aktuellen Anforderungen entsprechen und nicht mehr Rechte als nötig gewährt werden.
  4. Minimierung der Nutzung von Administratorrechten: Administratorrechte sollten nur für administrative Aufgaben verwendet und getrennt von regulären Benutzerkonten gehalten werden.
  5. Einsatz von Sicherheitsrichtlinien: Entwicklung und Durchsetzung von Sicherheitsrichtlinien, die die Umsetzung des Least Privilege Principle unterstützen und sicherstellen.

Beispiele für das Least Privilege Principle:

  • Benutzerkonten: Ein Mitarbeiter in der Marketingabteilung sollte keinen Zugriff auf Datenbanken oder Serverkonfigurationsdateien haben.
  • Anwendungen: Eine Webanwendung sollte nur Zugriff auf die Datenbanken und Dateien haben, die für ihren Betrieb notwendig sind, und nicht auf andere Systemressourcen.
  • Prozesse: Ein Prozess, der im Hintergrund läuft, sollte nur die Berechtigungen haben, die für seine spezifische Funktion erforderlich sind, und keine darüber hinausgehenden Rechte.

Durch die konsequente Anwendung des Least Privilege Principle kann die Sicherheitsarchitektur eines Systems erheblich gestärkt und das Risiko von internen und externen Bedrohungen reduziert werden.


CSRF Token

Ein CSRF-Token (Cross-Site Request Forgery-Token) ist eine Sicherheitsmaßnahme, die verwendet wird, um Cross-Site Request Forgery (CSRF)-Angriffe zu verhindern. CSRF ist eine Art von Angriff, bei dem ein Angreifer einen Benutzer dazu bringt, ungewollte Aktionen in einer Webanwendung durchzuführen, während dieser Benutzer bereits bei der Anwendung angemeldet ist.

Das CSRF-Token ist ein zufällig generierter Wert, der jedem Benutzer während seiner Sitzung zugewiesen wird. Dieses Token wird typischerweise in Form eines versteckten Feldes in Webformularen oder als Teil von URL-Parametern bei AJAX-Anfragen verwendet. Wenn der Benutzer eine Aktion ausführt, überprüft die Webanwendung, ob das übermittelte CSRF-Token mit dem erwarteten Token übereinstimmt. Wenn die Token übereinstimmen, wird die Anfrage als legitim angesehen und verarbeitet. Andernfalls wird die Anfrage abgelehnt.

Durch die Verwendung von CSRF-Token können Webanwendungen sicherstellen, dass die durchgeführten Aktionen tatsächlich vom autorisierten Benutzer stammen und nicht von einem Angreifer, der versucht, die Sitzung eines Benutzers auszunutzen. Dies hilft, die Integrität und Sicherheit der Anwendung zu gewährleisten.

 


Web Application Firewall - WAF

Eine Web Application Firewall (WAF) ist eine Sicherheitslösung, die speziell für den Schutz von Webanwendungen entwickelt wurde. Sie überwacht den Datenverkehr zwischen Webbrowsern und Webanwendungen, um potenziell schädliche oder unerwünschte Aktivitäten zu erkennen und zu blockieren. Im Wesentlichen fungiert eine WAF als Schutzschild, das Webanwendungen vor einer Vielzahl von Angriffen schützt, darunter:

  1. SQL-Injection: Eine Angriffstechnik, bei der Angreifer bösartige SQL-Abfragen einschleusen, um auf die Datenbank zuzugreifen oder sie zu manipulieren.

  2. Cross-Site-Scripting (XSS): Eine Angriffsmethode, bei der Angreifer Skripte in Webseiten einschleusen, um Benutzer zu kompromittieren, z. B. indem sie Sitzungscookies stehlen oder bösartige Aktionen im Namen des Benutzers ausführen.

  3. Cross-Site-Request-Forgery (CSRF): Ein Angriff, bei dem ein Angreifer eine betrügerische Anfrage im Namen eines authentifizierten Benutzers stellt, um unerwünschte Aktionen auszuführen.

  4. Brute-Force-Angriffe: Wiederholte Versuche, sich mit gestohlenen oder geratenen Anmeldeinformationen in ein System einzuloggen.

  5. Distributed Denial of Service (DDoS): Angriffe, bei denen eine große Anzahl von Anfragen an eine Webanwendung gesendet wird, um sie zu überlasten und unzugänglich zu machen.

Eine WAF analysiert den HTTP- und HTTPS-Verkehr und wendet spezifische Regeln und Filter an, um verdächtige Aktivitäten zu identifizieren und zu blockieren. Sie kann sowohl auf Serverebene als auch als Cloud-basierte Lösung implementiert werden und ist ein wichtiger Bestandteil einer umfassenden Sicherheitsstrategie für Webanwendungen.

 


Advanced Encryption Standard - AES

Der Advanced Encryption Standard (AES) ist eine symmetrische Verschlüsselungstechnik, die zur Sicherung von Daten verwendet wird. Er wurde von der National Institute of Standards and Technology (NIST) in den Vereinigten Staaten entwickelt und im Jahr 2001 als offizieller Standard anerkannt. AES ersetzt den veralteten Data Encryption Standard (DES) aufgrund seiner verbesserten Sicherheit und Effizienz.

AES verwendet einen Algorithmus, der eine Nachricht und einen Schlüssel als Eingabe nimmt und die Nachricht in eine verschlüsselte Form umwandelt. Der Empfänger kann dann denselben Schlüssel verwenden, um die verschlüsselte Nachricht wiederherzustellen. AES unterstützt verschiedene Schlüssellängen, einschließlich 128, 192 und 256 Bits, wobei 128 Bit die am häufigsten verwendete Schlüssellänge ist.

Da AES ein symmetrisches Verschlüsselungsverfahren ist, bedeutet dies, dass derselbe Schlüssel sowohl zum Verschlüsseln als auch zum Entschlüsseln der Daten verwendet wird. Dies macht AES schnell und effizient für die Verschlüsselung großer Datenmengen, was es zu einem weit verbreiteten Standard für die Sicherung von Daten in Bereichen wie Netzwerksicherheit, Datenbankverschlüsselung und Datenspeicherung macht.

 


Data Encryption Standard - DES

Der Data Encryption Standard (DES) ist ein weit verbreiteter symmetrischer Verschlüsselungsalgorithmus, der in den 1970er Jahren entwickelt wurde. Er wurde von der US-amerikanischen Regierungsbehörde NIST (National Institute of Standards and Technology) als Standard für die Verschlüsselung sensitiver Daten festgelegt.

DES verwendet einen symmetrischen Schlüssel, was bedeutet, dass derselbe Schlüssel sowohl zum Verschlüsseln als auch zum Entschlüsseln von Daten verwendet wird. Der Schlüssel ist 56 Bit lang, was in heutigen Maßstäben als relativ kurz und weniger sicher angesehen wird.

Die Funktionsweise von DES beruht auf einer Feistel-Struktur, bei der die Eingabe in Blöcke aufgeteilt und in einer Reihe von Runden verschlüsselt wird. Jede Runde verwendet eine Substitution-Permutation-Netzwerkstruktur, um die Daten zu manipulieren, und arbeitet mit einem Teil des Schlüssels.

Trotz seiner früheren weit verbreiteten Nutzung gilt DES heute als unsicher aufgrund der relativ kurzen Schlüssellänge und der Fortschritte in der Kryptographie, insbesondere bei der Brute-Force-Analyse. Es wurde durch modernere Verschlüsselungsalgorithmen wie Triple DES (3DES) und Advanced Encryption Standard (AES) ersetzt.

 


Obfuscation

Obfuscation ist ein Prozess, bei dem der Quellcode eines Programms so verändert wird, dass er für Menschen schwer zu verstehen ist, während er seine Funktionalität beibehält. Dies wird oft angewendet, um den Quellcode vor Reverse Engineering zu schützen oder um ihn kompakter zu machen, ohne die Funktionalität zu beeinträchtigen. Dabei werden Techniken wie das Umbenennen von Variablen und Funktionen, das Hinzufügen von unnötigem Code oder das Verändern der Programmstruktur verwendet. Obfuscation wird häufig in der Softwareentwicklung eingesetzt, insbesondere bei der Entwicklung von kommerziellen Softwareprodukten oder bei der Bereitstellung von Software als Service (SaaS), um das geistige Eigentum zu schützen und unerwünschte Manipulationen zu erschweren.


Firewall

Eine Firewall ist eine Netzwerksicherheitsvorrichtung oder Software, die den eingehenden und ausgehenden Netzwerkverkehr anhand vordefinierter Sicherheitsregeln überwacht und kontrolliert. Sie fungiert als Barriere zwischen einem vertrauenswürdigen internen Netzwerk und unvertrauenswürdigen externen Netzwerken, wie zum Beispiel dem Internet, um unbefugten Zugriff auf das interne Netzwerk zu verhindern oder zu blockieren.

Firewalls können in verschiedenen Formen implementiert werden:

  1. Netzwerk-Firewall: Diese Art von Firewall wird typischerweise am Rand eines Netzwerks eingesetzt, zum Beispiel zwischen dem internen Netzwerk einer Organisation und dem Internet. Sie überprüft Datenpakete, die durch das Netzwerk geleitet werden, und filtert sie basierend auf vordefinierten Regeln, um den Datenverkehr zu erlauben oder zu blockieren.

  2. Hostbasierte Firewall: Hostbasierte Firewalls werden auf einzelnen Computern oder Geräten installiert, um den Datenverkehr auf Geräteebene zu kontrollieren. Sie bieten eine zusätzliche Sicherheitsebene, indem sie den Datenverkehr anhand spezifischer Regeln filtern, die für diesen Host konfiguriert sind.

Firewalls arbeiten auf der Grundlage verschiedener Filtermethoden:

  • Paketfilterung: Paketfilternde Firewalls überprüfen Datenpakete, während sie durch das Netzwerk geleitet werden, basierend auf Kriterien wie Quell- und Ziel-IP-Adressen, Portnummern und Protokollen. Sie treffen Entscheidungen, um Pakete basierend auf vordefinierten Regeln zu erlauben oder zu blockieren.

  • Zustandsorientierte Inspektion: Zustandsorientierte Inspektionsfirewalls behalten den Zustand aktiver Verbindungen im Auge und verwenden diese Informationen, um Entscheidungen darüber zu treffen, ob Datenverkehr erlaubt oder blockiert werden soll. Sie führen Aufzeichnungen über den Zustand von Verbindungen, wie zum Beispiel TCP-Handshakes, und erlauben nur Datenverkehr, der zu legitimen, etablierten Verbindungen passt.

  • Proxy-Firewalls: Proxy-Firewalls fungieren als Vermittler zwischen Clients und Servern, indem sie den Datenverkehr abfangen und inspizieren, bevor er zu seinem Ziel weitergeleitet wird. Sie können zusätzliche Sicherheit bieten, indem sie die IP-Adressen des internen Netzwerks verbergen und fortgeschrittene Sicherheitsmaßnahmen wie Inhaltsfilterung und Anwendungsschichtinspektion anwenden.

Firewalls sind ein grundlegender Bestandteil der Netzwerksicherheit und helfen dabei, unbefugten Zugriff, Datenverstöße, Malware-Infektionen und andere Cyberbedrohungen durch die Durchsetzung von Zugriffskontrollrichtlinien und die Filterung potenziell schädlichen Datenverkehrs zu verhindern oder zu minimieren.

 


Intrusion Detection Systems - IDS

Intrusion Detection Systems (IDS) sind Sicherheitslösungen, die entworfen wurden, um Netzwerke oder Computersysteme kontinuierlich zu überwachen und nach potenziellen Sicherheitsverletzungen oder Angriffen zu suchen. Der Zweck eines Intrusion Detection Systems besteht darin, verdächtige Aktivitäten zu erkennen, die auf ein Eindringen in ein Netzwerk oder System hinweisen könnten, und daraufhin Alarme auszulösen oder Maßnahmen zu ergreifen, um die Sicherheit zu gewährleisten.

Es gibt zwei Hauptarten von Intrusion Detection Systems:

  1. Netzwerk-basierte Intrusion Detection Systems (NIDS): Diese Systeme überwachen den Datenverkehr innerhalb eines Netzwerks und suchen nach Anomalien oder bekannten Angriffsmustern. Sie analysieren Pakete, die über das Netzwerk übertragen werden, um verdächtige Aktivitäten zu erkennen, die auf einen Angriff oder eine Sicherheitsverletzung hinweisen könnten.

  2. Host-basierte Intrusion Detection Systems (HIDS): Im Gegensatz zu NIDS überwachen HIDS die Aktivitäten auf einzelnen Hosts oder Computern. Sie überwachen die Systemprotokolle, Dateisysteme und andere Systemressourcen nach Anzeichen von Angriffen oder ungewöhnlichem Verhalten, das auf eine Sicherheitsverletzung hinweisen könnte.

Ein Intrusion Detection System kann entweder signaturbasiert oder verhaltensbasiert sein:

  • Signaturbasierte IDS: Diese erkennen Angriffe anhand vordefinierter Muster oder Signaturen von bekannten Angriffen. Sie vergleichen den Netzwerkverkehr oder das Systemverhalten mit einer Datenbank bekannter Angriffssignaturen und lösen einen Alarm aus, wenn Übereinstimmungen gefunden werden.

  • Verhaltensbasierte IDS: Diese analysieren das normale Verhalten des Netzwerks oder Systems und suchen nach Abweichungen oder Anomalien, die auf potenzielle Angriffe hinweisen könnten. Sie basieren auf dem Prinzip, dass Angriffe oft ungewöhnliche Aktivitäten verursachen, die von normalem Betriebsverhalten abweichen.

Intrusion Detection Systems spielen eine wichtige Rolle bei der Überwachung und Sicherung von Netzwerken und Computersystemen, indem sie frühzeitig auf potenzielle Bedrohungen reagieren und Sicherheitsverletzungen erkennen, um geeignete Gegenmaßnahmen zu ergreifen.

 


Content Security Policy - CSP

Content Security Policy (CSP) ist ein Sicherheitsmechanismus, der in Webbrowsern implementiert ist, um Cross-Site-Scripting (XSS)-Angriffe und andere Arten von Injection-Angriffen zu verhindern. CSP ermöglicht es Website-Betreibern, eine Richtlinie festzulegen, die bestimmt, welche Ressourcen von einer Website geladen werden dürfen und von wo aus sie geladen werden dürfen.

Die CSP-Richtlinie kann verschiedene Arten von Einschränkungen umfassen, einschließlich:

  1. Erlaubte Quellen für Skripte, Bilder, Stylesheets, Schriftarten und andere Ressourcen.
  2. Einschränkungen für die Ausführung von Inline-Skripten und Inline-Stilen.
  3. Festlegung von Sicherheitsrichtlinien für bestimmte Arten von Ressourcen, wie beispielsweise das Aktivieren von HTTPS oder die Verwendung von nicht vertrauenswürdigen HTTP-Quellen.
  4. Reporting-Mechanismen, um Berichte über Verstöße gegen die CSP-Richtlinie zu erhalten.

Indem CSP verwendet wird, können Website-Betreiber das Risiko von XSS-Angriffen reduzieren, indem sie die Ausführung von nicht autorisiertem Code einschränken. Entwickler müssen jedoch sorgfältig darauf achten, dass die CSP-Richtlinie ordnungsgemäß konfiguriert ist, da eine zu restriktive Richtlinie möglicherweise legitime Funktionen der Website beeinträchtigt.