스니핑과 스푸핑 그리고 그에 따른 방어법

Programming/Security | 2011. 12. 4. 14:12
Posted by 신이내린프로그래머

☐ 스니핑이란

• 사전적인 의미는 ‘코를 킁킁거리다’. 실제로는 네트워크 상에서 자신이 아닌 다른 상대방의 패킷 교환을 엿듣는 것을 의미. 이러한 스니핑을 가능하게 해주는 도구들을 스니퍼 Sniffer 라고 함.

• TCP/IP 프로토콜은 학술적인 용도로 인터넷 초창기 이전부터 설계된 프로토콜이기 때문에 보안은 크게 고려하지 않고 시작되었음. 스니핑은 이러한 보안의 기본 요소 중 기밀성을 해치는 공격 기법


☐ 스니핑의 방어

• SSL 적용

o HTTP, IMAP, POP, SMTP, Telnet 등은 SSL을 적용하여 HTTPS, IMAPS, POPS, SMTPS, Telnets 등으로 사용 가능.

o 사용자 이름, 패스워드 및 전자 상거래 결재 정보 등 웹 서핑의 내용을 암호화 할 수 있음

• PGP, S/MIME

o SMTP 상으로 보내지는 메일은 기본적으로 암호화되지 않기 때문에 스니핑하여 그 내용 쉽게 얻어낼 수 있음.

o PGP, S/MIME 등을 이용해 메일에 대한 암호화 기능 제공

• SSH

o 암호화 통신 제공해 Telnet, FTP, RCP, Rlogin 등을 대치 가능

• 사설망 혹은 가상사설망 VPN

o 스니핑이 우려되는 네트워크 상의 전용선으로 직접 연결해 중간에 도청되는 것을 막는 사설망. 하지만 거리가 멀어질수록 비용 높아짐

o 일반 인터넷 회선 이용해 사설망의 효과 내는 것이 VPN.


☐ 스푸핑이란

• 사전적인 의미는 '속이다'.

     • IP주소, 호스트 이름, MAC 주소 등을 속이는 공격

     • 범위 : 인터넷이나 로컬에 존재하는 모든 연결에 스푸핑이 가능

     • 종류 : MAC, IP, DNS, ARP Spoofing

     • IP 충돌 문제 역시 고의가 아닌 IP스푸핑일 경우도 있음

     • Sniffing 시 사용됨

     • Tools : MAC Address Change, Winarp_sk, Win_dnsspoof


☐ 스푸핑의 방어

• 윈도우키 + R 키를 누르시면 실행창이 뜹니다

       거기서 cmd 라고 치시면 도스창이 뜨게 되는데요

       ipconfig 라고 입력하시면

       Connection-specific DNS Suffix . :

       IP Address. . . . . . . . . . . . : 192.168.0.9

       Subnet Mask . . . . . . . . . . . : 255.255.255.0

       Default Gateway . . . . . . . . . : 192.168.0.2

       이런 화면이 나옵니다.

       arp -a 라고치시면 밑에 화면이 나오게 되구요

       Interface: 192.168.0.9 --- 0x2

       Internet Address Physical Address Type

       192.168.0.2 00-06-c4-04-00-d8 dynamic

       위에 ipconfig 라고 치신거에서 Default Gateway . . . . . . . . . : 192.168.0.2<-- 이부분           이 디폴트 게이트 웨이라는 곳인데요.. 이것을 arp 테이블에 고정적 주소로 넣어주시                 면 arp 스푸핑 공격에서 안전하실 수 있습니다.

       넣는법은

       arp -s 192.168.0.2 00-06-c4-04-00-d8 라고 치시면

       192.168.0.2 00-06-c4-04-00-d8 static 이렇게 dynamic-> static 으로 변경됩니다..

       이제 어떤상대가 스푸핑 공격으로 패킷을 날려도 공격이 먹혀들지 않습니다..

 

IDS, IPS, 방화벽, 웹방화벽 구분

Programming/Security | 2011. 12. 4. 03:46
Posted by 신이내린프로그래머

방화벽

- 네트워크 packet에서 3계층과 4계층을 기반으로 IPPort 정보를 기반으로 방어를 하는 개념

IDS,IPS

- 3계층부터 7계층 까지의 packet 내용을 문자열 비교에 의해 침입 시도를 감시하고 차단하는 역할

웹방화벽

- 7계층 중에서 http 의 내용만을 문자열에 비교에 의해 침입 시도를 감시하고 차단하는 역할

---------

분명한 차이점은,

문자열을 비교할 때 비교하는 DATA의 종류가 다르다는것 이다.

IDS,IPS에서 검사하는 문자열은 Application Layer 에 쌓여있는 상태의 DATA이고

