해킹
태그 :
- 개념
 - 해킹(Hacking) 의 정의 - 컴퓨터 네트워크의 보안 취약점을 찾아내어 이를 악의적으로 이용하는 행위 - 시스템 관리자가 구축해놓은 보안망을 무력화시키거나, 시스템 관리자 권한을 불법적으로 획득 및 악용해 다른 사용자에게 피해를 주는 일체의 행동
 

I. 보안 취약점의 악의적 이용 혹은 피해를 주는 행동, 해킹의 개요
가. 해킹(Hacking) 의 정의
- 컴퓨터 네트워크의 보안 취약점을 찾아내어 이를 악의적으로 이용하는 행위
- 시스템 관리자가 구축해놓은 보안망을 무력화시키거나, 시스템 관리자 권한을 불법적으로 획득 및 악용해 다른 사용자에게 피해를 주는 일체의 행동
나. 최근 해킹 공격의 특징
| 
			 구분  | 
			
			 내용  | 
		
| 
			 자동화 (Automation)  | 
			
			 인터넷 웜 및 윈도우용 공격도구 최근의 공격스크립트의 자동화  | 
		
| 
			 에이전트화(Agent)  | 
			
			 원격명령으로 공격을 수행하거나 에이전트 기반 빠른 정보 입수  | 
		
| 
			 분산화(Distributed)  | 
			
			 원격조정이 가능한 Agent형 백도어를 설치하고 이를 이용해 다른 시스템을 공격하는 방법  | 
		
| 
			 은닉성 (Stealth)  | 
			
			 Agent를 이용한 분산공격기법은 침입탐지 시스템을 무력화 할 수 있는 공격으로 공격자의 위치를 은닉  | 
		
다. 해킹의 절차

라. 해킹절차의 구성요소
| 
			 구분  | 
			
			 정의  | 
			
			 수집정보  | 
			
			 사용도구  | 
		
| 
			 Footprinting  | 
			
			 공격대상의 정보수집  | 
			
			 DNS,IP,ACL,보안장비,H/W,인증방법  | 
			
			 Whois, nslookup, traceroute/tracert  | 
		
| 
			 Scanning  | 
			
			 공격대상의 제공서비 스및 세부정보 확인  | 
			
			 OS,동적호스트, 제공서비스 및 포트  | 
			
			 Ping,winscan, superscan,nmap  | 
		
| 
			 Enumeration  | 
			
			 유효사용자계정수집 및 시스템취약부분 수집  | 
			
			 라우팅테이블, snmp user&group name  | 
			
			 null sessions, dumpACL, NAT, Legion, netcat, rpcinfo, net view , nbstat, nbtstat 
  | 
		
| 
			 gainning  | 
			
			 공격대상에 접근을 시도하여 접근권한획득  | 
			
			 패스워드 도청, 패스워드 파일 획득  | 
			
			 tcpdump, Leadsmb, NetBIOS Audit Tool, pwdump2, ttdb, bind  | 
		
| 
			 Escalation Privilege  | 
			
			 관리자의 접근권한 획득  | 
			
			 관리자에 대한 정보 수집  | 
			
			 패드워드 크랙 : john, L0phtcrack Exploit : lc_message, getadmin, sechole  | 
		
| 
			 pilfering  | 
			
			 단독시스템 권한 획득후 신뢰관계시스템의 접근권한 확보를 위한 정보 재수집  | 
			
			 사용자에 대한 정보 재수집  | 
			
			 Trust 이용 : .rhost, LSA Secrets cleartext 패스워드 검색 : 사용자 데이터, 구성파일, 레지스트리  | 
		
| 
			 Covering Track  | 
			
			 공격대상에 대한 모든 접근 권한 획득 후 침입에 관련한 정보 및 도구를 숨김  | 
			
			 로그/감사정보  | 
			
			 로그삭제 : Zap, Event Log GUI 도구 감추기 : rootkit, file streaming 감사 방해 : AuditPol / disable  | 
		
