niedziela, 2 lipca 2017

Dobre praktyki w zabezpieczaniu domowych routerów na przykładzie Synology RT2600ac

Ostatnia "przygoda" z otworzonym portem SSH na który, w ciągu nieco ponad tygodnia, miałem ponad 14 tysięcy prób wejść, skłoniła mnie do popełnienia poniższego tekstu (więcej o tym możecie przeczytać tutaj - Masz w routerze włączony dostęp przez SSH? Zobacz jak ryzykujesz...)

Będzie on zbiorem ogólnych zasad dotyczących prawidłowego zabezpieczania domowych routerów.
Przez "domowe" routery rozumiem urządzenia dla rynku dom i mały biznes, które nie wymagają znajomości Linuxa i nie są urządzeniami kategorii UTM (ang. Unified Thread Management).
W przykładach będę odnosił się do routera Synology RT2600ac, który posiadam osobiście i uważam, że jest jednym z lepiej zabezpieczonych routerów (a może najlepiej w swojej kategorii).

Porady wprawdzie będą w punktach, ale nie należy ich traktować jako wyznacznika gradacji bezpieczeństwa na zasadzie pierwszy punkt najważniejszy, ostatni najmniej. Owszem są rzeczy bardziej i mniej ważne, ale tylko całkowite wyeliminowanie słabych punktów pozwoli Wam na spokojny sen, bez strachu, że któregoś dnia o 6 rano zapuka do Was policja w nakazem aresztowania za coś czego nie zrobiliście.
Zacznijmy więc.

1. Aktualizacja oprogramowania

Myślę, że na początek warto zacząć od rzeczy bardzo ważnej, a często niedocenianej - aktualizacji oprogramowania. Na niewiele się bowiem zdadzą dalsze zabezpieczenia, jeżeli oprogramowanie w routerze będzie przestarzałe i będzie posiadało luki.
Być może nie uda Wam się obronić przed CIA ("CIA od 10 lat hackowała setki routerów i WikiLeaks ma na to dowody"), ale z aktualnym firmwarem z pewnością będziecie nie lada orzechem do zgryzienia nawet dla średnio rozgarniętych script kiddies.

Dlatego zabezpieczanie routera warto zacząć od tego właśnie kroku.

W moim routerze informacja o statusie dostępnego oprogramowania zawsze ma powyższą treść :)
W moim routerze informacja o statusie dostępnego oprogramowania zawsze ma powyższą treść :)
W RT2600ac status posiadanego firmware'u sprawdzicie poprzez Panel Sterowania → menu System → zakładka Aktualizacja i przywracanie.

2. Wyłączenie zdalnego dostępu 

Jak już wspomniałem na początku tekstu, niedawno miałem "przygodę" z tysiącami prób zalogowania do mojego routera przez port TCP 22. Zwyczajowo nasłuchuje na nim usługa SSH.
Zarówno ona, jak i usługa telnet (port TCP 21), o ile nie ma ku temu wyjątkowego uzasadnienia, powinny być zablokowane od strony Internetu, a najlepiej w ogóle wyłączone.

Usługa SSH jest wyłączona
Usługa SSH jest wyłączona
Status usługi SSH w Synology RT2600ac sprawdzicie poprzez Panel Sterowania → menu Usługi → zakładka System Services.

Ale dostęp zdalny to nie tylko usługi konsolowe. To także możliwość logowania się do routera poprzez stronę logowania. Ona także, o ile jest to możliwe, powinna być dostępna wyłącznie od strony sieci LAN. Tak też jest domyślnie w RT2600ac, jednak jeżeli chcecie to sprawdzić, bądź też zmienić to ustawienie, to przejdźcie do Panelu Sterowania → menu System → zakładka Ustawienia SRM.

Opcja odpowiadająca za włączenie / wyłączenie zdalnego dostępu do Synology RT2600ac
Opcja odpowiadająca za włączenie / wyłączenie zdalnego dostępu do Synology RT2600ac
Warto także sprawdzić, czy nie mamy włączonych innych usług, które mogłyby oczekiwać na połączenia z zewnątrz jak np. serwer FTP, czy coraz powszechniejsze ostatnio aplikacje mobilne do zarządzania routerami.

3. Zmiana domyślnych portów

