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.
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.
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.
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.
Alle Beteiligten sind gleichberechtigt und fragen sich gegenseitig. Weniger verbreitet, aber die Grundlage von Dateitauschnetzen und Blockchain.
Netzarten nach Ausdehnung
| Kürzel | Name | Reichweite | Beispiel |
|---|---|---|---|
| PAN | Personal Area Network | wenige Meter | Bluetooth-Kopfhörer |
| LAN | Local Area Network | Gebäude | Firmennetz einer Filiale |
| MAN | Metropolitan Area Network | Stadt | Standortverbund einer Stadt |
| WAN | Wide Area Network | weltweit | das 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.
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.
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.
| Port | Dienst | Wofür |
|---|---|---|
| 80 | HTTP | unverschlüsselte Webseiten |
| 443 | HTTPS | verschlüsselte Webseiten (der Normalfall) |
| 22 | SSH | verschlüsselte Fernwartung von Servern |
| 25 / 587 | SMTP | E-Mail-Versand |
| 53 | DNS | Namensauflösung |
| 3306 / 5432 | MySQL / PostgreSQL | Datenbankzugriff |
Die Reise einer Anfrage
Klick dich durch die Stationen oder lass den Ablauf abspielen.
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>
- GET - etwas abrufen, ändert nichts
- POST - etwas Neues anlegen
- PUT - vorhandenes ersetzen
- PATCH - teilweise ändern
- DELETE - löschen
- 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)
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.
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.
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.
| Modell | Du bekommst | Du kümmerst dich um | Beispiel |
|---|---|---|---|
| IaaS | virtuelle Server und Speicher | Betriebssystem und alles darüber | AWS EC2, Azure VMs |
| PaaS | fertige Laufzeitumgebung | nur noch deine Anwendung | SAP BTP, Heroku |
| SaaS | fertige Software | nur die Nutzung | SAP SuccessFactors, Microsoft 365 |
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.
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
- 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
| Angriff | Wie er funktioniert | Gegenmaß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 |
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
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.
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 ö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ü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
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.