image

Apache gehackt via slechte SSH implementatie

vrijdag 4 september 2009, 14:08 door Redactie, 12 reacties

Om het internet een veiligere plek te maken, heeft de Apache Software Foundation in alle openheid verklaard hoe aanvallers eind augustus verschillende servers wisten te hacken en wat het gaat doen om herhaling te voorkomen. Zoals in eerste instantie al werd aangenomen, begon de aanval met het overnemen van de server die apachecon.com host. De machine draaide CentOS en Apache vermoedt dat de aanvallers een recente local root exploit hebben gebruikt om hun rechten te verhogen. Aangezien de logs werden vernietigd, is het lastig om vast te stellen wat er precies op de machine gebeurde.

De server in kwestie wordt beheerd door de ApacheCon conference productiemaatschappij. Verschillende Apache Software Foundation leden hadden accounts op deze machine, waaronder één voor het maken van backups. De aanvallers probeerden tevergeefs om met wachtwoorden van de gehackte ApacheCon machine op de productie webservers in te loggen. Via de SSH-sleutel van het backup account wisten ze uiteindelijk toegang tot people.apache.org te krijgen. Dit account was van een "unprivileged user", gebruikt voor het maken van backups van de ApacheCon host.

Zodra de aanvallers shell toegang hadden, voegden ze CGI scripts aan de document root folder van verschillende websites toe. Een gepland rsync proces kopieerde deze scripts naar de productie webserver, eos.apache.org, waar ze uiteindelijk door de aanvallers werden aangeroepen. Toen de scripts ontdekt werden, haalde Apache alle mogelijk getroffen servers offline. Het heeft nu vastgesteld dat geen enkele download, gebruiker of code repository door de aanval risico heeft gelopen.

SSH implementatie
Apache is zeer te spreken over het gebruik van ZFS snapshots om de webservers weer te herstellen. Ook de redundante services op twee locaties en het gebruik van verschillende besturingssystemen, werkten naar behoren. In het laatste geval maakte dit het lastiger voor de aanvallers om hun rechten op meerdere machines te verhogen. Wat niet werkte was het gebruik van SSH-sleutels. De gebruikte implementatie liet volgens Apache veel te wensen over. Zo werden de SSH-sleutels niet voldoende beperkt en was men niet op de hoogte van het misbruik. Ook de mogelijkheid om CGI scripts in elke virtual host te draaien, ook al hebben de meeste websites van Apache dit niet nodig, vormde een onnodig risico. Verder betreurt men ook het bewaren van logs op de machine, waardoor de aanvallers die konden verwijderen om hun sporen te wissen.

Om herhaling te voorkomen neemt Apache verschillende maatregelen, zoals het opnieuw aanmaken en gebruiken van nieuwe SSH-sleutels, het instellen van toegangsbeperkingen, IP banning, gecentraliseerde logging en nog een aantal andere zaken, zoals het audit verslag duidelijk maakt. Negen jaar geleden wisten Nederlandse hackers Apache al een keer te defacen.

Reacties (12)
04-09-2009, 14:18 door Anoniem
Een mooi initiatief dat best door anderen mag gevolgd worden!
04-09-2009, 14:33 door rob
Zeer professioneel gereageerd van Apache. Petje af.

Ook de mogelijkheid om CGI scripts in elke virtual host te draaien, ook al hebben de meeste websites van Apache dit niet nodig, vormde een onnodig risico.

Dit zou je niet verwachten als aanvaller zijnde. Ik ben op zich wel benieuwd hoe de aanvallers wisten(?) dat deze mogelijkheid er was...
04-09-2009, 14:36 door Anoniem
Goede zaak dat dit open wordt besproken. Het geeft ook aan dat je SSH accounts moet beperken tot wat ze daadwerkelijk nodig hebben. En daar is SSH bijzonder slecht in. Voor update of mirror accounts hoeft alleen de sftp "shell" worden gebruikt. Nog moeilijker is toegang te beperken tot de directory waar toegang nodig is. Bij FTP is dit eenvoudig, bij SSH zo moeilijk dat weinigen het doen.

Zie http://www.debian-administration.org/articles/590
04-09-2009, 15:59 door spatieman
zo zie je maar weer dat zogeheten non profit bedrijven weten hoe je dergelijke dingen openbaar moetn maken.
hulde.
04-09-2009, 16:41 door Zarco.nl
Wellicht een ideetje om voortaan SELinux te gebruiken?
04-09-2009, 17:56 door SirDice
Door rob: Dit zou je niet verwachten als aanvaller zijnde. Ik ben op zich wel benieuwd hoe de aanvallers wisten(?) dat deze mogelijkheid er was...
Als je eenmaal shell toegang hebt kun je waarschijnlijk ook de httpd.conf lezen.
04-09-2009, 18:42 door Anoniem
Door Zarco.nl: Wellicht een ideetje om voortaan SELinux te gebruiken?

Waarom?
04-09-2009, 23:38 door rob
Door SirDice:
Door rob: Dit zou je niet verwachten als aanvaller zijnde. Ik ben op zich wel benieuwd hoe de aanvallers wisten(?) dat deze mogelijkheid er was...
Als je eenmaal shell toegang hebt kun je waarschijnlijk ook de httpd.conf lezen.

True, maar ze hadden dus geen shell toegang. Althans niet op de systemen waar ze die CGI scripts op gingen uploaden (via het automatische backup proces).
05-09-2009, 07:00 door Anoniem
enkel lokale logs ? tssk tssk
05-09-2009, 13:30 door Anoniem
Hoi,

> Aangezien de logs werden vernietigd, is het lastig om vast te stellen wat er precies op de machine gebeurde.

Dus er was geen remote opslag van logfiles, wat men zelf ook al concludeert. En nee nee nee, niet nu stomweg standaard syslog aanzetten natuurlijk hè

> Dit account was van een "unprivileged user", gebruikt voor het maken van backups van de ApacheCon host.

Hoe kan een unpriv. user nu een correcte backup van *alles* maken ?

> voegden ze CGI scripts aan de document root folder van verschillende websites toe.

Dus die unpriv user had wel schrijfrechten in die documentroots.. Interesant ondoordachte opzet.

> Een gepland rsync proces kopieerde deze scripts naar de productie webserver, eos.apache.org, waar ze uiteindelijk door de aanvallers werden aangeroepen.

Dus er staat geen enkel filter op de import van die files

> Toen de scripts ontdekt werden, haalde Apache alle mogelijk getroffen servers offline.

Dus er draait geen software die de content in de gaten houdt en verdachte zaken als plotseling opduikende cgi-script's opmerkt. Kan ook zijn dat het script nog niet draaide of bezig was met. Directories met CGI's houdj je toch wel wel wat strikt in de gaten, lijkt me.

> Het heeft nu vastgesteld dat geen enkele download, gebruiker of code repository door de aanval risico heeft gelopen.

Men geeft openheid over het hoe, maar waarom zou ik deze claim zonder onderbouwing (hoe weten ze dat ?) aannemen ? Misschien heb ik een persbericht gemist, kan.

> en was men niet op de hoogte van het misbruik.

Pardon ? MIsbruik van ssh ? Het feit dat het kan ? Men was niet bekend over misbruik in het verleden ?

> Om herhaling te voorkomen neemt Apache verschillende maatregelen, zoals het opnieuw aanmaken en gebruiken van nieuwe > SSH-sleutels, het instellen van toegangsbeperkingen, IP banning, gecentraliseerde logging en nog een aantal andere zaken

Nou nou. Van de makers van dit soort software had ik toch meer preventief vermogen verwacht. Kalf. Dempen. Put. Beveiligingen is een vak. Pluim aan apache foundation voor dir rapport en nu als een idioot aan het werk om die rotzooi op te ruimen. Foei.
05-09-2009, 16:12 door Zarco.nl
Door Anoniem:
Door Zarco.nl: Wellicht een ideetje om voortaan SELinux te gebruiken?

Waarom?
Omdat je dan mandatory access control kunt definieren :)
De drie gangbare niveau's in access control voor Unix: read, write en execute voor de drie domeinen me, group en everyone, schieten meestal te kort.
Met Security Enhanced Linux (geen distro, maar een set Linux security modules) kun je rollen en policies definieren.
Bijvoorbeeld, een php script hoeft niet bij /etc/shadow te kunnen komen, sterker, die hoeft helemaal niet buiten de http docs directory te kunnen komen. Als er bestanden buiten de http docs directory staan met permissions op world readable, kan zou een script dat kunnen uitlezen. Dit kun je met SELinux voorkomen :)

Voor meer info:
- http://en.wikipedia.org/wiki/Security-Enhanced_Linux
- http://tweakers.net/reviews/946/se-linux-een-kwestie-van-vertrouwen.html
07-09-2009, 10:36 door Anoniem
Door Anoniem: Nou nou. Van de makers van dit soort software had ik toch meer preventief vermogen verwacht. Kalf. Dempen. Put. Beveiligingen is een vak. Pluim aan apache foundation voor dir rapport en nu als een idioot aan het werk om die rotzooi op te ruimen. Foei.

Als je een Apache mirror wilt worden, dan is dat heel gemakkelijk. Inbreken niet nodig. Stel je wilt alleen een bepaalde target infecteren. Je verwijst requests van deze IP's door naar een andere directory. Goed, de sigs kloppen niet, maar niemand kan dat aantonen. De target is dom genoeg om de sigs niet te controleren.

Het hele third party mirror systeem is achterhaald. Public keys die op de mirror worden aangeboden. Tja, dat is helemaal nutteloos.
Reageren

Deze posting is gelocked. Reageren is niet meer mogelijk.