2020. 7. 15. 14:21ㆍ컴퓨터언어/소프트웨어공학
🗝 시스템 보안 구축 학습목표
서비스거부 공격의 개념과 서비스거부공격의 종류별 특징 이해하기
서버인증과 서버접근통제의 개념을 이해하고 인증의 종류와 접근통제 정책의 종류 이해하기
보안아키텍처와 보안Framework의 개념 및 보안통제 항목의 종류 이해하기
👍 서비스 공격이란?
서비스 거부 공격이란, 서버가 서비스를 제대로 못하도록 공격하는 것을 말한다.
따라서 서비스 거부 공격(DoS; Denial of Service)이라고도 한다.
서버는 클라이언트의 서비스 요청에 대해 서비스를 제공하는 의무가 있는데, 서버 자신의 능력을 초과하는 요청을 동시다발적으로 받게되면 서비스 불능상태가 된다.
서비스 거부 공격은 바로 이 점을 이용한 공격이다.
표적이 되는 서버의 자원을 고갈시킬 목적으로 다수의 공격자 또는 시스템에서 대량의 데이터를 한 곳의 서버에 집중적으로 전송함으로써, 표적 서버의 정상기능을 방해하는 것이다.
다음은 DoS 공격의 유형이다.
👊 PingFlood
클라이언트와 서버 사이에서 패킷의 송수신을 점검할 때 사용하는 Ping 테스트에서, 하나의 사이트로 매우 많은 양의 ICMP echo request를 요청함으로써 서버 시스템 자원이 모든 요청에 응답하느라 자원을 고갈해버리는 점을 이용한 공격 방법
👊 Ping of Death(죽음의 핑)
Ping 명령으로 패킷을 보낼 때 원래는 65,536 byte가 패킷의 최대크기이지만, 이를 초과하여 전송함으로써 공격 대상의 네트워크를 마비시키는 공격 방법
최근에는 Jolt, sPING, ICMP bug, IceNewK 등의 변종공격에 대비하여 ICMP Ping 메시지가 전송되지 못하도록 방화벽에서 차단하는 기술이 개발되었다.
네이버는 아예 Ping을 못받도록 막아놓았다.
👊 SMURFING(스머핑)
패킷의 송신주소를 공격대상의 IP주소로 위장하고, 해당 네트워크 라우터의 브로드캐스트 주소를 수신지로 하여(원래 브로드캐스트 주소에는 IP를 할당할 수 없다), 엄청난 양의 데이터를 집중적으로 보내 전체 네트워크를 마비시키는 공격방법
브로드캐스트는 네트워크 내 모든 컴퓨터에 엄청난 양의 메시지를 전송하게 되고, 다시 그 컴퓨터들은 중앙컴퓨터에 한꺼번에 응답을 해야 하므로 서버가 마비되는 것이다.
각 네트워크 라우터에서 브로드캐스트 주소를 사용할 수 없게 미리 설정하여 방지해야 한다.
👊 SYN Flooding
클라이언트와 서버가 통신할 때 TCP의 3-way-handshake의 허점을 이용한 공격방법
TCP는 전송계층으로서 신뢰성 있는 데이터 전송을 위해, 실제 전송이 이루어지기 전에 3단계에 걸친 세션을 거친다.
- 1단계 : 클라이언트가 서버에게 먼저 "나 요청 보내도 돼?"라고 말을 건네는 SYN(Syncronize Sequence Numbers) 신호 보내기
- 2단계 : 서버가 클라이언트의 SYN 신호를 받고, 이어서 확인차 ACK(Acknowledgment) 신호 보내기
- 3단계 : 클라이언트가 서버로부터 ACK 신호를 받고, 다시 ACK 신호를 서버에게 보내면, 연결이 이루어짐
그리고 2단계에서는 서버가 ACK 신호를 보냄과 동시에 클라이언트의 접속을 받아들이기 위해 메모리의 일정 공간을 확보하게 된다.
바로 이때, 공격자가 클라이언트의 주소를 존재하지도 않는 가상으로 만들어서 행동한다면, 서버는 아무도 없는 이상한 곳에 ACK 신호를 뿌리면서 메모리만 계속 확보한 채 대기하게 되고, 이는 결국 동시 사용자 수가 모두 대기상태로 빠져 네트워크 불능상태로 된다.
SYN Flooding은 SYN 수신대기시간을 줄이거나 침입차단시스템을 활용함으로써 방지할 수 있다.
👊 TearDrop
데이터를 주고받을 때는 용량을 줄이고자 송신측에서 원본 데이터를 패킷으로 쪼개어 전송하고, 수신측에서 이를 다시 조립하여 렌더링하게 된다.
이때 분할 순서를 알 수 있도록 Fragment Offset 값도 함께 전송하는데, TearDrop은 이 Offset값을 변경시켜서 수신측이 패킷을 재조립할 때 오류로 인해 과부하를 발생시켜 시스템이 다운되도록 하는 공격방법이다.
TearDrop에 대비하기 위해서는 Fragment Offset이 잘못된 경우 해당 패킷을 폐기해야 한다.
👊 Land
패킷을 전송할 때 송신IP주소와 수신IP주소를 모두 공격 대상의 IP주소로 설정한 후 공격대상에게 전송하는 것으로, 이 패킷을 받은 공격 대상은 송신IP주소가 자기자신이므로 스스로에게 무한응답하게 된다.
송신IP주소와 수신IP주소를 검사함으로써 Land를 막을 수 있다.
👊 DDos(Distributed Dos; 분산서비스공격)
여러 곳에 분산된 공격 지점에서 한 곳의 서버에 대해 분산 서비스 공격을 수행하는 것으로, 네트워크에서 취약점이 있는 호스트들을 탐색한 후, 이 호스트들에 분산 서비스 공격 툴을 설치하여 에이전트로 만든 후 DDoS 공격을 실시한다.
공격의 범위를 확대하기 위해 일부 호스트에 다수의 에이전트를 관리할 수 있는 핸들러 프로그램을 설치하여 마스터로 지정한 후 공격에 이용하기도 한다.
'컴퓨터언어 > 소프트웨어공학' 카테고리의 다른 글
🗝 시스템 보안 구축 #3 - 접근통제 (0) | 2020.07.15 |
---|---|
🗝 시스템 보안 구축 #2 - 서버인증 (0) | 2020.07.15 |
🔐 소프트웨어 개발 보안 구축 #10 - 시간 및 상태 (0) | 2020.07.14 |
🔐 소프트웨어 개발 보안 구축 #9 - API 오용 (0) | 2020.07.14 |
🔐 소프트웨어 개발 보안 구축 #8 - 캡슐화 (0) | 2020.07.14 |