강좌
클라우드/리눅스에 관한 강좌입니다.
리눅스 분류

해킹피해시스템 분석방법

작성자 정보

  • 웹관리자 작성
  • 작성일

컨텐츠 정보

본문

해킹피해시스템 분석방법

신 훈*, 정윤종*, 임채호*。, 김종섭**

*한국정보보호센터, **경찰청

Hoon Shin, Yunjong Jeong, Chaeho Lim, Jongseob Kim

Korea Information Security Ageny, National Police Agency

요 약

최근 CERTCC-KR에 접수되는 해킹사고보고가 급격히 증가하고 있어 피해시스템 기술지원시 해킹 흔적과 기록을 분석하는데 있어 보다 효과적인 방법을 제시하고 추후 자동분석화를 추진하고자 본 연구를 수행하고 있으며 기존에 시스템관리자가 하던 방법이외에 침입자의 패턴을 분석하는 방법등 보다 적극적인 방안을 제안한다.

  1. 서론
  2. 해킹피해시스템 지원 사례
  3. 침해사고 분석 방법
  4. 침해사고와 법적 대응 및 수사
  5. 향후과제 및 결론

    참고문헌

1. 서론

최근 국내에서 발생하는 해킹사고는 주로 해외 해커의 침입에 의한 시스템침해가 주요 문제로서 부각되고 있으며 이는 해외 해커들이 안전조치가 강화된 미국 등 선진국 주요 시스템을 침입하고자 할 때 상대적으로 허술한 국내 시스템을 국제적인 우회 경로로서 이용하는 경향으로 분석될 수 있다.[9]

[표 1] 국내 인지된 해킹사고 현황('95 - '98상반기)

피해기관유형

'95

'96

'97

'98 상반기

합계

비율

대학(AC.KR)

12

95

32

49

188

58

기업(CO.KR)

7

45

25

29

106

33

연구소(RE.KR)

7

-

3

4

14

4

기타(else.KR)

-

6

4

6

16

5

합계(*.KR)

26

146

64

88

324

100

 

접수된 해킹피해 사고는 심도 있는 분석을 위해 피해기관과 공동으로 해당 시스템의 로그 파일과 의심스러운 사용자의 홈디렉토리를 분석하고 네트워크 접근 기록을 조사하며 라우터 등의 구성 설정 환경 등을 점검하게 된다.[5][7][10] 그리고 필요시 실무자의 협조를 받아 추가적인 침입을 감시하기 위한 도구를 설치하고 공동 감시를 시작하거나 실무자의 요청에 의해 더 이상 침입할 수 없도록 기술지원과 각종 대응 환경을 구성하기도 한다.[2]

이렇게 침해사고 접수 후 피해기관의 시스템을 직접 분석하는 경우 일일이 시스템의 로그파일을 분석하거나, last 혹은 lastcomm 등 관리자 명령어를 이용한 수작업으로 이루어지므로 최근 크게 증가하는 해킹사고 접수 건수에 비추어 보아 매우 업무를 가중시키는 일이 되고 있다. CERTCC-KR내 한사람 직원이 많게는 5개이상의 시스템을 동시에 지원 분석하는 경우가 있어 피해시스템 분석 방법론을 경험을 바탕으로 개발하고 이를 자동화하는 일이 필요하게 되었다.

본 논문에서는 지금까지 지원한 해킹피해시스템 분석 경험을 바탕으로 대표적인 사례를 시스템 분석 위주로 살펴보고 분석 방법론으로서 시스템관리자가 할 수 있는 분석 절차[1][7]를 보이고 해커 등 침입자의 입장에서 본 분석 방법을 기술하고자 한다. 또한 이러한 방법론을 기반으로 점검 및 분석절차를 명세화하여 추후 해킹피해시스템 자동분석시스탬 개발에 활용하고자 한다. 그밖에도 검찰이나 경찰에서 해킹범죄 수사시 고려하여야 할 사항 등을 연구하였다.

[목차]

2. 해킹피해시스템 지원 사례

가. 최근 해킹 피해시스템에서 발견된 해킹방법

지원한 많은 해킹사고 경우가 관리자(root) 권한이 빼았겨 로그기록이 삭제되는 등 피해분석에 어려움이 있는경우도 있었으나 여러 해킹관련정보를 분석해봄으로서 다음 [표2]와 같이 대표적인 해킹방법들을 분석할 수 있었다.

[표 2] 피해시스템에 이용된 해킹방법

구 분

해킹기법

`97

`98

구 분

해킹기법

`97

`98

전자우편

공격(10)

SPAM

1

5

응용시스템

취약점이용

(43)

named

3

3

BOMB

3

1

Imapd, popd

6

13

서비스거부공격(10)

smurf


4

identd


1

ICMP Attack

1

2

innd

4


Syn Flooding

1


기타

10

3

ping Attack

2


취약점발견

도구(23)

port scan


11

Web서버

취약점공격

(21)

phf Bug

7

7

mscan


12

php Bug

1

1

ID도용 (6)

3

3

test


2

해킹프로그램 (11)

