Powłoki internetowe i z czym je jeść

Patrząc na pytania zadawane na grupach, postanowiliśmy poruszyć temat web shelli.

Do napisania artykułu o shellach webowych skłoniło mnie to, że przeglądam różne grupy, przez które cały czas przewijają się te same problemy, a już szczególnie przez wszelkiego typu grupy Joomla, czy WordPress. Otóż jakimś cudem przestępcom udaje się uzyskać dostęp do danej aplikacji albo zainstalować sniffery ruchu, czy w najgorszym wypadku kraść numery kart płatniczych. Nie chce mi się wchodzić w dyskusję, które rozwiązanie dla kogo jest najlepsze, ale mam nadzieję, że ten mały poradnik przyda się administratorom systemów lub devopsom, którzy muszą następnie radzić sobie z różnorakimi problemami.

Ten wpis należy traktować tylko i wyłącznie jako wstęp do wykrywania powłok sieciowych, zapobiegania ich wgrywaniu oraz reagowania na nie i odzyskiwania informacji. Jednocześnie standardowo pod każdym wpisem publikujemy linki, gdzie odnajdziecie wszystkie przydatne informacje.

Zacznijmy od początku

Powłoki internetowe to głównie złośliwe oprogramowanie, jakie jest wykorzystywane przez przestępców i zwykle uruchamiane na serwerach ofiar. Powłoki internetowe służą głównie do wykonywania nieautoryzowanych poleceń systemowych. Powłoki internetowe są zwykle wdrażane przez atakujących poprzez wykorzystanie podatności w zabezpieczeniach aplikacji internetowych lub są przesyłane na zainfekowane maszyny. Bardzo często powłoki internetowe posiadają także wbudowane backdoory, w celu uniknięcia wykrycia.

W tym przypadku wszystkie wytyczne powinny być podzielone na trzy główne kategorie: wykrywanie, zapobieganie i reagowanie oraz odzyskiwanie. Staraliśmy się przedstawić wszystkie wskazówki w możliwie najbardziej zorganizowany sposób. Jednocześnie bardziej wyczerpujące wskazówki znajdziecie w linkach poniżej.

Wykrywanie web shelli

Zasadniczo wykrywanie web shelli polega głównie na porównywaniu ze znanymi aplikacjami internetowymi. W przypadku web shelli sytuacja wygląda na ogół w ten sposób, że modyfikują one lub tworzą nowe pliki w aplikacjach internetowych. A więc jedną z najlepszych metod wykrywania web shelli jest porównanie produkcyjnej wersji aplikacji internetowej z taką wersją, która została zaklasyfikowana jako nieszkodliwa.

Jest tylko jedna bardzo ważna rzecz, jeśli chodzi o weryfikację autentyczności danej aplikacji internetowej. Otóż nigdy nie należy ufać czemuś takiemu, jak znaczniki czasu. Każdy napastnik, nawet ten, który przeprowadza testy bezpieczeństwa, będzie chciał zmodyfikować prawdziwe znaczniki czasu w celu uniknięcia wykrycia i zwiększenia własnej wiarygodności.

Używanie sygnatur do wykrywania

Zasadniczo wykrywanie powłok internetowych na podstawie sygnatur jest zawodne. Każda z powłok jest dosyć łatwa do modyfikowania oraz zaciemniania. Czasami oczywiście wykrywanie za pomocą sygnatur jest dobrym pomysłem, ale lepszym pomysłem jest próba wykrywania złośliwego oprogramowania za pomocą haszy plików lub ich fingerprintingu. Natomiast nigdy nie powinno się polegać na sygnaturach plików, zawartych na hoście. Zasadniczo taki sposób wykrywania sygnatur jest zawodny, ale można zastosować trochę inne podejście. Najszybciej jest sprawdzić dane pliki, otwierając branch gita i próbując merga do aktualnej wersji. Dodatkowo dobrym pomysłem jest także przeskanowanie wszelkich katalogów typu upload lub public za pomocą skanera antywirusowego.

Wykrywanie anomalii ruchu internetowego

Większość powłok internetowych jest zaprojektowana w taki sposób, aby dobrze wtapiać się w normalny ruch sieciowy. Mimo to jednak mogą zaistnieć pewne punkty, które sprawią, że ruch sieciowy będzie dosyć łatwy do wykrycia.

Powłoki internetowe można spróbować wykryć, stosując monitorowanie anomalii w ruchu sieciowym, ale tak naprawdę cały ruch, jaki wygenerują, jest bardzo trudny do wykrycia. Jeśli nie posiadamy zaawansowanej wiedzy o ruchu sieciowym, to możemy uznać normalny ruch za ruch z powłok internetowych i odwrotnie.

O wiele lepszym sposobem jest brak używania nagłówków internetowych lub nietypowych nagłówków w odpowiedziach. Dodatkowo można także sprawdzać, czy dany ruch sieciowy nie wychodzi poza witrynę w sposób łatwy do przewidzenia.

Zapobieganie powłokom internetowym

Utwardzanie serwerów WWW, czyli zabezpieczanie ich konfiguracji, łącznie z konfiguracją aplikacji, może zapobiegać powstawaniu powłok internetowych. Na początek, zanim zainstalujemy naszą aplikację na serwerze internetowym powinniśmy wykonać dwa kroki: zablokować na stałe dostęp do usług i portów oraz ograniczyć dostęp do usług tylko dla legalnych klientów. Dodatkowo, jeśli możemy to powinniśmy jak najszybciej wprowadzić jakieś oprogramowanie zabezpieczające na danym hoście. Może to być na przykład płatna Imperva lub napisany przez nas model.

Uprawnienia do usług internetowych powinny być zgodne z paradygmatem bezpieczeństwa o najniższych uprawnieniach. Oznacza to, że nie należy nadawać aplikacjom sieciowym uprawnień do bezpośredniego zapisu w katalogu dostępnym w sieci ani pozwolenia na modyfikowanie kodu dostępnego w sieci, co uniemożliwiłoby atakującym przesłanie powłoki internetowej do podatnych na ataki aplikacji internetowych.

Jeśli nie możesz wzmocnić uprawnień aplikacji internetowej, możesz uzyskać podobny efekt, monitorując integralność plików. Dzieje się tak, ponieważ rozwiązania zapewniające integralność plików umożliwiają blokowanie lub ostrzeganie o zmianach w katalogach dostępnych w sieci. W zależności od rozwiązania do monitorowania integralności plików możesz zezwolić na pewne uzasadnione zmiany jednego typu plików, a odmówić innym.

Powłoki sieciowe różnią się znacznie pod względem mechanizmów trwałości i innych funkcji. Mogą wskazywać na większe włamanie. Po wykryciu konieczne jest określenie, jak daleko w sieci przeniknął atakujący.

Dane o przepływie sieciowym i przechwytywanie pakietów (PCAP) mogą pomóc określić, gdzie atakujący przechodzą do sieci.

Podsumowanie

Ten artykuł należy tylko i wyłącznie traktować jako wstęp do powłok internetowych oraz ich wykrywania. Tak naprawdę problem powłok nie jest wcale nowy, a przestępcy komputerowi używają ich bardzo chętnie. Poniżej znajduje się kilka linków, które mogą pomóc zagłębić się w temat.

Natomiast jeśli nie jesteście w stanie sami wyeliminować powłok internetowych, to zapraszamy do kontaktu. Wszystkie przydatne informacje znajdują się w stopce.

Źródła: