Często zadawane pytania techniczne. Wykrywanie ataków typu man-in-the-middle (ataki Man in the Middle, ataki MitM) Czym jest man in the Middle

Dom / Zamarza

W tym artykule postaramy się zrozumieć teorię ataków typu man-in-the-middle oraz kilka praktycznych punktów, które pomogą zapobiegać tego typu atakom. Pomoże nam to zrozumieć ryzyko, jakie takie włamania stanowią dla naszej prywatności, ponieważ ataki MitM pozwalają nam wtrącać się w komunikację i podsłuchiwać nasze rozmowy.

Zrozumienie, jak działa Internet

Aby zrozumieć zasadę ataku typu man-in-the-middle, warto najpierw zrozumieć, jak działa sam Internet. Główne punkty interakcji: klienci, routery, serwery. Najpopularniejszym protokołem komunikacyjnym między klientem a serwerem jest protokół przesyłania hipertekstu (HTTP). Surfowanie po Internecie za pomocą przeglądarki, poczty elektronicznej, komunikatorów internetowych – wszystko to odbywa się poprzez protokół HTTP.

Kiedy wpisujesz w pasku adresu przeglądarki, klient (Ty) wysyła żądanie do serwera w celu wyświetlenia strony internetowej. Pakiet (żądanie HTTP GET) jest przesyłany przez kilka routerów do serwera. Następnie serwer odpowiada, wysyłając stronę internetową, która jest wysyłana do klienta i wyświetlana na jego monitorze. Wiadomości HTTP należy wysyłać na adres tryb bezpieczny aby zapewnić poufność i anonimowość.

Rysunek 1. Interakcja klient-serwer

Zabezpieczenie protokołu komunikacyjnego

Bezpieczny protokół komunikacyjny musi mieć każdą z następujących właściwości:

  1. Prywatność- tylko zamierzony odbiorca może przeczytać wiadomość.
  2. Autentyczność- udowodniono tożsamość współpracujących stron.
  3. Uczciwość- potwierdzenie, że wiadomość nie została zmodyfikowana w trakcie przesyłania.

Jeśli którakolwiek z tych zasad nie będzie przestrzegana, cały protokół będzie zagrożony.

Atak typu man-in-the-middle za pośrednictwem protokołu HTTP

Osoba atakująca może z łatwością przeprowadzić atak typu man-in-the-middle, korzystając z techniki zwanej fałszowaniem ARP. Każdy w twoim Sieci Wi-Fi może wysłać Ci sfałszowany pakiet ARP, powodując, że nieświadomie prześlesz cały ruch przez osobę atakującą zamiast przez router.

Następnie atakujący ma pełną kontrolę nad ruchem i może monitorować żądania wysyłane w obu kierunkach.

Rysunek 2. Schemat ataku typu „man-in-the-middle”.


Aby zapobiec takim atakom, stworzono bezpieczną wersję protokołu HTTP. Transport Layer Security (TLS) i jego poprzednik, Secure Socket Layer (SSL), to protokoły kryptograficzne zapewniające bezpieczeństwo transmisji danych w sieci. Dlatego bezpieczny protokół będzie nazywany HTTPS. Możesz zobaczyć, jak działa bezpieczny protokół, wpisując w pasku adresu przeglądarki (zwróć uwagę na literę S w https).

Atak typu man-in-the-middle na źle zaimplementowany protokół SSL

Nowoczesny protokół SSL wykorzystuje dobry algorytm szyfrowania, ale nie ma to znaczenia, jeśli nie jest poprawnie zaimplementowany. Jeśli haker może przechwycić żądanie, może je zmodyfikować, usuwając literę „S” z żądanego adresu URL, omijając w ten sposób SSL.

Takie przechwycenie i modyfikację żądania można zauważyć. Na przykład, jeśli poprosisz o https://login.yahoo.com/ i otrzymasz odpowiedź http://login.yahoo.com/ , powinno to wzbudzić podejrzenia. W chwili pisania tego tekstu atak ten faktycznie działa na usługę e-mail Wieśniak.

Rysunek 3. Przechwycenie i modyfikacja żądania


Aby zapobiec takiemu atakowi, serwery mogą wdrożyć HTTP Strict Transport Security (HSTS), mechanizm umożliwiający wymuszone bezpieczne połączenie za pośrednictwem protokołu HTTPS. W takim przypadku, jeśli atakujący zmodyfikuje żądanie, usuwając literę „S” z adresu URL, serwer nadal przekieruje użytkownika za pomocą przekierowania 302 na stronę z bezpiecznym protokołem.

Rysunek 4. Schemat działania HSTS


Ten sposób implementacji protokołu SSL jest podatny na inny rodzaj ataku - osoba atakująca tworzy połączenie SSL z serwerem, ale przy użyciu różnych trików zmusza użytkownika do korzystania z protokołu HTTP.

Rysunek 5. Schemat ataku HSTS


Aby zapobiec takim atakom nowoczesne przeglądarki takie jak Chrome, Firefox i Tor monitorują witryny za pomocą HSTS i wymuszają połączenie z nimi po stronie klienta za pośrednictwem protokołu SSL. W takim przypadku osoba atakująca przeprowadzająca atak typu man-in-the-middle musiałaby utworzyć połączenie SSL z ofiarą.

Rysunek 6. Schemat ataku, w którym atakujący nawiązuje połączenie SSL z ofiarą


Aby zapewnić użytkownikowi połączenie SLL, osoba atakująca musi wiedzieć, jak działać jako serwer. Rozumiemy techniczne aspekty protokołu SSL.

Zrozumienie protokołu SSL