5

6

기타

2

1

Virus (2)

1

1

스니퍼 설치(8)

4

4

Unknown

10

8

 

나. 최근 대표적인 해킹기법 분석 사례

1) smurf 공격(`98. 5)

'98. 5. 국내 E대학이 외국해커에 의해 smurf 공격에 이용되어 미국 ISP들이 만드는 인터넷 불법 리스트에 추가되었다. 이와같은 공격은 그밖에도 다른 대학과 기업에서도 발생하였다. 최근 이와같은 서비스 거부공격이 자주 발생하고 있은데 ICMP, Syn flooding, ping등 다양한 형태의 공격이 이루어지고 있다. 스니퍼 프로그램을 이용하여 감시한 smurf 공격의 로그는 다음과 같다.

xxx.xxx.36.1 -> yyy.yyy.170.255 ICMP Echo request

yyy.yyy.86.170 -> xxx.xxx.36.1 ICMP Echo reply

yyy.yyy.170.166 -> xxx.xxx.36.1 ICMP Echo reply

yyy.yyy.170.8 -> xxx.xxx.36.1 ICMP Echo reply

yyy.yyy.170.50 -> xxx.xxx.36.1 ICMP Echo reply

yyy.yyy.170.6 -> xxx.xxx.36.1 ICMP Echo reply

yyy.yyy.170.11 -> xxx.xxx.36.1 ICMP Echo reply

yyy.yyy.170.165 -> xxx.xxx.36.1 ICMP Echo reply

yyy.yyy.170.200 -> xxx.xxx.36.1 ICMP Echo reply

yyy.yyy.170.160 -> xxx.xxx.36.1 ICMP Echo reply

 

2) CGI 취약점을 이용한 홈페이지 변조 공격 사례('98. 2)

'98. 2. 신원미상의 해외 침입자가 국내 주요 교육대학 등 4개 교육대학 전산망에 불법침입하여, 교직원의 개인홈디렉토리에 음란홈페이지를 개설한 사고로서 침입자는 웹서버를 운영하는 시스템에 /cgi-bin/phf와 같은 CGI 관련 프로그램 버그를 통하여 패스워드파일을 획득하여 불법 접근하였다. 이후 시스템관리자(root)권한을 획득한 후, 불법적인 계정을 만들어 음란물 홈페이지를 개설하였으며, 원격지에서 시스템 파일 등을 조작하기 위해 관련된 해킹도구로 뒷문(Back Door) 프로그램을 만들기도 하였다. 다음은 웹서버의 access_log에서 추출한 침입흔적을 보여주고 있는데 원격지에서 phf 취약점을 이용하여 공격하는 내용의 로그가 남아있다.

xxx.xxx.xxx.xxx - - [16/Jun/1998:10:38:02 +0900] "GET /cgi-bin/phf?Qnam

e=root%0Acat%20/etc/passwd HTTP/1.1" 200 114873

xxx.xxx.xxx.xxx - - [16/Jun/1998:20:11:47 +0900] "GET /cgi-bin/phf

?Qalias=x%0a/bin/cat%20/etc/passwd HTTP/1.0" 200 114889

xxx.xxx.xxx.xxx - - [17/Jun/1998:15:37:11 +0900] "GET /cgi-bin/p

hf?Qalias=x%0a/bin/cat%20/etc/passwd HTTP/1.0" 200 114889

xxx.xxx.xxx.xxx - - [18/Jun/1998:09:56:49 +0900] "GET /cgi

-bin/phf/?Qalias=x%0acat%20/etc/passwd HTTP/1.1" 200 114884

 

3) imapd 취약점 공격 사례('97.12)

'97. 12. 신원미상의 해외 침입자가 국내 모협회가 운영하는 WWW서버를 해킹하여 불법적인 사용을 하다가 시스템관리자에 의해 발견되었다. 침입자는 안정성이 보장되지 않는 리눅스 홈페이지 서버로 imapd 원격취약점을 이용하여 시스템의 관리자권한을 획득한 후, 주요 시스템파일의 변경과 뒷문프로그램을 설치하였다. 이와 같은 imapd 취약점은 국내외 가장 많이 이용된 방법이기도 하다. 다음은 피해시스템의 messages 로그화일에 남아있는 imapd 원격 버퍼오버플로우 공격의 흔적이다.

Jun 19 17:58:03 ns imapd[1792]: command stream end of file, while reading line user=
^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P
^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P
^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^Phost=xxx46.xxx.xxx.xxx

Jun 8 00:10:10 ns imapd[3262]: Login failure user=^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^
?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^
?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^? host=xxx.xxx.210.225

Jun 8 00:13:10 ns imapd[3262]: Autologout user=^?^?^?^?^?^?^?^?^?^?^?^?^?^?^? ^?
^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^
?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^?^? host=xxx.xxx.210.225

Jun 9 09:10:47 ns imapd[2662]: command stream end of file, while reading line user=??? host=xxx.xxx.198.78

 

4) 스니퍼에 의한 패스워드 해외 유출 사고('97. 7)

'97. 7. S대학 시스템의 패스워드 파일이 해외로 불법유출되었으며 침입자는 웹서버의 취약점인 cgi-bin/phf를 이용하여 시스템에 침입한 후, 시스템관리자(root)권한을 획득하고 스니퍼(sniffer)를 설치함으로서 200여개의 사용자ID 및 패스워드를 독일로 불법유출하였다. 다음은 해커가 설치한 스니퍼 프로그램이 남겨놓은 스니퍼로그화일의 일부분이다.

xxx.xxx.203.228 => xxx.xxx.210.113 [110]

AUTH

USER xxxxxx

PASS xxxxxxxx

----- [FIN]

xxx.xxx.203.228 => xxx.xxx.134.113 [110]

USER xxxxxxx

PASS xxxxxxxx

 

5) mscan

"mscan"은 WWW CGI 프로그램- phf, test-cgi, handler -, imap, statd, named 등 응용프로그램에 취약점이 있는지를 점검하는 보안취약성 점검도구의 일종으로 최근 유행하는 해커들의 도구중 하나이다. 이 스크립트의 문제는 하나의 호스트만을 점검하는것 뿐아니라 특정 도메인, 서브넷안의 모든 호스트를 점검한다는 것이다. 또한 속도 역시 한 호스트 점검에 3초정도의 시간이 소요될정도로 빠르게 동작한다. 다음은 mscan을 실행할 경우 얻게되는 공격대상 시스템의 취약점 결과정보이다.

xxx.xxx.155.198 : VULN: solaris box running statd $@ h0h0

xxx.xxx.193.62 : VULN: runs /cgi-bin/test-cgi

xxx.xxx.194.83 : VULN: runs /cgi-bin/test-cgi

xxx.xxx.134.36 : VULN: solaris box running statd $@ h0h0

xxx.xxx.155.198 : VULN: runs /cgi-bin/test-cgi

xxx.xxx.146.169 : VULN: runs /cgi-bin/test-cgi

xxx.xxx.194.81 : VULN: runs /cgi-bin/test-cgi

 

최근 국내에서도 이를 이용한 침해사례가 빈번히 발생하고 있으며, `98년도에서만 18건 이상의 사고가 발생하였다.

6) linux 취약점 해킹

