BGP를 사용하여 원격 AS에서 시작된 DDoS 공격으로부터 방어


16

BGP와이 구성을 달성하는 방법에 관한 질문이 있습니다.

엔터프라이즈 코어 라우터가 ISP (단일 홈)에 연결되어 있습니다. 이 라우터는 이미 BGP 업데이트에서 특정 공용 IP 접두사를 ISP로 교환했습니다. 이제 DDoS 공격으로 로컬 AS에 플러딩되는 AS가 몇 홉 떨어져 있다고합니다. 해당 AS에는 로컬 AS의 웹 서버를 대상으로하는 여러 네트워크가 있습니다.

BGP를 사용하여 라우터의 트래픽을 어떻게 막을 수 있습니까?

답변 감사합니다 !! :)


2
이 트래픽의 출처를 어떻게 설정 했습니까? 원본 IP 주소 만보고 있었다면 스푸핑되었을 수 있습니다. 리플렉션 공격이 발생하는 경우 단일 AS 내의 모든 스푸핑 소스 주소가 패킷으로 가득 차게됩니다.
kasperd

어떤 대답이 도움이 되었습니까? 그렇다면 질문에 대한 답변이 계속 나오지 않도록 답변을 수락해야합니다. 또는 자신의 답변을 제공하고 수락 할 수 있습니다.
Ron Maupin

답변:


14

BGP로 할 수있는 두 가지 작업이 있습니다.

RTBH-원격 트리거 블랙홀

첫 번째 옵션은 급진적 인 방법입니다. IP 공격을위한 블랙홀 (트래픽 중지). 단점 : 대상 IP가 더 이상 도달 할 수 없습니다. 이점 : 나머지 네트워크는 그대로 유지됩니다. Packetlife에는 작동 방식 및 수행 방법에 대한 좋은 설명이 있습니다. 두 번째 옵션은 첫 번째 옵션을 기반으로합니다.

소스 기반 RTBH

RTBH는 (특정 구성에서) 특정 IP에서 오는 트래픽을 차단하는 데 사용될 수도 있습니다 (트래픽이 수천 개의 IP에서 들어오는 것만 큼 도움이되지 않는 실제 DDoS에서). 다시 한번, Packetlife에 대한 설명이 있습니다.

귀하의 경우 RADB 와 같은 라우팅 데이터베이스에서 AS의 모든 접두사를 가져 와서 소스 기반 RTBH로 차단할 수 있습니다. 트래픽은 여전히 ​​경계에서 네트워크에 충돌합니다.

"간단한"RTBH를 사용하면이 RTBH 경로를 업스트림 ISP (지원하는 경우)로 보내면 네트워크에서 이미 트래픽을 차단할 수 있으므로 처리 할 필요가 없습니다.


Packetlife에서 설명하는 방법은 도움이되지만 업 링크가 공격 트래픽에 의해 포화되는 시나리오에서는 사용되지 않습니다. 이 문제를 해결하기 위해 업스트림 블랙홀 커뮤니티 사용에 대한 답변을 작성했습니다.
Elliot B.

2
마지막 문장입니다. ""간단한 "RTBH를 사용할 때 이점은 이러한 RTBH 경로를 업스트림 ISP (지원하는 경우)로 보내면 네트워크에서 이미 트래픽을 차단할 수 있다는 것입니다. "처리합니다."
Sebastian Wiesinger

나는 그것을 보았지만 고객이 유발 한 블랙홀 방법을 자세히 설명하고 "[처리 할 필요가 없다"는 것은 블랙홀이 다른 방법으로는 효과적이지 않다는 것을 의미한다고 지적했다. 더 많은 정보를 제공하기 만하면 답을 얻을 수 없습니다
.

7

@Sebastian 이 Packetlife를 통해 설명한 RTBH 방법 은 도움이되지만 해당 방법은 업 링크가 공격 트래픽에 의해 포화 되지 않은 경우에만 작동 합니다. 업 링크가 포화 상태 인 경우 공격 트래픽이 네트워크에 도달 하기 전에 블랙홀을 구현해야합니다 .

업스트림 블랙홀 커뮤니티에서이를 수행 할 수 있습니다.

허리케인 일렉트릭 은 BGP 커뮤니티와 함께 ​​고객이 유발 한 블랙홀 링에 대한 간단한 설명 / 예를 제공합니다.

  1. 공격 시작
  2. 고객이 공격중인 IP 또는 IP 범위를 식별
  3. 고객 정적은 ip 또는 ip 범위를 Null0으로 라우팅하고 6939 : 666으로 태그를 지정하는 경로 맵을 사용하여 해당 접두어 알림을 추가합니다.

Cisco 구성 예 (여기서 XXXX는 공격중인 IP) :

conf t
ip route X.X.X.X 255.255.255.255 Null0
router bgp YourAS
network X.X.X.X mask 255.255.255.255 route-map blackhole
route-map blackhole permit 10
set community 6939:666
end