Z punktu widzenia hakera naruszenie dowolnego protokołu komunikacyjnego sprowadza się do znalezienia słabego ogniwa pomiędzy wymienionymi powyżej komponentami (prywatność, autentyczność i integralność).

SSL wykorzystuje algorytm szyfrowania asymetrycznego. Problem z szyfrowaniem symetrycznym polega na tym, że do szyfrowania i deszyfrowania danych używany jest ten sam klucz. To podejście nie sprawdza się w przypadku protokołów internetowych, ponieważ osoba atakująca może wyśledzić ten klucz.

Szyfrowanie asymetryczne obejmuje 2 klucze po każdej stronie: klucz publiczny, używany do szyfrowania, oraz klucz prywatny używany do odszyfrowywania danych.

Rysunek 7. Klucze publiczne i prywatne działają

W jaki sposób protokół SSL zapewnia trzy właściwości potrzebne do bezpiecznej komunikacji?

  1. Ponieważ do szyfrowania danych używana jest kryptografia asymetryczna, protokół SSL zapewnia połączenie prywatne. To szyfrowanie nie jest łatwe do złamania i pozostawienia niewykrytego.
  2. Serwer potwierdza swoją legalność wysyłając do klienta certyfikat SSL wystawiony przez urząd certyfikacji – zaufaną stronę trzecią.

Jeśli atakującemu uda się w jakiś sposób zdobyć certyfikat, może otworzyć drzwi do ataku typu man-in-the-middle. W ten sposób utworzy 2 połączenia - z serwerem i ofiarą. Serwer w tym przypadku myśli, że atakujący jest zwykłym klientem, a ofiara nie ma możliwości zidentyfikowania atakującego, ponieważ dostarczyła certyfikat potwierdzający, że jest serwerem.

Twoje wiadomości przychodzą i docierają w formie zaszyfrowanej, ale podążają łańcuchem przez komputer cyberprzestępcy, gdzie ma on pełną kontrolę.

Rysunek 8. Schemat ataku, jeśli atakujący posiada certyfikat


Certyfikat nie musi być sfałszowany, jeśli osoba atakująca może złamać przeglądarkę ofiary. W takim przypadku może wstawić certyfikat z podpisem własnym, który domyślnie będzie zaufany. W ten sposób przeprowadzana jest większość ataków typu man-in-the-middle. W bardziej skomplikowanych przypadkach haker musi obrać inną drogę - sfałszować certyfikat.

Problemy z urzędem certyfikacji

Certyfikat przesłany przez serwer został wystawiony i podpisany przez urząd certyfikacji. Każda przeglądarka ma listę zaufanych urzędów certyfikacji, którą możesz dodać lub usunąć. Problem polega na tym, że jeśli zdecydujesz się usunąć duże uprawnienia, nie będziesz mógł odwiedzać witryn korzystających z certyfikatów podpisanych przez te urzędy.

Certyfikaty i urzędy certyfikacji zawsze były najsłabszym ogniwem połączenia HTTPS. Nawet jeśli wszystko zostało wdrożone poprawnie i każdy urząd certyfikacji ma solidny autorytet, nadal trudno pogodzić się z faktem, że trzeba ufać wielu podmiotom trzecim.

Obecnie istnieje ponad 650 organizacji zdolnych do wydawania certyfikatów. Jeśli atakujący zhakuje którykolwiek z nich, otrzyma dowolne certyfikaty.

Nawet gdy istniał tylko jeden urząd certyfikacji, VeriSign, pojawiał się problem – osoby, które miały zapobiegać atakom typu man-in-the-middle, sprzedawały usługi przechwytywania.

Ponadto wiele certyfikatów powstało w wyniku włamań do urzędów certyfikacji. Stosowano różne techniki i sztuczki, aby oszukać docelowego użytkownika i zaufać fałszywym certyfikatom.

Kryminalistyka

Ponieważ osoba atakująca wysyła sfałszowane pakiety ARP, adres IP atakującego nie jest widoczny. Zamiast tego należy zwrócić uwagę na adres MAC, który jest specyficzny dla każdego urządzenia w sieci. Jeśli znasz adres MAC routera, możesz porównać go z adresem MAC bramy domyślnej, aby dowiedzieć się, czy to naprawdę Twój router, czy atakujący.

Na przykład w systemie operacyjnym Windows możesz użyć polecenia ipconfig w wiersz poleceń(CMD), aby zobaczyć adres IP bramy domyślnej (ostatnia linia):

Rysunek 9. Użycie polecenia ipconfig


Następnie użyj polecenia arp –a, aby znaleźć adres MAC tej bramy:

Rysunek 10. Użycie polecenia arp –a


Ale jest inny sposób na zauważenie ataku - jeśli monitorujesz aktywność sieci w momencie jego rozpoczęcia i obserwujesz pakiety ARP. Możesz na przykład użyć do tego celu Wireshark, program ten powiadomi Cię, jeśli adres MAC bramy domyślnej ulegnie zmianie.

Uwaga: jeśli atakujący prawidłowo fałszuje adresy MAC, wyśledzenie go stanie się dużym problemem.

Wniosek

SSL to protokół, który zmusza atakującego do wykonania dużej pracy, aby przeprowadzić atak. Ale nie ochroni cię przed atakami sponsorowanymi przez państwo ani przed wykwalifikowanymi organizacjami hakerskimi.

Zadaniem użytkownika jest ochrona przeglądarki i komputera, aby zapobiec wstawieniu fałszywego certyfikatu (bardzo powszechna technika). Warto również zwrócić uwagę na listę zaufane certyfikaty i usuń tych, którym nie ufasz.

