(Polish only)
Gaming/DDoS mitigation/x86 performance and elasticity.
Talk given at Net::IP meetup in Wrocław, Poland (2017.05): https://www.meetup.com/Wroclaw-Net-IP-Meetup/events/238738376/
Ochrona przed atakami DDoS na platformie x86. Czy można mieć jednocześnie wydajność i elastyczność?
1. Ochrona przed atakami DDoS na
platformie x86
Czy można mieć jednocześnie
wydajność i elastyczność?
Net::IP Meetup
Wrocław 2017.05.11
Paweł Małachowski, Atende Software sp. z o.o.
2. whoami
• Obecnie:
– prowadzenie zespołu rozwijającego redGuardian
Anty DDoS (Atende Software)
• Doświadczenia:
– ISP i Telco
– „trzepaki”
– Linux/BSD
– Internet, zanim to było modne ;-)
Net::IP, Wrocław 2017.05.11 2
3. Gry online – magnes na DDoS-y
• prawie tak dobry jak IRC ;-)
• rywalizacja
• emocje!
• $pieniądze
Net::IP, Wrocław 2017.05.11 3
4. Jest ruch w interesie
„UK Man Gets Two Years in Jail for Running ‘Titanium Stresser’ Attack-for-Hire Service”
http://www.bbc.com/news/uk-england-beds-bucks-herts-39705068
https://krebsonsecurity.com/2017/04/uk-man-gets-two-years-in-jail-for-running-titanium-
stresser-attack-for-hire-service/
„A large, successful Minecraft server with more than a thousand players logging on each day can
easily earn the server’s owners upwards of $50,000 per month (...) Lelddos would launch a huge
DDoS attack against a Minecraft server, knowing that the targeted Minecraft server owner was
likely losing thousands of dollars for each day his gaming channel remained offline”.
https://krebsonsecurity.com/2017/01/who-is-anna-senpai-the-mirai-worm-author/
„The U.S. Justice Department has charged two 19-year-old men alleged to be core members of
the hacking groups Lizard Squad and PoodleCorp. The pair are charged with credit card theft and
operating so-called “booter”or “stresser” services that allowed paying customers to launch
powerful attacks designed to knock Web sites offline”
https://krebsonsecurity.com/2016/10/feds-charge-two-in-lizard-squad-investigation/
Net::IP, Wrocław 2017.05.11 4
6. Ofiary ataków DDoS (branża gier)
cel
• gracz końcowy
• serwer gry
• forum graczy
• itp.
rykoszet
• inni klienci dostawcy łącza
dla gracza końcowego
• inni klienci dostawcy
hostingu/kolokacji dla
serwisu gier
• inni uczestnicy Internetu
(łącza międzyoperatorskie,
właściciele urządzeń
wpiętych do botnetu itp.)
Net::IP, Wrocław 2017.05.11 6
7. Skąd przychodzi atak DDoS?
• Ataki zlecane poprzez IP stresery/bootery
– tani pakiet = mały wybór ataków
– nieduża skala (kilka Gbit/s)
– krótki czas trwania (minuty)
– duża liczba źródłowych adresów IP, pod spodem jest botnet lub generator na
łączu bez ACL antyspoofingowej
• Ataki wykonywane z serwerów dedykowanych
– jeden lub kilka źródłowych adresów IP
– ograniczone przepustowością portu np. 100Mbit/s lub 1Gbit/s od każdego
• Ataki na globalnych dostawców
– duża skala (setki Gbit/s)
– nośne medialnie
Net::IP, Wrocław 2017.05.11 7
8. Jaki ruch przychodzi jako atak DDoS?
• Klasyki:
– odbite i wzmocnione UDP: DNS, NTP, SSDP itp.
– TCP SYN floods, TCP ACK floods
– HTTP GET floods na forum gry/klanu graczy
• Losowe dane w pakietach UDP na porty gier
• Zapytania zgodne z protokołem gry kierowane na porty gier
• Śmieci
• Mieszanki powyższych (multi vector)
Net::IP, Wrocław 2017.05.11 8
9. Popularne metody obrony przed DDoS
• Podejścia skrajne
– Poszerzenie łącza i utwardzenie systemu docelowego
– Wyniesienie aplikacji do kogoś, kto problem już rozwiązał (duża
chmura)
• Usługa od dostawcy hostingu/kolokacji/łącza
– proxy
– scrubbing center
• Usługa od dostawcy zewnętrznego
– HTTP(S) proxy (kierowanie DNS)
– dzierżawa chronionego adresu IP (kierowanie DNS, tunel)
– scrubbing center (kierowanie BGP, tunel)
Net::IP, Wrocław 2017.05.11 9
10. Metody obrony dla gracza
• Serwer przesiadkowy z ochroną przed DDoS
– dostęp przez tunel/VPN
– routing i NAT
• Korzyści:
– ukrycie swojego domowego adresu IP
• przypadek Skype
– atak wycina dostawca serwera przesiadkowego
• Problemy:
– wzrost opóźnień
– dobrze opracowany atak może dotrzeć przez tunel
Net::IP, Wrocław 2017.05.11 10
11. Metody obrony małych serwerów gier
• Utwardzenie własnych systemów
– może wystarczyć tylko jeśli masz łącze np. >= 2 Gbit i dostajesz dużo małych ataków
– use the kernel, Luke!
• Hosting/kolokacja z ochroną przed DDoS
– ograniczenia umowne (wielkość ataku/ruchu)
– ryzyko false positives odcinających grę
• Dzierżawa chronionego adresu IP
– prawdziwy serwer w tajnej lokalizacji
– gracze łączą się na adres wydzierżawiony
– ruch między dostawcą adresu a tajnym serwerem wymieniany tunelem/VPN-em
– skomplikowane w konfiguracji (tunele, policy based routing/namespaces)
Net::IP, Wrocław 2017.05.11 11
12. Metody w skali operatorskiej
• Wypowiedzenie umowy częstej ofierze ataków
• Blackholing docelowego adresu IP
• Blackholing źródłowych adresów IP
• ACL na routerach
– zarządzane ręcznie (drop, ratelimit)
– dystrybuowane przez BGP Flowspec (drop, ratelimit,
przekierowanie do inspekcji)
• Scrubbing lub Enforcement
Net::IP, Wrocław 2017.05.11 12
złożonośćikoszty
13. Wydajność vs. Elastyczność
Fast path
• Realizacja sprzętowa
• ACL kryteria warstwy 3. i 4.
(typowo)
• Prosty policing
Slow path
• Realizacja programowa
• Badanie całości pakietu
• Reasemblacja strumienia
• Zgodność z protokołami
(warstwy 7.)
• Parsowanie komunikatów
• Wyrażenia regularne
• Złożony policing
• Konfigurowalny pipeline i
logika
• Akceleracja przez
specjalizowane układy
Net::IP, Wrocław 2017.05.11 13
14. Fizyki nie oszukasz
• Zaawansowane mechanizmy przetwarzania
pakietów są wolniejsze, a przez to ich
skalowanie jest kosztowne
• Potrzeba ochrony wielowarstwowej
– Najpierw mechanizmy bardzo szybkie, ale
nieelastyczne (odrzucenie części ruchu)
– Następnie mechanizmy o złożonej logice, ale
wolniejsze
Net::IP, Wrocław 2017.05.11 14
15. Naginanie praw fizyki
• Żyjemy w czasach Software Defined Everything i
Network Function Virtualization!
• Systemy klasy Linux/UNIX nie były projektowane
do takich zastosowań jak obsługa sieci 100 Gbit/s
(148Mp/s)
• Dno przepustowości sieci na x86 wyznaczają CPU,
magistrala, karty sieciowe i pamięć
Net::IP, Wrocław 2017.05.11 15
16. Naginanie praw fizyki
• Dobrze zaprojektowanie i zoptymalizowane
oprogramowanie pozwala osiągać na x86
wydajność bliską rozwiązaniom
specjalizowanym
• W redGuardian używamy DPDK, aby pomijać
jądro systemu i bezpośrednio obsługiwać
ramki na kartach sieciowych, a nasz kod w C++
jest wysoce zoptymalizowany
Net::IP, Wrocław 2017.05.11 16
17. Przykładowe filtry
# TSource Engine Query
statefilter udpleak limiter rl-games-crap pass udp frag single
len 53 data u32 0xffffffff at 0 u32 0x54536f75 at 4 u32
0x72636520 at 8 u32 0x456e6769 at 12 u32 0x6e652051 at 16 u32
0x75657279 at 20 u8 0x00 at 24
Net::IP, Wrocław 2017.05.11 17
18. Przykładowe filtry
# [gG]etstatus floods
statefilter udpleak limiter rl-games-crap pass udp frag single
len 42 data u32 0xffffffff at 0 u32 0x47657473/0xdfffffff at 4
u32 0x74617475 at 8 u16 0x730a at 12
Net::IP, Wrocław 2017.05.11 18
19. Pomysły genialne, zwariowane i…
• Policing per flow
– Para src/dst IP
– Krotka src/dst IP i port
– Wykorzystanie własności, że jeden gracz generuje
przewidywalny, nieduży ruch
• Problemy
– Potencjalnie ekstremalna liczba instancji policerów
– Pomaga tylko gdy DoS lub DDoS z małej liczby
adresów źródłowych
Net::IP, Wrocław 2017.05.11 19
20. Pomysły genialne, zwariowane i…
• Walidacja na zgodność z protokołem
komunikacyjnym gry
– Formaty pakietów
– Dane (np. identyfikatory sesji, typy żądań)
• Problemy
– Braki specyfikacji
– Mnogość standardów
Net::IP, Wrocław 2017.05.11 20
21. Pomysły genialne, zwariowane i…
• Odpowiednik TCP dla protokołów gier
– Numery sekwencyjne
– Retransmisje
– Tylko krytyczne czasowo dane przesyłane później
bezpołączeniowo, ale np. z podpisem
• Problemy:
– Upowszechnienie idei
– Mnożenie bytów
Net::IP, Wrocław 2017.05.11 21
22. Pomysły genialne, zwariowane i…
• Sprzężenie zwrotne
– Od serwera gier do mechanizmu Anty DDoS
– Blokowanie całego ruchu UDP z wyjątkiem flowów
zarejestrowanych graczy
• Problemy
– Standaryzacja tego typu API
– Odrębny kanał komunikacyjny TCP do zarządzania
sesją (tam, gdzie retransmisje i dodatkowa kontrola są
akceptowalne)
Net::IP, Wrocław 2017.05.11 22
23. Podsumowanie
1. DDoS na gry online są prowadzone praktycznie takimi
samymi metodami, jak na inne usługi. Tylko częściej.
2. Ujednolicony i dobrze opisany protokół komunikacyjny gry
pomaga w uszczelnieniu systemu.
3. Ochrona realizowana programowo daje bez porównania
większą elastyczność (walidacja poprawności pakietu, DPI,
regexp, szybki dewelopment) i nie musi być wolniejsza od
sprzętu w zakresie n×10Gbit/s, a nawet n×100Gbit/s.
Net::IP, Wrocław 2017.05.11 23