참고 6939:666허리케인 일렉트릭의 블랙홀 사회 고유의 것입니다. 업스트림 제공 업체의 블랙홀 커뮤니티와 일치하도록이 값을 수정합니다.

물론 이것을 구성하는 여러 가지 방법이 있습니다. 내 Brocade 장비에서 다음 구성을 사용합니다.

router bgp
!
redistribute static route-map blackhole
!
!
route-map blackhole permit  5
 match tag  66
 set community  55555:666

55555:666업스트림 제공 업체의 블랙홀 커뮤니티는 어디에 있습니까 ? 그런 다음 간단한 명령으로 업스트림 블랙홀을 적용 할 수 있습니다.

ip route 123.123.123.123 255.255.255.255 null0 tag 66

4

BGP 관점에서 볼 때 할 수있는 일은 많지 않습니다. 접두사 광고를 중단 할 수는 있지만 아무도 서비스에 액세스 할 수 없으므로 DoS 공격을 완료하고 있습니다.

접두사가 여러 개인 경우 번호를 다시 매길 수 있지만 공격은 새 접두사로 이동합니다.

당신이해야 할 일은 업스트림 작업입니다. 그들은 문지르는 서비스가 있습니까? Arbor Peakflow와 같은 시스템이있는 경우 네트워크에 들어가기 전에 트래픽을 제거하고 정리할 수 있습니다. 이러한 서비스는 종종 매우 비쌉니다.

Cloudflare 및 유사한 회사와 같은 다른 옵션도 있습니다. GRE 터널을 통해 해당 회사에 BGP를 설정하고 트래픽이 로컬 장치보다 훨씬 많은 트래픽을 처리 할 수있는 "클라우드"에 의해 처리됩니다.


0

CloudFlare에서 일하고 있습니다. 지난 몇 개월 동안 DDOS 공격을 완화하기 위해 개발 한 지식을 공유하고 싶습니다.

첫째로; 많은 사람들이 응용 프로그램 계층 DDOS 공격을 완화하기 위해 네트워크 수준 측정에 의존합니다. BGP Blackholing으로 다이빙하기 전에 속도 제한 또는 애플리케이션 계층 보호가 처리 할 수있는 것인지 고려하십시오. 그것은 말했다; 이제 대용량 DDOS 공격을 시작하는 것이 매우 저렴합니다 (주어진 Open DNS Recursors의 수와 공격을 증폭 할 수있는 방법을 감안할 때).

엘리엇이 그의 답변에서 설명했듯이 네트워크가 작은 경우 BGP 커뮤니티를 블랙홀 트래픽에 사용하면 효과가 있습니다. 이 메커니즘은 RFC 3882에 설명되어 있습니다. 그러나 우리와 같이 블랙홀 대신 공격 트래픽을 흡수하려는 경우 (즉 , DDOS 공격 데이터 를 수집하려는 경우 ) 중간 네트워크 제공자가 혼잡하게되는 부수적 피해에주의하십시오. 공격을 시작한 네트워크의 ISP와 직접 피어링하여 부수적 피해를 완화 할 수 있습니다. 이렇게하면 공격자에서 대상까지 가장 짧은 경로가됩니다. 또한 Anycast 네트워크 설계를 구현할 수 있습니다 . 이는 가장 가까운 IP 주소에 따라 하나의 IP 주소가 여러 데이터 센터에 충돌하는 것을 의미합니다.

모든 회사가 Anycast 및 피어링을 수행 할 인프라를 보유 할 수는 없습니다. 그렇기 때문에 비즈니스는 데이터 센터에 도달하기 전에 나쁜 트래픽을 제거하기 위해 클라우드 서비스로 점점 더 의존하고 있습니다. 당연히 CloudFlare는 그러한 서비스 중 하나입니다.


-1

수집 한 모든 증거가 특정 AS의 소스 IP 주소를 가진 패킷이 가득 찬 경우 잘못된 결론으로 ​​넘어 갔을 수 있습니다. 소스 IP가 스푸핑되었다는 설명이 더 가능성이 높습니다.

반사 / 증폭 공격에는 피해자의 소스 IP 주소를 스푸핑하는 많은 패킷을 보내는 것이 포함됩니다. 실제로 이러한 상황이 발생하고 네트워크에 서버가 있고 공격을 증폭시킬 수있는 경우 공격을 비난하는 네트워크가 실제로 피해자이며 공격자를 도울 수 있습니다.

이러한 상황에서 솔루션은 모든 종류의 트래픽 엔지니어링을 적용하는 것이 아니라 증폭 공격에 사용할 수 없도록 서버를 구성하는 것입니다. 이를 수행하는 방법은 실제로 네트워크 엔지니어링 질문이 아닙니다.