Linux는 인텔 80386 이상을 사용하는 PC에서 운영되는 UNIX운영체제의 공개버젼으로 기본적인 환경은 POSIX 사양 및 SYSV, BSD와 같으나 독자적인 소스로 개발되었으며 커널을 제외한 유틸리티와 응용프로그램은 인터넷을 통한 많은 사람들에 의해 제작되었다. UNIX는 처음 만들어 질때 운영체제의 소스가 공개되어 최근까지도 보안성에는 그리 신뢰성을 가지지못하고 있다. Linux 역시 운영체제 및 모든 응용프로그램의 소스가 공개되어 해킹사고의 주요 대상이 되고 있다. 물론 적은 비용으로 UNIX 운영체제를 가질수 있는장점이 있으나, 보안상의 허점등의 단점도 가지고 있다. 최근 국내에서 발생하는 침해사고를 보면 90%이상이 Linux 운영체제를 기반으로하고 있으며 대부분 외부에서 해커가 named, imapd, ipopd, identd등 주요서버들의 취약점을 이용하여 공격하는 방식이 널리퍼져있다.

[목차]

3. 침해사고 분석 방법

가. 관리자관점에서의 분석

위의 예와 같이 침입자는 다양한 방법을 이용하여 시스템에 침입하여 불법작업을 수행한다. 관리자가 이러한 침입자의 행동을 모니터링하는 것은 쉽지 않지만 침해사고가 발생할 경우 시스템이 가지고 있는 여러 로그기록을 이용하여 침입자 확인, 침입 방법, 침입자의 출발 호스트 등의 정보를 얻을수 있다. 그리고 침입자들이 이용하는 웹서버, imapd 등 서비스취약점을 이용한 공격도 서버들이 기록하는 로그기록을 분석할 수 있는 것이다.[1][7] 여기에서 UNIX 기반의 시스템에서 제공되는 로그정보를 검검하는 예를 들어 설명하기로 하자.

1) 시스템로그파일

UNIX 시스템에는 다양한 로그정보를 가진 파일과 관련 명령어들이 있다. 먼저 시스템내의 로그 파일은 주로 /var/adm 디렉토리에 존재하게 되는데 필요에 따라 파일의 위치를 변경할 수 있다. /var/adm/ 파일들은 /var/adm/messages, /var/adm/utmp(x), /var/adm/wtmp(x), /var/adm/lastlog, /var/adm/logining, /var/adm/acct 등 이 제공된다. 이 파일들이 가지고있는 정보를 살펴보면 다음과 같다.

[표 3] 유닉스 기본 로그 파일

로그 파일

보유정보

/var/adm/messages

콘솔 상에 있는 정보

/var/adm/utmp(x)

현재 로그인한 사용자 정보

/var/adm/wtmp(x)

사용자의 로그인, 로그아웃

시스템의 shutdown, start up

