본문 바로가기
공부/네트워크

TCP/IP 방식의 계층별 취약점에 기반한 공격 유형

by 맑은청이 2020. 9. 23.
반응형

1. 물리 계층

 

물리 계층의 전송 단위 : 비트 

비트 단위를 처리하는 대표적인 장치 : 회선, 허브 

 

비트란 단순한 전기 신호를 의미하고 전기 신호를 이용한 아주 간단한 공격은 '회선 태핑(tapping)' 

태핑이란 전기 신호를 직접 자신에게 끌어오는 방식.

 

광섬유는 이러한 회선 태핑을 통한 방법이 불가능한 전송 매체.

이는 도청이나 감청 등이 불가능하다는 뜻이지만 중간지점에서 광 섬유만을 구부려 약간의 광 신호를 검출해 전송 중인 통신 데이터를 수신하는 취약점이 있음이 드러났다. 

 

이렇게 태핑이 아닌 전송 매체에 흐르는 전송 신호를 검출해 데이터를 해석하는 일련의 기법을 템페스트(tempest) 공격이라고 한다. 

유선보다는 무선 분야에서 광범위하게 일어난다.

 

길거리를 배회하며 특정 무선 AP 신호를 탐지하는 워 드라이빙(war driving)도 템페스트 공격에 일종이다.

 

TCP/IP 보안은 응용 계층에 치중하는 감이 있어 사람들인 물리 계층에서 취약점을 많이 찾아냈다. 

 

물리게층은 기계적, 전기적, 기능적, 절차적 긴으을 수행하기 때문에 전기, 전자 분야 등과 밀접한 관계가 있다. 그렇기 때문에 이런 물리 공간에 대한 보안도 중요한 고려 대상이어야 한다. 

 

 

2. 데이터 링크 계층

데이터 링크 계층의 전송 단위 : 프레임

프레임 단위를 처리하는 대표적인 장치 : LAN 카드, 스위치, 무선 AP 

데이터 링크 계층에서 나타나는 공격 : 맥 플러딩(MAC flooding) 공격, ARP 스푸핑(spoofing) 공격, VLAN 홉핑 공격 

 

칼리리눅스 운영체제에서 터미널에 macof 명령어를 치면 맥 플러딩 공격을 실행할 수 있다. 

 

맥 주소를 엄청 많이 생성하는 것을 볼 수 있다. 

 

맥 플러딩은 불필요한 맥주소로 스위칭 테이블을 채워 스위치가 플러딩으로 동작하게 만들어서 스위치를 허브와 같은 존재로 전락시켜버리는 공격이다. 이는 스위치 포트마다 사용자의 맥주소를 정적으로 설정해서 방어할 수 있다. 가짜 맥주소가 들어오면 해당 포트를 일정 시간 블로킹 상태로 전환한다. 

 

ARP 스푸핑은 ARP 캐시 테이블에 저장한 대응 관계를 조작해 수행한다. 

 

VLAN 홉핑 공격이란 자신과 다른 VLAN 영역으로 넘어가는 기법이다. 

 

DHCP 고갈 공격이란 DHCP 환경에서 공격자가 가짜 맥 주소를 브로드 캐스트 방식으로 무수히 생성하면 LAN 영역에 위치한 DHCP 서버는 맥주소에 대응하는 IP 주소를 계속 공격자에게 할당한다. 이후 IP 주소가 고갈되면 주소 할당이 불가능해지는 일종의 플러딩 공격에 해당한다. 

 

 

 

3. 네트워크 계층

네트워크 계층 전송 단위 : 패킷 

패킷 단위를 처리하는 대표적인 장치 : 라우터 

네트워크 계층에서 나타나는 공격 : IP 스푸핑 공격에 기반한 랜드(LAND) 공격, ICMP 플러딩 공격, ICMP 스머핑 공격

 

랜드공격은 IP 스푸핑 공격을 변형한 기법으로 출발지 IP 주소를 목적지 IP 주소와 동일하게 설정해 공격 대상자에게 인위적인 과부하를 유발하는 네트워크 계층의 플러딩 공격

 

ICMP 플러딩 공격은 죽음의 핑 공격이라고 부른다. 이는 보통 ICMP 페이로드 크기를 65,000바이트 이상 설적하고 IP 스푸핑 공격을 통해 출발지 IP 주소를 매순간 임의로 변경해 전송한다. 수신 측에서는 매번 분할 패킷을 재조립한 뒤 응답패킷을 전송해야하기 때문에 그만큼 과부하가 클 수 밖에 없다. 

 

 

 

4. 전송 계층

전송 계층 전송 단위 : 세그먼트/데이터그램 

전송 계층에서 나타나는 공격 : TCP SYN 공격

 

TCP SYN 공격은 TCP 3단계 연결 속성을 악용한 공격이다. 매순간 엄청난 SYN 플래그를 쏟아부어 과부하 상태에 빠지게 하는 것이다. 

 

본크/보인크(Bonk/Boing) 공격은 TCP 헤더 중 일련번호 항목을 조작해 수신측에서 정상적인 재조립이 불가능하게 함으로써 과부하를 유발한다. 

 

 

5. 응용 계층 

 

응용계층에는 무수한 공격이 있습니다. 오늘은 웹 분야에서 일어나는 플러딩 공격에 국한해 이야기 해보겠다. 

응용게층에서는 사용자의 정보를 담는 페이로드를 생성하는데 HTTP 페이로드는 크게 헤더와 바디로 이루져있다. 

바디에는 HTML 코드나 사용자 계정 정보가 있다. 헤더에는 서버의 바디 처리 방식 등에 대한 정보가 있다. 

다시 말해 서버는 헤더를 먼저 수신한 후 헤더에 설정한 정보에 따라 바디를 처리한다. 

헤더의 종류에는 요청 헤더, 응답 헤더, 일반 헤더, 실체 헤더 등이 있다. 

 

HTTP GET 플러딩 공격은 가장 간단한 플러딩 공격으로 F5를 반복적으로 눌러서 웹 서버 측에 부하를 내는 거다. 

 

HTTP GET 캐시 제어 플러딩 또는 CC 공격은 일반 헤더의 캐시 설정 부분을 조작해 캐싱 서버가 아닌 서버에서 직접 처리를 요청해서 서버에 부하를 유발하는 기법이다. 

 

HTTP 지속적 데이터 플러딩 공격은 서버로 전달하는 패킷에 헤더 부분을 제거하고 바디 부분만 지속적으로 전송하는 기법이다. 제어 정보도 없는 상태에서 바디를 처리할려는 부하가 일어날 수 밖에 없다. 

 

슬로우 HTTP 헤더 공격 또는 슬로우리스 공격은 헤더와 바디의 구분자(\r\n\r\n)을 애매하게 설정하면 서버가 헤더 정보를 완전히 수신할 때까지 연결을 유지하는데 이때 부하가 일어나게 하는 기법이다. 

 

슬로우 http 포스트 공격 또는 러디 공격은 서버로 대량의 데이터를 전송할 때 장시간 동안 분할 전송하는 기법이다. 이는 연결 타임아웃 설정을 통해 방어할 수 있다 .

반응형