| 
			 Creating Backdoor  | 
			
			 재침입을 위해 백도어 설치  | 
			
			 
  | 
			
			 cron, AT, rc,, Registry Keys, netcat, remote.exe , VNC , BO2k, keystroke loggers, mail alias,login, fpnwclnt.dll  | 
		
라. 최근 해킹 동향
- 다양한 유형의 악성코드에 감염된 PC를 이용하여 개인정보유출, 스팸메일 등의 공격
- 응용프로그램의 취약점을 노리는 홈페이지 은닉 악성코드의 지속적인 위협
- 사회적인 이슈를 이용한 악성코드의 유포, 이메일 링크클릭이 아닌 SNS나 합법적인 기관을 가장한 접속 유도 등으로 고도화 추세
- 스마트폰이나 넷북의 증가로 무선랜 사용을 악용 한 가짜 무선랜을 만들어 해킹 시도
- 대중의 정보 전달 매체인 Twitter도 XSS 해킹을 당하는 등 인터넷 라이프의 모든 면에서 해킹의 위험 존재
II. 해킹의 주요 유형 및 기법
가. 해킹의 주요 유형
| 
			 구분  | 
			
			 내용  | 
		
| 
			 프로그램의 취약점을 이용한 공격  | 
			
			 버퍼오버플로우(Buffer Overflow)공격 레이스컨디셔닝(race conditioning)공격 포멧 스트링(format string)공격 CGI/자바 스크립트의 취약점공격 ASP, PHP 스크립트의 취약점 공격  | 
		
| 
			 프로토콜의 취약점을 이용한 공격  | 
			
			 Dos와 DDOs, 스니핑(Sniffing), 스푸핑(Spoofing), 세션하이재킹(Session Hijacking), NetBIOS 크래킹  | 
		
| 
			 악성코드  | 
			
			 바이러스, 트로이 목마, 백도어 웜, 블라스트웜  | 
		
| 
			 사회공학적 해킹기법  | 
			
			 인간기반(Human Based), 컴퓨터 기반(Computer Based)  | 
		
| 
			 시스템과 서비스 설정의 취약점을 이용한 공격  | 
			
			 시스템과 시스템에서 제공하는 각종 서비스 설정과 관련된 취약점을 이용  | 
		
나. 프로그램의 취약점을 이용한 공격
| 
			 구분  | 
			
			 해킹 기법 및 대응책  | 
		|
| 
			 버퍼 오버플로우 공격 (Buffer Overflow)  | 
			
			 해킹 기법  | 
			
			 - 실행중인 프로세스의 실행흐름을 바꾸어서 자신이 원하는 코드를 실행시키는 형태의 공격방법 - “특정모듈호출 à 해당기능실행 à 호출이전모듈 로 리턴”, 이때 리턴주소를 원하는 곳으로 바꾸는 기법 - 해커들은 특정실행코드를 미리 메모리상에 저장, 리턴 주소가 그 코드의 시작부분을 가리키도록 함 - Stack Overflow, Heap Overflow로 분류  | 
		
| 
			 대응책  | 
			
			 - 벤더에서 제공하는 소프트웨어 관련패치 적용, 최소권한으로의 프로그램 실행, 불필요한 서비스 제거 - 침입차단시스템을 통한 유해 트래픽 차단  | 
		|
| 
			 레이스 컨디셔닝(Race Conditioning)  | 
			
			 해킹 기법  | 
			
			 - 운영체제의 멀티태스킹 매커니즘의 취약점 이용 - 관리자 권한으로 실행되는 프로그램 중간에 끼어들어 자신이 원하는 작업을 하는 것  | 
		
| 
			 대응책  | 
			
			 - 임시파일을 생성할 때, 임시파일이 이미 존재하는지 체크, 그 파일을 지우고 새로 생성 - 생성한 파일이 심볼릭 링크인지를 검사 - 지속적인 프로세스의 보안취약성 점검 및 관리  | 
		|
| 
			 포맷 스트링(Format String)  | 
			
			 해킹 기법  | 
			
			 - C언어의 포맷 스트링 (printf, fprintf, sprint 등)의 취약성을 이용한 공격기법 - 공격자가 원하는 부분에 값을 입력, 변경 가능  | 
		