/var/adm/lastlog

사용자의 최근 로그인관련 정보

/var/adm/acct

사용자의 command 정보

 

/var/adm/wtmp(x)는 시스템 사용자의 접속 정보를 알수가 있는 파일이다. 이는 last명령어를 이용하여 정보를 볼수있는데 그 예는 다음과 같다.

userone ftp dialup77.xxx.xxx.xxxSat Jun 27 00:43 - 0143 (0100)

userone ttyp1 dialup77.xxx.xxx.xxxSat Jun 27 00:36 - 00:42 (00:06)

userone ftp xxx.xxx.147.46Fri Jun 26 14:13 - 14:14 (00:00)

userone ttyp4 xxx.xxx.147.46 Fri Jun 26 14:11 - 14:12 (00:00)

guest0 ttyp4 xxx.xxx.147.46 Fri Jun 26 12:15 - 12:45 (00:29)

userone ttyp0 xxx.xxx.147.46 Mon Jun 22 17:25 - 17:25 (00:00)

hykim ttyp2 xxx.xxx.203.234 Mon Jun 22 17:24 - 17:25 (00:00)

위의 경우 userone은 평소 xxx.xxx.147.46 네트워크에서 접근을 하는데 비해 비정상적인 시간대에 dialup77.xxx.xxx.xxx 호스트에서 접근한 사실을 알수가 있다. 이는 userone 의 비밀번호가 누출이 되어 이상한 호스트에서 접근한 것을 알수가 있는 것이다.

syslog 데몬을 이용하여 시스템 접속 오류등에 대한 로그를 설정하였을 경우 messages 파일을 점검함으로서 불법적인 접근 시도가 있었는지도 살펴볼 수 있다. 이는 시스템 사용상의 오류를 포함한 외부로 부터의 불법적인 접근등을 검사할 수 있다.

Jun 22 00:51:39 ns named[253]: starting. named 4.9.6-REL Tue Mar 31 13:41:12 EST 1998 ^Iewt@xxx.xxx.com:/usr/src/redhat/BUILD/bind-4.9.6/named

Jun 22 01:01:37 ns named[253]: starting. named 4.9.6-REL Tue Mar 31 13:41:12 EST 1998 ^Iewt@xxx.xxx.com:/usr/src/redhat/BUILD/bind-4.9.6/named

Jun 23 14:20:54 ns named[5334]: starting. named 4.9.6-REL Tue Mar 31 13:41:12 EST 1998 ^Iewt@xxx.xxx.com:/usr/src/redhat/BUILD/bind-4.9.6/named

위의 경우는 외부로부터 named 버그를 이용하여 시스템에 침입하기 위한 침입자에 의해 named 데몬이 재시동되는 것을 알 수 있다. 이와같이 다양한 로그정보들을 검토 함으로서 외부로 부터의 불법적인 접근 시도 또는 접근 사실을 알 수 있다. [1][7]

2) 주요 서버의 로그정보 분석

가) 웹서버의 로그 정보 분석

관리자는 웹서버의 로그 파일인 Access log나 error log파일을 점검하므로써 외부 침입자가 시스템내의 중요 파일을 가져갔는지 알아보아야 한다. 주로 access_log, error_log 등은 /var/adm/httpd/logs와 같은 디렉토리에 존재하며 이는 httpd 설치시 사용자에 따라 설정할 수 있다. 다음은 xxx.xxx.com 으로부터 http 서버 phf 버그를 이용하여 패스워드 파일을 가져간 예이다.

xxx.xxx.com - - [16/Jun/1998:10:38:02 +0900] "GET /cgi-bin/phf?Qnam

e=root%0Acat%20/etc/passwd HTTP/1.1" 200 114873

나) IMAPD, POPD 로그 정보 분석

다음으로는 최근 개인 전자우편관련하여 많이 사용하고 있는 Imapd(Popd)를 이용하는 방법이다. 이 방법은 데몬에 많은 데이타를 보내 버퍼오버플로우를 발생시켜 새로운 쉘(Shell)을 실행하는 방법으로서 /var/adm/messages파일에서 알 수 있다. 다음 사례는 xxx.xxx.198.78 호스트에서 시스템의 Imapd로 접근한 내용을 보여주고 있다.

Jun 9 09:10:47 ns imapd[2662]: command stream end of file, while reading line user=??? host=xxx.xxx.198.78

Jun 9 09:10:56 ns imapd[2664]: command stream end of file, while reading line user=??? host=xxx.xxx.198.78

아래 표[4]에서는 표[2]에 언급된 최근해킹방법들로 해커들이 공격했을 경우에 어떠한 시스템로그나 서버로그를 점검해야하는지를 요약해놓았다.

 

[표 4] 해킹방법별 점검대상 로그

해킹방법

utmp

wtmp

access_log

messages

news log

su

log

secure

log

spooler log

syslog

비고

SPAM relay








o


popd



o



o




imapd



o



o




named



o







innd




o



o



identd



o







phf/php등 CGI


o








portscan









모니터링

mscan



o







su 시도



o


o





