IP 주소는 “위조하기 쉬운”가요? 섹션에서이 단락을

Google의 새로운 퍼블릭 DNS 서비스 에 대한 참고 사항을 읽고있었습니다 .

보안 섹션에서이 단락을 발견했습니다.

DNSSEC2 프로토콜과 같은 DNS 취약성에 대한 표준 시스템 전체 솔루션이 보편적으로 구현 될 때까지 공개 DNS 리졸버는 알려진 위협을 완화하기 위해 독립적으로 조치를 취해야합니다. 많은 기술들이 제안되었다; IETF RFC 4542 : 대부분의 개요에 대한 위조 된 응답대해 DNS의 복원력을 높이기위한 측정 값을 참조하십시오 . Google 퍼블릭 DNS에서는 다음과 같은 접근 방식을 구현했으며 권장합니다.

  • 리졸버 자체에 대한 직접적인 DoS 공격으로부터 보호하기 위해 머신 리소스초과 프로비저닝 합니다. IP 주소는 공격자가 위조하기 쉽지 않으므로 IP 주소 또는 서브넷을 기반으로 쿼리를 차단할 수 없습니다. 이러한 공격을 처리하는 유일한 효과적인 방법은 단순히 부하를 흡수하는 것입니다.

그것은 우울한 깨달음입니다. 스택 오버플로 / 서버 오류 / 수퍼 유저에서도 모든 종류의 차단 및 차단의 기초로 IP 주소를 자주 사용합니다.

“talented”공격자가 원하는 IP 주소를 사소하게 사용하고 원하는만큼 고유 한 가짜 IP 주소를 합성 할 수 있다고 생각하는 것은 정말 무섭습니다!

그래서 내 질문 :

  • 침입자가 실제로 IP 주소를 위조하는 것이 그렇게 쉬운가?
  • 그렇다면 어떤 완화가 가능합니까?


답변

다른 많은 사람들이 언급했듯이 IP 헤더는 응답 수신에 신경 쓰지 않는 한 간단합니다. TCP가 3 방향 핸드 셰이크를 요구하기 때문에 UDP에서 주로 볼 수 있습니다. 주목할만한 예외 중 하나 는 TCP를 사용하고 수신 호스트에서 리소스를 연결하려는 SYN 서비스 장애입니다 . 응답이 삭제 될 때 소스 주소는 중요하지 않습니다.

공격자가 소스 주소를 스푸핑 할 수있는 능력의 특히 부작용은 백스 캐터 공격입니다. 이 훌륭한 설명은 여기에 있지만, 간단하게, 그것은 기존의 DDoS 공격의 역이다 :

  1. 봇넷을 제어하십시오.
  2. 악성 패킷에 대해 동일한 소스 IP 주소 를 사용하도록 모든 노드를 구성하십시오 . 이 IP 주소는 최종 피해자가됩니다.
  3. 모든 제어 노드에서 인터넷을 통해 다양한 주소로 패킷을 보내거나 일반적으로 열려 있지 않은 포트를 대상으로하거나 이미 존재하는 트랜잭션의 일부라고 주장하는 유효한 포트 (TCP / 80)에 연결합니다.

(3)에 언급 된 경우 중 하나에서, 많은 호스트는 악의적 인 패킷소스 주소를 목표로하여 도달 할 수없는 ICMP 또는 TCP 재설정으로 응답 합니다. 공격자는 이제 스푸핑 된 소스 IP 주소를 사용하여 선택한 희생자에 대해 DDoS 공격을 수행하는 네트워크에 손상되지 않은 수천 대의 시스템을 보유하고 있습니다.

완화 측면에서이 위험은 실제로 ISP (특히 운송 대신 고객 액세스를 제공하는 ISP) 만 해결할 수있는 위험입니다. 이를 수행하는 두 가지 주요 방법이 있습니다.

  1. 수신 필터링 -네트워크로 들어오는 패킷이 들어오는 인터페이스의 반대쪽에있는 주소 범위에서 제공됩니다. 많은 라우터 공급 업체 는 라우터의 라우팅 및 전달 테이블을 사용하여 들어오는 패킷의 소스 주소의 다음 홉이 들어오는 인터페이스인지 확인하는 유니 캐스트 역방향 경로 전달 과 같은 기능을 구현합니다 . 이는 네트워크의 첫 번째 계층 3 홉 (예 : 기본 게이트웨이)에서 가장 잘 수행됩니다.

  2. 송신 필터링 -네트워크에서 나가는 패킷이 사용자가 소유 한 주소 범위에서만 소스를 확보하도록합니다. 이는 자연스럽게 필터링을 보완하는 것이며 보완 적으로 ‘좋은 이웃’의 일부입니다. 악의적 인 트래픽으로 인해 네트워크가 손상 되더라도 해당 트래픽은 동료 네트워크로 전달되지 않습니다.