| 
			 대응책  | 
			
			 - 항상 최신패치적용, 각종 보안도구 이용하여 방어 - Non-executable Stack option 사용  | 
		|
| 
			 웹어플리케이션 해킹(Web Application)  | 
			
			 해킹 기법  | 
			
			 - 접근통제솔루션은 웹 서비스로 접근하는 패킷을 통제 하지 않고 내부로 유입시키기 때문에 악의적으로 패킷을 조작해서 보낸다면 정상 패킷으로 간주하여 적절한 통제가 이뤄질 수 없음  | 
		
| 
			 대응책  | 
			
			 - 검증되지 않은 파라미터의 허용: 웹 요청에 대한 데이터형식, 데이터 길이 등의 예외규칙 적용 - 부적절한 접근통제: 웹컨텐츠의 퍼미션 점검, 불안전한 ID점검, 절대경로를 통한 인증회피가능 점검 - 부적절한 계정과 세션관리: 패스워드변경통제의 관리, 세션아이디보호, 백엔드 인증 등  | 
		|
다. 프로토콜의 취약점을 이용한 공격
| 
			 구분  | 
			
			 해킹 기법 및 대응책  | 
		|
| 
			 서비스거부공격 (Denial of Service)  | 
			
			 해킹기법  | 
			
			 - 시스템의 정상적인 서비스를 방해할 목적으로 대량의 데이터를 보내 대상 네트워크나 시스템의 성능을 급격히 저하시켜 대상시스템에서 제공하는 서비스들을 사용하지 못하게 하는 일반적 해킹수법 - 분산서비스 거부공격이란 이름으로 N개의 불특정 시스템이 단일 네트워크를 대상으로 공격을 시도하는 N:1 유형이 주류  | 
		
| 
			 대응책  | 
			
			 - 초기에 이상징후 탐지하여 빠른 대응 - 보안 솔루션 구축 및 적절한 관리 운영, 기업보안대책 지속적인 업데이트  | 
		|
| 
			 스니핑 (Sniffing)  | 
			
			 해킹기법  | 
			
			 - 스니퍼는 ‘컴퓨터 네트워크상에 흘러 다니는 트래픽을 엿듣는 도청장치’ - 네트워크 상에서 자신이 아닌 다른 상대방들의 패킷 교환을 도청하는 것 의미 - 스니핑에 취약한 프로토콜: Telnet, Rlogin, Http, SNMP, FTP, SMTP 등 
  | 
		
| 
			 대응책  | 
			
			 - 패킷을 가로채더라도 내용을 알 수 없게 하는 암호화 기법이 일반적 방어기법 - SSL적용, PGP, S/MIME, SSH VPN  | 
		|
| 
			 스푸핑(Spoofing)  | 
			
			 해킹기법  | 
			
			 - 외부의 악의적 네트워크 침입자가 임의로 웹사이트를 구성해 일반 사용자들의 방문을 유도하여 사용자의 시스템 권한을 획득한 뒤 정보를 빼가는 해킹 수법 
 IP스푸핑의 공격절차 1단계: 패킷의 내용을 변경하여 스크리닝 라우터와 방화벽 통화 2단계: 소스IP주소를 조작하여 자신을 신뢰성있는 호스트로 인식 3단계: 원하는 호스트의 초기 시퀀스번호를 알아냄 4단계: 트로이목마 등의 프로그램설치, 호스트 접근 권한 혹은 루트 권한 획득  | 
		
| 
			 대응책  | 
			
			 - 공격자에게 RESET 신호를 보내어 공격을 차단하거나 공격 클라이언트를 차단하여 공격으로부터 서버를 보호하거나 운영체제를 Patch 또한 방화벽에서 불필요한 IP 접근을 방지  | 
		|
| 
			 세션 하이재킹 (Session Hijacking)  | 
			
			 해킹기법  | 
			
			 - 웹 브라우징 시 세션관리를 위해 사용되는 세션 아이디를 스니핑이나 무작위 추측공격(brute-force guessing)을 통해 도용하는 기법  | 
		