웹 방화벽 에서는 Application 에서 직접 사용하게 되는 풀려진 상태의 DATA 문자열을 비교하게 되는 것이다.

자세히 말하면 Application Layer에서 암호화된 DATAIDS,IPS 에서는 기존의 문자열 비교를 통해서는 침입패턴을 검출해 낼수 없다는 것이다. 하지만 웹 방화벽에서는 이미 하위 Layer 에서 복호화를 마친 DATA를 문자열 비교를 하기 때문에 침입 패턴을 검출해 낼수 있게 되는 것이다. 웹 방화벽은 HTTP프로토콜만을 감시하기 때문에 단순한 문자열 비교만을 이용한 침입패턴 탐지가 아닌 HTTP의 프로토콜 속성 값을 통해서 효율적인 방어를 할수 있다.
 

<기타 정리>

IPS,IDS DosDDos를 탐지 및 차단을 하고 방화벽은 일부지원한다고 한다.

IPS,IDS 는 바이러스나 웜은 탐지 및 차단이 가능하고 방화벽은 불가능 하다.


IDS
IPS 구분 

- IDS : 탐지 대상 시스템이나 네트워크를 감시하여 비인가 되거나 비정상적인 행동을 탐지하여 구별

IDS 한계성 : 1. 침임에대한 자동 대응

                   2. 근원적인 차단

                   3. 우회공격기법 증가

- IPS : IDS와 마찬가지로 네트워크 트래픽을 감시, 위협을 인지한 후 이에 즉각적인 대응을 위한 네으워크 보안기술
IDS : 탐지
IPS : 방지
 

비슷한 장비이지만 약간의 차이가 있다.

 

버퍼 오버플로우

Programming/Security | 2011. 12. 4. 03:38
Posted by 신이내린프로그래머

1. 버퍼 오버플로우 공격

 버퍼(Buffer)에 일정 크기 이상의 데이터를 입력하여 프로그램을 공격하는 하는 방식을 말한다.


2. 스택 버퍼 오버플로우 공격

 입력 값을 확인하지 않는 입력 함수에 정상적인 크기보다 큰 입력 값을 입력하여 RET 값을 덮어 씌움으로써 임의의 코드를 실행하는 공격을 스택 버퍼 오버플로우 공격이라 한다.



3. segmentation fault 란 무엇인가?

 공격을 하기전에 무작위로 값을 많이 입력해본다. 그러면 여러분은 segmentation fault가 출력되는 것을 볼 수가 있다. 이는 나중에 실습화면에서도 확인할 수 있을 것이다. 이는 프로그램의 ret 주소가 변조 되었음을 나타내는 것이다. 이 오류를 통해 ret주소의 위치를 역으로 확인이 가능해진다. 따라서, segmentaion fault가 발생했다면, 스택 버퍼 오버플로우 공격이 가능함을 말한다.



4. 힙 퍼퍼 오버플로우 공격

힙에 저장되는 데이터를 변조하거나, 함수에 대한 포인터 값을 변조함으로써 ret값을 변조하여 임의의 코드를 실행하기 위한 공격을 말한다.
 

5. 버퍼 오버플로우 공격에 취약한 함수

 - strcpy(char *dst, const char* src)

- strcat (char *dst, const char* src)

 - getwd(char * buf) , gets( char* s)

 - fscanf(FILE *stream, const char *format,..)

 - scanf(const char *format,...)

 - realpath( char *path, char resolved_path[])

 - sprintf( char *str, const char *format)



 6. RTL(Return to libc) 공격

 스택에 있는 ret 주소를 실행 가능한 임의의 주소로 돌력 원하는 함수를 수행하도록 만드는

 기법을 말한다.



 7. 보안 방안

 버퍼오버플로우가 일어나는 이유는 버퍼의 크기를 검사하지 않아서 일어나게 된다. 따라서 프로그래머의 경우는 버퍼의 크기를 체크하는 함수(strncpy)를 사용하여 프로그래밍을 하도록하며 OS내부적으로 버퍼오버플로우를 일으키는 취약점이 존재한다. 따라서 보안패치를 바로바로 하여 이러한 취약점을 이용한 버퍼오버플로우 공격에 당하지 않도록 한다.

'Programming > Security' 카테고리의 다른 글

스니핑과 스푸핑 그리고 그에 따른 방어법  (0) 2011.12.04
IDS, IPS, 방화벽, 웹방화벽 구분  (0) 2011.12.04
웹메소드 중 Get방식과 Post방식  (0) 2011.12.04
FTP의 Active Mode 와 Passive Mode  (0) 2011.12.04
DES  (0) 2011.11.29
 

블로그 이미지

신이내린프로그래머

카테고리

Category (22)
Programming (19)
... (1)