Życie po włamaniu czyli reanimacja strony Joomla

Podobne prezentacje


Prezentacja na temat: "Życie po włamaniu czyli reanimacja strony Joomla"— Zapis prezentacji:

1 Życie po włamaniu czyli reanimacja strony Joomla
Gliwice Życie po włamaniu czyli reanimacja strony Joomla Czy to będzie typowy poranek w pracy? Zaraz się okaże. Często poddani rutynie, liczymy po prostu na szczęście. Włamanie na stronę? Ale to nas nie dotyczy, przecież stron w internecie jest niezliczona ilość! Dlaczego akurat ma trafić na nas?

2 Zostałeś zhakowany! A jednak… Powodem takiego stanu może być luka w popularnym komponencie, module czy dodatku. Im popularniejsze rozszerzenie tym większe ryzyko. W końcu używa go mnóstwo ludzi, więc jest okazja. Równie ważna jest aktualizacja Joomli. Przykładowo: Joomla od 1.5 do miała lukę w samym rdzeniu. Przeglądarka nie filtrowała poprawnie informacji przy zapisywaniu sesji do bd, więc można było przeprowadzić atak typu SQL injection Wersję dręczył Zero-day exploid (program wykonywalny który pojawia się na czarnym rynku przed publikacją oficjalnej poprawki. Podział hakerów na dobrych – dających czas na opracowanie poprawki oraz złych, którzy wykorzystują lukę do ataków). Powstają nawet skrypty wykorzystujące bogatą bibliotekę błędów bezpieczeństwa Niektóre ataki mogą być bardziej wyrafinowane, przykładem może być ukrycie poleceń w skrypcie shellowym. Ponadto luki występują także w nieaktualnych wersjach PHP (każda poniżej ), SQL (każda poniżej ), szablonach. Hakerzy mogą wykorzystać słabość naszych haseł (mniej niż 8 znaków, brak małej litery, cyfry, znaku specjalnego, hasło będące ciągiem, nasze imię, nazwisko itp.). Dane logowania mogą być również skradzione

3 Drogi adminie To nie jest żart bądź marzenie To jest pieprzona rzeczywistość Haking nie jest przestępstwem Haking jest sztuką I dopisek: tylko Bóg może nam wybaczyć Jaki jest motyw takiego działania? Często chęć popisania się początkujących hakerów. Zwykle chcą zaznaczyć swój udział, dodatkowym wpisem. Nasza strona może być wykorzystana do podniesienia reputacji innych stron, rozsyłania spamu. Innym motywem jest eliminacja konkurencji nie tylko poprzez wstrzyknięcie swojego kodu ale także przez fałszywe zamówienia, serię niepochlebnych komentarzy czy zgłaszanie googlowi strony jako stanowiącej zagrożenie. Nie wykluczone są również ataki na tle politycznym, czy to wojna partii czy państw, mająca wykazać pewnego rodzaju wyższość. Także dostępność gotowych skryptów może być przyczyną ataku, ot tak, dla sportu, z ciekawości

4 Strategia działania Założę że nie posiadacie żadnej kopi. Zarówno na serwerze jak i na lokalnym dysku. Można jeszcze liczyć na hostingodawcę. Każda szanująca się firma, ma swoje wewnętrzne kopie zapasowe, z których może przywrócić stronę na prośbę klienta. Jeżeli witryna była zostawiona samopas, być może zagrożenie tkwiło w niej od dłuższego czasu, w takim wypadku i hosting nic nie pomoże. Ich kopie też będą zrujnowane. Na domiar złego, wszędzie stosujecie to samo hasło. Zarówno do zaplecza, bazy danych, konta bankowego, poczty… po prostu jeden, wielki KOSZMAR

5 Zrób kopię strony Zaloguj się na swoje konto FTP, czy to przez klienta FTP czy przez panel zarządzający stroną. Jeżeli nie pamiętasz hasła do FTP, przejrzyj pocztę na którą zakładałeś hosting bądź zadzwoń do hostingodawcy. Często wystarczy podać swój login i odpowiedzieć na kilka pytań weryfikujących. Jeżeli już połączyłeś się i widzisz swoje pliki, utwórz ich kopie na swoim komputerze. Do pełni szczęścia będziesz potrzebował bazę danych. Nie martw się, wszystkie dane są w pliku configuration.php w głównym katalogu twojej strony. Następnie, zaloguj się do swojej bazy danych i zapisz ją na dysk. Kopia pozwoli Ci na późniejszą analizę kodu i przywrócenie treści