물론 모든 패킷이 하나의 AS에서 시작될 수 있습니다. 문제가있는 AS와의 협력을 통해 실제로 패킷이 AS에서 비롯된 것임을 확인할 수 있습니다. 그러나 해당 수준의 협력을 통해 소스에서 공격을 차단할 수도 있습니다.

우리가 당신이 어떤 방법을 통해 있다고 가정한다면, 나는 확인 된 패킷에 대해 생각하지 않았다고 생각합니다. 패킷은 실제로 당신이 생각하는 AS에서 유래했으며, 소스에서 패킷을 차단 할 수 없으며 대신 BGP를 통해 차단하고 싶습니다. 이것을 달성하기 위해 다소 위험한 방법에 대해 읽었습니다. 아이디어는 발표 할 경로에 AS 경로를 추가하는 것입니다. 이 앞에 추가 된 AS 경로에는 해당 패킷 소스의 AS 번호가 포함됩니다.

공지 사항이 문제가되는 AS의 BGP 라우터에 도달하면 루프를 감지하여 공지 사항을 삭제합니다. 한편 세계의 다른 지역은 루프를 보지 않고 발표를 받아 들일 것입니다.

이것이 이론입니다. 실제로 실제로 작동하는지 여부는 몇 가지 다른 요소에 따라 다릅니다. 예를 들어, 실제로 패킷이 시작된 AS 번호를 사용하는데, 이는 IP 주소를 알리는 AS 번호와 다를 수 있습니다. 이러한 차이는 합법적이거나 스푸핑으로 인한 것일 수 있습니다.

AS 경로가 의심스러운 경우 경로를 필터링하지 않는 업스트림에 따라 다릅니다. 또한 예를 들어, 문제가있는 AS에 대해 나쁜 경험이 있고 거기에서 모든 경로를 삭제하기로 결정한 경우, 예를 들어 멀리 떨어진 네트워크도 경로를 삭제할 수 있습니다.

이 접근법이 위험할만한 가치가 있는지 여부는 귀하의 요구입니다.

(이 방법을 다시 찾을 수 있다면이 방법의 출처에 연결했을 것입니다.)


2
그것은 매우 위험한 일입니다. 소유하지 않은 경로에 다른 AS를 스푸핑하고 있습니다. 또한 다른 사람들이 해당 AS에서 경로를 삭제하면 경로도 삭제됩니다.
Sebastian Wiesinger

1
@Sebastian 사실, 그 위험 또한 존재합니다. 그러나 대안이 트래픽으로 인해 도달 할 수없는 네트워크 인 경우 위험 할만한 가치가있을 수 있습니다.
kasperd

이것은 매우 나쁜 생각처럼 들리지만, 전에는 들어 본 적이 없습니다. 하나의 봇넷 노드가 있으면 전체 ASN에 대한 연결이 끊어집니다. 또한 수천 개의 봇넷 노드가 네트워크에서 무언가를 공격하는 DDoS와는 크게 확장되지 않습니다.
Teun Vink

1
@TeunVink 일반적인 DDoS 공격에는 해당되지 않습니다. 그러나 OP는 일반적인 DDoS 공격에 대해 묻지 않습니다. 그는 모든 트래픽이 하나의 AS에서 발생하는 공격에 대해 묻고 있습니다. 대안이 전체 인터넷에 대한 연결을 끊는 공격 인 경우 하나의 AS에 대한 연결을 끊는 것이 허용됩니다.
kasperd

-2

로컬 네트워크에서 AS를 블랙홀 할 수 있으므로 BGP 라우터는 자신이 알리는 접두사에 대해 널 경로를 만듭니다.

찬성:

  • AS는 그들에게 죽은 것처럼 보일 것입니다. 이것이 그들의 목표이며, 여전히 다른 사람들과 데이터를 교환하는 것입니다.
  • 로컬 수신 필터링은 해당 AS에서 들어오는 패킷을 자동으로 삭제합니다.

대조 :

  • 라우터에서 블랙홀 경로를 만들 수 있으므로 가장 중요한 경로를 그대로 유지하기위한 적절한 규칙을 마련해야합니다.

1
전체 AS를 블랙홀하는 것은 스스로 DOS를하는 것을 의미합니다. 그 AS의 어느 누구도 당신에게 다가 갈 수 없습니다. 귀하의 고객은 해당 AS에있을 수도 있습니다.
Ron Trunk

1
나는 여기서 적대적인 AS를 가정합니다. 즉, 당신이 그것들을 완전히 차단하면 가치에 대한 지적이 사라집니다. 이 범주에 등록한 "방탄 호스팅"서비스가 몇 가지 있습니다.
Simon Richter

1
대부분의 ASN은 적대적이거나 친숙하지 않으며 봇넷의 일부인 일부 호스트 만 포함합니다. 또한이 방법으로 업스트림 링크가 플러딩되는 것을 방지 할 수 없으므로 볼륨 기반 DDoS 공격을 중지하는 데 도움이되지 않습니다.
Teun Vink
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.