Komunikacja z routerem realizowana jest poprzez odpowiednie porty. We wcześniejszym przykładzie wskazałem, że dla usługi SSH jest to port TCP 22. Tak samo rzecz się ma, gdy łączycie się ze stroną logowania routera. Komunikacja odbywa się wtedy na ogół po porcie TCP 80, lub TCP 443 (w przypadku szyfrowanego połączenia https). 

Przestępcy wykorzystują faktu korelacji nr portu = usługa i ich boty skanują na ogół tylko te numery portów, które ich interesują.  

Tak więc prostym i dość skutecznym sposobem na odparcie zainteresowania takiego bota jest zmiana domyślnego portu dla strony logowania, usługi SSH, czy też innej usługi, do której świadomie zostawiamy dostęp z Internetu.

Jeżeli chodzi o Synology RT2600ac, to jego strona logowania już na starcie stanowi utrudnienie, bo zamiast nasłuchiwać na wskazanym wcześniej porcie 80 i 443, robi to portach 8000 i 8001.
Ale nawet w takim przypadku warto rozważyć zmianę tych portów na inne.

Odpowiednią ku temu opcję znajdziecie w Panelu Sterowania → menu System → zakładka Ustawienia SRM.

Sekcja odpowiedzialna za możliwość zmiany domyślnych portów logowania do routera RT2600ac
Sekcja odpowiedzialna za możliwość zmiany domyślnych portów logowania do routera RT2600ac

4. Włączenie blokady po IP

Skoro rozpocząłem temat prób uzyskania do routera poprzez zdalny dostęp, to należy napisać o bardzo skutecznej metodzie obrony przed tego typu atakami. Jest nią blokada po adresie IP, a jej działanie polega na tym, że kilkukrotne, nieudane próby nawiązania połączenia z routerem kończyć się będą blokadą adresu IP z którego następowały. 

Prosto i skutecznie. 

Trzeba przyznać, że RT2600ac posiada to rozwiązane niemalże wzorcowo. Po wejściu w Centrum Sieciowe → menu Bezpieczeństwo → zakładka Automatyczne blokowanie, użytkownik uzyskuje dostęp nie tylko do włączenia opcji automatycznego blokowania po IP, ale także ustawienia jej parametrów po których ma nastąpić jej zadziałanie.

Dla osób, które muszą zdalnie dostawać się do routera, a obawiających się, że mogłyby same sobie zablokować sobie dostęp, producent dodał możliwość wygaszania blokowania po określonym czasie, lub jeszcze bezpieczniej, listę dozwolonych / blokowanych IP.
"W razie czego" od strony LAN zawsze mamy dostęp. 

Opcja blokowania po IP w Synology RT2600ac
Opcja blokowania po IP w Synology RT2600ac

5. Włączenie 2-etapowej weryfikacji

Dwuetapowa weryfikacja nie jest tym co można znaleźć w każdym routerze. Jednak jeżeli Wasze urządzenie ją posiada, to mocno zastanówcie się nad jej włączeniem, ponieważ praktycznie eliminuje ona możliwość zdobycia dostępu w wyniku ataku metodą brute-force, słownikową, socjotechniczną, czy nawet poprzez podejrzenie Waszego hasła.

Dla osób, które nie miały z takim rozwiązaniem do czynienia wyjaśnię, że działanie tego mechanizmu polega na tym, że po podaniu danych autoryzujących w postaci loginu i hasła, oraz poprawnym ich zweryfikowaniu przez router nie otrzymujemy dostępu do routera, ale jesteśmy proszeni o podanie kodu z aplikacji w smartfonie.
Kod musi pochodzić ze smartfona, który w trakcie ustawiania 2-etapowej weryfikacji został z routerem powiązany.

Czyli nawet jeżeli ktoś zdobędzie Wasz login i hasło, to bez Waszego telefonu się nie zaloguje.

Niestety minusem tego rozwiązania jest fakt, że nie obejmuje ono swoim działaniem połączeń zdalnych takich jak SSH. Pamiętajcie o tym!

