Mam pytanie dotyczące BGP i sposobu osiągnięcia tej konfiguracji.
Mój główny router korporacyjny jest podłączony do usługodawcy internetowego (single homed). Ten router już wymienił określone publiczne prefiksy IP do dostawcy usług internetowych w aktualizacjach BGP. Powiedzmy teraz, że w odległości kilku przeskoków znajduje się AS, który zalewa mój lokalny AS atakiem DDoS. W tym AS znajduje się wiele sieci atakujących serwery sieciowe w moim lokalnym AS.
Jak możemy zatrzymać ten ruch na naszym routerze za pomocą BGP?
Doceń swoją odpowiedź !! :)
Odpowiedzi:
Istnieją dwie rzeczy, które możesz zrobić z BGP:
RTBH - zdalnie sterowana czarna dziura
Pierwsza opcja jest radykalna: Blackhole (zatrzymaj ruch) dla atakowanego adresu IP. Wada: docelowy adres IP nie jest już osiągalny. Korzyść: reszta Twojej sieci pozostaje bezczynna. Packetlife ma ładne wyjaśnienie, jak to działa i jak to zrobić. Druga opcja opiera się na pierwszej:
RTBH oparty na źródłach
RTBH może być również używany (w niektórych konfiguracjach) do blokowania ruchu przychodzącego z określonych adresów IP (w prawdziwym DDoS, który nie pomógłby tak bardzo, jak ruch przychodzący z tysięcy adresów IP). Ponownie, Packetlife ma wyjaśnienie.
W twoim przypadku możesz uzyskać wszystkie prefiksy dla AS z bazy danych routingu, takich jak RADB, i zablokować je za pomocą RTBH opartego na źródle. Jednak ruch graniczny nadal uderzyłby w twoją sieć na granicy.
Gdy używasz „prostej” RTBH, zaletą jest to, że możesz wysyłać te trasy RTBH do swojego Upstream ISP (jeśli go obsługują), który mógłby następnie zablokować ruch w swojej sieci, więc nie musisz go obsługiwać.
źródło
Metoda RTBH opisana przez @Sebastian za pośrednictwem Packetlife jest pomocna, ale ta metoda będzie działać tylko wtedy, gdy łącze wysyłające nie będzie nasycone ruchem atakowym . Jeśli łącze ładujące jest nasycone, blackhole musi zostać zaimplementowany w punkcie, zanim ruch atakujący dotrze do sieci.
Możesz to osiągnąć za pomocą społeczności Blackhole.
Hurricane Electric oferuje proste wyjaśnienie / przykład blackholingu wywołanego przez klienta ze społecznością BGP:
Przykład konfiguracji Cisco (gdzie XXXX to atakowany adres IP):
Zauważ, że
6939:666
jest to społeczność blackhole związana z Hurricane Electric. Zmodyfikowałbyś tę wartość, aby odpowiadała społeczności blackhole twojego dostawcy.Istnieje oczywiście wiele sposobów na skonfigurowanie tego. W moim sprzęcie Brocade używam następującej konfiguracji:
Gdzie
55555:666
jest społeczność Blackhole Twojego dostawcy usług. Następnie można zastosować czarną dziurę za pomocą prostego polecenia:źródło
Z perspektywy BGP niewiele można zrobić. Możesz przestać reklamować swój prefiks, ale właśnie kończysz atak DoS, ponieważ nikt nie będzie mógł uzyskać dostępu do Twojej usługi.
Jeśli masz wiele prefiksów, możesz zmienić numerację, ale prawdopodobnie atak przeniesie się również na nowy prefiks.
To, co musisz zrobić, to pracować z upstream. Czy mają usługę szorowania? Jeśli mają system taki jak Arbor Peakflow, mogą szorować ruch i wyczyścić go, zanim wejdzie on do sieci. Takie usługi są często bardzo drogie.
Istnieją również inne opcje, takie jak Cloudflare i podobne firmy, w których konfigurujesz BGP przez tunel GRE do tej firmy, a twój ruch jest obsługiwany przez ich „chmurę”, która może obsłużyć znacznie większy ruch niż twoje urządzenia lokalne.
źródło
Pracuję dla CloudFlare, chciałbym podzielić się częścią mojej wiedzy na temat ograniczania ataków DDOS w ciągu ostatnich kilku miesięcy, kiedy tu jestem.
Po pierwsze; wiele osób stosuje środki na poziomie sieci, aby złagodzić ataki DDOS warstwy aplikacji. Przed nurkowaniem na BGP Blackholing zastanów się, czy może to poradzić sobie z ograniczeniem szybkości lub ochroną warstwy aplikacji. To mówi; teraz bardzo tanio jest przeprowadzać ataki DDOS o bardzo dużej pojemności (biorąc pod uwagę, ile jest w pobliżu otwartych rekursorów DNS i jak mogą wzmocnić ataki).
Jak Elliot opisał w swojej odpowiedzi, użycie BGP Communities do blackhole traffic może działać dobrze, jeśli twoja sieć jest mała; mechanizm ten jest udokumentowany w RFC 3882 . Jednak, podobnie jak my, jeśli zamiast tego chcesz pochłonąć ruch atakowy zamiast blackhole (tj. Chcesz zebrać dane o atakach DDOS ), strzeż się szkód ubocznych, w wyniku których dostawcy sieci pośredniczących mogą być przeciążeni. Możesz zmniejszyć szkody dodatkowe, sprawdzając bezpośrednio z dostawcami usług internetowych, którzy przeprowadzają ataki. W ten sposób masz najkrótszą drogę od atakującego do miejsca docelowego. Dodatkowo możesz zaimplementować projekt sieci Anycast , co oznacza, że jeden adres IP trafia do wielu centrów danych (w zależności od tego, który jest najbliższy).
Oczywiście nie jest możliwe, aby każda firma posiadała infrastrukturę umożliwiającą wykonanie Anycast i peering; dlatego firmy coraz częściej zwracają się do usług w chmurze, aby usunąć zły ruch, zanim dotrze on do swoich centrów danych. Oczywiście CloudFlare jest jedną z takich usług.
źródło
Jeśli wszystkie zebrane przez ciebie dowody to zalew pakietów ze źródłowymi adresami IP z jednego konkretnego AS, prawdopodobnie doszedłeś do błędnego wniosku. Bardziej prawdopodobne jest, że te źródłowe adresy IP są sfałszowane.
Atak refleksyjny / wzmacniający polega na wysyłaniu wielu pakietów fałszujących źródłowy adres IP ofiary. Jeśli tak właśnie się dzieje, a masz w sieci serwery, które mogą wzmocnić atak, to sieć, którą zarzucasz atakowi, jest w rzeczywistości ofiarą i pomagasz atakującemu.
W takiej sytuacji rozwiązaniem nie jest stosowanie inżynierii ruchu, a raczej skonfigurowanie serwerów tak, aby nie można było ich użyć w ataku wzmacniającym. Jak to zrobić, nie jest tak naprawdę kwestią inżynierii sieci.
Oczywiście jest możliwe, że wszystkie pakiety pochodzą z jednego AS. Dzięki współpracy z obrażającego się AS można uzyskać potwierdzenie, że pakiety faktycznie pochodzą z ich AS. Jednak przy takim poziomie współpracy można również zablokować atak u źródła.
Jeśli założymy, że masz jakąś metodę, nie pomyślałem o otrzymaniu potwierdzenia, że pakiety naprawdę pochodzą z AS, jak myślisz, i że nie możesz zablokować go u źródła i zamiast tego chcę zablokować za pomocą BGP, to ja przeczytałem o nieco ryzykownej metodzie osiągnięcia tego celu. Chodzi o to, że przygotowujesz ścieżkę AS do ogłoszonej trasy. W tej przygotowanej ścieżce AS podajesz numer AS źródła tych pakietów.
Gdy ogłoszenie dotrze do routerów BGP w naruszającym się AS, wykrywają pętlę i upuszczają komunikat. Tymczasem reszta świata nie zobaczy pętli i nie zaakceptuje ogłoszenia.
To jest teoria. To, czy rzeczywiście zadziała w praktyce, zależy od kilku różnych czynników. Na przykład zależy to od faktycznego wykorzystania numeru AS, z którego pochodzą pakiety, który może być inny niż numer AS ogłaszający te adresy IP. (Taka różnica może być uzasadniona lub z powodu fałszowania).
Zależy to również od tego, czy twoja przesyłka nie filtruje trasy, jeśli stwierdzi podejrzenie ścieżki AS. Co więcej, sieci znajdujące się dalej od ciebie mogą również zrzucić twoją trasę, na przykład, jeśli miały również złe doświadczenia z obrażającym się AS i zdecydowały się zrzucić wszystkie trasy z tego miejsca.
Od ciebie zależy, czy takie podejście jest warte ryzyka.
(Gdybym mógł znaleźć to ponownie, powiązałbym to źródło).
źródło
Możesz blackhole ich AS z sieci lokalnej, dzięki czemu router BGP tworzy trasy zerowe dla każdego ogłoszonego przedrostka.
Zawodowiec:
Contra:
źródło