Atak typu man-in-the-middle to ogólna nazwa różnych technik mających na celu uzyskanie dostępu do ruchu w charakterze pośrednika. Ze względu na dużą różnorodność tych technik, problematyczne jest wdrożenie jednego narzędzia do wykrywania tych ataków, które sprawdziłoby się we wszystkich możliwych sytuacjach. Na przykład w ataku typu man-in-the-middle na sieć lokalną zwykle stosuje się fałszowanie (zatruwanie) protokołu ARP. Wiele narzędzi do wykrywania ataków typu „man-in-the-middle” monitoruje zmiany w parach adresów Ethernet/lub zgłasza podejrzaną aktywność ARP poprzez bierne monitorowanie żądań/odpowiedzi ARP. Jeśli jednak ten atak zostanie zastosowany na złośliwie skonfigurowanym serwerze proxy, VPN lub innych opcjach, które nie korzystają z zatruwania ARP, wówczas takie narzędzia są bezradne.

Celem tej sekcji jest przegląd niektórych technik wykrywania ataków typu man-in-the-middle, a także niektórych narzędzi zaprojektowanych w celu ustalenia, czy jesteś celem ataku MitM. Ze względu na różnorodność metodologii i scenariuszy wdrożeń nie można zagwarantować 100% wykrywalności.

1. Wykrywanie modyfikacji ruchu

Jak już wspomniano, ataki typu man-in-the-middle nie zawsze wykorzystują fałszowanie protokołu ARP. Dlatego chociaż wykrywanie aktywności na poziomie ARP jest najpopularniejszą metodą wykrywania, to jednak więcej w sposób uniwersalny jest wykrywanie modyfikacji ruchu. Program mitmcanary może nam w tym pomóc.

Zasada działania programu polega na tym, że wysyła żądania „kontrolne” i zapisuje otrzymane odpowiedzi. Następnie powtarza te same żądania w określonych odstępach czasu i porównuje otrzymane odpowiedzi. Program jest dość inteligentny i aby uniknąć fałszywych alarmów, identyfikuje elementy dynamiczne w odpowiedziach i poprawnie je przetwarza. Gdy tylko program wykryje ślady aktywności narzędzi do ataków MitM, zgłasza to.

Przykłady tego, jak niektóre narzędzia mogą „dziedziczyć”:

  • MITMf domyślnie zmienia wszystkie adresy URL HTTPS w kodzie HTML na HTTP. Wykrywany przez porównanie zawartości HTTP.
  • Zarp + MITMProxy, MITMProxy posiada funkcjonalność umożliwiającą wyczyszczenie kompresji HTTP, służy to do przejrzystości przesyłanego ruchu, kombinacja ta jest wykrywana poprzez zanik wcześniej występującej kompresji
  • Respondent, identyfikowany przez nagłe zmiany w transformacji odpowiedzi mDNS: nieoczekiwana odpowiedź; odpowiedź jest wewnętrzna, ale oczekuje się, że będzie zewnętrzna; odpowiedź różni się od oczekiwanego adresu IP
  • MITMCanary vs MITMf:

  • MITMCanary kontra Respondent:

  • MITMCanary vs Zarp + MITMProxy:

Sudo pip install Cython sudo apt-get install python-kivy python-dbus sudo pip install plyer uuid urlopen żądanie analizy simplejson datetime git clone https://github.com/CylanceSPEAR/mitmcanary.git cd mitmcanary/

Jak już wspomniano, mitmcanary musi zacząć pracować z żądaniami kontrolnymi. Aby to zrobić, przejdź do katalogu

Serwis CD/

I uruchom plik setup_test_persistence.py:

Python2 setup_test_persistence.py

To zajmie trochę czasu - poczekaj, aż się zakończy. Nie powinno być żadnych komunikatów o błędach (jeśli tak, to brakuje niektórych zależności).

Dane wyjściowe będą mniej więcej takie:

Mial@HackWare:~/bin/mitmcanary/service$ python2 setup_test_persistence.py Wykryto starszą wersję konfiguracji (0 zamiast 14) Trwa aktualizacja konfiguracji. Uruchomiono dziennik czyszczenia. Analizuję... Czyszczenie zakończone!

Nagraj logowanie /home/mial/.kivy/logs/kivy_16-11-01_0.txt v1.9.1 v2.7.12+ (domyślnie, 1 września 2016, 20:27:38)

Po zakończeniu tego procesu w tym samym katalogu wykonaj (rozpocznie się proces w tle):

Python2 main.py

Następnie otwórz nowe okno terminala i przejdź do katalogu końcowego za pomocą mitmcanary. Mój katalog to bin/mitmcanary/, więc wchodzę

Pojemnik na płyty CD/mitmcanary/

Po zakończeniu tego procesu w tym samym katalogu wykonaj (rozpocznie się proces w tle):

i zrób tam:

Pierwsze okno wyświetla coś takiego: Mial@HackWare:~/bin/mitmcanary/service$ python2 main.py Nagraj logowanie /home/mial/.kivy/logs/kivy_16-11-01_1.txt v1.9.1 v2.7.12+ (domyślnie, 1 września 2016, 20:27:38) za pomocą

dla gniazda nasłuchującego dla Tuio na 127.0.0.1:3000 Spanie przez 60 sekund Spanie przez 60 sekund Spanie przez 60 sekund Spanie przez 60 sekund Spanie przez 60 sekund Spanie przez 60 sekund

Te. Program raz na minutę wysyła żądania kontroli i szuka oznak ataku typu man-in-the-middle.

Drugie okno również zawiera dane wyjściowe + otwiera się ciemne okno, autorzy programu nazywają to okno „interfejsem graficznym”:

Możesz chwilę poczekać i surfować po Internecie, aby upewnić się, że program nie generuje fałszywych ostrzeżeń. Spróbujmy klasyczny program

etercap. Przeprowadzam regularny atak MitM z fałszowaniem ARP. mitmcanary nie reaguje na samo trawienie. Narzędzie mitmcanary samo generuje ruch, co oznacza, że ​​nie jest wymagana żadna akcja użytkownika. Po pewnym czasie pojawia się jedno ostrzeżenie, które nie jest potwierdzane podczas kolejnych kontroli. Jednak podobne ostrzeżenie pojawia się po kilku minutach. Bez dalszej analizy trudno mi stwierdzić, czy jest to przykład- bardzo podobny do tego. Jest całkiem możliwe, że to ostrzeżenie jest spowodowane awarią komunikacji wynikającą z konieczności przejścia ruchu przez dodatkowe trasy lub ze względu na specyfikę mojego połączenia internetowego o niskiej jakości.

Ponieważ wynik nie jest oczywisty (bardziej prawdopodobne jest „nie” niż „tak”), wypróbujmy program Bettercap, który ma wiele modułów. Nie mam co do tego wątpliwości, używając różnych Ettercap i/lub wtyczek dodatkowe programy aby rozszerzyć funkcjonalność, „zaświecilibyśmy” również dla mitmcanary.

Dla czystości eksperymentu restartuję sprzęt, uruchamiam mitmcanary na atakowanej maszynie i Bettercap na atakującej. W takim przypadku nie ma potrzeby ponownego wysyłania żądań kontrolnych na zaatakowaną maszynę - są one zapisywane w pliku wewnątrz katalogu z programem. Te. Wystarczy uruchomić usługę i interfejs graficzny.

A na maszynie atakującej uruchomimy Bettercap z włączonymi parserami:

Sudo Bettercap -X

Pojawiają się pojedyncze ostrzeżenia, które również wyglądają bardziej na fałszywe alarmy.

Ale uruchomienie tego polecenia:

Sudo Bettercap -X --proxy

Na zaatakowaną maszynę dzwoni duża liczba ostrzeżenia o możliwym ataku typu man-in-the-middle:

Zatem im potężniejsze jest narzędzie ataku typu „man-in-the-middle”, tym więcej śladów pozostawia w ruchu. W celu praktycznego zastosowania mitmcanary muszą zostać spełnione następujące warunki:

  • wysyłaj wstępne żądania w zaufanej sieci, gdy masz pewność, że nie ma pośrednika w transmisji ruchu;
  • edytować zasoby, do których kierowane są prośby o weryfikację, ponieważ profesjonalny atakujący może dodać domyślne zasoby do wyjątków, co sprawi, że będzie niewidoczny dla tego narzędzia.

2. Wykrywanie fałszowania ARP (zatruwanie pamięci podręcznej ARP)

Bardzo często atak typu man-in-the-middle na sieć lokalną rozpoczyna się od zatrucia protokołu ARP. Dlatego wiele narzędzi przeznaczonych do wykrywania ataków MitM opiera się na mechanizmie monitorowania zmian w pamięci podręcznej ARP, który przypisuje zgodność pomiędzy Ethernetem (adresy MAC) a adresami IP.

Jako przykład takich programów możemy wymienić arpwatch, arpalert i dużą liczbę nowych programów. Program ArpON nie tylko monitoruje zmiany w pamięci podręcznej ARP, ale także chroni ją przed nimi.

Jako przykład uruchommy arpwatch w trybie debugowania, bez tworzenia forków w tle i wysyłania wiadomości pocztą. Zamiast tego komunikaty są wysyłane na stderr (standardowe wyjście błędów).

Sudo /usr/sbin/arpwatch -d

Uruchommy Ettercap na maszynie atakującej i rozpocznijmy fałszowanie ARP. Na zaatakowanej maszynie obserwujemy:

Program arpwatch pomoże Ci szybko dowiedzieć się o nowych urządzeniach podłączonych do Twojego sieć lokalna, a także zmiany w pamięci podręcznej ARP.

Kolejnym narzędziem do wykrywania fałszowania ARP w czasie rzeczywistym jest wtyczka samego Ettercapa o nazwie arp_cop. Na zaatakowanej maszynie uruchom Ettercap w następujący sposób:

Sudo ettercap -TQP arp_cop ///

A na atakującym rozpoczniemy zatruwanie ARP. Na zaatakowanej maszynie natychmiast zaczynają pojawiać się ostrzeżenia:

3. Wykrywanie fałszowania DNS

Podszywanie się pod DNS wskazuje, że pomiędzy Tobą a miejscem docelowym istnieje pośrednik, który może modyfikować Twój ruch. Jak wykryć, że rekordy DNS zostały sfałszowane? Najłatwiej to zrobić, porównując odpowiedzi z odpowiedziami z zaufanego serwera nazw. Ale wpisy w odpowiedzi wysłanej na Twoją prośbę również można zastąpić...

Te. musisz sprawdzić albo przez zaszyfrowany kanał (na przykład przez Tor), albo użyć niestandardowych ustawień (inny port, TCP zamiast UDP). Mniej więcej do tego przeznaczony jest program sans z XiaoxiaoPu (przynajmniej tak to rozumiem). Udało mi się użyć tego programu do przekierowania żądań DNS przez Tora i poprzez niestandardowe ustawienia do mojego Serwer DNS. Ale nie mogłem jej zmusić, żeby pokazywała mi wiadomości o fałszowaniu odpowiedzi DNS. Bez tego sens programu zostanie utracony.