원격 login시도

o


o



o




원격 ftp 시도

o


o



o




서비스거부









모니터링


나. 공격자 관점에서의 분석

시스템 관리자관점에서 분석해나가는 침해사고 시스템 점검을 통해서 얻은 결과에 대해서 만족할 경우도 많지만 경험많은 침입자의 경우 일반적으로 로그들은 삭제하고 가는 경우가 많으므로 해커의 관점에서 시스템 침입시 하는행동들을 예측하고 그 흔적을 알아내어 시스템이 남기는 정상적인 로그이외의 해킹흔적들을 찾아야 한다.

1) 트로이목마(trojan horse)와 뒷문(Backdoor) 프로그램 점검

뒷문 프로그램이란 일명 뒷구멍이라고 해서 해커들이 임의의 시스템을 해킹한 후 해킹한 시스템에 흔적없이 다시 들어오려는데 주로 사용한다. 해커들이 설치하는 프로그램은 원격접근을 위한 뒷문 프로그램 뿐 아니라 내부 사용흔적을 감추기 위해서, 또는 일반사용자가 쉽게 관리자(root)가 되기위해서 기존 프로그램과 이름은 동일하지만 프로그램 내부동작은 침입자의 의도를 만족하는 기능을 가지게 된다.[5][10]

[표 5] 대표적인 트로이목마와 뒷문 프로그램 사례

분 류

뒷문 프로그램명

비고

원격

접근용

trojaned login

매직 패스워드를 사용, 로긴후 로그를 안남김

trojaned inetd

외부에서 숨겨진 포트에 접속 허용

.rhosts, /etc/hosts.equiv

패스워드 없이 모든 호스트의 접근허용

/etc/exports

외부에서 파일시스템 접근허용

trojaned rshd, rlogind

매직 패스워드를 사용, 로긴후 로그를 안남김

trojaned tcpd

특정 IP에대해 무조건 접근허가

trojaned telnetd

매직 패스워드를 사용, 로긴후 로그를 안남김

backdoor daemon(inetd 이용)

/etc/inetd.conf에 백도어 심음

backdoor daemon(영구데몬)

백도어 데몬 프로세스를 특정 포트로 생성

backdoor daemon(rc파일이용)

rc 파일에 백도어 데몬 심음

hosts.allow/hosts.deny

특정 IP나 네트워크에대해 무조건 접근허용

trojaned fignerd

외부의 접근허용 쉘을 띄워줌

기타 trojaned daemons

각종 데몬들의 소스를 수정하여 백도어 가능


내부

사용

흔적

삭제용

trojaned w, who

특정 사용자의 정보를 숨김

trojaned ps, top

특정 프로세스의 정보를 숨김

trojaned ifconfig

스니퍼링 탐지를 방해

trojaned finger

특정 사용자의 정보를 숨김

trojaned netstat

특정 IP의 접속정보 숨김

trojaned ls

특정 파일이나 디렉토리 숨김

trojaned du

특정 파일이나 디렉토리 숨김

trojaned syslogd

특정 로그내용 숨김

trojaned tcpdump

특정 IP의 접속정보 숨김

관리자권한획득용

trojaned shell

부팅화일들이나 보안취약점을 이용 생성

trojaned chfn

일반사용자가 루트가 되게하는 백도어 루틴내장

trojaned chsh

일반사용자가 루트가 되게하는 백도어 루틴내장

 

실제 해킹을 당한 피해시스템을 점검하면서 발견된 사례를 보도록 한다.

가) .rhosts, /etc/hosts.equiv 뒷문 프로그램

% ls -ld /etc/hosts.equiv

-rw-r--r-- 1 root 16 Jan 18 1995 /etc/hosts.equiv

==========================================

# find / -name .rhosts -print

/var/spool/uucppublic/.rhosts

/.rhosts

 

나) 뒷문으로 이용된 서버데몬(inetd 이용)

</etc/service 파일 >

................ 생략

ftp 21/tcp

open 22/tcp open

telnet 23/tcp

smtp 25/tcp mail

t............... 생략

</etc/inetd.conf 파일>

#pop-2stream tcp nowait root /usr/sbin/tcpd ipop2d

pop-3 stream tcp nowait root /usr/sbin/tcpd ipop3d

#imap stream tcp nowait root /usr/sbin/tcpd imapd

................ 생략

open streamtcp nowaitroot /usr/sbin/tcpd /bin/bash

#finger streamtcp nowait root /usr/sbin/tcpd in.fingerd

 

다) 시스템 분석시 발견된 뒷문프로그램 구성 사례

해커들은 뒷문프로그램이 숨겨야 할 정보들을 다음과 같은 구성화일을 만들어 저장하기도 한다. 물론 이 구성화일은 관리자나 사용자가 찾기 어려운 위치에 만든다.

# ls -l /dev/ttypq

total 136

drwxrwxr-x 2 500 500 512 Jun 25 04:23 ./

drwxr-xr-x 4 root other 512 Jul 7 20:18 ../

-rwxr-xr-x 1 500 500 7809 Jun 25 04:23 .linsniffer*