Monit o podanie kodu weryfikacyjnego po poprawnym użyciu loginu i hasła
Monit o podanie kodu weryfikacyjnego po poprawnym użyciu loginu i hasła
Screen z ekranu telefonu z kodem wygenerowanym przez aplikację Google Authenticator
Screen z ekranu telefonu z kodem wygenerowanym przez aplikację Google Authenticator
W routerze Synology RT2600ac 2-etapową weryfikację ustawia się poprzez Panel Sterowania → menu Użytkownik i następnie edycja użytkownika wobec którego chcemy ją włączyć, bądź też poprzez zakładkę Zaawansowane, w której można wymusić ją wobec wszystkich użytkowników.

Wymuszenie 2-etapowej weryfikacji wobec wszystkich użytkowników
Wymuszenie 2-etapowej weryfikacji wobec wszystkich użytkowników

6. Korzystanie z silnych haseł

Silne hasło to podstawa zabezpieczeń wszelkich systemów, w tym i routerów.
Jeżeli nie bawiliście się nigdy w łamanie haseł, to napiszę Wam, że łamanie metodą brute-force odbywa się według słowników, które podzielone są na poniższe zbiory:
  • małe litery,
  • duże litery,
  • cyfry,
  • znaki specjalne,
O co chodzi z tymi słownikami?
Gdy Wasze hasło będzie składało się np. z 8 małych znaków, wtedy wystarczy, że program dokonujący łamania siłowego, sprawdzi wszystkie możliwe kombinacje liter ze zbioru małych liter i w ten sposób powinien trafić na prawidłowe hasło.
Zatem dla słownika angielskiego, składającego się z 26 liter, będzie musiał dokonać 268208.827.064.576 sprawdzeń.

Gdy jednak hasło będzie zawierało małe i duże litery, wtedy ilość znaków do sprawdzenia będzie wynosiła 52 (bo 26 małych i 26 dużych liter) i da nam to 52853.459.728.531.456 sprawdzeń, czyli aż o 53.250.901.466.880 więcej. Lub przedstawiając to w krotnościach, o 256 razy więcej, niż tylko przy małych literach.

Jak więc widzicie samo dodanie dużych liter (nawet jednej) do hasła  powoduje, że jego złożoność znacznie wzrasta.

Poniżej tabelka w której przygotowałem ile wynosi ilość kombinacji dla 8-znakowego hasła zbudowanego z małych liter, oraz w kolejnych wierszach, zawierającego dodatkowo duże litery (to już zostało wcześniej przedstawione), cyfry, a także znaki specjalne (!@#$%^&*()-_=+[{]}\|;:'",<.>/?).

Złożoność hasła w zależności od użytych słowników
Lp. Słownik Łączna ilość znaków do sprawdzenia Ilość kombinacji dla 8 znakowego hasła
1 Małe litery angielskie (26 znaków) 26 208827064576
2 Dodatkowo duże litery angielskie (26 znaków) 52 53459728531456
3 Dodatkowo cyfry (10 znaków) 62 218340105584896
4 Dodatkowo znaki specjalne (30 znaków) 92 5132188731375616

Gdybyście jednak dodatkowo chcieli skomplikować hasło, to zawsze możecie skorzystać z rozszerzonej tablicy znaków ASCII i np. literkę a w haśle zastąpić znakiem â (aby ją zrobić należy nacisnąć lewy Alt oraz z klawiatury numerycznej wpisać liczbę 131), lub dowolnym innym znakiem, wedle Waszego uznania.

Tak więc nie tylko długość hasła się liczy, ale także jego konstrukcja. Fajną stroną na której możecie sprawdzić ilość kombinacji, wygenerować trudne hasło, bądź też sprawdzić "jakość" swojego hasła jest strona https://www.dobrehaslo.pl (chociaż ja, jeżeli chodzi o sprawdzanie moich haseł, wolę aplikacje offline).

W dobrej klasy routerach można wymusić wykorzystanie w haśle poszczególnych grup znaków. Przydaje się to zwłaszcza wtedy, gdy dostęp do routera ma więcej niż jedna osoba i chcemy mieć pewność, że jej hasła nie będą odbiegały od przyjętego przez nas poziomu bezpieczeństwa.

W Synology RT2600ac ustawienia dotyczące złożoności haseł można odnaleźć przechodząc do Panelu Sterowania → menu Użytkownik → zakładka Zaawansowane. Tam, zaraz nad wspominaną wcześniej 2-etapową weryfikacją istnieje możliwość ustawienia minimalnych wymagań dla haseł.

Ustawianie minimalnych wymagań dla haseł w Synology RT2600ac
Ustawianie minimalnych wymagań dla haseł w Synology RT2600ac

7. Zmiana domyślnego loginu administratora lub utworzenie innego konta z uprawnieniami administracyjnymi

Wcześniej wymienione silne hasła są dla wielu osób oczywistą oczywistością. Ale niewiele osób ma świadomość, że złożoność procesu autoryzacji można zwiększyć (dramatycznie wręcz) poprzez zastosowanie niestandardowego loginu dla konta administracyjnego. 

O co chodzi?

Pewnie wiecie (a może nie zastanawialiście się nad tym), że producenci routerów sprzedają swoje produkty z domyślnym loginem (najczęściej admin / administrator) i hasłem.
Powstała nawet specjalna strona katalogująca te wartości  - http://www.routerpasswords.com

Jak więc widzicie, nie jest wybitną trudnością ustalić domyślny login i hasło dla danego routera. Aby więc intruzowi nie było zbyt łatwo, należałoby ustawić nie tylko skomplikowane hasło, ale także niestandardowy login. Poprawne odgadnięcie i jednoczesne skorelowanie ze sobą tych dwóch parametrów jest praktycznie niemożliwe.

Niestety zmiana loginu nie jest sprawą tak oczywistą i nie każdy router ją umożliwia. Czasami obejściem takiego stanu rzeczy może być utworzenie nowego konta z nowym loginem i uprawnieniami administracyjnymi i wyłączenie domyślnego admina.

Ustawianie nazwy konta administracyjnego i hasła w Synology RT2600ac
Ustawianie nazwy konta administracyjnego i hasła w Synology RT2600ac
W routerze Synology RT2600ac zmianę nazwy użytkownika administracyjnego można przeprowadzić podczas konfiguracji startowej urządzenia, bądź w wyniku tzw. miękkiego resetu (tutaj możecie przeczytać jak go wykonać).

8. Wyłączenie UPnP

Wiecie czym jest UPnP (ang. Universal Plug-and-Play)?
Jeżeli nie, to znaczy, że go nie potrzebujecie :)

