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:

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 lub 195.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 lub 2a00: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:

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!