-rw-r--r-- 1 500 500 393 Jun 25 04:23 ls.

-rw-r--r-- 1 500 500 446 Jun 25 04:23 netstat.

-rw-r--r-- 1 500 500 116 Jun 25 04:23 ps.

-rw-r--r-- 1 500 500 33 Jun 25 04:23 syslog.

-rw-r--r-- 1 500 500 11544 Jun 25 04:23 tcp.log

 

< ps 명령에서 감추고 싶은 파일들을 등록 >

#more ps.

2 .linsniffer

2 pepsi

2 smurf

 

라) 발견된 트로이목마 쉘(Trojaned Shell) 뒷문

rc 파일이나 .cshrc, .profile 파일에 뒷문용 코드를 삽입하고, 쉘을 숨겨놓는다.

<rc 파일>

.........................................생략

rm -f /dev/fb

ln -s $fbdev /dev/fb

fi

fi

#echo 'ellrewa:*:1000:1::/:/bin/sh' >> /etc/passwd

#echo'ellrewa:::::: ' >> /etc/shadow

 

< /etc 디렉토리에 위치한 쉘 >

#ls -ld /etc/csh

-r-xr-xr-x 1 root other 89564 5?y 16@O 23:04 csh

#ls -ld /bin/sh

-r-xr-xr-x 3 bin root 89564 19963b 5?y 3@O /bin/sh

 

마) /bin, /usr/bin, /usr/local/bin 디렉토리 파일의 손상여부 점검

침입자들은 자신의 침입에 대한 추적이나 탐지를 피하기 위해 실행화일들을 변경하거나 삭제하므로 /bin, /usr/bin, /usr/local/bin 등의 실행화일을 담고있는 디렉토리의 파일들에 대한 변형유무를 점검해야 한다.

-r-xr-xr-x 1 bin bin 0 Dec 9 22:54 vacation

-r-xr-xr-x 1 bin bin 0 Dec 12 14:20 ftp

-r-sr-xr-x 2 root bin 0 Dec 12 14:21 w

-r-sr-xr-x 2 root bin 0 Dec 12 14:21 uptime

-r-xr-xr-x 1 bin bin 0 Dec 12 14:21 finger

-r-xr-xr-x 1 bin bin 0 Dec 12 14:21 who

-rwxr-xr-x 1 root other 0 Dec 12 14:22 login

 

2) 뒷문 디렉토리 점검

해커들은 자신이 공격한 시스템에 백도어를 유지하거나 새로운 공격을 시도하기위하여 일반적인 방법으로는 보이지않는 디렉토리를 생성한다. 숨겨져있는 디렉토리를 찾기위해서는 우선 해커들의 손이 닿지않은 깨끗한 "ls" 프로그램이 필요하다. 숨겨져있는 디렉토리는 스페이스문자나 탭키, ... 등 특수키의 혼용으로 일반적인 "ls" 명령으로는 잘 보이지가 않는다. 전체 파일시스템에 대하여 find 명령을 이용한 스크립트를 작성하여 백도어 디렉토리를 찾는다. 주로 파일 갯수가 아주 많거나 사용자가 자주 이용하지않는 위치에 백도어 디렉토리가 존재한다.

#ls /var/spool/at/spool/.h/

exploits pen regs.h~ ts2

ipw.c reg.tgz screen ts2.c

ircbnc.c regq.h~ screen-3.7.4.tar.gz tt

login regr.h~ ssh-1.2.20 web

 

3) 각종 서버 원격 취약점 점검

호스트에 서버(데몬)로 인하여 해커들은 침입의 발판되므로 모든 서버들에 대하여 해커들의 원격 침입이 있었는지 알기위해 관리자는 취약성 여부를 확인한 후 해킹가능성을 추측할 수 있다. 시스템의 messages 로그는 주요서버들의 접근 흔적을 따로 유지하고 있다.

Jun 27 20:49:29 ns in.telnetd[12918]: connect from xxx.xxx.50.76

Jun 15 03:39:28 ns imapd[14020]: connect from xxx.xxx.94.85

Jun 15 10:15:07 ns in.ftpd[14169]: connect from xxx.xxx.250.76

 

주요 서버들은 자체로그를 통하여 해킹여부 확인이 가능하다. 하지만 모든 서버들이 로그를 남기는 것이 아니므로 침해사고시 지속적인 감시가 필요하다면 해당 서버 포트의 입출력에 대한 독자적인 로그기록을 남겨야 한다. pop/imap, statd, httpd 의 사례를 살펴본다.

가) <popd/imapd>

Dec 5 11:57:50 www ipop3d[933]: connect from xxx.xxx.124.104

Dec 5 11:57:54 www ipop3d[934]: connect from xxx.xxx.124.104

===========================================================

Jun 22 10:03:07 ns imapd[447]: command stream end of file, while reading line
user=??? host=dialup187-2-45.xxx.xxx.xxx

Jun 15 15:10:40 ns imapd[14943]: Login failure

user=^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P
^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P
^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P host
=irv-ca48-32.xxx.xxx.xxx

 

