Pytanie:
W jaki sposób hakerzy wykorzystują otwarte porty jako wektor do ataku?
Franko
2012-01-17 04:04:08 UTC
view on stackexchange narkive permalink

Powszechnie wiadomo, a zatem powszechną praktyką jest zamykanie otwartych portów na dowolnym komputerze podłączonym do Internetu.

Jeśli na przykład typowy program używa portu xyz jako kanału komunikacyjnego, a tam jest luką w tym programie, która mogłaby zostać wykorzystana przez ten port, dlaczego ten sam atak nie powiedzie się przez, powiedzmy, port 80?

Biorąc pod uwagę, że nasz pseudo program używa portu 888 TCP i ma lukę, którą można wykorzystać, dlaczego nie można tej luki wykorzystać przez port 80 TCP (który jest HTTP i jest otwarty na prawie każdym komputerze)?

Czy port 80 na serwerze WWW nasłuchuje tylko do UNIKALNEGO typu pakietów TCP? Czy akceptuje tylko określony rodzaj pakietów?

Dlaczego haker nie może próbować stworzyć pakietu TCP ze złośliwym ciągiem znaków, zamknąć go w pakiecie HTTP i tym samym zaatakować serwer WWW?

Aby rozwiązać konkretny scenariusz, jeśli program działa w systemie nasłuchującym na porcie 888, nie ma gwarancji, że serwer sieciowy nasłuchuje na porcie 80. Nawet jeśli serwer sieciowy nasłuchuje na porcie 80, jest bardzo prawdopodobne brak komunikacji między serwerem WWW a programem. Więc w tym przypadku nawet jeśli wysłałeś złośliwy pakiet na port 80, serwer WWW nie wiedziałby, co z nim zrobić i odrzuciłby go.
Dwa odpowiedzi:
schroeder
2012-01-17 04:21:14 UTC
view on stackexchange narkive permalink

Usługi nasłuchują portów. Serwery WWW (usługa) nasłuchują na porcie 80, ale to tylko standard, a nie twarda reguła. Możesz skonfigurować dowolną usługę do nasłuchiwania na dowolnym porcie. Nie chodzi o „specjalne pakiety”, chodzi o „wybieranie odpowiedniego numeru portu” w celu uzyskania żądanej usługi.

Jeśli twój pseudo program ma lukę, może zostać zaatakowany na porcie to jest przypisany do . Nie możesz zaatakować programu na portach, których nie nasłuchuje. Jeśli spróbujesz zaatakować go na innym porcie (takim jak port 80 w twoim przykładzie), twój program nie zostanie osiągnięty.

Twoje ostatnie pytanie jest więc trochę dziwne: „Dlaczego haker nie może próbować stworzyć pakiet TCP ze złośliwym ciągiem znaków, zamknąć go w pakiecie HTTP i tym samym zaatakować serwer WWW? ” To właśnie robią hakerzy. Ale celują w port usługi, którą chcą wykorzystać. Ale może możesz uściślić to pytanie na podstawie informacji, które podałem.

Więc po co zamykać porty? Ponieważ chcesz zmniejszyć liczbę potencjalnie zagrożonych usług , które udostępniasz w Internecie.

Więc naprawdę powinieneś zacząć od tego, aby twoje programy (usługi) nie przyklejały nosa do żadnego portu w Internecie (chyba że musisz).
Hmm, więc jeśli ktoś przegląda i jest wysoce prawdopodobne, że jego port 80 jest otwarty, to czy logiczne jest najpierw atakowanie z tego portu?Jeśli tak, to dlaczego istnieją standardy dotyczące numerów portów?To tak, jakby istniało standardowe miejsce, które każdy zna do ukrywania kluczy do domu.
Przeglądarki @huzo nie mają otwartego portu 80, a przeglądarki nie nasłuchują.Ponadto porty nie są kluczami, są drzwiami.
Nie, chodzi mi o to, że kiedy przeglądam Internet, mój port 80 jest otwarty, prawda?Więc czy nie możemy powiedzieć, że zostawiam otwarte drzwi, kiedy chcę surfować po Internecie.Dlatego jesteś bezbronny?
@huzo nie, jest tak, jak powiedziałem.Przeglądarki nie mają otwartego portu 80.Serwery zazwyczaj udostępniają port 80, aby przeglądarki mogły się połączyć.
Tom Leek
2012-01-17 04:20:54 UTC
view on stackexchange narkive permalink

„Blokowanie portów” to tylko przybliżony sposób określenia tego, co naprawdę chcemy zrobić, czyli blokowania dostępu do niektórych usług.

Świeżo zainstalowany system operacyjny często wiele rzeczy działa automatycznie, z których niektóre to usługi, które mają część sieciową. Każda luka w zabezpieczeniach takiej usługi, którą można wykorzystać w sieci, stanowi potencjalne drzwi dostępu dla atakującego. Jednak rzadko jest istotne, aby wszystkie tego typu usługi były dostępne dla każdego w szerokim Internecie. Na przykład w przypadku maszyny, która ma być serwerem WWW, normalne jest, że każdy na Ziemi może próbować uzyskać dostęp do określonej usługi „sieciowej” (to jest jej funkcjonalność) i zwykle jest też otwarta usługa SSH ( aby administrator serwera mógł administrować serwerem); nie ma jednak sensu, aby usługi udostępniania plików dla tego serwera były również szeroko otwarte.

Zablokowanie dostępu do danego portu można wykonać na zaporze i jest uważane za bardziej efektywne czasowo niż próba przekonania aby system operacyjny nie uruchamiał danej usługi i powstrzymywał się od jej ponownego uruchamiania lub wymyślania nowych usług przy okazji aktualizacji oprogramowania. W związku z tym zwykle blokuje się wszystkie porty oprócz tych, o których wiadomo, że odpowiadają usługom, które powinny być dostępne na całym świecie (np. 80 i 22, odpowiednio dla sieci Web i SSH).

Oszczędność czasu to ważna kwestia, ale dogłębna ochrona oznacza, że ​​musisz ograniczyć usługi uruchomione na komputerze.


To pytanie i odpowiedź zostało automatycznie przetłumaczone z języka angielskiego.Oryginalna treść jest dostępna na stackexchange, za co dziękujemy za licencję cc by-sa 3.0, w ramach której jest rozpowszechniana.
Loading...