Niedawno przeczytałem artykuł na temat analizy złośliwych prób logowania SSH. To sprawiło, że pomyślałem, czy nazwa użytkownika SSH, kombinacje haseł na moim Debianie są tak rzadkie? Czy zostałem zaatakowany przez brutalny atak słownikowy? Rzućmy okiem na /var/log/auth.log.0 :
Sep 23 07:42:04 SLUG sshd[8303]: Invalid user tyjuan from 210.168.200.190
Sep 23 07:42:09 SLUG sshd[8305]: Invalid user tykeedra from 210.168.200.190
Sep 23 07:42:14 SLUG sshd[8307]: Invalid user tykeem from 210.168.200.190
Sep 23 07:42:19 SLUG sshd[8309]: Invalid user tykeshia from 210.168.200.190
Sep 23 07:42:25 SLUG sshd[8311]: Invalid user tyla from 210.168.200.190
Sep 23 07:42:30 SLUG sshd[8313]: Invalid user tylan from 210.168.200.190
Sep 23 07:42:35 SLUG sshd[8315]: Invalid user tylar from 210.168.200.190
Sep 23 07:42:40 SLUG sshd[8317]: Invalid user tyler from 210.168.200.190
Sep 23 07:42:45 SLUG sshd[8319]: Invalid user tylerfrank from 210.168.200.190
Sep 23 07:42:50 SLUG sshd[8321]: Invalid user tyliah from 210.168.200.190
Sep 23 07:42:55 SLUG sshd[8323]: Invalid user tylor from 210.168.200.190
Więc to nie wygląda dobrze. Teraz, gdy wiem, że zostałem zaatakowany przez atak i że niektóre moje nazwy użytkownika, kombinacje haseł są słabe, chciałbym wiedzieć, jak mogę ...
- ... ustalić, czy mój system Linux został infiltrowany?
- ... cofnąć jakiekolwiek szkody pozostawione przez sprawców?
- ... zapobiec temu w przyszłości?
AKTUALIZACJA
Wszelkie porady na temat cofnięcia jakichkolwiek szkód pozostawionych przez sprawców?
Odpowiedzi:
Wiele osób sugeruje DenyHosts, ale widziałem wiele sukcesów z Fail2Ban na moich systemach. Sprawdza (konfigurowalną) liczbę awarii, a następnie wykonuje akcję - na moich serwerach ta akcja polega na użyciu iptables do usunięcia całego ruchu z hosta. Po 10 błędach logowania zostają zbanowani i to już koniec.
Używam tego w połączeniu z Logcheck, dzięki czemu zawsze wiem, co się dzieje na moich serwerach.
Jeśli masz jakiekolwiek dowody na to, że ktoś włamał się do twojego systemu (opublikowane przez ciebie logi nie są tego dowodem), to jedynym rozwiązaniem jest utworzenie kopii zapasowej wszystkich danych, które musisz przechowywać, wyczyść maszynę, zainstaluj ponownie i przywróć z kopii zapasowych. W przeciwnym razie nie ma pewności.
źródło
Prawidłowe próby logowania są również logowane, więc jeśli zobaczysz próbę brutalnej siły, po której nastąpi sukces, to dobra wskazówka, że stało się coś złego.
Korzystam z DenyHosts do monitorowania moich dzienników pod kątem podejrzanego ruchu SSH, i mam skonfigurowane do automatycznego zapory ogniowej od hostów w pewnym momencie.
Zauważ, że istnieje wiele innych sposobów monitorowania komputera, aby sprawdzić, czy nie jest zagrożony, w tym wzorce obciążenia, aktywność logowania, okresowe wąchanie ruchu, monitorowanie uruchomionych procesów i otwartych portów oraz zapewnienie integralności plików za pomocą narzędzia takiego jak tripwire.
Jeśli zamierzasz to zrobić tylko jeden, monitorowanie obciążenia systemu jest bardzo skutecznym sposobem wykrywania kompromisów, ponieważ większość komputerów po przejęciu jest wykorzystywana do takich zadań, jak wysyłanie ogromnych ilości spamu lub w inny sposób otrzymywanie dużego ruchu. Być może nie jest to przydatne, jeśli jesteś celem o wysokiej wartości, a ludzie mogą próbować włamać się do ciebie z powodów innych niż zamiana gospodarza w zombie, ale mimo to cenny. Dodatkowo potrzebne jest monitorowanie obciążenia w celu profilowania i ustalenia, kiedy trzeba zainwestować w więcej sprzętu lub lepszego oprogramowania.
Powinieneś także przeprowadzić kompleksową analizę dziennika, sprawdzając auth.log i inne w poszukiwaniu niespodziewanych rzeczy. Analiza pliku dziennika jest konkurencyjnym rynkiem i problem nie został jeszcze rozwiązany, ale istnieją bezpłatne narzędzia, takie jak zegarek, które można skonfigurować tak, aby codziennie wysyłały podsumowania.
Bezpieczeństwo przez warstwy!
źródło
Zapomnij o Tripwire, jest dość drogi. Zamiast tego użyj AIDE. Jest darmowy, łatwy w konfiguracji (choć zajmuje trochę czasu, aby zdecydować, które katalogi temperatur należy wykluczyć, a w inny sposób skonfigurować).
uruchamiasz go, buduje bazę danych wszystkich plików. Uruchom go ponownie, a powie ci, które pliki się zmieniły.
Inną rzeczą do zrobienia jest zainstalowanie CSF, który ma blokadę typu odmowa hosta, ponieważ ludzie często nie mogą się zalogować, doda je do reguł zapory. Możesz także wymagać, aby loginy SSH miały również klucz publiczny, dzieciaki skryptowe mogą próbować tyle logowań, ile chcą.
źródło
„* ... cofnąć jakiekolwiek szkody pozostawione przez sprawców?”
zapomnij o tym, jeśli wystąpił atak, najlepszą radą jest ponowna instalacja go od zera (upewnij się, że zatkałeś wszelkie dziury w nowej instalacji). Bardzo łatwo jest nie zauważyć backdoora lub procesu ukrywania się, lepiej jest zainstalować ponownie.
„* ... zapobiec temu w przyszłości?”
aktualizacje bezpieczeństwa
szczelna zapora ogniowa
silne hasła
wyłącz niepotrzebne usługi
źródło
spójrz na narzędzia takie jak logcheck , portsentry i tripwire . jest to bardzo powszechne w przypadku losowych prób SSH ze słownika, więc nie martwiłbym się tym zbytnio. możesz chcieć zmienić port dla przypadkowego zaciemnienia, ale od czasu do czasu będziesz widział przypadkowe próby, życie ma maszynę w Internecie.
źródło
Jedną rzeczą, której używam na moich serwerach, aby zapobiec tym atakom, jest DenyHosts . DenyHosts powstrzyma złośliwego użytkownika przed próbą zalogowania się. Od czasu instalacji moje pliki dziennika zawierały znacznie mniej wpisów prób logowania.
źródło
Dobrą praktyką jest stosowanie par kluczy publiczny / prywatny jako dodatkowego uwierzytelnienia; W ten sposób użytkownik nie może zalogować się przez SSH bez odpowiedniego klucza; co byłoby raczej niemożliwe do odgadnięcia dla brutalnego siłownika. Miły artykuł na ten temat można znaleźć tutaj .
To samo z hasłem byłoby całkiem solidne do uwierzytelnienia SSH; Ale jest więcej luk w zabezpieczeniach! Uważaj na wszystkie aplikacje korzystające z otwartego portu; Jeśli zawierają błąd, programy eksploatacyjne mogą wyprzedzić twój system. Dobrym przykładem był bot spamujący, który został zainstalowany na naszym serwerze z powodu błędu w oprogramowaniu statystyk internetowych, z którego obecnie korzystamy.
źródło
Fail2ban to analizator dziennika dostępu w czasie rzeczywistym. Można go skonfigurować tak, aby blokował dowolny adres IP z kilkoma nieudanymi próbami zalogowania. Pozwala to uniknąć ataków słownikowych bez konieczności przenoszenia portu ssh. chkrootkit i rootkithunter to dobre narzędzia do sprawdzania włamań. Jeśli włamanie zakończyło się powodzeniem, najlepszą praktyką jest kopiowanie danych (i tylko danych, a nie plików wykonywalnych), czyszczenie i ponowna instalacja, ponieważ naprawdę trudno być w 100% pewnym, że system jest czysty.
źródło
Nic nie wskazuje na to, że Twoje urządzenie zostało przejęte. Nawet jeśli twoje hasła są dość słabe, atak słownikowy, który rzuca tylko jedną próbę logowania przy każdej nazwie użytkownika, jest bardzo mało prawdopodobny.
Ale jeśli wiesz, że twoje hasła są słabe, wzmocnij je! Osobiście lubię pwgen (który jest spakowany przez Debiana). Przy każdym uruchomieniu generuje dużą liczbę silnych, ale stosunkowo wyraźnych kandydatów na hasła, które (przynajmniej dla mnie) są dość łatwe do zapamiętania, takie jak yodieCh1, Tai2daci lub Chohcah9.
Jeśli jednak istnieją inne dowody na to, że twój system został naruszony ... Nuke z orbity. To jedyny sposób, aby się upewnić.
Dane niewykonywalne są prawdopodobnie możliwe do zapisania, ale wszystko, co zawiera treść wykonywalną (potencjalnie obejmuje takie rzeczy, jak dokumenty MS Office i niektóre pliki konfiguracyjne) musi przejść, chyba że chcesz i możesz albo ręcznie to sprawdzić, aby upewnić się, że nie „ został uznany za wrogo nastawiony lub zaakceptować możliwość, że może on być wrogi i albo uszkodzić system, albo stanowić drogę do przyszłego ponownego kompromisu, jeśli się go obejmie.
źródło
Jednym małym dodatkowym zabezpieczeniem, które lubię, jest ograniczenie prędkości połączeń przychodzących ssh, aby spowolnić wszelkie ataki słownikowe lub podobne. Nie oczekuj, że to samo ochroni Cię wszystkich, ale skorzystaj z tego oprócz sugestii w innych odpowiedziach, w tym wyłączenia uwierzytelniania hasła.
Korzystanie z iptables:
źródło
Istnieje kilka kiepskich porad na ten temat, takich jak:
Po prostu popraw swój,
/etc/ssh/sshd_config
aby poprawić bezpieczeństwo:PermitRootLogin no
Jeśli jesteś skrzynka została infiltrowana. Odbuduj pudełko.
źródło
Stanie się to cały czas z włączonym ssh. Przenieś go do wysokiego portu.
Istnieje program o nazwie „Tripwire”, który doskonale nadaje się do wykrywania włamań, ale jest dość trudny do zainstalowania. Jeśli nic innego, przeczytaj ich dokumenty, aby zrozumieć problemy.
źródło
Przed podłączeniem urządzenia do Internetu musisz zainstalować funkcję wykrywania włamań.
Dobrym pomysłem jest tworzenie połączeń SSH z białej listy adresów IP, aby upewnić się, że cały świat nie może nawet próbować takich rzeczy.
źródło
Uruchom nośnik tylko do odczytu (livecd) i porównaj pliki z kopią zapasową lub oryginalnym nośnikiem.
Wystarczy rozejrzeć się za dziwnym zachowaniem. Oczywiście jest to najłatwiejsze, jeśli poświęcisz trochę czasu przed włamaniem, aby dobrze poczuć, co jest „normalne”.
Błędy, które opublikowałeś, nie oznaczają kompromisu. Tylko że ktoś próbuje.
Zainstaluj ponownie i przywróć z kopii zapasowej przed naruszeniem bezpieczeństwa systemu.
Widzieć:
Widzieć:
źródło
Możesz obejrzeć pudełko, aby zobaczyć, co wchodzi i wychodzi, i poszukać czegoś podejrzanego. Zobacz ten post: /programming/124745/sniffing-network-traffic-for-signs-of-virusesspyware
źródło
Psad w połączeniu z Shorewall to dobry sposób na uzupełnienie twoich zasad iptables.
Używam również Fail2ban do śledzenia moich logowań ssh
źródło
użyj rkhunter lub chkrootkit lub obu; zeskanuj skrzynkę z zewnątrz, aby zobaczyć, które porty są otwarte
w każdym razie, jeśli wszystko, co masz, to nieprawidłowy użytkownik, nie musisz się martwić :)
źródło
Coś zupełnie innego: spróbuj użyć Google na adres IP! Haker, który nazywa się STARTURK z Turcji, mógł spróbować włamać się do Twojej witryny.
Chociaż wygląda to na atak brute-force na twój system, równie dobrze może być tak, że ten haker tylko raz spróbował i odszedł na inną stronę.
źródło
Jak wielu zauważyło, Tripwire / AIDE to najlepszy sposób na sprawdzenie zmian w systemie. Niestety, krowa jest w tej stodole, ponieważ musi być skonfigurowana w dobrze znanym systemie.
Jedną z rzeczy, które mogą pomóc ci przynajmniej zacząć, jest użycie bazy danych RPM do sprawdzenia sum md5 twoich plików. Podstawowa zasada jest następująca:
To nie jest idealne z różnych powodów. Po pierwsze, lokalna baza danych RPM mogła teoretycznie zostać zmieniona. Po drugie, większość dystrybucji używa prelinkowania, a RPM nie jest świadomy prelinkowania. Wygląda na to, że MD5 zostały zmienione w wyniku tego procesu, który jest zgodny z prawem.
Najlepsza rada jest następująca: jeśli nie masz pewności, czy zostałeś narażony na szwank, to naprawdę czas na odbudowę.
źródło
Aby zapobiec przyszłym problemom bezpieczeństwa, możesz spojrzeć na OSSEC , używam go do sprawdzania integralności plików i monitorowania dzienników na naszych serwerach, jest bardzo kompletny i łatwy w konfiguracji. Może wysyłać powiadomienia pocztą, możesz sprawdzać powiadomienia za pomocą wiersza polecenia lub interfejsu internetowego ...
http://www.ossec.net/
zaczerpnięte ze strony:
„OSSEC to oparty na hoście Open Source system wykrywania włamań. Przeprowadza analizę dziennika, kontrolę integralności plików, monitorowanie zasad, wykrywanie rootkitów, alarmowanie w czasie rzeczywistym i aktywne reagowanie”.
analiza logów Może sprawdzać plik logów na twoich serwerach i ostrzegać Cię za pomocą reguł (istnieje wiele wstępnie zdefiniowanych i możesz dodać własne)
integralność pliku tripwire / aide jak functionnality, dzięki czemu zobaczysz, czy jakiś plik został zmodyfikowany na twoim serwerze
monitorowanie zasad: sprawdź zasady bezpieczeństwa „Najlepsze praktyki”
Wykrywanie rootkitów: rkhunter, chkrootkit jak funkcjonalność
alarmowanie w czasie rzeczywistym i aktywna reakcja: Możesz skonfigurować ossec tak, aby automatycznie reagował na alerty (nie używam tego, ale możesz go użyć do blokowania dostępu ssh do hostów wykonujących zbyt wiele nieudanych połączeń)
Naprawdę dobry produkt i jest bardzo aktywny
Aby wzmocnić swoje pudełko, możesz również użyć lynis lub bastille
http://www.rootkit.nl/projects/lynis.html
http://bastille-linux.sourceforge.net/
źródło