| 
			 대응책  | 
			
			 - 강력한 알고리즘에 의한 세션아이디 발급 - 세션아이디의 유효시간 및 계정 잠금 관리 - 길이가 길고 암호화된 세션아이디  | 
		|
라. 악성코드 (Malicious Software, Malware)
| 
			 악성코드  | 
			
			 설명  | 
		
| 
			 바이러스(Virus)  | 
			
			 - 정상적인 프로그램이나 데이터를 파괴하도록 특수하게 개발된 악성 프로그램(Malicious Program) - 자기 복제를 하며, 파일에 손상을 주거나 하드 디스크의 정보를 파괴하는 등 부작용을 일으킴  | 
		
| 
			 트로이 목마 (Trojan Horse)  | 
			
			 - 겉으로 보기에는 전혀 해를 끼치지 않을 것처럼 보이지만 실제로는 바이러스 등의 위험인자를 포함하고 있는 프로그램 - 자기 복사능력이 없다는 것이 컴퓨터 바이러스와의 차이점  | 
		
| 
			 백도어  | 
			
			 - 프로그램 개발이나 유지보수, 유사 시 문제 해결 등을 위해 시스템 관리자나 개발자가 정상적인 절차를 우회하여 시스템에 출입할 수 있도록 임시로 만들어둔 비밀 출입문  | 
		
| 
			 웜(Worm)  | 
			
			 - 네트워크를 통해 자신을 복제하고 전파할 수 있는 악성 프로그램 - 단순히 자기 복사 기능만 가진 프로그램으로 시스템 과부하 발생  | 
		
마. 사회공학적 해킹기법
| 
			 구분  | 
			
			 설명  | 
			
			 대응방안  | 
		
| 
			 인간기반 (Human Based)  | 
			
			 공격대상에게 직접적인 접근이나 전화 등을 통해 접근하는 경우(상위기관 사칭, 기술지원 요원 가장)  | 
			
			 - 교육과 훈련을 통한 사용자에게 올바른 행동지침 제시 및 인식제고 - 시스템 차원의 대비책을 적절히 병행하여 사용자의 실수를 최소화하는 체계 구축 - 새로운 유형의 사회공학적 해킹에 대해 연구하고 신속하게 대처할 수 있는 정부차원의 체계 구축  | 
		
| 
			 컴퓨터 기반 (Computer Based)  | 
			
			 공격 대상에게 악성코드. 컴퓨터 프로그램, 웹 사이트 등의 수단을 이용하여 접근하는 경우(피싱, 스팸메일을 통한 악성 코드 유포 등)  | 
		
III. 해킹의 대응 방안
| 
			 구분  | 
			
			 방법  | 
			
			 내용  | 
		
| 
			 기술적 방안  | 
			
			 네트워크 보안  | 
			
			 - 방화벽(Firewall) 도입 - IDS(Intrusion Detection System), IPS 도입 - VPN(Virtual Private Network) 도입  | 
		
| 
			 서버 보안  | 
			
			 - Secure OS, Secure IDS 도입 - OS Patch  | 
		|
| 
			 DB 보안  | 
			
			 - 사용자 인증 실시 - 데이터에 대한 접근 권한 관리, RBAC  | 
		|
| 
			 통합 보안  | 
			
			 - EAM(Extranet Access Management), ESM(Enterprise Security Management) 등 통합보안 체계 구축  | 
		|
| 
			 관리적 방안  | 
			
			 - 보안 정책의 수립, 교육 등을 통한 절차 준수 - 보안 감사 및 보안 컨설팅 시행  | 
		|
| 
			 물리적 방안  | 
			
			 - 출입통제 강화 - 서류 및 파일의 유출 금지 강화  | 
		|
IV. 해킹 기술 동향
- 해킹 기술과 바이러스 기술의 통합: 코드레드(Code Red), Nimda, Klez 등 웜바이러스 형태로 대형 피해를 유발시키는 방법 성행
 - 핵티비즘의 확산: 정치, 사회, 산업, 국가 등의 목적으로 변화, 정치 사회적 목적을 달성하기 위한 급진적인 운동의 한 형태
 
3. 무선 해킹의 등장

