모든 IPv4 대역에는 대응하는 IPv6 대역이 있습니다
놓치면 안 되는 IPv6 보안 고려 사항
IPv6를 주소 공간만 더 넓은 IPv4의 대체재로 여기기 쉽습니다. 보안 측면에서는 IPv4의 모든 것이 그대로 적용될 것이라고 가정하기보다, 몇 가지 실제 차이를 이해해 둘 필요가 있습니다.
차단 목록은 더 길게가 아니라 별도로 만들어야 합니다
IPv6에도 고유한 사설, 루프백, 링크 로컬 대역이 있으며, IPv4의 대응 대역과는 구조가 다릅니다. IPv4 대역만 파싱하고 필터링할 줄 아는 보안 검사는 IPv6 쪽에서는 이 모든 주소를 조용히 그대로 통과시킵니다. IPv6가 덜 안전해서가 아니라, 그에 상응하는 보호 기능이 아예 만들어지지 않았기 때문입니다.
| 구분 | IPv4 대역 | IPv6 대응 대역 |
|---|---|---|
| 루프백 | 127.0.0.0/8 | ::1 |
| 사설 / 고유 로컬 | 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 | fc00::/7 |
| 링크 로컬 | 169.254.0.0/16 | fe80::/10 |
| 미지정 | 0.0.0.0/8 | ::/128 |
IPv4 매핑 주소: 놓치기 쉬운 사각지대
IPv6에는 IPv4 주소를 IPv6 주소 안에 넣는 표기법이 있습니다. 예를 들어 ::ffff:127.0.0.1은 일반 127.0.0.1과 같은 루프백 주소를 IPv6 형식으로 쓴 것입니다. IPv4 루프백은 제대로 필터링하면서 이렇게 내장된 형식을 풀어서 검사하지 않는 검사는, 원래라면 즉시 차단했을 주소와 기능적으로 동일한 주소를 승인하게 됩니다.
- 확인된 주소를 차단 목록과 대조하는 모든 시스템은 IPv4 규칙이 자동으로 일반화되리라 가정하지 말고, IPv6를 위한 별도의 완전한 로직을 갖추어야 합니다.
- IPv4 매핑 IPv6 주소는 불투명한 IPv6 주소로 평가하지 말고, 풀어서 IPv4 규칙으로 구체적으로 검사해야 합니다.
- 듀얼 스택 시스템(대부분의 최신 시스템)은 두 검사를 일관되게 적용해야 합니다. 공격자는 검사가 더 약한 쪽의 주소 체계를 그대로 이용하기 때문입니다.
이 중 어느 것도 IPv6를 피해야 할 이유는 아닙니다. 보급이 확대되는 것은 대체로 좋은 일이며, IPv6 고유의 공격 표면이 본질적으로 IPv4보다 큰 것도 아닙니다. 주소를 다루는 보안 로직이 한쪽 주소 체계에 다른 쪽을 뒤늦게 덧붙인 것이 아니라 두 주소 체계 모두를 대상으로 실제로 구현되고 테스트되었는지 확인해야 한다는 뜻입니다.
NAT64는 알아 둘 만한 두 번째 변환 계층을 추가합니다
일부 IPv6 전용 네트워크는 클라이언트가 IPv4 전용 인터넷에 계속 접근할 수 있도록 NAT64와 DNS64를 사용합니다. DNS64는 A 레코드만 있는 도메인에 대해 AAAA 레코드를 즉석에서 합성하며, IPv4 주소를 특수 프리픽스(64:ff9b::/96이 잘 알려진 기본값) 안에 넣습니다. NAT64는 그 합성 주소로 향하는 트래픽을 네트워크 경계에서 실제 IPv4로 변환합니다. 정당하고 유용한 메커니즘이지만, 그 특정 대역에 속하는 주소는 단독으로 평가할 순수한 IPv6 주소가 아니라 IPv6의 옷을 입은 IPv4이며, IPv4 매핑 주소와 마찬가지로 풀어서 IPv4 규칙으로 검사해야 한다는 뜻입니다.
보안 로직 테스트는 두 주소 체계를 모두 테스트하는 것을 의미합니다
자동화된 테스트는 조용히 IPv4 쪽으로 치우치기 쉽습니다. 대부분의 예시 도메인, 테스트 픽스처, 간단한 수동 확인이 아무도 의식적으로 결정하지 않았는데도 IPv4를 기본으로 사용하기 때문입니다. 주소를 확인하고 필터링하는 모든 기능의 테스트 스위트는 IPv6 커버리지만큼만 신뢰할 수 있습니다. 위의 사설, 루프백, 링크 로컬 대역, IPv4 매핑 주소, NAT64 방식으로 합성된 주소 각각에 대해 “아마 똑같이 동작할 것”이라는 생각이 아니라 명시적인 단언이 필요합니다. 주소 처리 보안 코드는 테스트되지 않은 경로와 고장 난 경로를 구분할 수 없다가, 공격자가 그 차이를 먼저 찾아내고서야 드러나는 대표적인 로직입니다.
도메인의 공개 DNS 주소를 확인해야 하나요? Domain IP Lookup 도구를 사용해 보세요.
관련 글
위조된 응답으로 경쟁에서 이기기
공격자
진짜 응답과 경쟁
위조된 응답
먼저 도착
리졸버 캐시
공유하는 모두에게 오염됨
DNS 스푸핑과 캐시 포이즈닝: 실무 개요
트래픽을 우회시키기 위해 DNS 응답을 위조하는 것은 네트워킹에서 가장 오래된 수법 중 하나이며, DNSSEC와 최신 리졸버 방어가 존재하는 이유입니다.
공개 주소 공간과 사설 주소 공간
공개 IP
192.0.2.10
전역에서 고유, 어디서나 라우팅 가능
사설 대역
공개 인터넷에서는 라우팅 불가
사설 IP 대역이 공개적으로 확인되어서는 안 되는 이유
10.0.0.0/8, 192.168.0.0/16과 그 이웃 대역은 전 세계에서 고유하지 않도록 만들어졌습니다. 이것이 DNS에서 왜 중요한지 설명합니다.
SSRF는 서버를 의도치 않은 프록시로 만듭니다
공격자
요청 URL 조작
취약한 서버
SSRF에 속아 가져옴
169.254.169.254
메타데이터 엔드포인트
자격 증명
공격자에게 반환
클라우드 메타데이터 엔드포인트, 숨은 공격 표면
라우팅되지 않을 것처럼 보이는 IP 주소 하나가 클라우드 인스턴스의 자격 증명과 설정으로 이어지며, SSRF의 단골 표적이 됩니다.