Więcej godne alternatywy Nie mogłem tego znaleźć.

W zasadzie, biorąc pod uwagę, że spoofery DNS monitorują zwykle tylko port 53, a jedynie protokół UDP, nawet ręcznie wystarczy po prostu sprawdzić fakt fałszowania DNS, choć wymaga to własnego serwera DNS o niestandardowej konfiguracji. Na przykład na maszynie atakującej utworzyłem plik dns.conf o następującej treści:

Lokalny mi-al.ru

Te. podczas żądania rekordu DNS dla witryny mi-al.ru zamiast prawdziwego adresu IP zostanie wysłany adres IP maszyny atakującego.

Uruchamiam maszynę atakującą:

Sudo Bettercap --dns dns.conf

A na zaatakowanym wykonuję dwa testy:

Wykop mi-al.ru # i wykop mi-al.ru -p 4560 @185.117.153.79

Wyniki:

Mial@HackWare:~$ dig mi-al.ru ;<<>> DiG 9.10.3-P4-Debian<<>> mi-al.ru ;; opcje globalne: +cmd ;; Mam odpowiedź: ;; ->> NAGŁÓWEK<<- opcode: QUERY, status: NOERROR, id: 51993 ;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 ;; WARNING: recursion requested but not available ;; QUESTION SECTION: ;mi-al.ru. IN A ;; ANSWER SECTION: mi-al.ru. 86400 IN A 192.168.1.48 ;; Query time: 2 msec ;; SERVER: 8.8.8.8#53(8.8.8.8) ;; WHEN: Wed Nov 02 09:25:20 MSK 2016 ;; MSG SIZE rcvd: 42 mial@HackWare:~$ dig mi-al.ru -p 4560 @185.117.153.79 ; <<>> DiG 9.10.3-P4-Debian<<>> mi-al.ru -p 4560 @185.117.153.79 ;; opcje globalne: +cmd ;; Mam odpowiedź: ;; ->> NAGŁÓWEK<<- opcode: QUERY, status: NOERROR, id: 401 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 512 ;; QUESTION SECTION: ;mi-al.ru. IN A ;; ANSWER SECTION: mi-al.ru. 3799 IN A 185.26.122.50 ;; Query time: 304 msec ;; SERVER: 185.117.153.79#4560(185.117.153.79) ;; WHEN: Wed Nov 02 09:25:27 MSK 2016 ;; MSG SIZE rcvd: 53

Można zauważyć, że w przypadku „zwykłego” żądania DNS wysyłane było lokalne IP 192.168.1.48, a w przypadku żądania DNS na nietypowym porcie wysyłane było prawidłowe IP serwera.

Jeśli serwer został skonfigurowany do używania protokołu TCP (a nie UDP), polecenie wyglądałoby następująco:

Kop mi-al.ru -p 4560 +tcp @185.117.153.79

Wyraźnie brakuje narzędzia, które samo monitorowałoby odpowiedzi DNS w ruchu, sprawdzało je ponownie z alternatywnym źródłem i podnosiło alarm w przypadku podszywania się.

Aby uniknąć konfigurowania własnego zdalnego DNS, możesz wysyłać zapytania do serwera nazw za pośrednictwem Tora. Ponieważ cały ruch Tora jest szyfrowany, uzyskane w ten sposób odpowiedzi DNS przekraczają możliwości pośrednika. Jeśli Tor nie jest jeszcze zainstalowany, zainstaluj go.

Sudo apt-get install tor

Sudo pacman -S tor

Uruchom usługę:

Sudo systemctl start tor

Jeśli tego potrzebujesz, dodaj tę usługę do uruchamiania:

Sudo systemctl włącz Tor

Otwórz plik /etc/tor/torrc i dodaj tam następujące linie:

DNSPort 530 AutomapHostsOnResolve 1 AutomapHostsSuffixes .exit,.onion

Zwróć uwagę na liczbę 530. Jest to numer portu, zamiast 530 możesz podać dowolny inny (nieużywany) port. Najważniejsze to o tym pamiętać.

Sprawdzamy ponownie:

Wykop mi-al.ru # i wykop mi-al.ru -p 530 @localhost

Teraz określamy jako serwer lokalny host i wpisz numer portu określony w ustawieniach /etc/tor/torrc.

Jak widać na poniższym zrzucie ekranu, na komputerze, na którym przeprowadzono sprawdzenie, przeprowadzany jest atak polegający na fałszowaniu DNS:

4. Wyszukaj interfejsy sieciowe w trybie mieszanym

Jeśli w Twojej sieci lokalnej znajduje się (a zwłaszcza jeśli nagle się pojawił) sprzęt pracujący w trybie rozwiązłym, jest to bardzo podejrzane, chociaż nie wskazuje wyraźnie na atak typu man-in-the-middle.

W tym trybie karta sieciowa pozwala na odbiór wszystkich pakietów niezależnie od tego do kogo są adresowane.

W normalnym stanie interfejs Ethernet wykorzystuje filtrowanie pakietów w warstwie łącza i jeśli adres MAC w nagłówku docelowym odebranego pakietu nie jest zgodny z adresem MAC bieżącego interfejsu sieciowego i nie jest rozgłaszany, pakiet jest odrzucany. W trybie „rozwiązłym” filtrowanie interfejsu sieciowego jest wyłączone i wszystkie pakiety, łącznie z tymi, które nie są przeznaczone dla bieżącego węzła, są przepuszczane do systemu.

Większość systemów operacyjnych wymaga uprawnień administratora, aby włączyć tryb rozwiązły. Te. Ustawienie karty sieciowej w tryb rozwiązły jest celowym działaniem, które może służyć celom wąchania.

