Modul 5 von 6

Netze, Web und IT-Sicherheit

Kein Unternehmenssystem steht für sich allein. Ein SAP-System spricht mit dem Onlineshop, der Bank, dem Logistikdienstleister und dem Zoll. Dieses Modul erklärt, wie diese Gespräche technisch ablaufen - und wie man verhindert, dass jemand mithört, der nicht dazugehört.

Fortschritt in diesem Modul 0 von 8 Lektionen

1. Wie das Internet aufgebaut ist

Das Internet ist kein einzelnes Netz, sondern ein Zusammenschluss von hunderttausenden Netzen, die sich auf gemeinsame Regeln geeinigt haben. Es gibt keine Zentrale - genau das macht es so widerstandsfähig.

Das Postsystem

Du wirfst einen Brief ein und weißt nicht, über welche Verteilzentren er läuft. Jede Station schaut nur auf die Adresse und reicht ihn zur nächsten weiter. Fällt ein Zentrum aus, nimmt der Brief einen anderen Weg. Genauso arbeiten Router.

Client-Server

Ein Rechner fragt (Client), ein anderer antwortet (Server). Das ist das Modell des Webs und praktisch aller Unternehmenssoftware. Der Server ist dabei keine besondere Maschine, sondern eine Rolle.

Peer-to-Peer

Alle Beteiligten sind gleichberechtigt und fragen sich gegenseitig. Weniger verbreitet, aber die Grundlage von Dateitauschnetzen und Blockchain.

Netzarten nach Ausdehnung

KürzelNameReichweiteBeispiel
PANPersonal Area Networkwenige MeterBluetooth-Kopfhörer
LANLocal Area NetworkGebäudeFirmennetz einer Filiale
MANMetropolitan Area NetworkStadtStandortverbund einer Stadt
WANWide Area Networkweltweitdas Internet

2. Das Schichtenmodell

Damit nicht jedes Programm alles können muss, ist Netzwerkkommunikation in Schichten aufgeteilt. Jede Schicht erledigt eine Aufgabe und nutzt die darunter. Dein Browser muss nicht wissen, ob er über WLAN oder Kabel angebunden ist.

OSI oder TCP/IP?

In Vorlesungen begegnet dir das OSI-Modell mit sieben Schichten - ein theoretisches Referenzmodell. In der Praxis läuft alles über das TCP/IP-Modell mit vier Schichten. Beide beschreiben dieselbe Sache unterschiedlich fein; OSI wird gern abgefragt, TCP/IP tatsächlich verwendet. Merkhilfe für die sieben OSI-Schichten von unten: Bitübertragung, Sicherung, Vermittlung, Transport, Sitzung, Darstellung, Anwendung.

3. IP-Adressen, DNS und Ports

IP-Adressen

Jedes Gerät im Netz braucht eine eindeutige Adresse. Eine IPv4-Adresse besteht aus vier Zahlen von 0 bis 255 - das sind vier Byte, also 32 Bit und damit gut 4 Milliarden mögliche Adressen. Weil das längst nicht reicht, gibt es IPv6 mit 128 Bit.

192.168.  1.  20
└──┬──┘ └──┬──┘
Netzanteil  Geräteanteil
(welches Netz)  (welches Gerät darin)

Die Subnetzmaske 255.255.255.0 sagt:
die ersten drei Zahlen bestimmen das Netz, die letzte das Gerät.
Private Adressbereiche

Adressen, die mit 10., 172.16. bis 172.31. oder 192.168. beginnen, sind für interne Netze reserviert und im Internet nicht erreichbar. Dein Router übersetzt sie beim Verlassen des Heimnetzes in seine eine öffentliche Adresse - das nennt man NAT. Deshalb teilen sich alle Geräte in deiner Wohnung nach außen eine einzige IP-Adresse.

Ports

Ein Rechner führt viele Dienste gleichzeitig aus. Der Port sagt, welcher gemeint ist - die IP-Adresse ist das Haus, der Port die Wohnungsnummer.

PortDienstWofür
80HTTPunverschlüsselte Webseiten
443HTTPSverschlüsselte Webseiten (der Normalfall)
22SSHverschlüsselte Fernwartung von Servern
25 / 587SMTPE-Mail-Versand
53DNSNamensauflösung
3306 / 5432MySQL / PostgreSQLDatenbankzugriff

Die Reise einer Anfrage

Klick dich durch die Stationen oder lass den Ablauf abspielen.

Drei Befehle für die Fehlersuche

ping shop.beispiel.de - ist der Rechner überhaupt erreichbar?
nslookup shop.beispiel.de - welche IP-Adresse gehört zum Namen?
tracert (Windows) oder traceroute - über welche Stationen läuft der Weg und wo hakt es?

