Technisch onderduiken op de zee van Internet

Raspberry PI
Raspberry PI

“Kunnen jullie checken wat er met de website is? ik krijg een blokkade banner”, zo kwam Mark bij mij op de mail. Ik dacht dat het wel een klein euveltje zou zijn, zoals we wel vaker met onze WordPress site hebben. Dat dit het begin van een digitale strijd tegen de halve wereld zou inhouden had me ik nooit kunnen indenken…

Een technisch relaas voor de IT-minded duikers onder ons.

Door Michael

18 juli 2014 – Stop, breath, think, …

Na de melding van Mark is het eerste wat ik probeer in de WordPress admin te komen, maar de provider heeft onze hele site geblokkeerd dus daar kan ik niet bij. Wel vind ik in de beheeromgeving van ons hosting pakket het volgende bericht:

VerbodenWij hebben geconstateerd dat uw website ‘lovcalypso.nl’ slachtoffer is van een DoS aanval. Wij hebben ons daarom genoodzaakt gezien het hostingpakket van deze domeinnaam te blokkeren om de stabiliteit van ons hostingpakket te kunnen waarborgen.

Er kan helaas weinig worden gedaan om een DoS aanval te voorkomen. Wanneer u een vermoeden heeft te weten wie er verantwoordelijk is voor de aanval kunt u het beste contact met deze partij opnemen en hen verzoeken de aanval te staken.

Ik hoop u hiermee voldoende te hebben geïnformeerd en ik wens u nog een fijne dag.

Hmm, das lekker dan: we zijn slachtoffer, onze site wordt daarom dichtgezet en dan nog suggereren dat we de onbekende dader wel even kunnen vragen om te stoppen. Mark denkt dat hij als overactieve secretaris eerst nog zelf de schuldige is, aangezien hij net 6 zomerstop duiken heeft gepost, maar dat kan het toch echt niet zijn? Ik zie wel wat vreemd verkeer in de server logs, maar realiseer me nog niet dat we het daar moeten zoeken.

19 juli 2014 – Nog altijd zonder lucht

Het bestuur laat er geen gras over groeien en stuurt een mail op hoge poten naar de provider om firewall maatregelen te treffen zodat we niet het slachtoffer worden en onze site weer in de lucht te brengen. Om de samenwerking op voorhand te bevorderen dreigen we daarbij wel meteen met overstap als ze niet meewerken…

De provider reageert hierop dat ze niet aan blokkeren van de aanval kunnen beginnen, dat we zelf maar moeten achterhalen wat de oorzaak van de aanval is, en dat onze site dicht blijft.

20/21/22 juli 2014 – Eerste gasanalyse, de druk stijgt, waarom geen gaswissel!?

Ik probeer meer details van de provider los te krijgen om een beeld te vormen van de aanval (waar ik nog steeds geen bewijs voor zie) en vraag om de site weer te activeren zodat ik de WordPress plugins kan controleren, gehackte content kan zien, updates kan uitvoeren of wat er maar nodig zal zijn.

De provider geeft aan dat ze een groot hoeveelheid verkeer uit India hebben gezien, en zet de site even weer actief maar haalt hem weer offline voor ik er naar kan kijken:

Helaas hebben mijn collega’s inmiddels de website opnieuw moeten blokkeren. Wij hebben hierop de onderstaande informatie welke wij je kunnen aanleveren. Een kleine selectie van de IP adressen waarvan het afkomstig was:

[lijst van een stuk of 50 IP adressen]

Het heeft in deze alleen maar POST requests betroffen naar /.

Aha! Dus zijn het toch die eerst onschuldig ogende requests in de logs. Het bestuur begint ondertussen zenuwachtig te worden en gaat steeds harder roepen om overstap. Ik geef aan dat zomaar overstappen niet gaat helpen als de aanvallers ons volgen, en vraag ze nog wat geduld op te brengen zodat ik kan kijken of ik tegenmaatregelen kan nemen.

22 juli 2014 – Kramp verhelpen tijdens de nachtduik

Uit de WordPress support pagina’s en discussiegroepen maak ik niet op dat er een grote aanval over de hele wereld aan de gang is. Maar nu ik verdachte requests kan herkennen trek ik alle betrokken IP adressen uit de logs:

[23/Jul/2014:09:23:31] “POST / HTTP/1.1” 200 39817 “-” “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)”
[23/Jul/2014:09:24:04] “POST / HTTP/1.1” 503 323 “-” “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)”
[23/Jul/2014:09:24:15] “POST / HTTP/1.1” 403 – “-” “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)”

AziëHet blijken er duizenden en als ik uitzoek waar ze thuishoren kom ik vooral veel netwerken uit India, Indonesië, Filipijnen en Vietnam tegen, maar ook Turkije, Roemenië, Oekraïne zijn goed vertegenwoordigd, en hier en daar een verzoekje uit Australië, de VS, Italië en nog wat landen. Heeft Rob de V. soms vijanden gemaakt op een van zijn vele duik- of zakenreizen?