Aby wyszukiwać interfejsy sieciowe w trybie mieszanym, dostępna jest wtyczka o nazwie Ettercap search_promisc.

Przykład uruchomienia wtyczki:

Sudo ettercap -TQP search_promisc ///

Działanie wtyczki nie jest całkowicie niezawodne, mogą wystąpić błędy przy ustalaniu trybu interfejsu sieciowego.

Wniosek

Niektóre metody ataku typu „man-in-the-middle” pozostawiają wiele śladów, a niektóre (takie jak pasywne wyszukiwanie danych uwierzytelniających serwera proxy) są niemożliwe lub prawie niemożliwe do wykrycia.

Oznacza sytuację, w której atakujący może dowolnie czytać i modyfikować wiadomości wymieniane pomiędzy korespondentami, a żaden z nich nie jest w stanie odgadnąć jego obecności na kanale.


Fundacja Wikimedia.

2010.

    Zobacz, co „Człowiek w środku (atak)” znajduje się w innych słownikach:

    Atak Man in the Middle, atak MITM (angielski Man in the Middle) to termin w kryptografii oznaczający sytuację, w której kryptoanalityk (atakujący) jest w stanie dowolnie czytać i modyfikować wymieniane wiadomości... ... Wikipedia

    - ... Wikipedii

    Kryptoanaliza (od greckiego κρυπτός ukryta i analiza) to nauka o metodach uzyskiwania pierwotnego znaczenia zaszyfrowanej informacji bez konieczności posiadania dostępu do niezbędnych do tego tajnych informacji (klucza). W większości przypadków oznacza to... ... Wikipedię

    Atak hakerski w wąskim znaczeniu tego słowa jest obecnie rozumiany jako „atak na system bezpieczeństwa” i bardziej skłania się do znaczenia kolejnego terminu Atak Cracker. Stało się to na skutek wypaczenia znaczenia samego słowa „haker”… Wikipedia

- (z innego greckiego κρυπτός ukryte i analityczne) nauka o metodach deszyfrowania zaszyfrowanych informacji bez klucza przeznaczonego do takiego odszyfrowania. Termin został ukuty przez amerykańskiego kryptografa Williama F. Friedmana w 1920 roku. Nieformalnie... ... Wikipedia

Atak Man in the Middle (atak MitM) to termin w kryptografii, który odnosi się do sytuacji, w której atakujący może dowolnie czytać i modyfikować wiadomości wymieniane pomiędzy korespondentami, a żaden z nich nie jest w stanie odgadnąć jego obecności w kanale .

Metoda naruszenia bezpieczeństwa kanału komunikacyjnego, w której atakujący po połączeniu się z kanałem pomiędzy kontrahentami aktywnie ingeruje w protokół transmisji, usuwając, zniekształcając informacje lub narzucając fałszywe informacje.

Zasada ataku:

Aby wykonać atak, „C” wydaje się sprzeciwiać się „A” jako „B” i sprzeciwiać się „B” jako „A”. Obiekt „A”, błędnie wierząc, że wysyła informację do „B”, wysyła ją do obiektu „C”.

Obiekt „C”, po otrzymaniu informacji i wykonaniu z nią pewnych działań (na przykład skopiowania lub zmodyfikowania na własne potrzeby), wysyła dane do samego odbiorcy - „B”; obiekt „B” z kolei uważa, że ​​informację otrzymał bezpośrednio od „A”.

Przykład ataku MitM:

Załóżmy, że Alicja ma problemy finansowe i korzystając z komunikatora internetowego postanawia poprosić Johna o pewną sumę pieniędzy, wysyłając wiadomość:
Alicja: John, cześć!
Alicja: Proszę o przesłanie klucza szyfrującego, mam małą prośbę!
Jan: Cześć! Poczekaj chwilę!

Jednak w tym momencie pan X, który analizując ruch za pomocą sniffera, zauważył tę wiadomość, a słowa „klucz szyfrujący” wzbudziły ciekawość. Dlatego też postanowił przechwycić następujące wiadomości i zastąpić je potrzebnymi mu danymi, po czym otrzymał następującą wiadomość:
Jan: Oto mój klucz: 1111_D

Zmienił klucz Johna na swój i wysłał wiadomość do Alicji:
Jan: Oto mój klucz: 6666_M

Alicja, nieświadoma i myśląca, że ​​to klucz Johna, używa klucza prywatnego 6666_M, wysyła zaszyfrowane wiadomości do Johna:
Alicja: John, mam problemy i pilnie potrzebuję pieniędzy, proszę o przelanie 300 $ na moje konto: Z12345. Dziękuję. p.s. Mój klucz: 2222_A

Po otrzymaniu wiadomości Pan X odszyfrowuje ją swoim kluczem, czyta i z radością zmienia numer konta Alicji oraz klucz szyfrowania na swój własny, szyfruje wiadomość kluczem 1111_D i wysyła Johnowi wiadomość:
Alicja: John, mam problemy i pilnie potrzebuję pieniędzy, proszę o przelanie 300 $ na moje konto: Z67890. Dziękuję. p.s. Mój klucz: 6666_A

Po otrzymaniu wiadomości Jan odszyfrowuje ją za pomocą klucza 1111_D i bez wahania przeleje pieniądze na konto Z67890...

I w ten sposób pan X, stosując atak man-in-the-middle, zarobił 300 dolarów, ale Alicja będzie teraz musiała wyjaśniać, że nie otrzymała pieniędzy... A John? John musi udowodnić Alicji, że to on ich wysłał...

Realizacja:

