[17] 네트워크 해킹기법과 대응책
9/07/2017 05:36:00 오후
■ Buffer OverFlow 공격
-> 프로그래밍시 경곗값 검사를 적용, 최신 OS로 패치■ 포맷 스트링 버그(Format String Bug) 공격
- p. 309printf 등의 함수에서 문자열 입력 포맷을 잘못된 형태로 입력하는 경우 나타나는 버그이다. 포맷 스트링 버그는 버퍼 오버ㅌ플로우에 비해 기술 수준이 낮다. 프로그래밍시에 버그 발생을 줄이는 노력만으로 취약점을 줄일 수 있다.
---------------------------------------------------------------------
#include <stdio.h>
main(){
char "buffer = "ABCDSEF"
printf("%S\n", buffer);
}
---------------------------------------------------------------------
포맷 스트링
%d : 정수형 10진수 상수(integer) / %f : 실수형 상수(float) / %lf : 실수형 상수(double)%s : 문자 스트링(const)(unsigned)char *) / %u : 양의 정수(10 진수)
%o : 양의 정수(8 진수) / %x : 양의 정수(16 진수) /%s : 문자열
%n : int(쓰인 총 바이트수) / %hn : %n의 반인 2바이트 단위
-> 프로그래밍시에 데이터형태 (포맷 스트링)을 명확히 정의한다.
■ 서비스 거부 공격(DoS: Denial of Service) 공격
- p. 437
정당한 사용자가 정보 시스템의 데이터나 자원을 적절한 대기 시간 내에 사용하는 것을 방해하는 행위로, 주로 시스템에 과도한 부하를 일으켜 정보 시스템의 사용을 방해하는 공격방식이다.
소프트웨어의 취약점을 이용한 공격 / flooding 유형 공격 이 존재한다.
-> 대응방법은 아래와 같다.
1) 접속 타임아웃 타이머 시간을 축소한다.
2) 시스탬 최신 패치
3) 침입탐지시스템(IDS) or 침입방지시스템(IPS)를 사용
4) Syn_Cookie
서버에서 클라이언트로 보내는 SYN+ACK 패킷에 임의로 생성되는 시퀀스 넘버 대신 서버에서 암호화 기술을 이용해 인증 정보가 담긴 시퀀스 넘버를 생성하여 클라이언트에 보내는 것이다. 즉, 클라이언트부터 SYN패킷을 받더라도 Syn_Cookie만 보내놓고 세션을 닫아버린다. 따라서 세션을 열고 기다릴 필요하 없으므로 SYN Flooding 공격이 통하지 않게 된다.,
위와 같은 방법을 사용하여 SYN Flooding 공격을 대응할 수 있다.
■ TCP SYN Flooding 공격
p.438
Dos 공격의 한 종류이다.
공격자가 다랑의 SYN 패킷을 서버로 전달, 서버의 대기큐를 가득 채워서 새로은 클라이언트의 연결 요청을 무시하도록 하여 장애를 유발하는 공격기법.
TCP 프로토콜의 구조적인 문제점인 3-Way Handshake 방법에서 Half-Open 연결시도가 가능하다는 취약점을 이용한 공격.
-> SYN Received 대기시간을 축소하여 대응한다.
SYN Flooding 공격 시 3-웨이 핸드셰이킹
■ ARP Spoofing 공격
p. 467
스푸핑 공격의 한 종류
ARP는 호스트의 IP주소를 랜카드의 하드웨어 주소 (MAC주소)로 변경하는 프로토콜이다.
공격내용
1) 호스트-A와 호스트-B의 MAC Address테이블을 Sniffer의 MAC으로 위장
2) 호스트-A와 호스트-B는 상호통신 시 위장된 Sniffer의 MAC으로 데이터 전송
3) Sniffer는 데이터 캡쳐 후 각각 호스트에 패킷 재전송(재전송 과정 시 악성코드를 삽입하여 전송 가능)
- ARP Table을 속이기 위해 ARP패킷을 지속적으로 전송(네트워크 부하 유발)
->
대응책은 아래와 같다.
1) 회사 내부자 관리 감독 (DMZ 관리자 감독)
DMZ(외부인터넷에 서비스를 제공하는 서버가 위치하는 네트워크)를 관리하는 관리
가 APR스푸핑 공격자와 결탁하여 중요 시스템이 ARP스푸핑이 되는 경우를 방지해야함.
2) static 옵션의 지정.
MAC 주소값을 고정으로 설정한다.
0 개의 댓글