이러한 기술은 클라이언트가 공급자와 인터페이스하는 ‘에지’또는 ‘액세스’네트워크에서 수행 할 때 가장 효과적이고 쉽게 구현됩니다. 다중 경로 및 비대칭 라우팅의 복잡성으로 인해 액세스 계층 위에서 수신 / 탈출 필터링을 구현하는 것이 더 어려워집니다.

이러한 기술 (특히 수신 필터링)이 엔터프라이즈 네트워크 내에서 큰 영향을 미치는 것으로 나타났습니다. 더 많은 서비스 제공 업체 경험이있는 사람은 인터넷에서 수신 / 탈출 필터링을 배포하는 문제에 대해 더 많은 통찰력을 제공 할 수 있습니다. 하드웨어 / 펌웨어 지원이 큰 과제 일뿐만 아니라 다른 국가의 업스트림 제공 업체가 유사한 정책을 시행하도록 강요 할 수 없다고 생각합니다 …


답변

침입자가 실제로 IP 주소를 위조하는 것이 그렇게 쉬운가?

물론 실제로 응답을받는 것에 신경 쓰지 않으면 원하는 소스 주소를 사용하여 패킷을 쉽게 보낼 수 있습니다. 많은 ISP가 실제로 올바른 송신 규칙을 가지고 있지 않기 때문에 일반적으로 위조 한 모든 것이 제공됩니다.

공격자가 실제로 양방향 통신이 필요한 경우 매우 어려워집니다. 양방향 통신이 필요한 경우 일종의 프록시를 사용하는 것이 더 쉬운 경향이 있습니다. 당신이하고있는 일을 알고 있다면 설정하기가 매우 쉽습니다.

사이트에서 양방향 통신이 필요한 http / https를 사용하므로 IP 주소로 사람을 금지하는 것은 SF / SO / SU에서 적당히 효과적입니다.


답변

Zordeche의 답변에 대한 개념 증명이 거의 없음 (우분투 포함) :

$ sudo apt-get install hping3
$ sudo hping3 -1 --spoof 11.10.10.20 www.google.com
HPING www.google.com (eth0 64.233.169.105): icmp mode set, 28 headers + 0 data bytes

그런 다음 다른 콘솔에서 :

$ sudo tcpdump -i eth0 'icmp'
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
13:30:19.439737 IP 11.10.10.20 > yo-in-f105.1e100.net: ICMP echo request, id 31297, seq 0, length 8