Ten typ ataku jest stosowany w niektórych programach do podsłuchiwania sieci, na przykład:
NetStumblera- program, za pomocą którego można zebrać wiele przydatnych danych o sieci bezprzewodowej i rozwiązać niektóre problemy związane z jej działaniem. NetStumbler pozwala określić zasięg Twojej sieci i pomaga dokładnie ustawić antenę w celu komunikacji na duże odległości. Dla każdego znalezionego punktu dostępowego możesz sprawdzić adres MAC, stosunek sygnału do szumu, nazwę usługi i stopień jej bezpieczeństwa. Jeśli ruch nie jest szyfrowany, przydatna będzie zdolność programu do wykrywania nieautoryzowanych połączeń.

dsniff- to zestaw programów do audytu sieci i testów penetracyjnych, zapewniających pasywne monitorowanie sieci w celu wyszukiwania interesujących nas danych (hasła, adresy e-mail, pliki itp.), przechwytywania ruchu sieciowego, który normalnie byłby niedostępny do analizy (na przykład w sieć komutowana), a także możliwość organizowania ataków MITM w celu przechwycenia sesji SSH i HTTPS poprzez wykorzystanie wad PKI.

Kain i Abel to darmowy program pozwalający odzyskać utracone hasła do systemów operacyjnych z rodziny Windows. Obsługiwanych jest kilka trybów odzyskiwania: hakowanie metodą brute-force, wybór słownika, przeglądanie haseł ukrytych gwiazdkami itp. Istnieją również opcje identyfikacji hasła poprzez przechwytywanie pakietów informacji i ich późniejszą analizę, nagrywanie rozmów sieciowych, analizę pamięci podręcznej i inne.

Ettercap- to sniffer, przechwytywacz pakietów i rejestrator dla lokalnych sieci Ethernet, który obsługuje aktywną i pasywną analizę wielu protokołów, a także umożliwia „wrzucenie” własnych danych do istniejącego połączenia i filtrowanie „w locie” bez zakłócania połączenia synchronizacja. Program umożliwia przechwytywanie SSH1, HTTPS i innych bezpiecznych protokołów oraz zapewnia możliwość odszyfrowania haseł dla protokołów: TELNET, ftp, POP, RLOGIN, SSH1, icq, SMB, Mysql, HTTP, NNTP, X11, NAPSTER, IRC , RIP, BGP, SOCKS 5, IMAP 4, VNC, LDAP, NFS, SNMP, HALF LIFE, QUAKE 3, MSN, YMSG.

KARMA– zestaw narzędzi do oceny bezpieczeństwa klientów bezprzewodowych, to bezprzewodowy sniffer, który poprzez bierne odsłuchiwanie ramek Probe Request 802.11 pozwala wykryć klientów i ich preferowane/zaufane sieci. Następnie dla jednej z żądanych sieci można utworzyć fałszywy punkt dostępu, z którym może ona zostać automatycznie połączona. Fałszywe usługi wysokiego poziomu mogą zostać wykorzystane do kradzieży danych osobowych lub wykorzystania luk w zabezpieczeniach klienta na hoście.

AirJack- zestaw programów, który zdaniem ekspertów w dziedzinie hackowania WiFi jest najlepszym narzędziem do generowania różnych ramek 802.11. AirJack zawiera szereg narzędzi zaprojektowanych do wykrywania ukrytych identyfikatorów ESSID, wysyłania ramek kończących sesję z fałszywym adresem MAC, przeprowadzania ataków MitM i modyfikowania go.

Przeciwdziałanie:

Aby uniknąć ataków tego typu, abonenci „A” i „B” muszą jedynie przesyłać między sobą cyfrowe podpisy publicznych kluczy szyfrujących za pomocą niezawodnego kanału. Następnie, porównując podpisy kluczy w sesjach szyfrowania, będzie można ustalić, jakim kluczem zaszyfrowano dane i czy klucze zostały wymienione.

MTProto wykorzystuje autorską metodę, aby osiągnąć niezawodność w obecnie wrażliwej komunikacji mobilnej i szybkość dostarczania dużych plików (na przykład zdjęć, filmów i dokumentów o rozmiarze do 1 GB). Celem tego dokumentu jest wyjaśnienie szczegółów naszego systemu i omówienie elementów, które na pierwszy rzut oka mogą być trudne do zrozumienia.

Szczegółowa dokumentacja protokołu jest dostępna na tej stronie. Jeśli masz jakieś pytania, napisz do Świergot.

Notatka: Każda wiadomość zaszyfrowana poprzez MTProto zawsze zawiera następujące dane, które podczas deszyfrowania zostaną sprawdzone, aby zabezpieczyć system przed znanymi problemami:

  • identyfikator sesji - identyfikator sesji;
  • długość wiadomości - długość wiadomości;

Uwaga 2: Zobacz dodatkowe komentarze dotyczące użytkowania i zmodyfikowany schematy

Dlaczego nie użyjesz X [twoja opcja]

Chociaż niewątpliwie istnieją inne sposoby osiągnięcia tych samych celów kryptograficznych, wierzymy, że obecne rozwiązanie jest zarówno niezawodne, jak i spełnia nasz drugorzędny cel, jakim jest przewyższenie niepewnych komunikatorów pod względem szybkości i stabilności dostarczania.

Dlaczego polegacie na klasycznych kryptoalgorytmach?

