Разберите фрагмент tcpdump: "10.0.0.1.443 > 192.168.1.5.52830: Flags [S], seq 0" — объясните, как работает трехстороннее установление соединения TCP, какие признаки на сетевом трафике указывают на SYN-flood или BGP-хайджек, и какие уровни защиты (сетевые, транспортные, прикладные) применимы
Это TCP-пакет от IP 10.0.0.1, исходный порт 443, к 192.168.1.5:52830 эпhemeralпортэпhemeral портэпhemeralпорт. Флаг SSS = SYN — начало TCP‑сессии первыйпакеттрехстороннегорукопожатияпервый пакет трехстороннего рукопожатияпервыйпакеттрехстороннегорукопожатия. seq 0 — tcpdump показывает относительные номера последовательности, поэтому «0» обычно означает ISN initialsequencenumberinitial sequence numberinitialsequencenumber в относительном виде. Примечание: обычно клиент инициирует соединение к серверу: client:ephemeral -> server:443 SYNSYNSYN. В вашем примере источником является порт 443, значит либо сервер инициирует обратное соединение, либо вы смотрите трафик с точки зрения роутера/NAT и адреса/порты кажутся «перевернутыми».
Трехстороннее установление соединения TCP TCPthree−wayhandshakeTCP three-way handshakeTCPthree−wayhandshake
SYN (client -> server): клиент посылает пакет с флагом SYN и своим ISN seq=xseq = xseq=x. Может содержать TCP-опции: MSS, SACK, WS, timestamps. SYN-ACK (server -> client): сервер отвечает с флагами SYN+ACK, своим ISN seq=yseq = yseq=y и ack = x+1 подтверждениеSYNклиентаподтверждение SYN клиентаподтверждениеSYNклиента. ACK (client -> server): клиент посылает ACK с ack = y+1 и seq = x+1 — соединение считается установленным и стороны могут передавать данные.
Какие признаки в сетевом трафике указывают на SYN‑flood
Большое количество SYN-пакетов к одному/нескольким целевым портам при очень малом количестве соответствующих ACK высокоесоотношениеSYN:ACK/ESTABLISHEDвысокое соотношение SYN:ACK/ESTABLISHEDвысокоесоотношениеSYN:ACK/ESTABLISHED. Множество «half-open» соединений на сервере большаяочередьpendingconnections/backlogбольшая очередь pending connections / backlogбольшаяочередьpendingconnections/backlog. SYN-пакеты с поддельными/несуществующими исходными IP спуффингспуффингспуффинг — большое разнообразие source IP, часто непривычные TTL/опции. Высокая частота SYN в pps packetspersecondpackets per secondpacketspersecond и резкое увеличение нагрузки на CPU/conntrack. В tcpdump это будет выглядеть как повторяющиеся строки с Flags SSS без последующих S.S.S. / ... от тех же пар адрес/порт. Логи сервера: неуспешные accept, длительное ожидание в TIME_WAIT/полузакрытых состояниях.
Детекция/инструменты:
netstat/ss — много соединений в SYN_RECV; conntrack counters; серверные логи; NetFlow/sFlow/IPS метрики; tcpdump фильтр «tcptcpflagstcpflagstcpflags & tcp-syn != 0 && tcptcpflagstcpflagstcpflags & tcp-ack == 0». Поведение опций — многие бот-синхрони отсутствуют MSS/timestamp.
Защита/смягчение против SYN-flood уровеньтранспорта/сетиуровень транспорта/сетиуровеньтранспорта/сети
Включить TCP SYN cookies linux:net.ipv4.tcpsyncookies=1linux: net.ipv4.tcp_syncookies=1linux:net.ipv4.tcpsyncookies=1. Увеличить backlog и сократить таймауты ноэтовременноено это временноеноэтовременное. Синхронизировать ограничения на уровне OS conntrack,ulimitconntrack, ulimitconntrack,ulimit. SYNPROXY вnetfilter/iptablesв netfilter/iptablesвnetfilter/iptables — завершает рукопожатие и пропускает только установленные соединения. Rate limiting: iptables/ACL/route‑maps, tc — ограничение числа SYN по IP или интерфейсу. РПФ/BCP38 на пограничных роутерах — уменьшает спуффинг. Сетевые/облачные сервисы защиты от DDoS scrubbingcenters,CDN,провайдерскоефильтрование,BGPFlowSpecscrubbing centers, CDN, провайдерское фильтрование, BGP FlowSpecscrubbingcenters,CDN,провайдерскоефильтрование,BGPFlowSpec — если атака большая. Черные дыры/чёрное‑холинг или «null route» как крайняя мера для защиты инфраструктуры.
Какие признаки указывают на BGP‑хайджек BGPhijackBGP hijackBGPhijack
Внезапное изменение AS_PATH или ORIGIN для вашего префикса асинхронные/неожиданныеобъявленияасинхронные/неожиданные объявленияасинхронные/неожиданныеобъявления. Появление нового origin AS для префикса, который раньше был объявлен только вашим AS. Появление более специфичных префиксов longer‑prefixhijacklonger‑prefix hijacklonger‑prefixhijack — новые /24, /25 и т.п. по вашему диапазону. Резкие всплески BGP‑updates, флапы маршрутов. Трассировка traceroutetraceroutetraceroute показывает неожиданный маршрут / переход через незнакомые AS. Резкое падение трафика/доступности для пользователей в некоторых регионах; аномалии RTT/путь. BGP session/route collector alerts / мониторинг BGPmon,RIPERIS,RouteViewsBGPmon, RIPE RIS, RouteViewsBGPmon,RIPERIS,RouteViews — уведомления о новых origin.
Детекция/инструменты:
show ip bgp / bgp summary на роутере; подписки на BGP‑мониторинг BGPmon,RIPERIS,ARTEMISBGPmon, RIPE RIS, ARTEMISBGPmon,RIPERIS,ARTEMIS, looking glasses; RPKI/ROA проверки; tcpdump порта 179 для перехвата и анализа BGP‑UPDATE. Сравнение объявлений с ожидаемым IRR/RPKI.
Защита/смягчение против BGP‑хайджек уровеньсети/плануправлениямаршрутизациейуровень сети/план управления маршрутизациейуровеньсети/плануправлениямаршрутизацией
Фильтрация префиксов по upstreams/peers prefixfilters,IRR/RPKI−basedfiltersprefix filters, IRR/RPKI-based filtersprefixfilters,IRR/RPKI−basedfilters. RPKI/ROA: подписанные ROA и включённая Origin Validation на маршрутизаторах. Ограничения на максимальное количество префиксов, route‑maps, prefix length filters. BGP сессии защищать MD5/authenticationMD5/authenticationMD5/authentication и включить TTL security GTSMGTSMGTSM где применимо. Много провайдеров / мультихоминг, мониторинг маршрутов и оповещение быстрореагироватьбыстро реагироватьбыстрореагировать. В случае hijack — координация с upstream/peers, анноунс более специфичных префиксов ifsafeif safeifsafe, публикация информации и обращение к операторам, использовать IRR/RPKI для подтверждения легитимности. В крупных случаях — уведомлять community/регуляторов/провайдеров.
Сетевой уровень L3L3L3: RPKI/ROA, prefix filtering, BGP best‑practices, ACL на пограничных роутерах, BCP38 ingressfilteringingress filteringingressfiltering, FlowSpec/blackholing, DDoS‑scrubbing, провайдерские фильтры. Транспортный уровень L4L4L4: TCP SYN cookies, SYNPROXY, connection rate limits, stateful firewall track/limitnewconnectionstrack/limit new connectionstrack/limitnewconnections, conntrack tuning, load balancers/anycast, CDN/edge termination. Прикладной уровень L7L7L7: WAF, rate limiting per user/session/IP, CAPTCHA/behavioural checks, authentication, кэширование контента на CDN, проверка и логирование запросов, аналитика аномалий поведениеAPI/ошибки,частотазапросовповедение API/ошибки, частота запросовповедениеAPI/ошибки,частотазапросов, application gateways terminateTLSифильтроватьзапросыterminate TLS и фильтровать запросыterminateTLSифильтроватьзапросы, throttling и защитные механизмы в коде.
Рекомендации при обнаружении инцидента
При SYN‑flood: включить SYN cookies, применить rate‑limit и SYNPROXY, уведомить провайдера/использовать scrubbing. При возможности — временно блокировать источники по ACL. При BGP‑хайджеке: срочно связаться с upstream/peer, сверить объявления whois/lookingglasswhois/looking glasswhois/lookingglass, сообщить в мониторинг/сообщество, при необходимости аннонсировать более специфичный маршрут и задействовать RPKI/IRR‑фильтры. Во всех случаях: собрать доказательства pcap,BGPupdates,netflowpcap, BGP updates, netflowpcap,BGPupdates,netflow, установить мониторинг alertsalertsalerts, и позже провести постмортем и закрыть уязвимости фильтры,RPKI,конфигифильтры, RPKI, конфигифильтры,RPKI,конфиги.
Если нужно, могу:
Показать пример tcpdump/grep команды для выявления только SYN‑пакетов. Привести пример BGP‑UPDATE, указывающий на подмену origin AS, и команды на Cisco/JunOS для диагностики.
Коротко о разборе строки tcpdump и дальше — три этапа, признаки атак и какие защитные меры работают на каких уровнях.
Разбор строки
Это TCP-пакет от IP 10.0.0.1, исходный порт 443, к 192.168.1.5:52830 эпhemeralпортэпhemeral портэпhemeralпорт. Флаг SSS = SYN — начало TCP‑сессии первыйпакеттрехстороннегорукопожатияпервый пакет трехстороннего рукопожатияпервыйпакеттрехстороннегорукопожатия. seq 0 — tcpdump показывает относительные номера последовательности, поэтому «0» обычно означает ISN initialsequencenumberinitial sequence numberinitialsequencenumber в относительном виде. Примечание: обычно клиент инициирует соединение к серверу: client:ephemeral -> server:443 SYNSYNSYN. В вашем примере источником является порт 443, значит либо сервер инициирует обратное соединение, либо вы смотрите трафик с точки зрения роутера/NAT и адреса/порты кажутся «перевернутыми».10.0.0.1.443 > 192.168.1.5.52830: Flags SSS, seq 0
Трехстороннее установление соединения TCP TCPthree−wayhandshakeTCP three-way handshakeTCPthree−wayhandshake
SYN (client -> server): клиент посылает пакет с флагом SYN и своим ISN seq=xseq = xseq=x. Может содержать TCP-опции: MSS, SACK, WS, timestamps. SYN-ACK (server -> client): сервер отвечает с флагами SYN+ACK, своим ISN seq=yseq = yseq=y и ack = x+1 подтверждениеSYNклиентаподтверждение SYN клиентаподтверждениеSYNклиента. ACK (client -> server): клиент посылает ACK с ack = y+1 и seq = x+1 — соединение считается установленным и стороны могут передавать данные.Какие признаки в сетевом трафике указывают на SYN‑flood
Большое количество SYN-пакетов к одному/нескольким целевым портам при очень малом количестве соответствующих ACK высокоесоотношениеSYN:ACK/ESTABLISHEDвысокое соотношение SYN:ACK/ESTABLISHEDвысокоесоотношениеSYN:ACK/ESTABLISHED. Множество «half-open» соединений на сервере большаяочередьpendingconnections/backlogбольшая очередь pending connections / backlogбольшаяочередьpendingconnections/backlog. SYN-пакеты с поддельными/несуществующими исходными IP спуффингспуффингспуффинг — большое разнообразие source IP, часто непривычные TTL/опции. Высокая частота SYN в pps packetspersecondpackets per secondpacketspersecond и резкое увеличение нагрузки на CPU/conntrack. В tcpdump это будет выглядеть как повторяющиеся строки с Flags SSS без последующих S.S.S. / ... от тех же пар адрес/порт. Логи сервера: неуспешные accept, длительное ожидание в TIME_WAIT/полузакрытых состояниях.Детекция/инструменты:
netstat/ss — много соединений в SYN_RECV; conntrack counters; серверные логи; NetFlow/sFlow/IPS метрики; tcpdump фильтр «tcptcpflagstcpflagstcpflags & tcp-syn != 0 && tcptcpflagstcpflagstcpflags & tcp-ack == 0». Поведение опций — многие бот-синхрони отсутствуют MSS/timestamp.Защита/смягчение против SYN-flood уровеньтранспорта/сетиуровень транспорта/сетиуровеньтранспорта/сети
Включить TCP SYN cookies linux:net.ipv4.tcpsyncookies=1linux: net.ipv4.tcp_syncookies=1linux:net.ipv4.tcps yncookies=1. Увеличить backlog и сократить таймауты ноэтовременноено это временноеноэтовременное. Синхронизировать ограничения на уровне OS conntrack,ulimitconntrack, ulimitconntrack,ulimit. SYNPROXY вnetfilter/iptablesв netfilter/iptablesвnetfilter/iptables — завершает рукопожатие и пропускает только установленные соединения. Rate limiting: iptables/ACL/route‑maps, tc — ограничение числа SYN по IP или интерфейсу. РПФ/BCP38 на пограничных роутерах — уменьшает спуффинг. Сетевые/облачные сервисы защиты от DDoS scrubbingcenters,CDN,провайдерскоефильтрование,BGPFlowSpecscrubbing centers, CDN, провайдерское фильтрование, BGP FlowSpecscrubbingcenters,CDN,провайдерскоефильтрование,BGPFlowSpec — если атака большая. Черные дыры/чёрное‑холинг или «null route» как крайняя мера для защиты инфраструктуры.Какие признаки указывают на BGP‑хайджек BGPhijackBGP hijackBGPhijack
Внезапное изменение AS_PATH или ORIGIN для вашего префикса асинхронные/неожиданныеобъявленияасинхронные/неожиданные объявленияасинхронные/неожиданныеобъявления. Появление нового origin AS для префикса, который раньше был объявлен только вашим AS. Появление более специфичных префиксов longer‑prefixhijacklonger‑prefix hijacklonger‑prefixhijack — новые /24, /25 и т.п. по вашему диапазону. Резкие всплески BGP‑updates, флапы маршрутов. Трассировка traceroutetraceroutetraceroute показывает неожиданный маршрут / переход через незнакомые AS. Резкое падение трафика/доступности для пользователей в некоторых регионах; аномалии RTT/путь. BGP session/route collector alerts / мониторинг BGPmon,RIPERIS,RouteViewsBGPmon, RIPE RIS, RouteViewsBGPmon,RIPERIS,RouteViews — уведомления о новых origin.Детекция/инструменты:
show ip bgp / bgp summary на роутере; подписки на BGP‑мониторинг BGPmon,RIPERIS,ARTEMISBGPmon, RIPE RIS, ARTEMISBGPmon,RIPERIS,ARTEMIS, looking glasses; RPKI/ROA проверки; tcpdump порта 179 для перехвата и анализа BGP‑UPDATE. Сравнение объявлений с ожидаемым IRR/RPKI.Защита/смягчение против BGP‑хайджек уровеньсети/плануправлениямаршрутизациейуровень сети/план управления маршрутизациейуровеньсети/плануправлениямаршрутизацией
Фильтрация префиксов по upstreams/peers prefixfilters,IRR/RPKI−basedfiltersprefix filters, IRR/RPKI-based filtersprefixfilters,IRR/RPKI−basedfilters. RPKI/ROA: подписанные ROA и включённая Origin Validation на маршрутизаторах. Ограничения на максимальное количество префиксов, route‑maps, prefix length filters. BGP сессии защищать MD5/authenticationMD5/authenticationMD5/authentication и включить TTL security GTSMGTSMGTSM где применимо. Много провайдеров / мультихоминг, мониторинг маршрутов и оповещение быстрореагироватьбыстро реагироватьбыстрореагировать. В случае hijack — координация с upstream/peers, анноунс более специфичных префиксов ifsafeif safeifsafe, публикация информации и обращение к операторам, использовать IRR/RPKI для подтверждения легитимности. В крупных случаях — уведомлять community/регуляторов/провайдеров.Уровни защиты: сетевой, транспортный, прикладной сконкретикойс конкретикойсконкретикой
Сетевой уровень L3L3L3:RPKI/ROA, prefix filtering, BGP best‑practices, ACL на пограничных роутерах, BCP38 ingressfilteringingress filteringingressfiltering, FlowSpec/blackholing, DDoS‑scrubbing, провайдерские фильтры. Транспортный уровень L4L4L4:
TCP SYN cookies, SYNPROXY, connection rate limits, stateful firewall track/limitnewconnectionstrack/limit new connectionstrack/limitnewconnections, conntrack tuning, load balancers/anycast, CDN/edge termination. Прикладной уровень L7L7L7:
WAF, rate limiting per user/session/IP, CAPTCHA/behavioural checks, authentication, кэширование контента на CDN, проверка и логирование запросов, аналитика аномалий поведениеAPI/ошибки,частотазапросовповедение API/ошибки, частота запросовповедениеAPI/ошибки,частотазапросов, application gateways terminateTLSифильтроватьзапросыterminate TLS и фильтровать запросыterminateTLSифильтроватьзапросы, throttling и защитные механизмы в коде.
Рекомендации при обнаружении инцидента
При SYN‑flood: включить SYN cookies, применить rate‑limit и SYNPROXY, уведомить провайдера/использовать scrubbing. При возможности — временно блокировать источники по ACL. При BGP‑хайджеке: срочно связаться с upstream/peer, сверить объявления whois/lookingglasswhois/looking glasswhois/lookingglass, сообщить в мониторинг/сообщество, при необходимости аннонсировать более специфичный маршрут и задействовать RPKI/IRR‑фильтры. Во всех случаях: собрать доказательства pcap,BGPupdates,netflowpcap, BGP updates, netflowpcap,BGPupdates,netflow, установить мониторинг alertsalertsalerts, и позже провести постмортем и закрыть уязвимости фильтры,RPKI,конфигифильтры, RPKI, конфигифильтры,RPKI,конфиги.Если нужно, могу:
Показать пример tcpdump/grep команды для выявления только SYN‑пакетов. Привести пример BGP‑UPDATE, указывающий на подмену origin AS, и команды на Cisco/JunOS для диагностики.