나) <statd>

May 9 07:08:14 hosim statd[191]: attempt to create "/var/statmon/sm//../../../../

./../../../../../../../../../..//../../../../../../../../../../../../../../../../../../../../../../../../../../tmp/.nfs09 D H $ $ $ $ `

O * * * * # # P *` c 6 )

# # ; # XbinXsh tirdwr "

 

다) <httpd>

xxx.xxx.ter.net - - [27/Mar/1998:06:12:08 +0900] "GET /cgi-bin/phf?Qalias=x%0a

/bin/cat%20/etc/passwd HTTP/1.0" 200 7360

ppp9.xxx.xxx.xxx- - [04/May/1998:04:17:38 +0900] "GET /cgi-bin/phf?Qalias=x%0a/bi

n/cat%20/etc/shadow HTTP/1.0" 200 92

mahler.xxx.xxx.xxx - - [07/Jun/1998:21:55:11 +0900] "POST /cgi-bin/phf?Qname=x%0a/b

in/sh+-s%0a HTTP/1.0" 200 175

m06-024.xxx.xxx.xxx- - [08/Jun/1998:09:17:14 +0900] "POST /cgi-bin/phf?Qname=x%0a/bi

n/sh+-s%0a HTTP/1.0" 200 82

 

4) 최신해킹프로그램 점검

해킹피해시스템에서 해킹프로그렘 존재여부를 확인하며, 해킹사고때마다 발견된 해킹 프로그램에 대해서는 데이터베이스화하여 지속적으로 관리 파악하도록 하여야한다.[2] 참고로 발견된 프로그램들은 인터넷 해킹그룹들 사이에 교환되는 해킹프로그램이거나 이를 일부 수정한 것이 대부분이다.

[표 6] 침해사고분석시 발견된 해킹 프로그램

프로그램명

설명

killinetd

원격지 호스트의 inetd 데몬을 다운시켜서 네트워크서비스를 방해하는 프로그램

imap, imap2

imap 데몬 오버플로우 원격지공격 프로그램

imapver

imap 데몬버전의 원격점검 프로그램

netcat

범용 네트워크 해킹도구

brute.sh

imap 취약점공격시 사용되는 보조 프로그램

z0ne

특정 도메인의 수많은 IP를 찾아내는 프로그램

sniffer

스니퍼 프로그램

linux rootkit

각종 응용프로그램의 백도어 모음(chfn, chsh, inetd, login, ls, du, ifconfig, netstat, passwd, ps, top, rshd, syslogd, tcpd 등)

phfscan

phf.cgi 취약점 스캐너

phpscan

php.cgi 취약점 스캐너

nmap

각종 기능을 추가한 포트스캐너

chkexploit

linux의 각종 시스템 취약점을 찾아내는 스캐너

eipscan

network 레벨의 IP 스캐너

ADMfindall

network 레벨의 IP 스캐너

lsp

network 레벨의 포트스캐너

imapvun

imap 취약점 스캐너

imapd_scan.sh

imap 취약점 스캐너

mscan

imapd, ipopd, statd등 여러개의 취약점을 이용하여 공격하는 취약점 스캐너

기타

sirc, ipw, ircbnc, login, icat, ts2, tt, mendax, phf, s, sirc4, bcast3, bips, boink, bonk, bonk2, ck, fear, frag, jolt, killwin, land, nestea, newteardrop, ns, smurf, ssping, tear2, teardrop 등

 

다. 침해사고분석 절차

침해사고 분석절차는 침해사고처리 담당자가 침해사고를 담당하였을 경우 해당 피해시스템의 침해사고 정보를 수집하고 처리하는 절차이며 이 일련의 처리과정을 요약하여 순서도로 작성하면 <그림 1>과 같다.

 

침해사고 분석시 우선 시스템로그, 주요서버 로그, 그리고 사용자관련 로그 및 파일정보를 이용하여 불법사용자나 불법접근호스트를 파악한 후 사용자 디렉토리 및 시스템 백도어 프로그램을 점검한다. 이후 취약성이 존재하는 서버버전이나 해킹프로그램 유무를 관련 데이터베이스에서 점검하고 모든 정보를 종합하여 결과보고서를 작성한다.

각 점검단계별로 파악되는 사용자정보, 호스트정보, 파일변경시간 정보, 서버 버전정보, 해킹프로그램 정보등은 해당정보를 참고로하여 호스트를 재점검 하기도 하고 각 정보들은 따로 문서화하여 관리하며 전체적인 처리진행사항에 대해서도 수시로 기록해 두었다가 추후 결과보고서작성시에 참조 및 첨부한다.

[목차]

4. 침해사고와 법적 대응 및 수사

4.1 침해사고 대응에 있어서의 수사기관의 역할

