Powierzchnia ataku (ang. attack surface) to suma wszystkich miejsc, przez które ktoś z zewnątrz (albo od środka) może próbować dobrać się do Twojego systemu. Zaliczają się tu otwarte porty, działające usługi, API, formularze logowania, panele administracyjne, konta użytkowników, biblioteki w kodzie, a nawet pendrive wpięty do firmowego laptopa. Prosta zasada: każdy dodatkowy punkt wejścia to kolejna rzecz, którą atakujący może popsuć — więc im mniejsza powierzchnia ataku, tym mniej masz się czego bać.
Po co się tym przejmować
Bezpieczeństwa nie da się ogarnąć, jeśli nie wiesz, co w ogóle chronisz. Mapowanie powierzchni ataku to pierwszy krok każdego audytu: spisujesz wszystko, co jest wystawione na świat, i zastanawiasz się, czy naprawdę musi tam być. Najczęściej okazuje się, że nie. Stara usługa testowa na porcie 8080, baza danych słuchająca na publicznym IP, zapomniany endpoint API z czasów MVP — to wszystko powiększa powierzchnię, a nikt z tego nie korzysta.
Stąd bierze się pojęcie attack surface reduction (redukcja powierzchni ataku): wyłączasz to, czego nie używasz, zamykasz zbędne porty, ograniczasz uprawnienia kont i usuwasz nieaktualne zależności. Mniej elementów do pilnowania = mniej miejsc, gdzie możesz się pomylić.
Przykład z praktyki
Chcesz zobaczyć powierzchnię ataku własnego serwera od strony sieci? Najprostsze narzędzie to nmap. Skan w stylu:
nmap -sV -p- 203.0.113.10
przejedzie wszystkie 65535 portów (-p-) i spróbuje wykryć wersje usług (-sV). Jeśli na liście wyskoczy 3306/tcp open mysql, to znaczy, że Twoja baza gada z całym internetem — i właśnie znalazłeś kawałek powierzchni ataku, który powinien siedzieć za firewallem albo nasłuchiwać tylko na 127.0.0.1.
Częste błędy
- Mylenie powierzchni ataku z podatnościami. Otwarty port sam w sobie nie jest dziurą — to po prostu wejście. Ale każde wejście trzeba pilnować, a im więcej ich masz, tym łatwiej o przeoczenie.
- Liczenie tylko tego, co na zewnątrz. Istnieje też wewnętrzna powierzchnia ataku — konta, uprawnienia, sieć lokalna. Atak często zaczyna się od jednego phishingu, a potem rozłazi się po środku.
- Zasada „włączmy na wszelki wypadek”. To prosta droga do bałaganu. Domyślnie wyłączaj, włączaj świadomie.
Pojęcia powiązane: wektor ataku (attack vector), redukcja powierzchni ataku, zasada najmniejszych uprawnień (least privilege), hardening, threat modeling, podatność (vulnerability).