정보보안핵심 · 13분 읽기
MITM·DoS의 원리와 방어 관찰
중간자 개입은 통신의 신뢰 문제이고 서비스 거부는 자원과 가용성 문제다. 공격 이름보다 전제 조건과 관찰 지표를 중심으로 이해한다.
개념부터 찾아보기
정의·역할·동작 원리를 독립 페이지에서 확인하세요. 본문의 밑줄 용어에도 설명이 있습니다.
이 노트에서 설명할 수 있게 되는 것
- ARP 경로 변경과 TLS 상대 인증을 서로 다른 계층으로 설명한다.
- 연결 상태·작업 큐·회선의 자원 고갈을 구분한다.
- 트래픽 급증과 공격 판단을 지표·정상 기준선으로 분리한다.
01개념과 구성 요소
- 통신의 중간 경로에 개입하는 상태다. 경로에 있다는 사실만으로 올바르게 검증되는 평문을 읽는 것은 아니다.
- 경계같은 링크의 다음 홉 IP를 MAC에 연결하며 기본 메시지에 암호학적 발신자 인증이 없다.
- 대역폭·연결 상태·처리 슬롯·CPU 같은 자원이 소진되어 정상 이용이 어려워지는 결과다.
02정상 ARP 매핑이 통신 경로를 결정하는 순서
- 다음 홉 선택외부 네트워크 목적지로 보낼 때 IP 으로 같은 링크의 게이트웨이를 선택한다.
- MAC 확인 cache에서 게이트웨이 IP의 MAC을 찾고 필요하면 요청·응답으로 매핑을 얻는다.
- 프레임 전송최종 서버 IP는 유지하면서 프레임 목적지 MAC을 다음 홉으로 설정한다.
- 매핑 변경 영향잘못된 매핑을 학습하면 프레임이 다른 장치로 향한다. 한쪽 또는 양쪽 매핑 변화에 따라 관찰 경로도 달라진다.
- 전달·폐기 결과중간 장치가 전달하면 경로가 유지될 수 있고 버리면 가용성 장애가 된다. 종단 인증·암호화는 이 경로에서도 별도 보호층이다.
03ARP는 같은 링크의 다음 홉을 찾는다
- 목적지 IP·다음 홉 호스트가 다른 네트워크로 보내는 패킷의 목적지 IP는 최종 서버를 가리키지만, 프레임의 목적지 MAC은 같은 링크에 있는 게이트웨이를 가리킨다. cache는 이 로컬 IP↔MAC 관계를 저장한다.
- 인증 부재기본 메시지에는 암호학적 발신자 인증이 없어 잘못된 매핑을 학습하면 프레임이 다른 장치로 향할 수 있다.
- 정상 매핑피해자 호스트의 캐시에 필요한 항목은 게이트웨이 IP→게이트웨이 MAC이고, 게이트웨이에는 피해자 IP→피해자 MAC이다. 오염 후 각각의 오른쪽 MAC이 중간 장치의 MAC으로 바뀌는 것이 핵심이다.
- 계층 구분IP 목적지가 바뀌는 것과 L2 다음 홉이 바뀌는 것을 구분한다.
04한 방향과 양방향 중간 경로
- 한쪽·양쪽 경로피해자의 게이트웨이 매핑만 바뀌면 피해자에서 나가는 방향이 중간 장치를 통과하지만 응답은 원래 경로로 돌아올 수 있다. 양쪽의 매핑이 바뀌면 양방향을 관찰할 수 있는 조건이 된다.
- Half·Full의 의미이러한 설명의 half/full은 여기서 오염된 경로의 방향을 뜻하며 물리 의 duplex 협상과 같은 설정은 아니다.
- 중계·폐기중간 장치가 받은 프레임을 원래 목적지로 전달하면 통신이 계속될 수 있고, 전달하지 않으면 가용성 장애로 나타난다. 커널 forwarding이나 도구 자체 전달 엔진의 차이가 있으므로 특정 시스템 설정 하나를 모든 도구의 필수 조건으로 일반화하면 안 된다.
- 브로드캐스트 범위는 라우터 너머의 다른 브로드캐스트 도메인까지 직접 전파되지 않는다.
05TLS가 보호하는 내용과 여전히 남는 장애
- 종단 인증·암호화올바른 인증서·호스트 키 검증을 수행하는 ·SSH는 경로 중간에 있는 장치가 애플리케이션 평문을 읽거나 바꾸는 것을 막는다. 중간에 위치했다는 사실만으로 암호화가 해제되지 않는다.
- 프록시 CA 신뢰실습 프록시에서 평문을 보는 것은 별도의 실습 CA 신뢰를 설정했기 때문이며 단순 오염과 조건이 다르다.
- 지연·폐기암호화는 패킷을 버리거나 연결을 지연시키는 행위를 막지 않는다. 주소·연결 시각·트래픽 양 같은 메타데이터도 일부 관찰될 수 있다.
- 보호 속성기밀성·무결성 보호와 가용성 보호가 별도 통제를 요구하는 사례다.
06ARP 관찰값을 정상 변화와 구분하기
- 매핑 이상같은 IP에 여러 MAC이 응답하거나 게이트웨이 MAC이 갑자기 바뀌면 조사할 이유가 생긴다. 그러나 정상적인 장애 조치, IP 이동, 가상화 환경의 변경도 갱신을 만든다.
- 정상 변화 자체를 공격 증거로 보는 대신 기존 게이트웨이 정보와 스위치 포트· 바인딩을 연결한다.
- 는 등에서 얻은 신뢰 가능한 IP·MAC··포트 관계와 내용을 비교한다. 정적 IP 장치가 많은 환경은 별도의 신뢰 바인딩 정책이 필요하다.
- 신뢰 포트잘못 지정한 trusted port는 검사를 우회시킬 수 있고, 잘못된 바인딩은 정상 장치를 차단할 수 있다.
text
ip neigh show
# 예시 해석: 게이트웨이의 lladdr가 기준값과 달라졌는지 관찰
# STALE은 일정 시간 확인되지 않은 이웃 상태이며 단독 공격 판정이 아니다.
tcpdump -nni <관찰_인터페이스> -e arp원문에 있는 읽기 중심 관찰 명령입니다. 인터페이스는 실제 실습 장치에 맞춥니다.
LEARN THROUGH PRACTICE
ARP 캐시의 다음 홉 MAC 변경을 패킷과 맞추기
같은 IP가 다른 MAC으로 해석될 때 실제 전송 경로와 통신 영향을 설명한다.
실습 구성과 전제
- 변조를 외부망에서 실행하지 않고 격리 실습의 전후 화면과 PCAP를 읽는다.
- 단말·게이트웨이·중간 장비의 역할과 캡처 위치를 먼저 구분한다.
변경 전 캐시를 기준선으로 둔다
- 캐시는 로컬 링크의 다음 홉 IP를 MAC으로 연결한다. 사진의 서로 다른 두 IP가 서로 다른 MAC에 매핑된 상태를 기준선으로 기록한다.
- 캐시 항목이 dynamic이라는 사실은 자동 갱신될 수 있음을 뜻하며, 신뢰성이 검증됐다는 표시는 아니다.
원본 크기로 보기 ↗- 인터넷 주소와 물리적 주소 두 열이 있고 두 IP의 MAC 값이 서로 다르다.
- 유형은 모두 동적으로 표시된다. 이후 응답에 따라 캐시가 바뀔 수 있는 상태다.
확인 기준기준선에는 단말 위치·게이트웨이 역할·시각을 함께 적는다.
같은 MAC으로 바뀐 매핑을 비교한다
- 변경 후 게이트웨이로 쓰던 IP와 다른 실습 장비 IP가 같은 MAC으로 매핑돼 있다. 이후 프레임은 그 MAC을 목적지로 만들 수 있다.
- 두 IP가 같은 MAC인 현상은 Proxy ·가상화·이중화 구성에서도 가능하다. 정상 설계와 대조해야 공격으로 판단할 수 있다.
원본 크기로 보기 ↗- 전후 화면에서 첫 번째 IP의 MAC이 바뀌었고 두 항목의 MAC이 같아졌다.
- 캐시 자체는 여전히 동적 항목으로 표시된다. 캐시 화면만으로 중간 장비가 패킷을 전달했는지는 알 수 없다.
확인 기준경로 변경과 패킷 전달 성공·차단을 별도로 확인한다.
ARP 응답과 실제 영향의 증거를 연결한다
- PCAP의 sender IP·sender MAC과 캐시 변경을 맞춘다. 사용 여부는 중간 경로에서 평문을 볼 수 있는 범위에 영향을 준다.
- Duplicate IP 경고는 상충하는 관찰을 알리는 단서다. 실제 공격 여부와 양방향 중간자 상태는 추가 패킷·장비 증거로 확인한다.
원본 크기로 보기 ↗- ARP reply가 선택돼 있고 동일 IP에 서로 다른 MAC이 관찰됐다는 경고가 표시된다.
- 원시 프레임의 출발지와 목적지 MAC을 확인할 수 있어 캐시 변경의 입력과 연결할 수 있다.
확인 기준변화만으로 내용 복호화까지 주장하지 않는다.
실습에서 확인한 동작 원리
- IP→MAC 변화는 다음 홉 프레임 목적지를 바꾼다.
- 정상 가상·대리 와 공격을 구분하려면 기준 구성이 필요하다.
설정·출력 추가로 확인하기 15장
아래 화면을 펼쳐 위 실습의 설정값, 명령과 확인 기준을 비교해 보세요. 각 묶음은 별도 실습 기록입니다.
실습 화면 묶음 01 3장
원본 크기로 보기 ↗- 수업 원본 자료 · ARP 정보 변조와 중간 경유 통신을 관찰하는 실습. 원문에서 「공격 시나리오」에 배치된 그림 또는 화면이다.
원본 크기로 보기 ↗- 수업 원본 자료 · ARP 정보 변조와 중간 경유 통신을 관찰하는 실습. 원문에서 「공격 시나리오」에 배치된 그림 또는 화면이다.
원본 크기로 보기 ↗- 수업 원본 자료 · ARP 정보 변조와 중간 경유 통신을 관찰하는 실습. 원문에서 「공격 시나리오」에 배치된 그림 또는 화면이다.
실습 화면 묶음 02 1장
원본 크기로 보기 ↗- 학습 원본 · ARP 스푸핑과 MITM 관찰의 ARP Spoofing에 수록된 화면·도식이다.
실습 화면 묶음 03 1장
원본 크기로 보기 ↗- 학습 원본 · ARP 스푸핑과 MITM 관찰의 ARP Spoofing에 수록된 화면·도식이다.
실습 화면 묶음 04 1장
원본 크기로 보기 ↗- 학습 원본 · ARP 스푸핑과 MITM 관찰의 ARP Spoofing에 수록된 화면·도식이다.
실습 화면 묶음 05 1장
원본 크기로 보기 ↗- 학습 원본 · ARP 스푸핑과 MITM 관찰의 ARP Spoofing에 수록된 화면·도식이다.
실습 화면 묶음 06 1장
원본 크기로 보기 ↗- 학습 원본 · ARP 스푸핑과 MITM 관찰의 ARP Spoofing에 수록된 화면·도식이다.
실습 화면 묶음 07 1장
원본 크기로 보기 ↗- 학습 원본 · ARP 스푸핑과 MITM 관찰의 ARP Spoofing에 수록된 화면·도식이다.
실습 화면 묶음 08 1장
원본 크기로 보기 ↗- 학습 원본 · ARP 스푸핑과 MITM 관찰의 ARP Spoofing에 수록된 화면·도식이다.
실습 화면 묶음 09 1장
원본 크기로 보기 ↗- 학습 원본 · ARP 스푸핑과 MITM 관찰의 ARP Spoofing에 수록된 화면·도식이다.
실습 화면 묶음 10 1장
원본 크기로 보기 ↗- 학습 원본 · ARP 스푸핑과 MITM 관찰의 ARP Spoofing에 수록된 화면·도식이다.
실습 화면 묶음 11 1장
원본 크기로 보기 ↗- 학습 원본 · ARP 스푸핑과 MITM 관찰의 ARP Spoofing에 수록된 화면·도식이다.
실습 화면 묶음 12 1장
원본 크기로 보기 ↗- 수업 원본 자료 · 실습 HTTP 메시지의 내용이 캡처에서 보이는 방식.
실습 화면 묶음 13 1장
원본 크기로 보기 ↗- 수업 원본 자료 · 격리 실습에서 관찰한 HTTP 요청과 패킷.
동작·명령 참고 문서
07TCP Window=0은 수신 버퍼의 흐름 제어
- Receive Window수신자가 window를 0으로 광고하면 현재 더 받을 공간이 없다는 뜻이다. 송신자는 해당 방향의 새 데이터 전송을 줄이고 윈도 갱신을 알아보기 위한 probe를 보낼 수 있다.
- 정상 정체애플리케이션이 소켓 데이터를 읽지 않거나 일시적으로 느려진 정상 상황에서도 발생한다. 혼잡 제어의 congestion window와 수신자가 광고하는 receive window를 구분한다.
- 자원 악용Zero Window를 악용하는 행위는 흐름 제어 상태나 연결 유지 자원을 이용한다. 네트워크 밖에서 임의 패킷 하나를 보내면 어떤 연결이든 멈춘다는 뜻은 아니다.
- 수용 조건패킷이 해당 연결과 일치하고 의 수용 조건을 통과해야 하며, sequence/acknowledgment 값은 암호학적 인증 코드가 아니다.
- 수신 버퍼 부족수신 측이 애플리케이션 처리 지연 등으로 받을 공간이 없으면 window=0을 광고한다.
- 새 데이터 제한송신 측이 해당 방향의 새 데이터 전송을 제한한다. 광고된 receive window는 congestion window와 다른 값이다.
- 상태 재확인송신 측은 윈도 갱신을 확인하기 위한 probe를 보낼 수 있다.
- 수신 재개버퍼가 비고 수신 측이 양의 윈도를 광고하면 허용된 범위에서 데이터 전송을 이어갈 수 있다.
08DoS는 어떤 자원이 먼저 소진되는지로 분해한다
- 고갈 자원대역폭 고갈은 링크 용량, 연결 고갈은 상태 테이블·소켓·worker, 느린 요청은 작업 슬롯과 시간, 계산량이 큰 요청은 CPU를 압박한다. 같은 “접속 불가”라도 병목이 다르면 방어 위치가 달라진다.
- 회선 병목수신 트래픽이 회선 용량을 이미 넘었다면 서버 내부의 규칙만으로 회선 혼잡을 되돌릴 수 없다.
- 제한의 단위연결 수·요청 크기·처리 시간 제한은 어떤 자원을 어느 주체별로 제한하는지 정해야 한다. 뒤 사용자를 하나의 IP로 묶으면 정상 사용자도 영향을 받을 수 있다.
- 정상 지연 대조느린 정상 클라이언트와 자원 점유를 구분할 근거로 현재 연결 수, 수신·처리 속도, 대기열, timeout 원인을 함께 읽는다.
원리 심화
09서비스 체류시간과 자원 점유의 관계
- 자원의 단위연결 슬롯·스레드·파일 디스크립터·큐·메모리는 서로 다른 한도를 갖는다. 먼저 포화한 자원이 전체 처리량을 제한할 수 있다.
- 체류시간요청 처리뿐 아니라 대기·외부 호출·응답 전송 동안에도 자원이 점유될 수 있다. 응답이 느린 원인이 CPU 연산만은 아니다.
- 평균 관계안정된 관측 구간에서 평균 N은 평균 도착률 λ와 평균 체류시간 W의 곱 N≈λW로 추정할 수 있다.
- 흐름과 혼잡 수신 윈도는 수신 측 여유를, 혼잡 윈도는 송신 측 혼잡 제어 상태를 반영한다. 전송 가능량에는 두 제한이 함께 작용한다.
- 보호 경계대기시간·동시성·본문 크기·하위 호출 시간에 서로 맞는 한도를 두어 한 단계의 지연이 모든 자원을 오래 붙잡지 않게 한다.
예제로 추적
10가상 접속 증가에서 병목을 계산하기
- 조건 설정연결마다 슬롯 하나를 점유하고 초당 평균 100개가 도착하며 평균 체류시간이 5초라고 가정한다.
- 정상 점유N≈100×5=500개다. 슬롯 한도가 1,000이라면 이 평균값만 보면 여유가 있지만 순간 피크는 별도다.
- 지연 변화하위 서비스 장애로 체류시간이 30초가 되면 같은 도착률에서 N≈3,000개가 필요하다. 도착률 증가 없이도 한도를 넘는다.
- 한도 도달1,000개 제한에 걸리면 대기·거부·timeout 중 정책에 따른 결과가 나타난다. 실제 포화 상태에서는 안정 상태 공식의 가정도 깨질 수 있다.
- 원인 판정접속 수·처리시간·대기열·하위 호출 오류를 같이 보면 부하 증가와 처리 지연의 기여를 구분할 수 있다. 이 수치만으로 공격 의도를 판정하지 않는다.
검증·예외
11Window=0·재전송·높은 지연의 구분
- 수신 버퍼Zero Window는 수신 측이 더 받을 공간을 알리지 못하는 상태다. 애플리케이션이 읽지 못하는 이유와 메모리·스케줄링 상태를 본다.
- 경로 손실재전송·중복 ACK·RTT 변화는 패킷 손실이나 재정렬의 단서다. 단일 캡처의 누락을 네트워크 손실로 확정하지 않는다.
- 대기열 위치연결 대기·애플리케이션 큐·DB 풀 중 어느 곳에서 시간이 늘었는지 단계별 시간과 점유량으로 좁힌다.
- 정상 변화배포·정기 작업·장비 이중화 전환도 트래픽과 를 바꿀 수 있다. 시간·경로·자산 변경 기록을 관찰값과 연결한다.
12패킷·호스트·장비 증거를 연결하는 법
- 증거 연결 이상은 이웃 테이블과 스위치 바인딩, zero window는 방향별 window 변화와 애플리케이션 읽기 상태, 서비스 불능은 큐·CPU·메모리·회선 지표를 함께 설명해야 한다. 패킷에 zero window가 찍혔다는 사실만으로 의도적 공격이라고 결론 내리면 원래의 서버 병목을 놓칠 수 있다.
- 통제 역할 보호·망 분리·종단 암호화는 서로 다른 실패 지점을 줄인다. 는 대신 를 사용하므로 동일한 용어와 필터를 그대로 적용하지 않는다.
- fragrouterfragrouter는 IP 단편화 기반 시험 도구이며 일반 중계 장치의 이름이 아니다.
설명과 함께 보는 보조 도식
처리 과정
모식도 · 서비스 자원이 소모되는 지점
대역폭·연결 상태·업무 처리·DB를 다른 병목으로 본다.
01회선들어오는 트래픽의 대역폭
02연결 처리소켓과 연결 상태
03작업 큐애플리케이션의 동시 작업
04DB·외부 의존질의와 하위 서비스 처리
01
유입
요청량과 회선의 포화 정도를 확인한다.
전체 단계를 한 번에 읽기
- 01
유입
요청량과 회선의 포화 정도를 확인한다.
- 02
연결 축적
연결 수와 연결 유지 시간을 비교한다.
- 03
작업 포화
요청 수와 처리 비용, 대기 시간을 함께 본다.
- 04
의존성 확인
병목이 DB나 외부 호출인지 구분한다.
- 완화 효과
- 오류율·지연의 회복으로 확인
학습 확인
이해했는지 확인하기
- ARP·경로 변경에 정상 이중화나 장비 교체 원인이 있는지 확인한다.
- 요청량과 오류율·지연·자원 사용량을 함께 비교한다.
- 완화 후 정상 사용자 기능과 회복 지표를 확인한다.