Wolimy korzystać ze znanych algorytmów, stworzonych w czasach, gdy przepustowość i moc obliczeniowa były parą rzadką. To właśnie te algorytmy mają znaczący wpływ na dzisiejszy rozwój aplikacji na urządzenia mobilne, zmuszając ich autorów do pozbycia się znanych niedociągnięć. Słabości takich algorytmów są również dobrze znane i są wykorzystywane przez atakujących od dziesięcioleci. Używamy tych algorytmów w tej implementacji, ponieważ naszym zdaniem prowadzą one do niepowodzenia każdego znanego ataku. Chętnie jednak poznamy dowody przeciwne (jak dotąd nie miały miejsca takie przypadki) w celu ulepszenia naszego systemu.

Jestem ekspertem ds. bezpieczeństwa i uważam, że Twój protokół jest niebezpieczny.

Możesz wziąć udział w naszym konkursie: Pavel Durov oferuje 200 000 dolarów w Bitcoinie pierwszej osobie, która zhakuje MTProto. Możesz przeczytać ogłoszenie i FAQ dotyczące konkursu. Jeśli masz inne uwagi, chętnie je wysłuchamy [e-mail chroniony].

Ochrona przed znanymi atakami

Ataki ze znanym tekstem jawnym

Z definicji atak w postaci zwykłego tekstu to rodzaj ataku kryptoanalitycznego, w którym osoba atakująca ma zarówno wersję zaszyfrowaną, jak i wersję w postaci zwykłego tekstu. AES IGE zastosowany w MTProto jest odporny na takie ataki. Ponadto tekst jawny w MTProto zawsze zawiera sól serwera i identyfikator sesji.

Adaptacyjny atak w postaci zwykłego tekstu

Z definicji adaptacyjny atak tekstem jawnym jest rodzajem ataku w kryptoanalizie, w którym kryptoanalityk może wybrać tekst jawny i uzyskać odpowiedni tekst zaszyfrowany. MTProto wykorzystuje AES w trybie IGE, który jest zabezpieczony przed tego typu atakami. Wiadomo, że IGE jest podatny na ataki adaptacyjne blokowo, ale MTProto naprawia ten problem w sposób opisany poniżej. Każda wiadomość w postaci zwykłego tekstu przeznaczona do zaszyfrowania zawiera następujące dane, które są weryfikowane podczas deszyfrowania:

  • sól serwerowa (64-bitowa);
  • numer kolejny wiadomości;
  • czas wysłania wiadomości - czas.

Ponadto, aby zastąpić zwykły tekst, musisz także użyć prawidłowego klucza AES i wektora inicjującego, które zależą od auth_key . To sprawia, że ​​MTProto jest odporny na ataki adaptacyjnego tekstu jawnego.

Dopasowane ataki szyfrogramem

Zgodnie z definicją atak wybranym szyfrogramem to atak kryptograficzny, podczas którego kryptoanalityk zbiera informacje o szyfrze poprzez wybranie szyfrogramu i uzyskanie jego odszyfrowania nieznanym kluczem. W takim ataku osoba atakująca może wprowadzić do systemu jeden lub więcej znanych tekstów zaszyfrowanych i uzyskać teksty jawne. Korzystając z tych danych, osoba atakująca może spróbować odzyskać klucz użyty do odszyfrowania. W MTProto za każdym razem, gdy wiadomość jest odszyfrowana, sprawdzane jest, czy msg_key pasuje do SHA-1 odszyfrowanych danych. Tekst jawny (odszyfrowane dane) zawsze zawiera również informacje o długości wiadomości, jej numerze sekwencyjnym i soli serwera. Neguje to ataki oparte na wybranym tekście zaszyfrowanym.

Powtórz ataki

Ataki typu „replay” nie są możliwe, ponieważ każda wiadomość w postaci zwykłego tekstu zawiera sól serwera, unikalny identyfikator wiadomości i numer kolejny.

Atak typu Man in the Middle (MitM).

Telegram ma dwa tryby komunikacji: zwykłe czaty, które wykorzystują szyfrowanie klient-serwer, oraz tajne czaty, które wykorzystują szyfrowanie typu end-to-end i są chronione przed atakami typu man-in-the-middle. Przesyłanie danych między klientem a serwerem jest chronione przed takimi atakami podczas generowania klucza Diffiego-Hellmana dzięki algorytmowi klucza publicznego RSA wbudowanemu w klientów Telegramu. Następnie, jeśli klienci rozmówców zaufają oprogramowaniu serwera, tajne rozmowy między nimi są chronione przez serwer przed atakami typu man-in-the-middle. Zwłaszcza dla tych, którzy Nie ufa serwerowi, w aplikacji dostępne jest porównanie tajnych kodów. Klucze są wizualizowane jako obrazy. Porównując zwizualizowane klucze, użytkownicy mogą sprawdzić, czy nie miał miejsca atak typu man-in-the-middle.

Szyfrowanie

Czy używasz IGE? To zostało zhakowane!

Tak, używamy IGE, ale w naszej implementacji wszystko jest z nim w porządku. Fakt, że nie wykorzystujemy IGE z innymi elementami naszego systemu w taki sam sposób jak MAC sprawia, że ​​próby włamania się do IGE są bezcelowe. IGE, podobnie jak typowy tryb łączenia bloków tekstu szyfrowanego (CBC), jest podatny na ataki adaptacyjne blokowo. Jednak ataki adaptacyjne stanowią zagrożenie tylko wtedy, gdy ten sam klucz jest używany w wielu wiadomościach (tak nie jest).

Ataki adaptacyjne nie są nawet teoretycznie możliwe w MTProto, ponieważ aby odszyfrować wiadomości, należy najpierw wpisać je w całości, ponieważ klucz wiadomości zależy od jej zawartości. Jeśli chodzi o nieadaptacyjne ataki CPA, IGE jest przed nimi chroniony, podobnie jak CBC.

© 2024 ermake.ru - O naprawie komputerów PC - Portal informacyjny