4. HTTP und das Web

HTTP ist die Sprache, in der Browser und Webserver reden. Der Ablauf ist immer derselbe: Der Client stellt eine Anfrage, der Server antwortet - fertig. HTTP ist zustandslos: Der Server erinnert sich von sich aus an nichts.

Anfrage:                        Antwort:
GET /produkte HTTP/1.1          HTTP/1.1 200 OK
Host: shop.beispiel.de          Content-Type: text/html
Accept-Language: de             Content-Length: 4711

                                <html>…</html>
Die wichtigsten Methoden
  • GET - etwas abrufen, ändert nichts
  • POST - etwas Neues anlegen
  • PUT - vorhandenes ersetzen
  • PATCH - teilweise ändern
  • DELETE - löschen
Die Statuscodes nach Hunderterstelle
  • 2xx hat geklappt (200 OK, 201 angelegt)
  • 3xx woanders (301 dauerhaft umgezogen)
  • 4xx Fehler beim Client (404 nicht gefunden, 401 nicht angemeldet, 403 verboten)
  • 5xx Fehler beim Server (500 Serverfehler, 503 überlastet)
Warum 4xx und 5xx zu unterscheiden ein Vorteil ist

Bei 4xx liegt der Fehler bei dem, der fragt - falsche Adresse, fehlende Anmeldung, keine Berechtigung. Bei 5xx liegt er beim Server. Wenn eine Schnittstelle im Projekt klemmt, spart diese eine Unterscheidung stundenlanges Suchen an der falschen Stelle.

Wie ein Server sich doch etwas merkt

Weil HTTP zustandslos ist, braucht es einen Trick, damit du beim zweiten Klick noch angemeldet bist: Cookies. Der Server schickt eine Kennung mit, der Browser sendet sie bei jeder weiteren Anfrage zurück.

5. APIs und JSON

Eine API (Application Programming Interface) ist eine Schnittstelle, über die ein Programm ein anderes benutzt - ohne Mensch dazwischen. Für dich als Wirtschaftsinformatiker ist das ein Kernthema: Systeme verbinden ist ein großer Teil der Arbeit.

Die Speisekarte

Eine API ist die Speisekarte eines Restaurants: Sie sagt dir, was du bestellen kannst und wie du es benennen musst. Wie in der Küche gearbeitet wird, geht dich nichts an - und darf sich ändern, solange die Karte gleich bleibt.

REST

REST ist der verbreitetste Baustil für Web-APIs. Die Idee: Jede Sache ist über eine Adresse ansprechbar, und die HTTP-Methode sagt, was damit geschehen soll.

GET    /api/kunden          alle Kunden abrufen
GET    /api/kunden/4711     einen bestimmten Kunden abrufen
POST   /api/kunden          neuen Kunden anlegen
PUT    /api/kunden/4711     Kunden vollständig ersetzen
DELETE /api/kunden/4711     Kunden löschen

JSON

Daten werden fast immer als JSON ausgetauscht - ein Textformat, das Menschen lesen und Maschinen leicht verarbeiten können.

Im SAP-Umfeld

SAP stellt Daten über OData bereit - eine standardisierte Variante von REST, die auch Filtern und Sortieren über die Adresszeile erlaubt, etwa ?$filter=Land eq 'DE'. Fiori-Anwendungen greifen genau so auf das Backend zu. Wer REST und JSON verstanden hat, versteht OData in einer Stunde.

6. Cloud und Virtualisierung

Cloud Computing heißt: IT-Leistung wird bei Bedarf über das Netz bezogen und nach Verbrauch bezahlt, statt eigene Server zu kaufen.

ModellDu bekommstDu kümmerst dich umBeispiel
IaaSvirtuelle Server und Speicher Betriebssystem und alles darüberAWS EC2, Azure VMs
PaaSfertige Laufzeitumgebung nur noch deine AnwendungSAP BTP, Heroku
SaaSfertige Software nur die NutzungSAP SuccessFactors, Microsoft 365
Die Pizza-Analogie

Eigener Server: Du backst zu Hause, kaufst alle Zutaten und besitzt den Ofen. IaaS: Du mietest eine Küche mit Ofen. PaaS: Du bekommst den fertigen Teig und belegst nur noch. SaaS: Du gehst ins Restaurant.

Virtualisierung und Container

Ein Server wird selten voll ausgelastet. Bei der Virtualisierung laufen mehrere virtuelle Maschinen auf einer echten - jede mit eigenem Betriebssystem. Container gehen einen Schritt weiter: Sie teilen sich den Kern des Betriebssystems und enthalten nur die Anwendung samt ihren Abhängigkeiten. Dadurch starten sie in Sekunden statt Minuten.