A tak poważnie. Protokół UPnP jest wykorzystywany na przykład wtedy, gdy konfigurujecie jakąś usługę na NASie, która ma mieć dostęp z Internetu. Normalnie musielibyście w tym celu wykonać na routerze przekierowanie portów, jednak dzięki protokołowi UPnP to NAS skomunikuje się z routerem i zrobi to za Was.

Jest wygoda? Pewnie, że jest. Ale przekierowanie portów można zrobić ręcznie bez ryzyka, że zamiast NASa, ktoś inny pootwiera nam w routerze porty.

Włączyć lub wyłączyć obsługę UPnP w Synology RT2600ac możecie w Centrum Sieciowym → menu Sieć lokalna → zakładka Ogólne. Opcja nazywa się Włącz UPnP i może przyjąć wartość włączone lub wyłączone.

9. Logi

Kto z Was zagląda codziennie do routera? A co tydzień? Raz na miesiąc?

No właśnie.

Bądźmy szczerzy. Do routera zagląda się tylko wtedy kiedy coś nie działa, lub trzeba zmienić konfigurację.

Teraz, trzymając się wcześniej poruszanego przykładu ataku na SSH, wyobraźcie, że ktoś przeprowadza na Wasz router atak z użyciem metody brute-force.
Owszem, taki atak trwa. Może trwać miesiąc, dwa, rok i niekoniecznie musi zostać zakończony powodzeniem.
Ale czy to, że taki atak może długo trwać coś zmienia skoro Wy i tak nie zaglądacie do routera? A jeżeli już zajrzycie, to tylko na chwilkę i z pewnością nie po to aby przeglądać logi.

Możecie więc być celem ataku i wcale o tym nie wiedzieć, a tym samym nie podejmiecie żadnych kroków zaradczych.

Dlatego tak ważną rolę odgrywa system logów z podsystemem ich analizy, dzięki któremu administrator zostanie poinformowany o występujących anomaliach.
Przykład takiej informacji, pochodzącej z Synology DS916+, macie poniżej.