따라서 예, 사소하지만, 11.10.10.20에 액세스 할 수 없거나 www.google.com과 11.10.10.20 사이에 스니퍼가 없으면 이전에 언급 한 것처럼 답글을 얻지 못합니다 (그리고 바로 앞에 있어야합니다. 패킷 경로를 예측할 수 없으므로 또한 spoofer ‘s gateway (ISP)는 일종의 IP 검사가 진행 중이고 소스의 냄새가 나쁘다는 것을 알면 패킷을 내 보내지 못할 수 있습니다.


답변

단방향 UDP 트래픽을 위해 IP 주소를 쉽게 만들 수 있습니다. TCP 패킷의 경우 SYN 패킷으로 절반 개방 TCP 연결을 얻을 수 있습니다. 이것은 일종의 DOS 공격의 기초이기도합니다. 그러나 스푸핑 된 주소 (예 : 동일한 IP 주소를 사용하도록 세션을 필터링하는 경우)를 사용하여 HTTP 연결을 위조 할 수 없습니다. 예, 패킷에서 IP 주소를 스푸핑 할 수 있지만 특정 종류의 서비스 거부 공격에만 유용합니다.


답변

GOOG 기사는 DNS에 대해 명시 적으로 논의했습니다. DNS는 UDP 및 TCP 패킷을 모두 사용합니다. UDP는 위조 할 수 있지만 TCP는 위조 할 수 없습니다. TCP에는 3 방향 핸드 셰이크 가 필요합니다 . TCP 패킷의 IP 주소가 위조 된 경우 위조 컴퓨터가 응답을받지 않고 연결이 실패합니다. 다른 답변에서 언급했듯이 UDP는 ‘화재 및 잊어 버리기’이며 응답 통신이 필요하지 않습니다. 이러한 이유로 DoS 공격은 거의 독점적으로 UDP 패킷 형태로 발생합니다.

스택 오버플로 및 패밀리 사이트와 관련하여 Takaun Daikon이 제기 한 문제는 매우 유효합니다. ISP로부터 새로운 IP 주소를 얻는 방법에는 여러 가지가 있습니다. MAC 주소 변경은 가장 쉽고 가장 많은 ISP에서 작동합니다. 또한, 어리석은 행동을하는 많은 사람들이 공개 대리 나 TOR을 사용하고있을 수 있습니다. 해당 패킷의 발신 IP를 명확하게 차단하면 프록시 또는 TOR 종료 노드 만 차단됩니다.

IP 주소 차단이 유효합니까? 그렇습니다. 그러나 오류가 발생합니다. 실제로 문제의 원인이 아닌 일부 IP (예 : 프록시)를 차단하고 IP를 변경하여 차단을 피하는 사람들도 있습니다. 나중에 금지 된 IP를 얻을만큼 운이 좋지 않은 사람은 SO 사이트 제품군에 액세스 할 수 없습니다. 그러나 오류율 작아야합니다. 거대한 IP 세트를 차단하지 않는 한. 그러나 하루에 1-2 번을 막고 있다면 괜찮을 것입니다.

1 년과 같은 기간 동안 만 차단하는 좀 더 정교한 구성표를 도입 할 수 있습니다. 네트워크에서 대역폭 조절 또는 연결 제한이 가능한 경우 사이트에서 Apache Benchmarks를 실행하는 백서 백이 매우 제한된 대역폭의 케이지에 배치되는 방식을 고려할 수도 있습니다.


답변

ISP가 게으 르기 때문에 IP 스푸핑이 계속됩니다.

내 ISP는 내가 특정 주소 또는 적어도 내가있는 서브넷에 있다는 것을 잘 알고 있습니다. 그러나 모든 소스 주소를 사용할 수 있습니다. 왜 그런 겁니까? 간단히, 비용.

여기저기서 몇 개의 주소를 위조하면 ISP 비용이 들지 않습니다. ISP의 모든 사용자가 1시에서 2시 사이에 하나의 패킷을 위조 한 경우에도 여전히 레이더에 걸리기 어렵습니다. 그러나 봇넷이 많은 ISP의 많은 호스트에서 많은 스푸핑 된 패킷을 보내면 대상 컴퓨터 나 네트워크가 넘어집니다.

재정적 인 현실은 공격자가 아니라면 스푸핑에 아무런 비용이 들지 않는다는 것입니다. 고객 근처에서 필터링을 구현하는 데는 비용이 들며, 돈을 쓰는 사람은 자신이 훌륭한 네트워크 시민이라는 사실을 알고는 거의 다른 수익을 실현하지 못합니다.

UDP 및 ICMP가 가장 쉬운 가짜이지만 TCP도 가능합니다. 예측 가능한 시퀀스 번호를 사용하여 악용 할 수있는 안전하지 않은 원격 OS가 필요합니다. 때로는 시퀀스 번호를 변경하여 예측 가능한로드 밸런싱 시스템입니다. 따라서 TCP는 가능하지만 더 어렵습니다.

DNS 스푸핑은 주로 보안 측면에 중점을 두어 누군가가 재귀 해결 자에게 허위 답변을 제출하지 못하게합니다. UDP의 플러딩 측면은 하나의 작은 쿼리 (예 : ‘.’) 이외의 DNS에 국한되지 않으며 응답이 다소 큽니다. 따라서 좋은 증폭 벡터를 만듭니다. 작동하는 많은 다른 UDP 프로토콜이 있지만 DNS는 어디에서나 사용되며 공격을 증폭하는 데 사용할 시스템을 쉽게 찾을 수 있습니다.

DNSSEC는 크기가 4k에 도달 할 수있는 UDP 패킷으로이 문제를 더욱 악화시킵니다.


답변

IP 주소는 일반적으로 화재 및 잊어 버린 UDP 패킷의 경우와 같이 DNS 기반 (D) DOS 공격에 관한 한 간단합니다. HTTP 트래픽의 경우에는 해당되지 않으므로 웹 서버와 동일한 로컬 네트워크에 있거나 (물론 사이트가 호스팅되는 위치에 따라 가능해야 함) 중간 라우터를 제어해야합니다.