Modul 10 · 10.3
Når det går galt
Modul 10: Forbliv sikker · Læsetid: 11 minutter
Læringsmål: Efter denne lektion genkender du tegnene på en hacket server, tager de første skridt uden at ødelægge beviser eller backups, vælger mellem at rense og at geninstallere og ved, hvornår du skal anmelde et brud på persondatasikkerheden.
Centrale begreber: hændelse, tegn, isolere, snapshot som bevis, logbog over hændelsen, geninstallation, udskift nøgler og adgangskoder, ren backup, anmeldelsespligt ved databrud (72 timer), Datatilsynet, nødplan
Genkend en hændelse
Et indbrud melder sjældent sin ankomst. Som regel ser du noget, der er "mærkeligt". Tegn, du skal tage alvorligt:
- Høj belastning uden grund: processoren kører konstant på 100 %, for eksempel på grund af en cryptominer. Brug
topellerhtoptil at se, hvilken proces det er, og under hvilken bruger den kører. - Ukendte processer eller tjenester: et program med et mærkeligt navn, ofte i
/tmp,/dev/shmeller/var/tmp, eller en systemd-tjeneste eller timer, som du ikke selv har oprettet. - Udgående trafik, der ikke stemmer: din udbyder melder, at din server sender spam eller angriber andre servere, eller netværksgraferne i panelet viser spidser.
- Nye brugere eller nøgler: en linje i
~/.ssh/authorized_keys, som du ikke kender, en bruger i/etc/passwdmed UID 0, en ny linje i/etc/sudoers.d/. - Ændrede filer: ukendte PHP-filer på dit website, en ændret crontab.
- Logs, der er forsvundet eller tomme: angribere sletter gerne deres spor.
Et par kommandoer til hurtigt at se dig omkring:
anna@web1:~$ top -o %CPU
anna@web1:~$ sudo ss -tunap | grep ESTAB
anna@web1:~$ sudo last -n 20
anna@web1:~$ awk -F: '$3 == 0 {print $1}' /etc/passwd
anna@web1:~$ sudo find /etc/systemd/system /etc/cron* -newer /etc/hostname -type f
anna@web1:~$ for u in /root /home/*; do sudo cat $u/.ssh/authorized_keys 2>/dev/null; donelast viser, hvem der loggede ind hvornår, awk-linjen viser alle konti med UID 0 (det bør kun være root), og find-linjen finder units og cron-filer, der er nyere end en fil, som blev oprettet ved installationen.
Bemærk: på en server, der virkelig er hacket, kan også disse kommandoer være forfalsket. De hjælper dig med at få mistanke om noget, ikke med at bevise, at alt er rent.
De første skridt: ro, isolér, dokumentér
Det vigtigste i de første minutter er ikke at gå i panik og smide ting ud. Arbejd i denne rækkefølge.
1. Start en logbog. Skriv på papir eller på din bærbare (ikke på serveren), hvad du ser, hvornår, og hvad du gør. Det får du brug for senere til at finde årsagen og til en anmeldelse, en politianmeldelse eller dit forsikringsselskab. Det nederlandske NCSC anbefaler det også.
2. Isolér serveren. Forhindr, at den gør mere skade (spam, angreb, afsendelse af data), uden at slukke den:
- luk alt i din udbyders firewall (hvis den findes) undtagen SSH fra din egen adresse; eller
- gør det samme på selve serveren via konsollen;
- hvis der ikke er anden udvej: sluk serveren via panelet. Så mister du dog indholdet af hukommelsen.
3. Tag et snapshot. Et snapshot i panelet fastholder tilstanden, som den er nu. Det er dit bevis og din kilde til senere at finde ud af, hvordan angriberen kom ind, også selvom du geninstallerer serveren bagefter.
4. Sikr dine backups. Kontrollér, at dine backups uden for serveren stadig er intakte, og sørg for, at den hackede server ikke længere kan komme til dem (tilbagekald for eksempel serverens adgangsnøgle til backuplageret). Angribere forsøger også at slette eller kryptere backups.
Rense eller geninstallere?
Det fristende svar er: fjern den mistænkelige fil, stop cryptomineren, færdig. Men du ved ikke, hvad en angriber ellers har gjort: en ekstra bagdør, et ændret program, en ekstra nøgle, en timer, der sætter det hele tilbage. En server, hvor nogen har haft root, kan du ikke længere stole på.
Rådet fra administratorer og også fra det nederlandske NCSC er derfor: geninstallér ramte systemer, og gendan dine data fra en backup, der ikke selv er inficeret. Konkret:
- En ny installation (geninstallation i panelet eller en ny server).
- Straks grundlaget fra dette kursus: opdateringer, almindelig bruger med sudo, SSH med nye nøgler, firewall (modul 2 til og med 5).
- Geninstallér dine applikationer fra officielle kilder, helst med dine compose-filer eller noter (lektion 10.4).
- Gendan data (database, uploads) fra en backup fra før hændelsen. Gendan ikke kode eller konfiguration i blinde: de kan indeholde bagdøren. Se også kritisk på gendannede data; en angriber kan have været inde længere, end du tror.
- Luk hullet, som angriberen kom ind ad. Ellers sker det igen. Snapshottet fra trin 3 hjælper med at finde ud af det.
Udskift alt, der kan være lækket
Gå ud fra, at alt, der lå på serveren, er i hænderne på angriberen:
- SSH-nøgler: fjern de offentlige nøgler, der lå på serveren, alle steder, og lav nye nøglepar, hvis der lå private nøgler på serveren.
- Adgangskoder til databaser, administrationspaneler og brugere af din applikation.
- API-nøgler og tokens (mail, betalinger, cloudlager, backuplager) fra
.env-filer og konfiguration: tilbagekald dem hos tjenesten og udskift dem. - Certifikater: den private nøgle til dit certifikat lå på serveren. Få certifikatet tilbagekaldt, og bestil et nyt (med Let's Encrypt går det hurtigt, lektion 7.3).
Anmeld: GDPR og andre
Lå der personoplysninger på serveren (kundedata, konti, mailadresser), er der muligvis tale om et brud på persondatasikkerheden. GDPR (databeskyttelsesforordningen, artikel 33) siger, at den dataansvarlige skal anmelde et brud til tilsynsmyndigheden uden unødig forsinkelse og om muligt senest 72 timer efter at være blevet bekendt med det. I Danmark er det Datatilsynet, og anmeldelsen sker digitalt. Et par vigtige punkter:
- du behøver ikke anmelde, hvis bruddet sandsynligvis ikke indebærer en risiko for de registrerede; er du i tvivl, så anmeld;
- har du endnu ikke alle oplysninger, så anmeld alligevel inden for 72 timer, og suppler senere;
- de personer, hvis data er lækket, skal du underrette, hvis der er en høj risiko for dem;
- ethvert brud registrerer du i dit eget register, også når du ikke skal anmelde.
Administrerer du serveren for en kunde, er du som regel databehandler: så skal du underrette kunden (den dataansvarlige) uden unødig forsinkelse, så kunden kan anmelde. Denne lektion er ikke juridisk rådgivning; se Datatilsynets website, hvis du er i tvivl.
Desuden: anmeld misbrug, der er foretaget fra din server, til din udbyder (som ofte allerede har set det), og indgiv ved et alvorligt angreb en anmeldelse til politiet. Er din organisation omfattet af NIS 2-loven (lov om foranstaltninger til sikring af et højt cybersikkerhedsniveau), gælder der særlige, kortere anmeldelsesfrister.
Forbered dig: nødplanen
En hændelse sker altid på et dårligt tidspunkt. Det, du har ordnet på forhånd, sparer timer:
- Vid, hvordan du når din udbyders konsol og snapshotknap, og hav dine loginoplysninger til panelet (med totrinsbekræftelse) et sted uden for serveren.
- Vid, hvor dine backups ligger, hvordan du gendanner dem, og at de virker (lektion 8.2).
- Hav en liste over alle hemmeligheder, der ligger på serveren, så du ved, hvad du skal udskifte.
- Hav en ringeliste: din udbyder, hvem der ellers skal vide noget om serveren (kunde, kollega), og kontaktoplysningerne til en anmeldelse af databrud.
I praksis
I WebOkés VPS-skærm finder du konsollen, snapshots, backups og knappen til geninstallation; hos andre udbydere hedder de nogenlunde det samme (console eller VNC, snapshot, rescue, reinstall). Dette kursus er selvhjælp: ingen holder øje med din server, og ingen rydder op efter en hændelse for dig. Netop derfor er en nødplan, som du selv kan udføre, så vigtig.
Opsummering
- Tegn: uforklaret belastning, ukendte processer, tjenester eller nøgler, mærkelig udgående trafik, ændrede eller forsvundne filer og logs.
- Første skridt: før logbog, isolér serveren, tag et snapshot som bevis, sikr dine backups.
- En server, hvor nogen har haft root, renser du ikke, men geninstallerer; data gendannes fra en ren backup, og hullet lukkes.
- Udskift alle nøgler, adgangskoder, tokens og certifikater, der lå på serveren.
- Er personoplysninger ramt? Et databrud anmelder du om muligt inden for 72 timer til Datatilsynet, og du registrerer ethvert brud.
Quiz
Opgave
Opgave O10.3: Din nødplan på én side. Skriv en nødplan for din egen server på højst én A4-side: hvordan kommer du ind i panelet, konsollen og snapshots; hvor ligger dine backups, og hvordan gendanner du dem; hvilke hemmeligheder ligger på serveren; hvem skal du underrette (og skal du anmelde ved et databrud); og hvilke fem første skridt tager du ved mistanke om et indbrud. Opbevar planen uden for serveren.
Opgave O10.3: Din nødplan på én side
Denne opgave laver du selv; ingen tjekker den. Afkryds hvad du har gjort, og markér opgaven som udført.
Først dokumentere (logbog uden for serveren), så isolere (udbyderens firewall eller via konsollen), et snapshot som bevis, sikre backups; derefter beslutte om geninstallation, udskiftning af hemmeligheder og anmeldelse (ved personoplysninger med risiko inden for 72 timer til Datatilsynet). Skriv ikke rigtige adgangskoder i denne formular.
Dine afkrydsninger og noter forbliver kun i denne browser; vi sender dem ingen steder hen. Er du logget ind, gemmer vi kun i Mine kurser, at du har udført opgaven.
Læs mere
- Ingen adgang til din VPS længere: hvad nu?
- Snapshots og backups af din VPS
- Tilknyt din egen ISO, eller geninstaller din VPS
- Det nederlandske NCSC, Gehackt, wat nu? (nederlandsk kilde): https://www.ncsc.nl/incidenten-en-herstellen/gehackt-wat-nu
- Datatilsynet, brud på persondatasikkerheden: https://www.datatilsynet.dk/
- VPS: fra første login til sikker server 9.1: Låst ude: du kan ikke længere komme ind på din server
- VPS: fra første login til sikker server 9.5: Hacket? De første skridt
