해킹

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

I. 보안 취약점의 악의적 이용 혹은 피해를 주는 행동, 해킹의 개요

가. 해킹(Hacking) 의 정의

- 컴퓨터 네트워크의 보안 취약점을 찾아내어 이를 악의적으로 이용하는 행위

- 시스템 관리자가 구축해놓은 보안망을 무력화시키거나, 시스템 관리자 권한을 불법적으로 획득 및 악용해 다른 사용자에게 피해를 주는 일체의 행동

나. 최근 해킹 공격의 특징

구분

내용

자동화 (Automation)

인터넷 웜 및 윈도우용 공격도구 최근의 공격스크립트의 자동화

에이전트화(Agent)

원격명령으로 공격을 수행하거나 에이전트 기반 빠른 정보 입수

분산화(Distributed)

원격조정이 가능한 Agent형 백도어를 설치하고 이를 이용해 다른 시스템을 공격하는 방법

은닉성

(Stealth)

Agent를 이용한 분산공격기법은 침입탐지 시스템을 무력화 할 수 있는 공격으로 공격자의 위치를 은닉

 

 

다. 해킹의 절차

설명: hacking_compurator1

라. 해킹절차의 구성요소

구분

정의

수집정보

사용도구

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 크래킹

악성코드
(Malicious Software, Malware)

바이러스, 트로이 목마, 백도어 웜, 블라스트웜

사회공학적 해킹기법

인간기반(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. 해킹 기술 동향

  1. 해킹 기술과 바이러스 기술의 통합: 코드레드(Code Red), Nimda, Klez 등 웜바이러스 형태로 대형 피해를 유발시키는 방법 성행
  2. 핵티비즘의 확산: 정치, 사회, 산업, 국가 등의 목적으로 변화, 정치 사회적 목적을 달성하기 위한 급진적인 운동의 한 형태

     3. 무선 해킹의 등장

댓글