Ik besluit geen halve maatregelen te nemen en in plaats van elk adres apart te blokkeren zet ik hele netwerk ranges in de blokkade op de webserver. Zo worden hopelijk honderdduizenden computers van onze site weg gehouden zodat we weer wat lucht krijgen.

Ik meld het aan de provider en vraag de site weer open te zetten…

23 juli 2014 – Noodplan gefaald, materiaal upgrade geadviseerd

Bericht van de provider:

Inmiddels hebben mijn collega tijdelijk je website gedeblokkeerd, waarna wij direct de algehele load weer buiten proporties zagen stijgen op de hosting server. […] Wij kunnen helaas je hosting pakket niet meer deblokkeren. […] Ons vermoeden is dat je website ooit een exploit bevatte waardoor deze nu direct benaderd wordt door een botnet, zodra deze weer online komt. Aangezien je hier verder niet veel meer aan kunt veranderen is het ons advies om over te stappen op een VPS. Uiteraard is hier wel meer technische kennis voor vereist daar dit een volledig unmanaged product betreft.

apacheMijn maatregel heeft dus niets opgeleverd, de provider kan geen dienstverlening bieden om de aanval af te slaan en dan krijgen we ook nog het advies om naar een product te gaan waar we nog minder dienstverlening krijgen? Zo makkelijk geef ik het niet op!

Het uitblijven van effect van mijn blokkade helpt me wel een stuk in de goede richting: de verzoeken komen niet meer bij WordPress dus moet het onze webserver Apache zijn die hier het doelwit is. Ik overleg nog met de provider of ze hier niet iets structureels voor kunnen regelen om al hun klanten voor dit soort aanvallen af te slaan, maar dit wordt weer geweigerd en ik zal het zelf dus moeten oplossen.

24 juli 2014 – Analyse geslaagd, nieuw duikplan!

Zo’n grote aanval terwijl we maar een klein clubje zijn? Dat is toch zeker niets persoonlijks en ik ga op zoek naar het grote geheel en andere slachtoffers. Google is your friend (wat zoeken betreft dan).

botnetHet lijkt hier te gaan om het wereldwijde PushDo botnet. De requests hebben niet als doel om onze site kapot te maken, maar het botnet genereert grote hoeveelheden verkeer naar onschuldige websites over de hele wereld als grote dekmantel en afleiding voor de echte doelen. De aanval zal dus niet zomaar stoppen, en mogelijk enkel erger gaan worden, en ik lees verhalen van sites die er al maanden last van hebben.

Om een of andere reden is onze site in het lijstje van het botnet terecht gekomen. Het botnet blijkt onze DNS naam “lovcalypso.nl” te gebruiken om onze site te vinden, dus gelukkig dat ik de verhuizing heb afgehouden: na alle moeite van de migratie hadden ze ons dan gewoon opnieuw gevonden!

Maar met deze kennis kan wel nieuwe maatregelen uitproberen: Calypso gaat naar de grote Cloud!

25 juli 2014 – Nieuwe duikstekken, checkduik geslaagd

Amazon Web Services

Om niet telkens afhankelijk te zijn van onze provider die bij elke fout poging de boel blokkeert maak ik een kale server aan bij Amazon Web Services, en zorg dat alle verzoeken naar lovcalypso.nl daar uit komen. Zo, nu ben ik tenminste de baas over eigen server en bij een provider die een beetje botnet wel kan verdragen.

Duurt even voor ik wat zie, maar na een paar minuten komen de eerste snoodaards al langs en al gauw worden het er meer en meer. Veel kwaad doen de verzoeken daar trouwens niet: 0.3% CPU op de allerkleinste server die Amazon biedt, waarom onze provider dan wel zo’n last had weet ik nog altijd niet.

Raspberry PI

En als ik de doorverwijzing uitzet verdwijnen de requests. Als ik www.lovcalypso.nl naar Amazon doorverwijs blijft het echter stil. Daar ligt dan ook de oplossing: ik verwijder onze kale sitenaam “lovcalypso.nl” en laat enkel “www.lovcalypso.nl” bestaan.

Het is inmiddels vrijdag eind van de dag en de provider geeft aan pas na het weekend weer aan activering van onze site toe te komen. Ik zet daarom de hele site maar tijdelijk bij mij thuis op een Raspberry Pi, een mini-computertje zo groot als je hand. Niet echt geschikt qua snelheid, maar zo komen we het weekend wel even door.

29 juli 2014 – Onderduiken geslaagd, weer tijd voor echte duiken…

Met nog een extra dag vertraging wordt onze site op dinsdag dan toch weer geactiveerd en weet het botnet ons niet meer te vinden!

Heeft iemand van jullie eigenlijk wel gemerkt dat we een week uit de lucht waren!?