na czym to polega?
nie wszystkie prefiksy IPv4 i IPv6 do których będziesz wysyłał i od których będziesz odbierał ruch, są obsługiwane przez rozsądnych i przewidywalnych użytkowników. spod części adresacji IP odzywac się do Ciebie będą źli aktorzy, których celem jest kompromitacja Twojej sieci (ale być może zostałes wybrany losowo, nie pochlebiaj sobie) lub inne niedobre zamiary. po co miałbyś odbierać od nich ten ruch? albo go do nich wysyłać?
gdyby tylko stworzyć rejestr takich złych miejsc i następnie rozgłosić go przez BGP, które posiada dobre narzędzia do wyrażania polityki routingu, mielibyśmy błyskawicznie działający system rozgłaszania odpowiednika ACLek - i to po całym świecie.
projekt BGP Blackholing PL to zatem reinkarnacja pomysłu, który z sukcesem wdrożyłem w życie bez mała 17 lat temu. w dzisiejszych czasach coraz więcej jest zarówno złych aktorów jak i złych miejsc, a po co męczyć swoje różnego rodzaju rozwiązania typu NGFW skoro można odsiać część tych ataków jeszcze na routerze? oczywiście, jeśli możesz na nim odpalić BGP.
w ramach projektu utrzymuje zatem serwery tras BGP, które rozgłaszają prefiksy, co do których wiadomo, że nie powinny być ani źródłem, ani miejscem docelowym żadnego ruchu z Twojej sieci. dodatkowo rozszerzamy typowy zakres (prefiksy nieprzyznane jeszcze przez IANA) przez dodatkowe źródła (tzw. feedy - od angielskiego w swobodnym tłumaczeniu “karmniki”):
- nie przypisany dzisiaj przez IANA nikomu (tzw. bogons)
- zidentyfikowany przez zewnętrzne organizacje (Cisco Talos, Spamhaus, etc), jako używany do kontroli węzłów C&C, rozsiewania malware czy spamowania
- i inne, również szkodliwe (np. skanery spamu obserwowane przez BSDly)
jak to działa?
o blackolingu via BGP pisano i mówiono dużo, nie chcę się powtarzać, zajrzyj do:
- prezentacja na konferencji estońskiego CERTu - dużo o różnych sposobach wykorzystania BGP
- prezentacja projektu BGP Blackholing PL z 2006 - stara, ale pokazuje całą mechanikę działania reguł, polityk i sesji BGP z serwerami tras
- repozytorium materiałów bezpieczeństwa dla operatorów - znajdziesz tu dużo przykładów konfiguracji i innych dobrych praktyk
w skrócie, logika całego procesu wygląda tak:
- ktoś (ja) utrzymuje serwer tras rozgłaszający prefiksy do wszystkich chętnych
- prefiks oznaczony jest specjalną wartością/tagiem - BGP community; wartość ta pozwala mi zasygnalizować Twojemu routerowi, do której kategorii należy prefiks (może należeć do wielu jednocześnie)
- na swoim routerze prefiks odbierasz i na podstawie prostej polityki przekierowujesz ruch z i do tego prefiksu do wirtualnego kosza na śmieci
…i to już. ponieważ prefiksy, w szczególności te udostępniane przez źródła “threat intelligence” zmieniają się dosyć często, rozwiązanie działa lepiej niż ACLka.
jak mogę dopiąć się sesją BGP i dostać feed IPv4?
jeśli chcesz skorzystać z “feedu” prefiksów via sesja BGP, podłącz się do jednego z dwóch route serwerów
dla sesji i prefiksów IPv4
po stronie Twojego routera powinieneś ustawić następujące wartości w konfiguracji sesji BGP:
- Twój ASN -
65055
- mój ASN -
65055
- sesja eBGP multihop (z TTLem typu 255)
- brak hasła
- wersja 4
- moje IP -
77.79.194.196
lub195.136.71.54
(możesz skonfigurować dwie sesje dla redundancji) - Twoje IP - Twoje publiczne IPv4
- timery - 3600 dla hello i 7200 dla hold time (bardzo konserwatywne, wiem)
jeśli nie możesz użyć ASNa 65055 dla swojego routera, rzuć okiem w przykłady konfiguracji - można użyć dodatkowej konfiguracji, żeby ominąć to ograniczenie
dla sesji i prefiksów IPv6
po stronie Twojego routera powinieneś ustawić następujące wartości w konfiguracji sesji BGP:
- Twój ASN -
65055
- mój ASN -
65055
- sesja eBGP multihop (z TTLem typu 255)
- brak hasła
- wersja 4
- moje IP -
2001:1A68:0:1E::196
lub2a00:4120:8000:a::54
(możesz skonfigurować dwie sesje) - Twoje IP - Twoje publiczne IPv6
- timery - 3600 dla hello i 7200 dla hold time (bardzo konserwatywne, wiem)
co i z jakimi community serwują serwery tras?
lista prefiksów zidentyfikowana jako Spamhouse “DROP” - Don’t Route Or Process - spam; community
65055:25
(na luty 2022 - 945 prefiksów)lista prefiksów zidentyfikowana jako Spamhouse “eDROP” - Extended Don’t Route Or Process (trochę więcej źródeł spamu); community
65055:26
(na luty 2022 - 59 prefiksów)lista prefiksów zidentyfikowana jako spam przez sandbox BSDly - spam; community
65055:27
(na luty 2022 - 1483 prefiksy)nieprzydzielone prefiksy IPv4 i IPv6, które nie powinny inicjować i odbierać ruchu - dzięki Team Cymru - community
65055:666
(na luty 2022 - 1470 prefiksów IPv4 i 130050 prefiksów dla IPv6 - tak, ta lista jest bardzo duża! )lista prefiksów (IPv4 /32) z GreyNoise hostów atakujących sieci w Ukrainie (na marzec 2022 - ok. 250 prefiksów) - community
65055:667
lista prefiksów (IPv4 /32) z Abuse.ch - agresywnych hostów - community
65055:667
lista “demo” z Cisco Talos (IPv4 /32) - adresów IP stanowiących aktywne zagrożenie dla internetu (adresy węzłów C&C, strony przechowujące aktywnie używany malware, etc) - community
65055:999
(na luty 2022 - 1100 prefiksów)
innymi słowy, dla sesji IPv4 otrzymasz ok. 5000 prefiksów, ale dla sesji po IPv6 - otrzymasz aż 130 tysięcy prefiksów. zastanów się czy Twój sprzęt podoła!
no dobra, mam ten feed, co teraz?
odrzuć go :) polityką na routerze spowoduj, żeby ruch do i z tych prefiksów był odrzucany.
przykładowe konfiguracje Twojego routera:
- dla Cisco IOS XE - tylko feed IPv4, tylko IPv6 lub oba IPv4+IPv6
- dla Cisco IOS XR - tylko feed IPv4, tylko IPv6 lub oba IPv4+IPv6
- dla Juniper JunOS - tylko feed IPv4, tylko IPv6 lub oba IPv4+IPv6
FAQ
kiedy BGP FlowSpec?
eksperymentowałem kiedyś z rozgłaszaniem FlowSpeca i może do tego wrócę.
gdzie mogę znaleźć przykłady dla innych platform?
BGP Blackholing jest tak popularną techniką, że powinno się to udać za pomocą ulubionej przeglądarki. zajrzyj też tutaj. jeśli się nie udało - odezwij się bezpośrednio do mnie.
dlaczego nie masz feedu od X?
chętnie zapoznam się z feedem X, ale weź pod uwagę, że nie chcę z projektu zrobić śmietnik. CERTy i firmy posiadające dedykowane zespoły SOC mogą pozwolić sobie na drobiazgowe badanie list i ustalanie reputacji poszczególnych miejsc. ja mogę opierać się tylko na swoim czasie, a zatem opieram się na tych listach, które wiem, że serwują dobrej jakości dane (“odrzucając ruch, nie pomylisz się”).
nie oznacza to, że nie możemy dorzucić nowe źródła - tak jak napisałem, chętnie zapoznam się z tym co proponujesz.
dlaczego nie rozgłaszasz adresów serwujących reklamy?
bo to nie zajęcie do BGP. reklamy lepiej blokuje się (i na większą skalę) używając protokołu DNS. jest wiele rozwiązań, od darmowych (Pi-hole) po komercyjne.
co dalej?
miłego używania!