Biorąc pod uwagę dwa publiczne adresy IP i wiedzę, które są w tej samej sieci / 27, czy byłoby możliwe ustalenie ze zdalnej lokalizacji (tj. Innego kraju), czy należą one do jednego czy dwóch serwerów?
networking
Michelle
źródło
źródło
Odpowiedzi:
Nie, w ogólnym przypadku nie.
Kilka dodatków, aby nasi goście z SO byli szczęśliwi:
źródło
Ciekawe „dlaczego”. Obawy związane z komputerami z podwójnym bazowaniem są zazwyczaj lokalizowane jako ból głowy jakiegoś nienazwanego sysadmina. Szczegóły mają być ukryte przez model OSI.
Centralna odpowiedź na Linuxa.
Istnieje kilka sposobów generowania odcisków palców i zgadywania edukacyjnego.
nmap -o i nmap z przyzwoitym skanowaniem portów. Serwery nie zawsze wiążą się z obiema kartami sieciowymi. Ale często tak robią.
Adresy MAC. Jeśli masz jakieś sposoby na uzyskanie adresów MAC, producenci lubią używać kolejnych adresów dla zintegrowanego sprzętu. Dwa prawie identyczne adresy MAC są bardziej prawdopodobne na tej samej płycie głównej. Oczywiście nie dotyczy to kart z rynku wtórnego.
Pozdrowienia. Telnet, ftp, smtp i tym podobne oferują informacje identyfikujące. Sprawdź, czy te usługi są uruchomione, podaj wystarczająco wyraźne informacje. Banery są dziś prawdopodobnie rzadkie, ale nadal warto spróbować.
Przetestuj niezależne zachowanie karty sieciowej. Na przykład spróbuj wyzwolić odmowę hosta, podając fałszywe uwierzytelnienie ssh kilkanaście razy. Jeśli nastąpi odmowa hostów, powinieneś znaleźć gniazdo natychmiast zamknięte przy następnej próbie. Sprawdź, czy dzieje się tak również w przypadku drugiego adresu IP.
Sieć A / 27 to ... co, 29 hostów? Powiedziałbym, że szanse na zidentyfikowanie maszyny z dwoma domami z dużą pewnością są bardzo małe, może 5%. Ale biorąc pod uwagę tak małą liczbę gospodarzy, możesz być w stanie zgadnąć.
Zabawne pytanie do rozmowy kwalifikacyjnej. Mogę to ukraść.
źródło
Teoretycznie w większości przypadków można podać znaczący poziom zaufania. Istnieje jednak kilka zastrzeżeń, które znacznie utrudniają w praktyce.
Będę nakładać się na inne odpowiedzi i prawdopodobnie coś przeoczyłem, ale jest to co najmniej szczegółowe uzasadnienie, dlaczego te konkretne elementy mają znaczenie, czy nie.
Najpierw jednak zapomnij o wszelkich przemyśleniach na temat adresów MAC. Jeśli nie masz bezpośredniego dostępu do segmentu sieci, nie będziesz mógł ich zobaczyć.
Nie ufaj także skanom portów. Porty zapory ogniowej dla niektórych adresów IP są trywialne, oprogramowanie nasłuchuje tylko w przypadku niektórych adresów IP lub system IDS / IPS, który stosuje filtrowanie po wykryciu skanowania. Wszystko to zniszczy twoje testy.
Ok, więc sposób, w jaki można to stwierdzić, jest prosty: prawdopodobieństwo, że dwa pola będą identyczne, jest niskie, chyba że i tak są powiązane. Więc tak naprawdę próbujesz udowodnić, że to różne pudełka, a nie próbujesz udowodnić, że są takie same.
Świst. Musisz przetestować oba jednocześnie i wykonać wiele testów. Okazuje się, że chociaż w czasach sieci występuje jitter, jest to dość wysokiej jakości pseudolosowy hałas, jeśli masz wystarczająco dużo próbek w krótkim przedziale czasowym, szum uśrednia się wystarczająco, aby zapewnić dokładne porównanie.
Każdy przeskok warstwy 2 w sieci dodaje niewielką latencję, różne poziomy przeciążenia dadzą różne wartości latencji. Jeśli dwa adresy IP wykazują znacząco różne współbieżne opóźnienia, możesz założyć, że prawdopodobnie nie są to te same skrzynki.
Zastrzeżenie 1: Pojedynczy serwer z dwoma łączami wysyłającymi (niepowiązanymi) i skonfigurowany z innym adresem IP na każdym łączu wysyłającym może mieć wystarczającą nierównowagę łącza wysyłającego, aby to zrzucić.
Skanowanie portów. Porty docelowe mogą znajdować się w jednym z trzech stanów: nasłuchiwanie, zamknięcie, filtrowanie. To, w czym się znajdują, nie jest tak naprawdę przydatne, jak wspomniano powyżej, ale wciąż jest wiele przydatnych informacji.
Skrzynki z portami otwartymi dla wielu adresów IP najprawdopodobniej będą uruchamiać to samo oprogramowanie na wszystkich adresach IP. Można uruchomić, powiedzmy, nginx na jednym IP i apache na innym, ale większość ludzi nie przejmuje się. Odcisk palca uruchomionych usług w poszukiwaniu podobieństw. Sprawdź, jakie oprogramowanie i wersja sama reklamuje, jakie opcje obsługuje, jaka nazwa hosta (jeśli istnieje) jest reklamowana, czy są jakieś dziwactwa w zachowaniu oprogramowania, takie rzeczy.
Usługi sieciowe są najmniej przydatne do tego, o wiele bardziej przydatne są takie rzeczy jak SMTP (trudne do mieszania i dopasowywania ze względu na obsługę sendmaila, przecieki wielu informacji), SNMP (kopalnia złota informacji), SSH (kto obsługuje wiele demonów SSH? ) i HTTPS (jeśli masz szczęście i korzystają z tego samego oprogramowania, możesz sprawdzić różnice w konfiguracji SSL, dobra identyczna, ale nietypowa konfiguracja jest dobrym wskaźnikiem). NTP był kiedyś dobrym testem, ale obecnie jest mocno blokowany ze względu na intensywne stosowanie jako wzmacniacza DoS, SNTP nie jest wystarczająco dokładny dla pistoletu do palenia w ten sam sposób.
Odcisk palca warstwy 3. Główny sposób zdalnego pobierania odcisków palców systemu operacyjnego polega na dziwactwach związanych z implementacją protokołu TCP / IP. Dokładne szczegóły są o wiele za długie, aby je tu omówić, ale w zasadzie metadane pakietu przeciekają wiele informacji, podobnie jak to, jak zamknięty lub filtrowany port reaguje na połączenie i jak zachowuje się host podczas odbierania zniekształconych pakietów. Chociaż te cechy nie są pewną informacją o tym, co jest uruchomione, są w zasadzie gwarantowane, że są zbliżone do tego samego dla każdego adresu IP związanego z określonym stosem TCP / IP. Znacząco różne systemy powinny mieć znacząco różne cechy.
Zastrzeżenie 2: Dwa urządzenia z dokładnie tym samym systemem operacyjnym i łatami dostawcy prawdopodobnie będą wyglądać tak samo. W systemie Windows dwie kopie tej samej wersji systemu Windows z automatycznymi aktualizacjami będą dość nie do odróżnienia, chyba że mają uruchomione różne zapory ogniowe. W Linuksie różnice prawdopodobnie będą dotyczyły głównie tego, jaka wersja jądra i opcje są dostarczane. Ten test może dać tylko duże prawdopodobieństwo, że dwa adresy IP nie są w tym samym systemie operacyjnym.
Powtórz ataki. Z listą portów otwartych na obu adresach IP, wykonaj identyczne działania na każdym adresie IP i poszukaj rozbieżności w zachowaniu. Rzeczy takie jak przekroczenia limitu czasu, komunikaty o błędach, limity ponownych prób itp. Niektóre programy są trudniejsze lub rzadziej skonfigurowane tak, aby różniły się w zależności od adresu IP. Jeśli wiesz, że jeden adres IP akceptuje pocztę dla określonej domeny, sprawdź, czy drugi adres IP również akceptuje pocztę dla tej domeny.
Zastrzeżenie 3: Dane te są niższej jakości niż część usługi polegająca na pobieraniu odcisków palców w teście 2, ponieważ łatwiej jest inaczej skonfigurować te ustawienia dla różnych adresów IP i możliwe są różne rodzaje interakcji za sceną. Duża szansa na fałszywe wyniki sprawia, że wyniki są mało pewne.
Tak jak powiedziałem, podstawową teorią jest to, że różne hosty prawdopodobnie będą miały różne konfiguracje i że wycieka informacja.
Nie uwzględnia to faktu, że o wiele trudniej jest stwierdzić, czy ta sama witryna działająca na dwóch adresach IP jest tym samym serwerem, czy dwoma serwerami skonfigurowanymi do nadmiarowości. Nie uwzględnia również administratorów systemów, którzy zarządzają konfiguracją, aby utrzymać bardzo podobny system. Nie uwzględnia również hostów, które obsługują DNAT dla wielu usług działających na różnych hostach do jednego adresu IP.
Technologia wirtualizacji rzuca dziwne klucze w prace. Systemy konteneryzowane, takie jak Docker, dzielą wystarczającą ilość stosu, aby osobne kontenery wyglądały bardziej podobnie, niż mogłyby być. Wirtualne karty sieciowe połączone z nicią fizyczną powinny być niemożliwe do odróżnienia od fizycznie oddzielnego sprzętu, ale tak nie jest, ponieważ wynika to głównie z faktu, że most jest oprogramowaniem, a zatem pakiety muszą przechodzić przez stos IP hosta.
Istnieje wiele sposobów na pomylenie osób próbujących przetestować powtarzalność. Najlepsze, na co możesz liczyć, to wzór o niskim marginesie wątpliwości.
Morał tego, dla osób korzystających z serwerów, jest taki, że powinieneś skonfigurować swoje serwery, aby ujawniały jak najmniej informacji:
Zmniejsz informacje o banerach, o ile to możliwe. Im mniej atak wie o twojej konfiguracji, tym lepiej dla Ciebie.
Oprogramowanie może akceptować tylko połączenia w adresie IP, na którym ma służyć i tylko w razie potrzeby. Jeśli nie musi być dostępny z zewnątrz, należy powiązać go tylko z hostem lokalnym. Zmniejszenie powierzchni ataku jest zawsze dobre.
Jeśli absolutnie musisz mieć coś do słuchania i chcesz uniknąć korelacji między dwoma adresami IP, spróbuj ograniczyć nietypowe opcje do minimum. Chcesz, żeby się wtopiło.
Uruchom zaporę z domyślnymi zasadami usuwania. Myślę, że może być wartość w konfiguracji IDS, która reaguje na atakujących losowymi odpowiedziami, hałas utrudniłby atakującemu zaufanie do jego wyników, ale powoduje, że wyróżniasz się.
Moduły losowego opóźnienia są bezwartościowe, aby zapobiegać atakom czasowym. Nie naprawdę. Wybierz losową liczbę, a następnie rzuć kostką kilka razy, zapisując wynik plus liczbę, którą wybrałeś na początku. To, co kończysz, to zakres ze stałym przesunięciem. Jeśli liczba losowa zostanie podstawiona, zakres się zmienia. Jeśli zakres zostanie zmieniony, przesunięcie pozostanie takie samo i wystarczy powtórzyć proces próbkowania, aby uzyskać nową linię bazową.
Normalizatory stosu IP istnieją, ale były zaniedbaną częścią badań nad bezpieczeństwem podczas ostatniego przeglądania. Prawdopodobnie byłby to dobry rynek dla inwestorów.
źródło