Das läuft hier gerade

Diese Lernseite steckt selbst in einem Docker-Container: ein winziges Linux mit einem Webserver und diesen Dateien. Genau deshalb läuft sie in deinem Portainer ohne jede Installation - der Container bringt alles mit, was er braucht. Portainer ist dabei die Oberfläche, mit der du Container startest, stoppst und überwachst.

7. IT-Sicherheit: die Grundbegriffe

Die drei Schutzziele (CIA)
  • Vertraulichkeit (Confidentiality): Nur Befugte sehen die Daten.
  • Integrität (Integrity): Daten sind unverfälscht - oder die Veränderung fällt auf.
  • Verfügbarkeit (Availability): Berechtigte kommen dann heran, wenn sie es brauchen.

Diese drei Ziele stehen oft im Widerspruch zueinander. Maximale Vertraulichkeit erreicht man, indem man den Server abschaltet - dann ist die Verfügbarkeit dahin. Sicherheit ist deshalb immer eine Abwägung, nie ein Zustand.

Typische Angriffsarten

AngriffWie er funktioniertGegenmaßnahme
Phishing Gefälschte E-Mail verleitet zur Eingabe von Zugangsdaten Schulung, Zwei-Faktor-Anmeldung, Absender prüfen
SQL-Injection Über ein Eingabefeld wird SQL eingeschleust und mit ausgeführt Vorbereitete Anweisungen statt Zusammenbauen von Text
Cross-Site-Scripting Fremder JavaScript-Code landet über eine Eingabe auf der Seite Ausgaben maskieren, Eingaben prüfen
Ransomware Schadsoftware verschlüsselt Dateien und fordert Lösegeld Sicherungen offline aufbewahren, Systeme aktuell halten
Social Engineering Jemand ruft an und gibt sich als IT-Abteilung aus Rückruf über bekannte Nummer, klare Regeln
Warum SQL-Injection so gut zu verstehen ist

Angenommen, ein Programm baut die Abfrage als Text zusammen:

"SELECT * FROM benutzer WHERE name = '" + eingabe + "'"

Gibt jemand als Namen ' OR '1'='1 ein, entsteht daraus:

SELECT * FROM benutzer WHERE name = '' OR '1'='1'

'1'='1' ist immer wahr - die Abfrage liefert alle Benutzer. Die Lösung heißt Prepared Statement: Die Abfrage steht mit Platzhaltern fest, die Eingabe wird nur als Wert eingesetzt und nie als Befehl gedeutet. Diese Lücke ist seit über zwanzig Jahren bekannt und immer noch unter den häufigsten - weil das Zusammenbauen von Text so bequem ist.

8. Verschlüsselung und Anmeldung

Zwei Arten von Verschlüsselung

Symmetrisch

Derselbe Schlüssel ver- und entschlüsselt - wie ein Haustürschlüssel. Sehr schnell, aber: Wie bekommt der Empfänger den Schlüssel, ohne dass ihn jemand abfängt? Verfahren: AES.

Asymmetrisch

Zwei zusammengehörige Schlüssel. Der öffentliche darf jeder kennen und verschlüsselt; nur der private entschlüsselt. Löst das Schlüsselproblem, ist aber langsamer. Verfahren: RSA.

Der Briefkasten

Der öffentliche Schlüssel ist der Einwurfschlitz: Jeder darf etwas hineinwerfen. Der private Schlüssel öffnet den Kasten - und den hast nur du. In der Praxis kombiniert man beides: Asymmetrisch wird ein zufälliger Sitzungsschlüssel ausgetauscht, danach läuft alles schnell symmetrisch weiter. Genau das passiert beim TLS-Handschlag.

Hashfunktionen

Ein Hash ist eine Einbahnstraße: Aus beliebigen Daten wird ein Wert fester Länge, aus dem sich die Ausgangsdaten nicht zurückrechnen lassen. Passwörter werden deshalb nie im Klartext gespeichert, sondern nur ihr Hash.

Verschlüsselung und Hashing sind nicht dasselbe

Verschlüsseltes lässt sich mit dem Schlüssel wieder lesbar machen. Ein Hash nicht - das ist der Punkt. Beim Anmelden wird das eingegebene Passwort erneut gehasht und nur der Hash verglichen. Selbst wer die Datenbank stiehlt, hat damit keine Passwörter. Wichtig dabei: ein Salt, also ein Zufallswert je Benutzer, damit gleiche Passwörter nicht denselben Hash ergeben.

Authentifizierung und Autorisierung

Zwei Wörter, die ständig verwechselt werden