침해사고의 대응은 해킹을 사전에 예방하기 위하여 각종 시스템의 버그를 패치하는 등 시스템 보안능력을 강화하고, 침해사고가 발생하였을 경우에는 신속히 복구하여 시스템 운영의 계속성을 보장하는 보안담당자나 이들을 조직적으로 지원하는 침해사고대응팀(CERT)의 활동을 통해서 이루어 진다. 그러나 침해사고대응을 아무리 완벽하게 한다고 해도 공격자인 해커가 아무런 법적 제재를 받지 않고 활동할 수 있다면 시스템 관리자나 보안담당자는 안심할 수 없을 것이다. 따라서 시스템 방어를 위해서는 공격자인 해커를 검거하여 처벌하는 수사기관의 활동도 침해사고대응에 중요한 역할을 한다고 볼 수 있다.

해킹범죄수사는 해킹행위자에게 형사법적 책임을 지우기 위하여 범인을 추적하고, 범행 내용을 증명하기 위하여 증거를 발견·수집·보전하는 수사기관의 활동을 말한다. 일반적으로 범죄수사는 수사개시의 단서를 입수하기 위한 수사활동과 범인을 검거하기 위한 수사활동, 그리고 범죄내용을 입증하는 증거를 확보하기 위한 수사활동 등으로 나누어 볼 수 있다. 그러나 수사를 개시하기 위한 단서도 해커가 패해시스템에 남긴 흔적을 찾아서 분석한 결과물이고, 범인을 검거하기 위한 추적도 패해시스템의 로그기록이나 전송경로상의 시스템에 남아 있는 자료를 분석하여 이루어지며, 범죄내용을 입증하기 위한 증거는 말할 것도 없이 피해시스템에서 얻어지는 자료를 법률적인 입장에서 분석한 것이므로 결국 모든 수사활동이 시스템 분석기술에 의존한다고 해도 과언이 아닐 것이다.[14]

4.2 침해사고의 법률적 측면

침해사고는 대상시스템의 소유자나 관리자 또는 이용자의 권익을 침해하므로써 법적인 문제를 야기한다. 법적인 문제는 시스템의 정상적인 운영이 방해되므로써 발생하는 손실이나 시스템 파괴로 인한 복구비용 등과 같은 민사적인 손해배상 문제 뿐만 아니라, 그 시스템 침해행위가 형벌법규의 요건에 충족될 경우에는 형사책임 문제도 함께 발생 한다.

지금까지 우리나라에서는 침해사고로 인해서 발생한 손해를 법적으로 청구한 사례는 보고되지 않고 있다. 아직도 우리 사회의 분위기는 어떤 사건, 사고가 발생하면 윤리적인 측면에서 검토하여 사회에 악영향을 끼치면 형사 처벌을 요구하는 선에서 그치는 경우가 대부분이고, 냉정하게 자신이나 회사에 발생한 손실을 수치적으로 계산하여 민사적인 손해배상 청구권을 행사하는 경우는 많지 않다. 그리고 침해사고 발생에 따른 손해를 객관적으로 산정하기가 어렵고, 손해 산정에 대한 체계적인 연구가 이루지지 않고 있으며, 이를 전문적으로 다루는 변호사도 많지 않은 실정으로 앞으로 이 분야에 대한 연구가 더욱 깊이 있게 이루어져야 할 것으로 생각된다.[13]

반면, 침해사고를 일으킨 해커가 형사처벌된 사례는 많이 보고되고 있다. '95년 10월에 국내에서는 최초로 해커가 경찰청 해커범죄수사대(현재는 컴퓨터범죄수사대)에 의해서 검거되어 처벌되었는데, '전산망 보급확장과 이용촉진에 관한 법률'이 제정된 이래 처음 적용된 것이였다. 그러나 침해사고가 그 이전에 없었던 것은 아니다. 사실 90년대 초부터 교육망과 연구망 등에 대한 심각한 침해사고가 있었으나 시스템 관리자들도 침해사고에 대응할 준비가 되어 있지 않았고, 수사기관에서도 침해사고에 대응할 능력을 갖추기 이전이었기 때문에 사회적으로 문제가 되지 않았을 뿐이었다. 그러나 이제는 대학·연구기관·대기업을 중심으로 시스템 보안 담당자를 지정하거나 침해사고대응팀을 구성하는 기관이 점차 늘어나고 있으며, 이들의 연합모임인 침해사고대응협의회 등 대응기관이 구성되었고, 수사기관에서도 침해사고를 전담하는 기구가 설치되어 본격적인 활동을 하고 있다. [14]

4.3 해킹범죄수사에 있어서의 시스템 관리자의 역할

해킹범죄수사에 있어서 해킹 피해 시스템 관리자의 협조는 거의 절대적이다. 해커가 목표시스템에 접근하여 불법적으로 사용자 권한을 획득하거나 관리자 권한을 획득하고, 스니퍼나 백도어 설치 등 각종 불법행위를 한 흔적이 피해시스템에 남아 있게 마련이다. 이러한 침입 흔적을 얼마나 잘 찾아내느냐는 해킹범죄수사의 성패를 좌우한다고 볼 수 있다. 그리고 계속되는 불법침입을 모니터링하고 역추적하는 일은 수사기

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,074 명
  • 현재 강좌수 :  35,995 개
  • 현재 접속자 :  524 명