IP 스푸핑이란 무엇이며 어떻게 대비해야 할까
위조된 출발지 주소로 할 수 있는 일과 할 수 없는 일, 응답이 중요한 이유, 출발지 검증과 사용자 신원 확인의 차이를 살펴봅니다.

회신 주소는 베껴 쓸 수 있습니다. 수신자에게 어디로 답장을 보내야 하는지는 알려 주지만, 누가 메시지를 보냈는지를 증명하지는 않습니다.
직접 보내지 않은 편지에도 자신의 주소가 발신 주소로 적혀 있을 수 있습니다. 주소는 수신자에게 답장을 어디로 보내야 하는지 알려 줄 뿐, 누가 편지를 썼는지는 증명하지 않습니다. IP 스푸핑은 인터넷 통신에서 이와 비슷한 틈을 이용합니다.
무엇을 위조하는가?
정보는 패킷 형태로 네트워크를 이동합니다. 각 IP 패킷에는 목적지 주소와 출발지 주소가 있습니다. 스푸핑은 그 패킷에 거짓 출발지 주소를 넣는 것을 뜻합니다. 별도의 검증 체계로 그 주소의 타당성을 확인하지 않는 한, 수신자는 패킷이 주장하는 출발지를 보게 됩니다.
IP 주소는 네트워크가 트래픽을 전달하도록 돕습니다. 사람의 신분증은 아닙니다. 여러 사람이 하나의 공인 주소를 공유할 수 있고, 기기의 주소도 바뀔 수 있습니다. 따라서 특정 IP에서 오는 트래픽을 허용하는 규칙은 로그인이나 암호학적 신원 확인보다 더 좁은 범위의 질문에 답합니다.
응답이 중요한 이유
누군가 자신의 요청에 당신의 주소를 출발지로 넣어 보냈다고 가정해 보겠습니다. 서비스는 일반적으로 당신 쪽으로 응답을 보냅니다. 요청을 보낸 사람이 그 응답을 자동으로 받거나 당신의 컴퓨터에 접근할 수 있게 되는 것은 아닙니다.
이는 많은 애플리케이션이 사용하는 전송 프로토콜인 TCP에서 중요합니다. 연결을 열려면 양방향으로 정보를 주고받아야 하며, 성립된 연결은 자신의 상태를 추적합니다. 주소를 복사하는 것만으로는 이 교환이 완료되지 않습니다. TCP 명세는 이러한 연결 및 시퀀스 검사를 설명합니다. 유용한 보호 장치이지만, 서비스나 사용자를 인증하는 일을 대신하지는 않습니다.
위조된 주소가 그래도 피해를 일으킬 수 있는 이유
공격자는 대화를 원하지 않을 수 있습니다. 서비스가 다른 사람에게 원치 않는 응답을 보내게 하려는 것일 수도 있습니다. 많은 서비스가 응답하면 피해자는 요청한 적 없는 트래픽을 받게 됩니다. 이것이 반사 공격입니다. 응답이 요청보다 훨씬 크다면 증폭도 발생합니다.
다른 공격은 직접 자원을 고갈시키거나 출발지 주소를 지나치게 신뢰하는 서비스를 악용하려 합니다. 결과는 서비스, 네트워크 경로, 보호 장치에 따라 달라집니다. 스푸핑만으로 암호화된 세션을 읽거나 계정을 탈취할 수 있는 것은 아닙니다.
서로 다른 위치에서 이루어지는 두 가지 검사
네트워크 경계에서 운영자는 해당 연결로 들어와서는 안 되는 출발지를 주장하는 트래픽을 거부할 수 있습니다. 예를 들어 한 고객의 연결에서 전혀 관계없는 다른 고객의 주소 범위에 속하는 척하는 패킷이 전송되어서는 안 됩니다. 이것이 BCP 38 출발지 필터링의 기본 원칙입니다.
애플리케이션 계층에서는 인증을 통해 누가 참여할 자격이 있는지 확인합니다. HTTPS는 올바르게 구성하고 검증했을 때 TLS를 사용해 서버를 인증하고 연결을 보호합니다. 로그인은 이와 별개로 계정의 신원을 확립합니다. 그럴듯해 보이는 주소는 어느 검사도 대신할 수 없습니다.
무엇을 할 수 있을까
네트워크를 운영하는 사람이 아니라 인터넷을 이용하는 사람이라면, 소프트웨어를 최신 상태로 유지하고 인증된 암호화 연결을 사용하는 서비스를 이용하며 인증서 경고를 진지하게 받아들이세요. 이러한 조치는 자신이 참여하는 통신을 보호합니다. 인터넷 연결에서 위조된 트래픽을 걸러 내는 일은 네트워크 운영자의 몫이며, 더 강력한 비밀번호로 해결할 수 있는 일이 아닙니다.
네트워크나 서비스를 운영한다면 출발지 검사와 인증을 어디에 배치해야 하는지부터 살펴보세요. 반사, 플러딩, 관련 용어를 더 명확히 이해하려면 서로 다른 공격 패턴을 이어서 읽어 보세요.
주장을 뒷받침하는 장치를 살펴보기
여기서 도움이 되는 습관은 시스템이 실제로 무엇을 검증하는지 묻는 것입니다. Lu Heng은 현실의 층위와 상징 권력을 다룬 노트 20에서 이 질문을 제도와 권력에 관한 더 넓은 논의로 확장합니다. 그 글은 더 큰 논지를 전개합니다. 여기서 든 네트워크 사례는 주장과 그것을 뒷받침하는 장치를 구분하는 구체적인 방법일 뿐입니다.
이 글에 의견 남기기
기존 계정으로 로그인하면 댓글을 남길 수 있습니다.