Download presentation
Presentation is loading. Please wait.
1
11. 해킹기술 (1) - hacking & security -
2
해킹의 정의 원래의 의미 현재의 의미 크래킹(cracking)
단순히 컴퓨터를 필요할 때만 업무와 관련한 일부분을 사용하는 것이 아니라 컴퓨터 전반에 걸쳐 깊이 배우기를 즐기는 사람 컴퓨터 프로그래밍에 대해 단순 이론을 이야기하기보다 컴퓨터 프로그래밍을 즐기고 열광하는 사람 현재의 의미 시스템의 관리자가 구축해 놓은 보안망을 어떤 목적에서 무력화시켰을 경우 이에 따른 모든 행동 시스템 관리자의 권한을 불법적으로 획득한 경우, 또 이를 악용해 다른 사용자에게 피해를 준 경우 크래킹(cracking) 어떤 시스템에 불법적으로 침입해서 자료 등을 파괴하는 행위 2
3
해킹 공격 기법의 분류 시스템 및 서비스 설정 취약점을 공격:
프로그램 취약점을 이용한 공격: 대표적인 것은 버퍼 오버프로우(buffer overflow) 공격이다. 프로토콜 취약점을 이용한 공격 정보수집: 시스템에 침입하기 위해 탐색하거나 대상 시스템에 대한 정보를 수집하는 것 서비스 거부(Denial of service) 공격: 특정 호스트나 네트워크가 제 기능을 수행하지 못하도록 각종 서비스를 정지시키는 행위 악성코드: 바이러스, 웜, 트로이 목마 등 기타 3
4
해킹의 유형 시스템과 서비스의 설정 취약점을 이용한 공격 프로그램의 취약점을 이용한 공격
파일 시스템의 쓰기 권한 취약점을 이용 SUID 프로그램의 문제를 이용 기타 환경 변수를 이용 프로그램의 취약점을 이용한 공격 CGI/자바스크립트의 취약점을 이용한 공격 ASP, PHP 스크립트의 취약점을 이용한 공격 버퍼 오버플로우(Buffer Overflow) 공격 힙 오버플로우(Heap Overflow) 공격 레이스 컨디셔닝(Race Conditioning) 공격 포맷 스트링(Format String) 공격 프레임 포인터 오버플로우(Frame Pointer Overflow) 공격 4
5
해킹의 유형 프로토콜의 취약점을 이용한 공격 악성 코드 DoS 스니핑(Sniffing)
세션 하이재킹(Session Hijacking) 스푸핑(Spoofing) 악성 코드 바이러스 트로이안 백도어 웜 5
6
해커의 분류 Lamer : 해커는 되고 싶지만 경험도 없고 컴퓨터 관련 지식도 많이 없는 해커 Script Kiddie :
네트워크와 운영체제에 대한 약간의 기술적인 지식을 갖고 있는 해커 Developed Kiddie : 대부분의 해킹 기법을 알고 있는 해커들 새로운 취약점을 발견하거나 최근 발견된 취약점에 따라 코드 수정 Semi Elite : 운영체제에 존재하는 특정 취약점을 알고 공격할 수 있는 해킹 코드 작성 Elite : 해킹하고자 하는 시스템의 새로운 취약점을 찾아내고 해킹할 수 최고 수준의 해커 6
7
해킹의 역사 태동기(1950~60) : 성장기(1970~80) : 전환기(1980) : 탄압기(1990) :
폰 프리킹이라고 하는 1960년대 말 공짜로 전화를 걸던 히피세대 대학생이 생겨났다. 성장기(1970~80) : 컴퓨터 보급이 확산되고 정보통신망이 발달하자 많은 폰 프리커들이 컴퓨터 해커로 변하였고, 1980년대에서는 수많은 개인용 컴퓨터가 가정, 학교, 사무실에 보급되면서 컴퓨터 해커들의 활동이 본격화되기 시작하였다 전환기(1980) : 1980년대 들어오면서 컴퓨터가 널리 보급되고, 해커들이 사회적 비행을 저지르기 시작했다. 탄압기(1990) : 1990년대 들어서면서 크래커의 사회적 비행이 국가 안보를 위협하는 존재로 발전하고 정치적 이념을 가진 핵티비스트(Hacktivist)가 등장했다. 발전기(1990 이후) : 1990년대 후반부터 인터넷이 대중화되면서, 해킹 기술이 급속도로 발전한다. 7
8
해킹 기법의 변화 해킹 기법의 변화 8
9
해킹 기법의 변화 1980년대 1990년대 2000년대 사용자 패스워드 추측 공격
인터넷을 기반으로 한 최초의 웜 바이러스 등장 사용자 계정 데이터베이스를 획득하여 사용자 패스워드 크랙 백도어 1990년대 스니핑(Sniffing) 세션 하이재킹(Session Hijecking) 스푸핑(Spoofing) CGI 공격 버퍼 오버플로우 공격(Buffer Overflow Attack) 트로이 목마(Trojan Horse) 서비스 거부 공격(Denial Of Service) 2000년대 분산 서비스 거부 공격(Distribute Denial Of Service) 분산 반사 서비스 거부 공격(Distribute Reflected Denial Of Service) 웹 해킹 9
10
해킹 기법의 동향 해킹 기술과 바이러스 기술의 통합
대용량의 네트워크 트래픽을 발생시켜 해당 네트워크 자체를 마비시키는 형태로 발전 핵티비즘의 확산 과거에는 단순히 개인적인 목적에서 현재는 정치, 사회, 산업, 국가 등의 목적으로 변화 웜 바이러스 공격 웜과 해킹 기법이 결합된 형태의 공격이 많이 등장 무선 해킹의 등장 최근에 모바일이 급격하게 성장하면서 휴대폰 문자 메시지를 이용한 광고 발송으로 개인 정보 침해가 늘어나고 있다. 10
11
2.1 풋프린팅 풋프린팅(Footprinting)
기술적인 해킹 공격, 신문, 게시판 등과 같은 여러 경로를 통해 공격 대상의 정보를 모으는 방법을 말한다. 풋프린팅에는 매우 다양한 기법이 있으며, 매우 넓은 범위가 포함된다. 사회공학(Social Engineering) 기술적인 해킹에 의한 방법이 아닌, 개인적인 인간 관계, 업무적 관계 등을 이용한 방법에서부터 어깨 넘어 훔쳐보기 등 정보를 획득하는 데 이용 가능한 비기술적인 경로를 이용해서 정보를 모으는 방법이다. 11
12
2.1 풋프린팅 포트 데몬 포트는 활성화된 데몬에 의해서 열리게 되며, 각각의 프로토콜은 고유의 포트를 가지고 있다.
시스템에는 65535개의 포트가 있으며, 0번부터 1023번 포트까지 1024개의 포트가 Well Known 포트라고 불린다. Well Known 포트는 일상적으로 잘 알려진 서비스를 위해 고유의 사용 용도가 정해져 있다. 보통 0번 포트는 쓰지 않으며, 1024번 포트부터 포트는 임의의 사용용도를 위해서, 또는 클라이언트가 서버에 접속 시에 할당 받는 포트의 범위다. 데몬 시스템의 사용자 인터페이스에는 나타나지 않지만, 서비스가 요청되었을 때 이에 반응할 수 있도록 항상 실행되는 프로그램을 말한다. 따라서 웹 서비스에 대한 데몬과 FTP 서비스를 위한 데몬이 별도로 존재한다. 각각의 데몬을 실행해야만 포트가 열리며, 해당 포트에서 적절한 서비스를 제공받을 수 있다. 각각의 데몬은 하나의 프로그램이기 때문에 취약점이 존재하는데, 이러한 점을 이용하여 해커는 공격 대상 시스템에 침투한다. 12
13
2.1 풋프린팅 표준서비스 포트 1/2 포트 번호 서비스 서비스 내용 21 (TCP) FTP
File Transfer Protocol FTP 연결 시 인증과 컨트롤을 위한 포트 23 Telnet Telnet 서비스로서 원격지의 서버의 실행 창을 얻어낸다. 25 SMTP Simple Message Transfer Protocol 메일을 보낼 때 사용하는 서비스 53 (UDP) DNS Domain Name Service 이름을 해석하는 데 사용하는 서비스 69 TFTP Trivial File Transfer Protocol 인증이 존재하지 않는 단순한 파일 전송에 사용되는 서비스 80 HTTP Hyper Text Transfer Protocol 웹 서비스 13
14
2.1 풋프린팅 표준서비스 포트 2/2 포트 번호 서비스 서비스 내용 110 POP3 Post Office Protocol
메일 서버로 전송된 메일을 읽을 때 사용하는 서비스 111 RPC Sun의 Remote Procedure Call 원격에서 서버의 프로세스를 실행할 수 있게 한 서비스 138 NetBIOS Network Basic Input Output Service 윈도우에서 파일을 공유하기 위한 서비스 143 IMAP Internet Message Access Protocol. POP3와 기본적으로 같으나, 메일을 읽고 난 후에도 메일은 서버에 남는 것이 다르다. 161 SNMP Simple Network Management Protocol 네트워크 관리와 모니터링을 위한 서비스 14
15
2.2 스캔 스캔 Ping & ICMP Scan 서비스를 제공서버의 작동여부 및 서비스를 확인
TCP 기반의 프로토콜은 기본적으로 질의(Request)를 보내면 응답(Response)을 보낸다. 스캐닝은 열려있는 포트, 제공하는 서비스, 동작중인 데몬의 버전, 운영체제의 버전, 취약점 등 다양한 정보를 얻어내는 것이 가능하다. Ping & ICMP Scan Ping은 네트워크와 시스템이 정상적으로 작동하는지 확인하기 위한 간단한 유틸리티로 개발되었다. ICMP(Internet Control Messaging Protocol)를 사용한다. 각각의 네트워크는 고유한 ping이 존재하며 일반적으로 알려진 ping은 TCP/IP 네트워크에서의 ping을 말한다. 15
16
2.2 스캔 ICMP 스캔 ICMP를 이용한 스캔 방법으로는 다음의 네 가지를 생각할 수 있다.
Echo Request(Type 8)과 Echo Reply(Type 0)을 이용한 방법 Timestamp Request(Type 13)와 Timestamp Reply(Type 14)을 이용한 방법 Information Request(Type 15)와 Information Reply(Type 16)을 이용한 방법 ICMP Address Mask Request(Type 17)와 ICMP Address Mask Reply(Typ18)을 이용한 방법 16
17
2.2 스캔 Echo Request(Type 8)과 Echo Reply(Type 0)을 이용한 방법 17
18
2.2 스캔 Timestamp Request(Type 13), Timestamp Reply(Type 14)
송신자가 패킷을 받은 시간(Originate Timestamp) 수신자가 패킷을 받은 시간(Receive Timestamp) 송신-수신 동안 걸린 시간(Transmit Timestamp) 상대 시스템이 Reply 패킷이 돌아온다는 것은 상대 시스템이 활성화되어 있음을 말하는 것이다. 18
19
2.2 스캔 Information Request(Type 15), Information Reply(Type 16)
Information Request와 Reply 패킷은 자신의 네트워크를 찾기 위해 개발되었다. 기본적인 목적은 RARP, Bootp, DHCP와 같은 프로토콜 이용 시스템이 Relpy 패킷으로 시스템 활성화를 확인 ICMP Address Mask Request(Type 17), ICMP Address Mask Reply(Typ18) ICMP Address Mask Request와 Reply 패킷은 소속 네트워크의 서브넷 마스크를 알기 위해서 보내는 프로토콜이다. Reply 패킷으로 상대 시스템의 활성화 여부를 확인 4. 19
20
2.2 스캔 UDP Open 스캔 포트가 열려있을 경우, 아무런 응답이 없으며, 포트가 닫혀 있을 경우에는 ICMP Unreachable 패킷을 받게 된다. 포트가 열려 있을 경우 포트가 닫혀 있을 경우 20
21
2.2 스캔 TCP Open 스캔 포트가 열려있을 경우, 세션이 성립되며, 포트가 닫혀 있을 경우에는 RST+ACK 패킷을 받게 된다 . 포트가 열려 있을 경우 포트가 닫혀 있을 경우 21
22
2.2 스캔 Stealth 스캔 : TCP Half Open 스캔
포트가 열려있을 경우, 서버로부터 SYN+ACK 패킷을 받은 후, RST 패킷을 보내어 연결을 끊는다. 포트가 닫혀 있을 경우에는 Open 스캔의 경우와 같다. 포트가 열려 있을 경우 포트가 닫혀 있을 경우 22
23
2.2 스캔 Stealth 스캔 : FIN, Xmas, Null 스캔
포트가 열려 있을 경우에는 응답이 없고, 포트가 닫혀 있는 경우에만 RST+ACK 패킷이 되돌아온다. 포트가 열려 있을 경우 포트가 닫혀 있을 경우 23
24
2.2 스캔 Stealth 스캔 : 시간차 공격 공격의 차단을 피하거나, 탐지를 회피하기 위해 특정한 시간 간격으로 스캔 패킷을 보내는 기법 Paranoid : 5분이나 10분 간격 Sneaky : WAN에서는 15초 단위로, LAN에서는 5초 단위 Polite : 0.4초 단위 Normal : 정상 Aggressive : 호스트 타임 아웃 : 5분, 패킷 당 1.25초까지 응답을 기다린다. Insane : 호스트 타임 아웃 : 75초, 패킷 당 0.3초까지 응답을 기다린다. 24
25
2.2 스캔 실습 – Fping을 이용한 스캔 Fping을 이용하여 특정 네트워크에서 활성화된 시스템 확인
fping -g /24 25
26
2.2 스캔 실습 – Sing을 이용한 스캔 Sing을 이용한 TimeStamp 스캔
./sing -c 1 -tstamp 26
27
2.2 스캔 실습 – NMAP을 이용한 스캔 NMAP을 이용한 Open 스캔 nmap -v -sT 27
28
2.2 스캔 NMAP을 이용하여 가능한 스캔 스캔 옵션 내 용 -sT connect( ) 함수를 이용한 Open 스캔 -sS
내 용 -sT connect( ) 함수를 이용한 Open 스캔 -sS 세션을 성립시키지 않는 TCP syn 스캔 -sF Fin 패킷을 이용한 스캔 -sN Null 패킷을 이용한 스캔 -sX XMas 패킷을 이용한 스캔 -sU UDP 포트 스캔 -sA Ack 패킷에 대한 TTL 값의 분석 28
29
2.2 스캔 운영체제의 탐지 배너 그래빙(Banner Grabbing)
Banner Grabbing은 Telnet과 같이 원격지의 시스템에 로그인을 시도하면 나타나는 안내문과 같은 것이다. 23 번 포트에 텔넷 접속을 시도한 위의 화면에서는 운영체제의 버전과 커널 버전을 확인할 수 있다. 이러한 배너 그래빙은 23 번 포트 이외에도, 21, 25, 포트에서도 가능하다. 29
30
2.2 스캔 프로토콜에 대한 반응 Fin 스캔을 이용한다. Fin 스캔은 모든 운영체제에 적용되는 것은 아니다. 적용되는 운영체제는 윈도우, BSD, Cisco, Iris 등으로, Fin 스캔의 가능 여부에 따라 운영체제를 판별할 수 있다. 세션 연결 시 TCP 패킷의 시퀀스 넘버 생성을 관찰 윈도우 : 시간에 따른 시퀀스 넘버 생성 리눅스 : 완전한 랜덤 FreeBSD, Digital-Unix, IRIX, Solaris : 시간에 따른 랜덤한 증분 TCP 연결 시 최초 패킷의 윈도우 크기를 관찰 30
31
2.2 스캔 넷크래프트 이용 운영체제에 대한 체계적인 탐지 정보를 가지고 있는 사이트로 상세한 정보를 얻을 수 있다. 31
Similar presentations