6 Uruchom jej lokalną wersję Xampp
Do uruchomienia lokalnej wersji, wystarczy bezpłatny zestaw narzędzi xampp (zawiera m.in. php

7 Przeskanuj stronę używając skanerów on-line
Użyj jednego ze skanerów antywirusowych on-line. Pamiętaj że żaden z nich nie skanuje całej struktury (plików czy folderów). Możesz również użyć narzędzia diagnostycznego gogle’a. Algorytm Google sprawdza witryny pod kątem występujących w nich zagrożeń dla innych. Po ich wykryciu, zostają one odpowiednio oznaczone w wynikach wyszukiwania.

8 Przełącz stronę w tryb offline (konserwacji), configuration
Przełącz stronę w tryb offline (konserwacji), configuration.php -> public $offline = '0'; zamień na public $offline = '1'; i napisz wiadomość dla odwiedzających. Wystarczy przeprosić za awarię i podać telefon kontaktowy. O problemie należy poinformować właściciela strony oraz informatyka. Jeżeli atak unieruchomił stronę, należy przełączyć ją w tryb konserwacji. W tym celu odszukaj plik configuration.php w głównym katalogu twojej strony. Otwórz go za pomocą notepad++ i zmień linię public $offline = '0'; na public $offline = '1'; W ostateczności możesz utworzyć plik index.html z tymczasową wiadomością. Dzięki temu klienci zobaczą tylko krótką informację a nie wesołą twórczość hakera.

9 Alternatywa: Blokowanie IP deny from all allow from YOUR_IP_ADDRESS
Lepszą opcją jest blokowanie wszystkich adresów IP oprócz tego z którego będziesz wchodził na stronę. To gwarancja że nikt inny nie będzie edytował plików bądź zawartości bazy danych. deny from all allow from YOUR_IP_ADDRESS Uwaga: Najlepiej działa na stałym adresie IP, w innych przypadkach: ddns albo inne jemu podobne serwisy.

10 Podałeś dane dostępowe FTP w konfiguracji Joomla? Lepiej zmień te dane
Jeżeli podałeś dane dostępowe w FTP w konfiguracji Joomla, to najlepiej je zmienić. Zapisywane są w pliku configuration.php Niektóre firmy hostingowe umożliwiają ustawienie by z ftp łączyły się komputery z polskim IP

11 Przeskanuj lokalną kopię programem antywirusowym
Przeskanuj lokalną kopię programem antywirusowym. Dodatkowo skorzystaj z Malwarebytes Anti-Malware. Jeżeli kopiowałeś stronę na dysk, to pracujący w tle antywirus „wyłapałby” zagrożenie przy rutynowym skanowaniu nowych plików. Ale zrób jeszcze głębokie skanowanie folderu z kopią. Poznaj Malwarebytes Anti-Malware, pozwala on na wykrycie i usunięcie różnego rodzaju złośliwego oprogramowania. Dzięki niemu pozbędziemy się z komputera wirusów, robaków, trojanów, rootkitów, dialerów i oprogramowania szpiegującego. Jest samodzielnym skanerem i może być dodatkiem dla „pełnego pakietu ochronnego”. Jeżeli zostanie coś znaleziono, usuń ten plik również na hostingu. Po co tyle tego skanowania?! Skaner on-line sprawdzi pobieżnie czy są jakieś zagrożenia (w przypadku niewielkiej infekcji) ale większą skuteczność osiągniemy, pracując na lokalnej kopii, ponieważ mamy dostęp do każdego pliku składającego się na stronę.

12 Zaloguj się na swoje konto użytkownika (Cpanel).
Skorzystaj jeszcze z funkcji wyszukiwania wirusów w swoim cpanelu. Wybierz opcję skanującą całą przestrzeń public_html

13 Przejrzyj ręcznie pliki foldery: /tmp; /cache; /images; pod kątem plików .php Uwaga na nazwy brzmiące jak te, występujące w strukturze joomla Adm1n.php admin2.php contacts.php cron.css css.php do.php hell0.php solo.php x.php To jest najtrudniejsza część działania. Należy sprawdzić foldery tmp, cache oraz images wraz z podfolderami pod kątem plików .php. Jeżeli są tam jakieś, należy je skasować. Często hakerzy dodają pliki które z nazwy brzmią podobnie jak te właściwe. Warto sprawdzać nowe pliki i foldery ale należy pamiętać że doświadczeni hakerzy, nadają daty historyczne.

14 Base64, Eval i UnPHP Witamy po ciemnej stronie mocy
Inne sposoby maskowania gzinflate () str_rot13 () str_replace () Base 64 to rodzaj kodowania transportowego którego celem jest ochrona danych przed ich uszkodzeniem. Ma to związek z ograniczeniami warstwy transportowej w modelu OSI. Do jego dekodowania, w języku php, używamy zmiennej: base64_decode(); eval(); jest funkcją PHP która może wykonać tylko jedno polecenie. Nie jest stosowana przez jej małą wydajność oraz niebezpieczeństwo jakie ze sobą niesie. Pozwala na wykonanie dowolnego kodu. Webdeveloperzy nie powinni go wykorzystywać w swoich projektach, ponieważ przesyłane dane nie są w żaden sposób zabezpieczone. Co to ma wspólnego z joomla? Hakerzy często przesyłają backdoora w tak zakodowanej postaci i uruchomiają go korzystając z polecenia eval(); (metoda nazywana jest: zaciemnieniem kodu bądź inaczej, jest to rodzaj maskowania-jego ukrywania) Przykładowa zakodowana wiadomość <?php eval(base64_decode("ZWNobygicHJ6eWtsYWQhIik7cGhwaW5mbygpOw==")); ?> Jeżeli mamy taki podejrzany kod, skorzystajmy ze strony

15 Gdzie jeszcze spotkasz ukryty kod
Gdzie jeszcze spotkasz ukryty kod? if (md5($_POST preg_replace(„ str_replace( str_rot13( gzinflate( backdoor Czy plik xyz.php jest czysty? Analizując plik, przeszukaj go pod kątem tych fraz. Zobacz czy nie widzisz czegoś podejrzanego. Pamiętaj że do pomocy masz poniższy skaner av

16 Nadpisz pliki joomla https://github
Nadpisz pliki joomla Wykonaj aktualizację dodatków, modułów, komponentów Wyłącz niepotrzebne rozszerzenia Audyt rozszerzeń Czy rozszerzenie występuje w bazach exploit-db.com? Warto nadpisać pliki joomli dla zachowania poprawności kodu a także w celu aktualizacji samego rdzenia. Pamiętać należy by nie nadpisać pliku configuration.php

17 Zmień hasła dostępowe bd, ftp, admin, Cpanel
Jeżeli stosowałeś wszędzie te same hasła, lepiej je zmień. Tak samo, co przypomina, jeżeli w konfiguracji php w joomla podałeś jakiekolwiek dane, należy je zmienić

18 Przywróć działającą kopię na serwer Akeeba Backup
Zainstaluj rozszerzenie Akeeba Backup

19 Zabezpiecz swoją stronę Czy Twój developer pomyślał o ochronie?
Jak bardzo ufasz hostingowi? A gdyby stał się ofiarą ataku lub splajtował? Jest dostępnych XX aktualizacji A ty i tak zignorowałeś komunikat ;-) Atakujący znajdują coraz to nowsze sposoby. Jednym z nich jest chęć oszczędzenia pieniędzy. Zdobyte rozszerzenie w serwisie z torrentami stanowi realne zagrożenie. Scrackowane, być może zawiera niechciany kod. Pamiętaj o zrobieniu kopii lokalnej witryny. Serwis hostingowy 2be w marcu 2016 roku zanotował włamanie na swoje serwery a klienci przez około miesiąc byli pozbawieni dostępu do wszystkich wykupionych usług. A gdyby wyciekły dane logowania? Gdyby ktoś się dostał do baz klientów prowadzonego przez nas sklepu internetowego? Brak aktualizacji najczęściej spowodowany jest przez brak świadomości, umiejętności, niedbałość bądź finanse. Czy jako wykonawca, dajesz pełne uprawnienia finalnemu klientowi? Czy może on sam zaktualizować? Czy ty, jako developer zarządzasz wieloma stronami w tym jego witryną?

20 Ochrona serwera File injection, stare php i hosting współdzielony
Czary mary, znikaj! Byebye generator Krótkie aliasy Dodatkowe reguły dla .htaccess Stara wersja php 5.3 i niższe, niebezpieczne ustawienie praw dostępu (777). Współdzielony hosting, gdzie atak na stronę klienta może odbić się czkawką dla pozostałych użytkowników. Katalogi Joomla! winny mieć ustawione prawa na 755 [właściciel - prawa odczytu, zapisu, wejścia, grupa i inni tylko odczytu i wejścia - bez praw zapisu). Plik konfiguracyjny - configuration.php powinien mieć ustawione prawa na 644 albo 444 (właściciel prawa odczytu i zapisu albo, gdy 444, tylko odczytu, grupa i inni - tylko odczytu). Ukrywanie meta tagów Włącz krótkie aliasy (zmień nazwę pliku htaccess.txt na .htaccess) Dodatkowe reguły dla .htaccess, które odrzucą zapytania botów spamerskich/hackerskich. Ich listę można znaleźć na wielu stronach poświęconych bezpieczeństwu. Ogranicz próby logowania Przetrwaj atak słownikowy

21 Ochroń panel administracyjny jsecure lite
Flames of Firewall Rsfirewall SecurityCheck Akeeba Admin Tools Dzięki niemu, logowanie do zaplecza może być zabezpieczone dodatkowym hasłem lub możesz zmienić ścieżkę logowania do zaplecza np.. twojastrona.pl/administrator na /supertajne

22 Pytania?

23 Dziękuję za uwagę


Pobierz ppt "Życie po włamaniu czyli reanimacja strony Joomla"
Reklamy Google