Hjälp med säkerhetsbrist på hemsida

Permalänk
Medlem

Hjälp med säkerhetsbrist på hemsida

Min far fick för ett litet tag sedan mail angående sin hemsida från webbhotellet (Surftown) där det stod att de hittat infekterade filer som de flyttat till karantän. Jag är ingen höjdare på webbsäkerhet och konsulterar därför er, kanske kan ni komma med några orsaker eller åtgärder.

Här är de mest relevanta delarna av mailet från webbhotellet:
"Anledningen till att du får detta mail är att vi har anledning att tro att det finns skadliga kod inlagt i filer på ditt webbhotell. Filerna eller den skadliga kod, har med stor sannolikehet placerats på ditt webbhotell genom någon säkerhetsbrist på din hemsida... Eftersom filerna utgör en potentiell risk för din hemsida och andras har filerna flyttats till mappen ".quarantine" som ligger på ditt webbhotell. Härifrån kan filerna inte användas av din hemsida och ingen av dina besökare kan komma åt filerna. Genom att besöka mappen på ditt webbhotell får tillgång till vilka filer det rör sig om..."

När jag går till karantänen hittar jag några skumma PHP-filer med namn som "3988be6da9a3155fa91e92c4e8449a9f.php", och dessutom hittar jag index.php-filen som även den har flyttats till karantänen. De flesta av PHP-filerna innehåller bara en röra av bokstäver, här är en av dem:

Ett ännu längre liknande block av bokstäver har klistrats in i början av index.php, antar att planen var att få alla som går in på hemsidan att köra den.

Sen har vi en av PHP-filerna i karantänen som innehåller vanlig läsbar PHP-kod. Jag vet dock inte vad den gör. Den ser ut så här:

Ber om ursäkt för att texten i bilderna inte är jättetydlig, men det är läsbart för mig i alla fall. Kan ladda upp nya ifall ni har problem att läsa det.

Permalänk
Medlem

Ser ut att vara funktioner för att radera filer. Funktionernas namn såsom "suicide" och "self_destroy" avslöjar en del

Frågan är bara hur någon fått in filerna från första början.
Kör han WordPress eller liknande i botten?

Permalänk
Medlem
Skrivet av Zakire:

Ser ut att vara funktioner för att radera filer. Funktionernas namn såsom "suicide" och "self_destroy" avslöjar en del

Frågan är bara hur någon fått in filerna från första början.
Kör han WordPress eller liknande i botten?

Hans hemsida är bara vanlig procedurell PHP utan några ramverk eller någon CMS. Vad finns det ens för typ av säkerhetshål som skulle möjliggöra tillägg och modifikation av filer på hemsidan? Det verkar rätt så konstigt.

Här är lite intressant information som jag glömde inkludera i det första inlägget. Det här är ett screenshot av ".quarantine" mappen från FileZilla. Meddelandet från webbhotellet angående infekterade filer kom i början av Augusti, men om man kollar i "Last Modified"-kolumnen på detta screenshot så är det väldigt olika datum på de karantänsatta filerna.

Permalänk

På något sätt (sårbar version av WordPress, sårbar version av något plugin till WordPress, svagt lösenord, lösenord sparat på en komprometterad dator, ...) har någon lyckats modifiera filer som finns publicerade. Den läsbara filen packar upp de obegripliga filerna och stoppar troligtvis in länkar till dessa i de sidor som serveras från hemsidan. Gissningsvis innehåller de obegripliga filerna skadlig kod som utnyttjar någon sårbarhet i någon vanligt förekommande browser eller OS. Inte så kul för de besökare vars datorer är sårbara.

Så, vad göra? Well, det ser inte ut att vara någon sofistikerad attack, så nedanstående lista ger en hyfsad säkerhet. Om man är extra orolig kanske det går att återställa fler delar av sajten till ett känt läge, t ex genom att börja om med en helt ny OS-installation, wordpressinstallation och därefter bara lyfta över innehållet i databasen från den gamla sajten.

