Poważna luka w systemie Mikrotik

Ostatnio głośno się zrobiło o złośliwych podatnościach wykrytych w systemie Mikrotik RouterOS. Pokażę jak znaleźć zainfekowany router oraz co zrobić by zminimalizować ryzyko kolejnych infekcji.

Można wieszać psy na producentach oprogramowania, ale dziury w sofcie były i będą zawsze. Kwestia tego kiedy zostaną wykryte, jakie szkody spowodują, jak szybko producent zareaguje z patchem oraz co możemy zrobić, by ich uniknąć. Wbrew pozorom zrobić możemy bardzo dużo, ale o tym napiszę na końcu tego wpisu.

Informacji o podatnościach różnego sprzętu i oprogramowania polecam szukać na https://www.exploit-db.com/. Korzystając z wyszukiwarki możecie szybko sprawdzić, że dla Mikrotika opublikowano w tym roku dwie podatności.

Pierwsza dotyczy protokołu SMB, ale nie będę się na niej skupiał, ponieważ SMB jest domyślnie wyłączone. Poza tym nie jest to usługa z której korzystają ISP. Druga podatność jest bardziej dokuczliwa i tak naprawdę pochodzi sprzed roku. Chodzi dokładnie o to: https://www.exploit-db.com/exploits/44284/. Podatne są urządzenia Mikrotik z systemem routeros starszym niż 6.38.4. Co istotne podatność dotyczy platformy mipsbe i x86. Exploit umożliwia uruchomienie złośliwego kodu poprzez lukę w interfejsie www. Support MT twierdzi, że problem dotyczy tylko otwartego portu 80 na routerze przy braku ACL dla tej usługi (jest to domyślna konfiguracja). W wyniku infekcji nasze Mikrotiki zaczynają skanować w Internecie po wszystkich usługach, na których można znaleźć Mikrotika czyli telnet (23), ssh (22), www (80) i winbox (8291) i próbują je infekować.

Na szczęście można bardzo szybko rozpoznać który Mikrotik w naszej sieci został zainfekowany. Jeżeli posiadacie router brzegowy czy koncentrator na którym macie aktywny conntrack, to znajdziecie wszystkie Mikrotiki z jednego miejsca. W conntracku należy wyszukać źródłowe IP z naszej klasy oraz docelowy port 8291 (Winbox). Zainfekowane urządzenie poznacie po widocznych wielu (setki, nawet tysiące) połączeniach SYN na ten właśnie port.

Powyżej screen z Mikrotika. Na linuxowych routerach można zrobić np to tak:

cat /proc/net/ip_conntrack > botnet
cat botnet | grep port=8291

Po znalezieniu zainfekowanych routerów wystarczy zrobić aktualizację. Według supportu MT każda wersja powyżej 6.38.4 rozwiązuje problem i czyści system z niechcianych plików. Ja sugeruję zawsze instalację aktualnej wersji z gałęzi bugfix only lub current.

Szczegóły na forum Mikrotik:
https://forum.mikrotik.com/viewtopic.php?f=21&t=132499

Istotne jest aby zabezpieczyć nasze urządzenia, by zminimalizować ryzyko kolejnych problemów. Podstawowe zalecenia to:

  • Wyłączyć zbędne usługi typu www, telnet, ssh, ftp, api
  • Jeżeli z nich korzystamy, to ograniczyć do nich dostęp za pomocą ACL (firewall lub ip services). To samo dotyczy Winbox. Nie zostawiamy urządzeń z otwartym dostępem z Internetu.
  • Wykorzystując usługi DNS forwarder, web proxy, NTP server itp pamiętamy by ograniczyć dla nich dostęp do konkretnych podsieci i/lub interfejsów. Domyślnie skonfigurowany DNS forwarder staje się publicznym serwerem w Internecie!
  • Budujcie firewalle. Są różne rozwiązania. Można blokować wszystko i dopuszczać co potrzebne, lub też tylko blokować co zbędne. Nie chcę tutaj sugerować rozwiązania. Ważne, żeby wiedzieć co się robi i mieć pewność, że żadna usługa czy to na routerze, czy wewnątrz sieci nie jest dostępna w Internecie wbrew naszym zamierzeniom.
  • Nie wystawiamy urządzeń na publiczne adresy IP jeżeli nie jest to konieczne.

Tak jak pisałem, dziury były i będą. Przeglądając exploit-db zobaczycie, że dotyczą wielu producentów sprzętu czy oprogramowania. Istotne jest, by producent szybko znalazł rozwiązanie problemu i wypuścił stosowną aktualizację. Jak takie działania są istotne dla naszych sieci, chyba nie muszę pisać. Wielu ISP na pewno pamięta przykrą sytuację ze sprzętem Ubiquiti sprzed dwóch lat. Wystarczyło jedno urządzenie z publicznym IP oraz dostęp do pozostałych w sieci wewnętrznej, by zmienić loginy, hasła, SSID i zacząć działać w botnecie. Do tej pory pamietam login moth3r i hasło fuck.3r 🙂 Od tego czasu wprowadziłem sporo zmian w sieciach którymi się opiekuję, dzięki czemu obecna luka w MT nie była zbyt dokuczliwa. Oczywiście problemem zawsze będą urządzenia należące do naszych abonentów, które są poza naszym zarządzaniem. Ważne jednak by znaleźć i odciąć zainfekowane urządzenie od sieci.  Życzę Wam jak najmniej takich sytuacji 🙂