Authentifizierung: Wer bist du? (Anmeldung mit Passwort)
Autorisierung: Was darfst du? (Berechtigungen, Rollen)
Angemeldet zu sein heißt nicht, alles zu dürfen. In SAP-Systemen ist genau diese Trennung ein eigenes großes Themenfeld - Berechtigungsrollen bestimmen bis auf Feldebene, wer welchen Buchungskreis sehen darf.

Bei der Zwei-Faktor-Authentifizierung kombiniert man zwei verschiedene Arten von Nachweis: etwas, das du weißt (Passwort), etwas, das du hast (Handy, Chipkarte), und etwas, das du bist (Fingerabdruck). Zwei Passwörter sind keine Zwei-Faktor-Anmeldung - es müssen zwei unterschiedliche Kategorien sein.

Übungen

Aufgabe 1 · leicht

Ordne zu: Welcher Statuscode gehört zu welcher Situation?

  • Die Seite existiert nicht
  • Du bist nicht angemeldet
  • Alles in Ordnung
  • Der Server hat einen internen Fehler
Lösung anzeigen

404 (nicht gefunden) · 401 (nicht angemeldet) · 200 (OK) · 500 (Serverfehler).
Nicht verwechseln: 401 heißt „ich weiß nicht, wer du bist“, 403 heißt „ich weiß, wer du bist, aber du darfst nicht“.

Aufgabe 2 · leicht

Warum kann dein Rechner die Adresse 192.168.1.20 haben, während ein Rechner in einer anderen Firma dieselbe Adresse hat?

Lösung anzeigen

192.168.x.x ist ein privater Adressbereich. Solche Adressen sind nur im jeweiligen internen Netz gültig und werden im Internet nicht geroutet. Beim Verlassen des Netzes übersetzt der Router sie per NAT in die eine öffentliche Adresse des Anschlusses.

Aufgabe 3 · mittel

Ein Kollege sagt: „Wir speichern die Passwörter verschlüsselt, das reicht.“ Was entgegnest du?

Lösung anzeigen

Verschlüsselung ist umkehrbar. Wer die Datenbank und den Schlüssel bekommt, hat alle Passwörter im Klartext - und der Schlüssel liegt meist auf demselben Server.

Passwörter gehören gehasht gespeichert, mit einem eigenen Salt je Benutzer und einem absichtlich langsamen Verfahren wie bcrypt oder Argon2. Langsam ist hier ein Vorteil: Es bremst das massenhafte Durchprobieren aus.

Aufgabe 4 · mittel

Entwirf die REST-Adressen für eine Auftragsverwaltung: alle Aufträge lesen, einen bestimmten lesen, einen neuen anlegen, einen stornieren.

Lösung anzeigen
GET    /api/auftraege           alle Aufträge
GET    /api/auftraege/1001      ein bestimmter Auftrag
POST   /api/auftraege           neuen anlegen
DELETE /api/auftraege/1001      löschen

Für "stornieren" ist DELETE meist falsch - der Auftrag
soll ja erhalten bleiben, nur den Status wechseln:

PATCH  /api/auftraege/1001      { "status": "storniert" }

Zwei Regeln: In der Adresse stehen Substantive im Plural, keine Verben (nicht /getAuftrag). Und die Methode drückt die Handlung aus, nicht die Adresse.

Aufgabe 5 · schwer

Diese Funktion baut eine SQL-Abfrage aus Benutzereingaben zusammen. Beschreibe die Lücke und wie man sie schließt.

function suche(name) {
  return "SELECT * FROM kunden WHERE name = '" + name + "'";
}
Lösung anzeigen

SQL-Injection. Die Eingabe wird ungeprüft Teil des Befehls. Mit dem Namen ' OR '1'='1 entsteht:

SELECT * FROM kunden WHERE name = '' OR '1'='1'

Das liefert alle Kunden. Mit '; DROP TABLE kunden; -- ließe sich sogar die Tabelle löschen.

Die Lösung: Ein Prepared Statement. Die Abfrage steht mit Platzhalter fest, der Wert wird getrennt übergeben und nie als Befehl gedeutet: SELECT * FROM kunden WHERE name = ?. Das ist keine Fleißarbeit, sondern die einzig zuverlässige Lösung - Eingaben selbst zu filtern übersieht immer einen Fall.

Selbsttest

Karteikarten zu diesem Modul

Wenn du tiefer einsteigen willst

  • "Computernetzwerke" von Andrew Tanenbaum - das Standardwerk, gut lesbar geschrieben.
  • BSI für Bürger - die Seiten des Bundesamts für Sicherheit in der Informationstechnik erklären IT-Sicherheit ohne Fachjargon.
  • OWASP Top 10 - die zehn häufigsten Sicherheitslücken in Webanwendungen. Kurz, konkret und in jedem Bewerbungsgespräch für IT-Stellen gut zu kennen.