1. Hindra åtkomst till alla sidor som innehåller PHP tills miljön med hygglig säkerhet kan sägas vara trygg. Enklast är nog att hindra all publik åtkomst till sajten.
2. Angriparen kan ha kommit över lösenord för administration. Byt dessa.
3. Angriparen kan ha skapat bakdörrskonton i OS och/eller adminstrationsverktyg för sajten. Inventera vilka konton som finns upplagda och radera de som ser skumma ut.
4. Inventera vilken kod som körs på maskinen: Vilken wordpressversion? Vilka plugins? Kolla om nyare versioner finns tillgängliga och uppgradera till dessa. Var det länge sedan något plugin uppdaterades? Fundera i så fall på om det går att ersätta med något annat plugin med liknande funktionalitet men färre säkerhetsbrister och/eller snabbare uppdateringar när säkerhetsbrister upptäcks.
5. Starta sajten utan att ge allmän åtkomst till den. Gå in på några sidor på sajten och granska HTML-koden: finns det saker som ser mysko ut? Vanligast är en lååång rad med en massa inledande mellanslag (som gör att man måste skrolla långt till höger för att upptäcka något konstigt. Lätt att missa om man bara ögnar igenom koden.) och därefter en länk till skadlig kod som användaren mer eller mindre oavsiktligt laddar ner.
6. Lägg upp ett meddelande som beskriver vad som hänt samt under vilken tid sajten varit komprometterad. Be användarna om ursäkt och förklara att de oavsiktligt eller ovetande kan ha laddat ned skadlig kod från sajten.
7. Öppna sajten för publik användning.

Edit: Aha, så bara hemsnickrad PHP?

Permalänk
Medlem
Skrivet av Murloc:

Hans hemsida är bara vanlig procedurell PHP utan några ramverk eller någon CMS. Vad finns det ens för typ av säkerhetshål som skulle möjliggöra tillägg och modifikation av filer på hemsidan? Det verkar rätt så konstigt.

Här är lite intressant information som jag glömde inkludera i det första inlägget. Det här är ett screenshot av ".quarantine" mappen från FileZilla. Meddelandet från webbhotellet angående infekterade filer kom i början av Augusti, men om man kollar i "Last Modified"-kolumnen på detta screenshot så är det väldigt olika datum på de karantänsatta filerna.
http://s16.postimg.org/69cljb3sl/image.png

Har sidan någon form av inputbox där man som användare kan mata in data? T.ex en searchbox?

Visa signatur

Stationära:[Fractal Design R2], [Asrock Fatal1ty Professional] , [Vengeance low profile 1600mhz]
[Intel Core i5 2500k 3.3 ghz (Kyld av Noctua nh-d14)], [ Referens XFX HD 6970],
[Corsair TX 650 watt], [ca 750 GB utrymme], [2x Gentletyphoon Utblås och 2x Fractal design inblås]

Permalänk
Medlem
Skrivet av Hieronymus Bosch:

...
Edit: Aha, så bara hemsnickrad PHP?

Ja, bara hemsnickrad PHP. Gjord av en riktig amatör kan jag dessutom säga, sidan är både väldigt ful och dåligt kodad. Tack för ditt svar, bra förslag där. Men är det så att skurken måste ha kommit över inloggningsuppgifter för att kunna göra detta?

Skrivet av Uzor:

Har sidan någon form av inputbox där man som användare kan mata in data? T.ex en searchbox?

Det finns en och den är full av säkerhetshål. Testade att söka på "<script>alert("XSS")</script>"><b>Bold</b>'><u>Underlined</u>" och så skrev den ut massor av JavaScript direkt på sidan tillsammans med min input i bold och underlined.

Permalänk
Skrivet av Murloc:

Men är det så att skurken måste ha kommit över inloggningsuppgifter för att kunna göra detta?

Nej, jag vågar inte avskriva något av de andra angreppssätten. (Utom Wordpress-specifika knep såklart. Inte riktigt tillämpbara här.)

Man kan nog anta att angriparen i första hand bara var intresserad av generella egenskaper* hos sajten, dvs inte specifikt intresserad av sajtens unika innehåll eller med en önskan att skada just de personer eller organisationer som äger eller använder sajten.

Det är intressant att angriparen inte verkar ha ansträngt sig ett enda dugg för att dölja sina spår. Även om den sårbarhet som användes inte hade gett angriparen särskilt stora befogenheter i systemet (t ex bara hade låtit angriparen förändra filer som ägdes av exempelvis apache) hade det gått att ge nya och förändrade filer namn som i större utsträckning ser ut som legitima funktioner. Den PHP-kod som angriparen injicerat försöker inte heller dölja vad den gör -- det hade varit enkelt att ge funktioner och variabler namn som tyder på att de gör något legitimt och ointressant.

Gissningsvis har angriparen låtit systemets loggar vara i fred. Med lite tur går det att hitta angreppstillfället och vilken metod som användes.
Jag hade nog prioriterat letandet ungefär så här:

  1. Brute force-knäckt SSH-lösenord

  2. Ett skript som automatiskt hittar och utnyttjar en vanligt förekommande typ av fel i PHP-kod.

  3. Shellshock mot någon undangömd del av sajten som använder CGI, kanske ett webbaserat admingränssnitt.

* T ex processorkraft att gruva bitcoins med, internetanslutning att skicka spam och inloggningsförsök mot andra servrar genom, en ip-adress att gömma sig bakom etc.