Preorder drugiego tomu książki sekuraka: Wprowadzenie do bezpieczeństwa IT. -15% z kodem: sekurak-book
600 TB danych w publicznie dostępnych bazach MongoDB
Pośród zasobów światowej pajęczyny można odnaleźć 30 tys. instancji MongoDB, do których dostęp nie został w jakikolwiek sposób zabezpieczony. Przekłada się to na blisko 600 terabajtów publicznie dostępnych danych…
John Matherly, twórca słynnego swego czasu serwisu Shodan, zwrócił na swym blogu uwagę na problem niezabezpieczonych systemów zarządzania bazami danych MongoDB. Jak się okazuje, setki terabajtów danych zgromadzonych w dziesiątkach tysięcy instancji są dostępne praktycznie dla każdego.
Shodan zasłynął niegdyś jako skaner i zarazem wyszukiwarka urządzeń i usług dostępnych w Internecie. Początkowo serwis ten skanował i indeksował informacje o usługach dostępnych na najpopularniejszych portach, takich jak TCP 21, 22, 23 oraz 80. Jednak z biegiem czasu zakres jego działania został rozszerzony również o rozmaite systemy bazodanowe, takie jak MySQL, czy PostgreSQL.
O ile większość klasycznych (relacyjnych) systemów zarządzania bazami danych jest zazwyczaj całkiem nieźle zabezpieczona, o tyle zaskakujące i niepokojące rezultaty zaobserwowano dla nowszych (nierelacyjnych) rozwiązań, takich właśnie jak MongoDB.
Tysiące zupełnie otwartych instancji zawierających znaczące ilości danych. Jest to najprawdopodobniej związane z domyślną konfiguracją dystrybuowanych przez ponad dwa lata wersji MongoDB. W taki sposób nieświadomi użytkownicy ( jak wynika z analiz — najczęściej korzystający z rozwiązań „w chmurze”) zostali narażeni na wyciek danych… a niektórzy z nich już padli ofiarą ataków.
John Matherly sugeruje, że przykładów podobnych do MongoDB jest więcej. Wygląda więc na to, że nierelacyjnym systemom zarządzania bazami danych (przynajmniej pod względem domyślnego poziomu zabezpieczeń) daleko jeszcze do swych relacyjnych przodków.
— Wojciech Smol
Taaa… Tyle, że świeżo zainstalowane mongodb binduje się tylko na adres 127.0.0.1 – jest zatem nieosiągalne spoza macierzystego komputera. Jeżeli ktoś zmienia to ustawienie nie włączając uwierzytelnienia użytkownika… To nie wina mongodb…
Zgadza się, ale jak widać tych zmieniających albo używających jakiejś wersji gdzie nie było to domyślne (?) jest … z 600 TB…
Okolo 2-3 lata temu w repach centosa domyslnie byla wlaczona obsluga na kazdym dostepnym adresie
Jeszcze całkiem niedawno było nieco inaczej: https://jira.mongodb.org/browse/SERVER-4216 no i mamy tego skutki.
Point taken. Co nie zmienia faktu, że przed podpięciem pudełka do sieci publicznej warto zrobić „ss -nlp” i pomedytować nad wynikiem, warto zrobić firewalla z opcją „iptables -P INPUT DROP” i stosownymi dziurami. A jak to nie jest VPS i możemy „fizycznie” wziąć kabelek z uplinkiem do ręki, to przepuścić go przez coś sprzętowego.
Zastanawia mnie też wypowiedź z linku podanego przez kolegę Wojciecha: „This will break current deployments” – co oznacza, że użytkownicy (chyba) świadomie używali połączeń nielokalnych…