Hasła ważnych ruterów sieciowych dostępne przez banalne błędy

dodał 15 sierpnia 2014 o 21:52 w kategorii Info  z tagami:
Hasła ważnych ruterów sieciowych dostępne przez banalne błędy

Wielu operatorów sieci od kilkunastu lat publicznie przez interfejs WWW udostępnia podstawową diagnostykę połączeń swoich najważniejszych ruterów, odpowiadających za kierowanie ruchem w internecie. Czasem jednak udostępnia za dużo.

Są w sieci miejsca gdzie czas się zatrzymał. Usługa Looking Glass, popularna wśród administratorów sieci, umożliwia szybsze ustalenie przyczyn awarii poprzez wykonanie podstawowych operacji diagnostycznych z poziomu rutera sąsiedniej sieci. Pozwala to często na zdiagnozowanie problemu, który dotyczy tylko wybranych sieci i byłby niemożliwy do ustalenia bez łatwego dostępu do bezpośrednich informacji widocznych jedynie od drugiej strony połączenia. Gdy kilkanaście lat temu budowano interfejsy WWW służące do realizacji tego zadania najwyraźniej ich bezpieczeństwo nie było priorytetem. Niektóre ze skryptów nie były aktualizowane przez ich autorów od kilkunastu lat i zawierają istotne błędy, umożliwiające poznanie loginów i haseł dostępu do ruterów BGP, a czasem także zdalne wykonywanie na nich poleceń.

Usługa rodem z archiwum

Looking Glass to najczęściej prosty skrypt w PHP lub Perlu, którego zadaniem jest wykonać predefniowane polecenie na konkretnym ruterze i pokazać jego odpowiedź. Skrypt łączy się bezpośrednio z jednym z ruterów szkieletowych poprzez telnet lub SSH, zatem musi znać odpowiednie dane uwierzytelniające. Wielu operatorów sieci korzysta z jednego z darmowych rozwiązań, które powstały wiele lat temu i od tamtej pory nie są rozwijane przez swoich twórców. Popularne rozwiązania to:

  • Cougar – ostatnia aktualizacja 2004-11-25
  • Cistron – ostatnia aktualizacja  1997-10-21
  • MRLG – ostatnia aktualizacja 2007-08-30
  • MRLG4PHP – ostatnia aktualizacja 2007-10-11
  • Telephone – ostatnia aktualizacja 2012-10-01
Przykładowy wygląd interfejsu usługi

Przykładowy wygląd interfejsu usługi

Już sam wygląd interfejsu sugeruje, że ma on swoje lata i to mimo wysiłków projektantów grafiki dookoła panelu zapytania. Widać to dobrze na przykładzie największych polskich operatorów takich jak TPNET, ATMAN, PLIX, TK Telekom czy Netia.

Badacze z francuskiej szkoły Eurecom przyjrzeli się bezpieczeństwu powyższych skryptów oraz przechowywanych przez nie danych i natrafili na co najmniej kilkadziesiąt przypadków, gdzie błędy programistyczne lub konfiguracyjne mogły prowadzić do nieautoryzowanego dostępu do ruterów szkieletowych na całym świecie. Według wyników ich testów cztery z podatnych sieci znajdowały się w Polsce.

Publicznie dostępne pliki konfiguracyjne z hasłami

Aby wykonać polecenie diagnostyczne usługa musi zalogować się do rutera. W tym celu musi dysponować danymi, umożliwiającymi uwierzytelnienie. Niestety w czasie, gdy tworzono używane do dzisiaj skrypty, najpopularniejszym sposobem przechowywania loginów i haseł było zapisywanie ich otwartym tekstem w pliku konfiguracyjnym, przechowywanym na serwerze WWW pod stałą nazwą. Badacze znaleźli co najmniej 28 plików konfiguracyjnych, zawierających adresy IP, loginy i hasła ruterów szkieletowych.

W celu odnalezienia publicznie dostępnych konfiguracji nie trzeba było nawet skanować wszystkich interfejsów usługi Looking Glass – w niektórych przypadkach pliki te były zindeksowane przez Google. Wystarczyło zapytać Google o

"login" "telnet" inurl:lg.conf
"login" "pass" inurl:lg.cfg

Obecnie zapytania te wskazują już tylko na niedobitki, ponieważ badacze ostrzegli wcześniej administratorów sieci, które znaleźli w wynikach tych zapytań.

Przykładowy plik konfiguracyjny

Przykładowy plik konfiguracyjny

Czasem zamiast loginów i haseł skrypty używają bezpieczniejszych kluczy SSH. Bezpieczniejszych, pod warunkiem, że klucz prywatny nie jest dostępny na serwerze WWW. Niestety w przypadku skryptu Cougar nieuważny administrator mógł pozostawić klucze na serwerze, w przewidywalnej ścieżce

/var/www/.ssh/private_key

Badacze natrafili na co najmniej 3 takie przypadki.

Wstrzykiwanie poleceń

Gorszym przypadkiem jest bez wątpienia błąd, odkryty w skrypcie MRLG4PHP (CVE -2014­-3927), umożliwiający wykonywanie poleceń na ruterze poprzez dodanie w polu jednego z parametrów zapytania znaków nowego wiersza (%0A) a po nich odpowiednich poleceń. Inne odkryte przez badaczy błędy umożliwiają na przykład zdalne nadpisywanie pamięci (CVE­-2014­-3931) przez jeden z modułów skryptu MRLG. Autor modułu odmówił naprawienia błędu sugerując, że jego kod i tak jest rzadko używany. W sumie naukowcy znaleźli co najmniej 12 przypadków ruterów, które umozliwiały zdalne wstrzykiwanie poleceń przez błędy w interfejsie Looking Glass.

Jak zatem pokazuje przykład badania naukowców, dość niszowa, lecz ciągle aktywna usługa może stać się źródłem poważnych problemów dla operatorów sieci. Ciekawe, ile jeszcze podobnych perełek drzemie w internecie.