E-mail z informacją o nieudanej próbie zalogowania przez SSH
E-mail z informacją o nieudanej próbie zalogowania przez SSH
Taką samą informację otrzymacie jeżeli skonfigurujecie system powiadomień w routerze Synology RT2600ac. Aby tego dokonać należy przejść do pakietu Centrum logów → menu Powiadomienia.
Tam możecie dostosować kryteria, które powinny spowodować wysłanie do administratora wiadomości.
Moje ustawienia powiadomień w Synology RT2600ac
Moje ustawienia powiadomień w Synology RT2600ac
Na koniec gorzka pigułka.
Niewiele routerów posiada możliwość tak dobrego systemu informacji administratora o zdarzeniach, które wystąpiły. Jeżeli jednak Wasz ma taką opcję to ją skonfigurujcie, bo naprawdę warto.

Podsumowanie

W ten oto sposób doszliśmy do końca niniejszego poradnika.
Starałem się w nim wymienić ogólne zasady na które warto zwrócić uwagę przy zabezpieczaniu swoich routerów.
Mam nadzieję, że tak jak u mnie, tak i u Was przebrnięcie przez powyższe punkty pozwoli na uzyskanie wyniku jak na poniższym screenie (strona https://www.grc.com → menu Services → ShieldsUP!). Oczywiście jest to strona, która nie sprawdza jakości Waszych haseł, podatności firmware'u w Waszym routerze na exploity itd., a jedynie widoczność portów, ale na początek warto od tego zacząć :)




Pewnie zauważyliście, że nie poruszyłem tutaj kwestii związanych z zabezpieczaniem sieci Wi-Fi. Nie poruszałem tego specjalnie, gdyż rozróżniłem temat włamania do sieci lokalnej od włamania do routera. Być może temat WiFi też kiedyś poruszę, teraz jednak skupiłem się na tym, aby Wasz router nie przekształcił się w kolejną maszynkę do przeprowadzania ataku DDoS.

W swoich opisach odnosiłem się do posiadanego przeze mnie routera Synology RT2600ac, który umożliwia skonfigurowanie / dostosowanie odpowiednich opcji, dzięki czemu poziom bezpieczeństwa zależy głównie od jego właściciela. Poprzedni model tej firmy, tj. RT1900ac, zapewne także dysponuje takimi opcjami.

Czy są jeszcze routery, które oferują możliwość dostosowania wymienionych wyżej zabezpieczeń, a nie wymagają znajomości Linuxa?... Nie wiem... na chwilę obecną nie kojarzę, ale jeżeli znacie takie urządzenie, to proszę napiszcie w komentarzu dla wiedzy mojej i innych czytelników.

Miłego zabezpieczania Waszych urządzeń. W końcu router to brama do Waszego świata. Zadbajcie o nią :)
Ceny wymienionego w tekście sprzętu wg Ceneo
Synology RT2600ac Sprawdź

3 komentarze:

  1. Co do punktu 7 powinno się dać założyć konto dodatkowe administracyjne z poziomu SRT, a konto admin wyłączyć lub usunąć - jak to jest w DSM.
    Najłatwiej zmienić konto administratora jak Ty to przedstawiłeś, podczas pierwszej konfiguracji rutera.

    Fajny i przydatny artykuł.

    RT1900AC posiada wszystkie "opcje" w SRM jak jego większy/droższy brat :)

    Mam ten model i polecam

    OdpowiedzUsuń
    Odpowiedzi
    1. Witaj anonimowy i dzięki za komentarz :)

      Z RT1900ac nie miałem kontaktu ale skoro ma wszystkie wymienione wyżej "opcje" to może być ciekawą alternatywą dla osób, które nie potrzebują wydajności RT2600ac.

      Pozdrawiam :)
      Daniel

      Usuń
  2. Nie taki znowu anonim :)

    Wybrałem RT1900AC głównie ze względu na podejście producenta do aktualizacji oprogramowania i możliwości.
    Nie wszyscy producenci tak szybko wydają aktualizacje błędów czy poprawek.

    Choć trzeba pamiętać, że mniejszy model to alternatywa dla RT2600AC, ze względu na słabsze "bebechy". Ale ja osobiście nie narzekam :)

    Miało być coś między Netgear R7000 a Asusa RT-AC68U i skończyło się na RT1900AC :D

    OdpowiedzUsuń

Bardzo proszę o zachowanie netykiety.