사이버포렌식개요및실제사례적용download.sdu.ac.kr/files/Board_Files/Home_C32_ProLec/Home_C32... ·...
Transcript of 사이버포렌식개요및실제사례적용download.sdu.ac.kr/files/Board_Files/Home_C32_ProLec/Home_C32... ·...
사이버포렌식 개요 및 실제 사례적용
어울림
NGS
기술
1팀/ 포렌식
팀장
서울디지털대학교
류동주
교수
본 자료는 기관 외 타인에게 내용에 대해서 인용 및 반출을 금합니다
22
목 차
1.System Forensics
2.안티
포렌식
CC
o n t e n t so n t e n t s ……
System Forensics
44
포 렌 식
개 요
•
정 의–
실세계에서
범죄를
수사할
때
적용되는
법의학적
수
사기법을
적용하여
컴퓨터
범죄
(computer crime) 를
수사할
때
법적으로
유효한
증거를
확보하여
복
구와
추적을
쉽게
하기
위한
수사
기법을
총칭하는 말
컴퓨터 범죄에 의한 증거 확보복구
및
추적
삭제파일디스크
복구 시스템
변조
및로그분석
네트워크
로그
및서비스
로그
분석
55
포 렌 식
개 요
•
과 정–
전자적으로
처리되어
보관·전송되는
디지털
데이터를
적
법한
절차와
과학적
기법을
사용하여
수집하고
분석하여 증거로
제출하는
제반
행위
분석과정
및분석보고서
작성증거로
제출
증거제출(Presentation)
계획수립압수수색
증거물
확인디스크
이미징디스크
복제해쉬값
입력
증거물
획득(Acquisition)
삭제된
파일
복구암호
크랙문서
키워드검색접근
시간
분석히스토리
분석파일
분석
증거물
분석(Analysis)
증거
훼손,변경방지외부유출, 도난
방지보관의
연속성
유지증거물
꼬리표
부착무결성
유지
증거물
보관(Preservation)
66
포 렌 식
개 요
•
종 류–
시스템
포렌식
•
시스템
이벤트
및
로그
분석
•
각종
휘발성
데이터
로그
분석
–
데이터
포렌식•
변조
및
삭제된
데이터
복구
및
분석
–
네트워크
포렌식•
IP분석
및
내부
보안을
위한
패턴
분석
–
안티
포렌식•
개인정보보호
측면
–
모바일
포렌식•
Hand Held PC, Mobile Phone, 등등
77
Unix Systems의
Live Data 수집
•
Forensic duplication을
만들기
전에
휘발성
정보를
획득 해야
함
•
윈도우즈와
유닉스
시스템의
한가지
차이점–
파일
복구의
어려움
–
윈도우즈는
프로세스가
실행
중에는
파일을
지울
수
없으나, 유
닉스는
삭제가
가능함
In-depth
Volatile information Configuration filesConfiguration files
Log filesLog files
System filesSystem files
Relevant filesRelevant files
Expand
Initial Response
88
Initial Response
•
다양한
UNIX 시스템
마다
고유한
사고대응
도구
준비
•
초기
대응
단계에서
획득한
정보의
저장
–
Local hard disk – 복구문제를
고려해
피할
것
–
Floppy disks, USB drives, 또는
tape drives
–
Netcat (또는 Cryptcat)을 통한 원격지 시스템에 전송
•
사본
생성
이전에
휘발성
정보의
수집
–
현재
열려진
소켓, 수행중인
프로세스, 시스템
메모리
내용
–
unlinked files의
정보
(프로세스
종료
후
사라지므로)
ls dd des file pkginfo
find icat lsof md5sum netcat
or cryptcat
netstat pcat perl ps strace
strings truss df vi cat
more gzip last w rm
script bash modinfo lsmod ifconfig
99
Collecting Volatile Data (1)
•
먼저
안전한
shell을
실행
•
백업
장치
준비
# mount /dev/fd0 /mnt/floppy
•
shell을
실행시킨
후
PATH
# export PATH=.:$PATH
–
만의
하나
피해
시스템의
명령을
실행하는
경우를
방지하기
위해서
명령어들
이름을
조금씩
다르게
바꿔준다.
즉, netstat
=> tnetstat
(trusted netstat)
•
조사를
시작한
시간을
기록
(date 사용)
•
현재
시스템에
로그인한
사용자를
기록
(w 사용)
•
모든
파일에
대한
MAC time 기록
# ls
–alRu
/ > /floppy/atime
# ls
–alRc
/ > /floppy/ctime
# ls
–alR
/ > /floppy/mtime
•
일반적으로
플로피(1.44MB)에
모든
정보를
기록하
기
어렵기
때문에
netcat을
이용하여
전송
1010
Collecting Volatile Data (2)
•
열려진
포트와
사용
어플리케이션
조사
# netstat
–anp•
-p flag를
사용하면
PID와
해당
어플리케이션
정보
출력
# lsof
-i (열려진
네트워크
소켓
정보
출력)
•
Solaris에서
lsof를
실행했을
경우
실행한
사용자의
홈
디렉토리에
“.lsof_hostname” 라는
파일을
생성시키거나
접근
시간을
변경할
수
있음
1111
Collecting Volatile Data (3)
•
현재
실행중인
프로세스
정보
수집
–
Linux & FreeBSD : ps
–aux
–
Solaris : ps
–ealf
•
최근의
네트워크
연결
정보
수집
–
열린
포트
조사
명령과
동일한
netstat
사용
•
조사
단계에서
취한
행동에
대한
기록
–
조사
시작
이전에
script 명령을
사용하고
조사가
끝나면
[Ctrl +
d]
–
# script /mnt/floppy/command_log.txt
•
시스템의
모든
파일에
대한
md5 checksum
–
# md5sum * > md5sum.txt
1212
In-Depth Live Response (1)
•
LKM(Loadable
Kernel Module) rootkit
탐지–
LKM rootkit
•
조사에
필요한
정보를
얻는데
필요한
주요
바이너리들의
시스
템
콜을
가로채서
변조된
정보를
제공하는
형태의
rootkit
•
knark, adore, heroin, sinapse
등
–
Kstat 등의 LKM rootkit 검출 도구 사용
•
시스템
로그
저장–
일반적인
중요한
로그
파일
위치
•
/var/adm
•
/var/log
–
바이너리
로그
파일들
•
utmp
=> w utility (현재
시스템
사용자
snap shot)
•
wtmp
=> last utility (시스템
접속
기록)
•
lastlog
=> lastlog
utility (각
유저의
최종
로그인
시간)
•
lastcomm
=> 각
계정
사용자의
명령어를
기록
(Solaris)
–
텍스트
로그
파일들
•
Web log, xferlog, history files
1313
In-Depth Live Response (2)
•
중요한
환경
파일
저장
–
/etc/passwd, /etc/shadow, /etc/groups, /etc/hosts.equiv, ~/.rhosts, /etc/hosts, /etc/hosts.allow, /etc/hosts.deny, /etc/syslog.conf, /etc/rc, /etc/crontab, /etc/inetd.conf, /etc/xinetd.conf
등
•
악성
스니퍼
탐지
–
네트워크
카드가
promiscuous mode로
동작
중인지
검사
•
# ifconfig
–a
–
Solaris 시스템은
무차별
모드를
표시하지
않음
–
일반적인
스니퍼의
경우
가로챈
사용자
계정과
패스워드를
특정
파일에
기록을
하기
때문에
그
점에
착안하여
lsof
해당
프로세스
를
직접
찾아야
함
1414
In-Depth Live Response (3)
•
/proc 파일
시스템
검색–
실행중인
각각의
프로세스는
/proc 디렉토리에
각각의
PID를
이
름으로
하는
서브
디렉토리가
존재
–
cmdline
(프로세스
명령어
부분)
–
exe link (연결된
파일)
•
실행
파일을
삭제해도
프로세스가
살아
있다면
삭제된
실행
파일에
대한
복구가
가능
–
fd
sub-directory (사용한
파일
정보)
•
fd
sub-directory에
0,1,2를
제외한
특이한
file descriptor 가
존재
하는
경우, 또
그러한
fd
값들이
네트워크
소켓을
참조하는
경우라
면
해당
프로세스는
의심할
필요가
있음
•
시스템
RAM 덤프–
Unix 시스템에서
시스템의
메모리를
덤프하는
방법은
없음
–
/proc/kmem
또는
/proc/kcore를
피해시스템에서
얻어오는
방
법을
사용
1515
로그
•
리눅스/유닉스 로그 분석 (리눅스 시스템)
–
로그
관리
디렉토리
(/var/log/)
Messages
: 시스템의
전반적인
기록이
남는다.
Secure
: 보안과
관련된
네트워크
서비스
기록이
남는다.
Lastlog
: 계정
별
최종
접속
기록이
남는다.
Wtmp
: 접속
기록과
시스템
재부팅에
대한
기록이
남는다.
Xferlog
: ftp 관련
기록이
남는다.
1616
로그
•
리눅스/유닉스
로그
분석
(리눅스
시스템)–
로그
관리
명령어
# last
: /var/log/wtmp로부터
접속
기록을
가져온다.
◈
특정
사용자나
시스템에
대한
내용을
선별적으로 볼 수 있다.
1717
로그
•
리눅스/유닉스
로그
분석# lastlog
: /var/log/lastlog로부터
최종
접속
기록을
가
져온다.
1818
로그
•
리눅스/유닉스 로그 분석 (리눅스 시스템)–
로그
관리
명령어
# who, w, finger: /var/run/utmp로부터
현재
접속
기록을
가져온다.
# id, whoami
1919
Investigating Windows Systems
•
조사를
시작하기
전에
할
일
–
증거
보존을
위해
모든
증거
데이터의
복사본을
만듦
–
Windows 시스템을
조사하는
방법에
대해
학습
•
증거가 있을 수 있는 곳–
커널
구조의
휘발성
데이터
–
지스러기
공간(slack space)
–
자유
공간(free space) 또는
미할당
공간(unalocated
space)–
논리적
파일
시스템
–
이벤트
로그와
레지스터리(registry)
–
기타
어플리케이션
로그
–
최근
스웹
파일(swap files)
–
어플리케이션
수준의
특정
파일
–
임시
파일(temporary files)
–
휴지통(recycle bin)
–
프린터
스풀
–
주고받은
2020
Reviewing All Pertinent Log (1)
•
로그분석을
통해
얻을
수
있는
정보
–
사용자가
특정
파일에
접근했는지
–
누가
시스템에
성공적으로
로그인
했
는지–
누가
시스템에
로그인
실패했는지
–
특정
어플리케이션
사용
여부
–
감사
정책
변경
여부
–
사용자
권한
변경
여부
•
이벤트
로그의
단점
–
디폴트
설정으로
로깅하지
않는
내용
이 많음–
한번에
한
레코드만
볼
수
있으므로
인
해
많은
시간을
소모하게
함
–
원격
시스템에
대해
IP 주소가
아닌
NETBOIS name으로
저장하여
신분확
인이
어려움
–
로그파일의
최대크기와
저장기간
제한
ID Description
516 Some audit event records discards
517 Audit log cleared
528 Successful logon
529 Failed logon
531 Failed logon, locked
538 Successful logoff
576 Assignment and use of rights
578 Privileged service use
Event IDsEvent IDs
2121
Reviewing All Pertinent Log (2)
•
이벤트
로그
덤프–
PsLogList, dumpel.exe
–
netcat
or cryptcat을
이용
네트워크를
통해
전송
•
로그파일의
저장
위치–
₩%systemroot%₩system32₩config
•
Logs on Live System–
시작/프로그램/관리도구/이벤트뷰어
2222
키워드
검색과
E-mail 검색
•
Performing Keyword Searches
–
지적재산권, 성범죄
등
문자기반
통신을
포함한
자료를
조사
시
에는
hard drive 에
대한
문자
검색이
중요
함
–
Disk-search utility : dtSearch
•
Proprietary Email Files
–
Netscape messenger Mail
•
program Files₩Netscape₩Users₩<User Account >₩Mail
•
Index, message-text 의
형태로
저장
–
Microsoft Outlook Mail
•
Documents and Settings₩<User Account>₩Local
Settings₩Application Data₩Microsoft₩Outlook
•
Pst
파일로
저장
2323
파일
검색
•
지워진
파일과
데이터
–
Undelete 도구
사용
–
휴지통에서의
복구
–
Tmp에서의
복구
–
Low Level의
복구
도구
-
File Scavenger
•
임시적
파일
저장
장소
–
큰
메일의
경우
분할하여
tmp형태로
저장이
된다.
•
백업
파일
–
NT의 경우 NTBACKUP.EXE사용
•
The Swap File–
Pagefile.sys
– 숨김
파일로
저장
•
셧다운시
로컬
보안
셋팅, 로컬
정책, 보안
옵션에
의해서
접근
•
깨진
링크
–
chklnks.exe로
체크가능
(₩%systemroot%₩Profiles₩<user>₩Desktop directory 검색
2424
불법적인
사용
검사
•
비인가
사용자
계정/그룹
검사
–
NTRK의
usrstat를
이용하여
의심스런
내용을
검색하고
도메인컨트
롤러의
모든
도메인계정에
대해서
확인
–
₩%systemroot%₩Profiles를
검색
–
HKLM₩SOFTWARE₩Microsoft₩Windows
NT₩CurrentVersion₩
ProfileList에
있는
SID를
검색
•
악성
프로세스
확인
–
트로이
목마, 백도어
프로그램, 키스트로크
로거
등
•
비정상/숨겨진
파일
검색
–
ListDLLs를
이용하여
검색가능
•
원격
제어
서비스
검사
–
netstat, Fport, PsList를
이용하여
열려있는
포트를
확인
•
공유
폴더
검사
•
보안
인식표(SID) 검사
–
일종의
도메인과
시스템의
지문역할
–
예) s-1-5-21-917267712-1342860078-1792151419-500
1 : 계정에
수정
레벨5 : 식별자
권한
값21-917267712-1342860078-
1792151419 하위
권한
값500 : 상대적
식별자
2525
Unix 로그
파일들
(1)
•
Syslog–
/var/log/messages
–
공격자가
root 권한을
얻었다는
것이
의심되는
경우
로그
파일의
내용은
신뢰할
수
없음
•
Su Command Logs–
Linux => /var/log/messages
–
Solaris => /var/adm/sulog
( “-” 실패, “+” 성공)
•
Logged-on User Logs–
utmp, wtmp
파일을
참조하는
w, who, finger, last 등의
명령을
사용하여
확인
–
zap 등의
대부분의
해킹
프로그램은
로그
엔트리에서
자신이
삭
제하고
하는
엔트리를
선택적으로
삭제
가능
•
Cron
Logs–
/var/cron/log
2626
Unix 로그
파일들
(2)
•
Process Accounting Logs
–
각
사용자가
로그인하여
실행한
명령어를
기록
–
Only Solaris Systems => lastcomm, acctcom
•
/usr/lib/acct/startup
•
/usr/lib/acct/turnacct
on|off|switch
–
AIX System => lastcomm
•
Shell Histories
–
Linux bash
•
~/.bash_history
•
TCP Wrapper Logging
–
wrapper에
의해
접근이
통제되고
있는
서비스에
대한
접속
기록이
syslog를
통
해
기록됨
•
Other Network Logs
–
HTTP access/error logs, FTP xferlog, 등
2727
Unix 로그
파일들
(3)
•
linux: /var/log
•
대부분의
Unix 계열
시스템에서
시스템
로그는
syslog
daemon 에
의해서
이루어
진다.
•
syslogd
–
/etc/syslog.conf
•
facility filed : auth(security), authpriv, cron, daemon, kern, lpr,
mail, mark, news, syslog, user, uucp, local0-7
•
priority field : debug, info, notice, warning, err, crit, alert,
emerg
•
Action field
( 자세한
내용은
syslog.conf
맨
페이지
참조)
–
example
•
*.err;kern.debug;daemon.notice.;mail.crit
/var/adm/messages
2828
Unix 로그
파일위치
(4)
•
주요
유닉스
시스템의
로그
파일
저장
위치
경 로 적용
시스템
/usr/adm 초기 유닉스, BSD 게열 : HP-UX 9.X, SunOS 4.x
/var/adm 최근
유닉스, SVR 계열
: SUN Solaris, HP-UX 10.x 이후, IBM AIX
/var/log 일부
BSD 계열
: BSD, FreeBSD, SUN Solaris, Linux
/var/run 일부
리눅스
2929
특정
파일
검색
(1)
•
String Searches with grep
–
# grep
PROMISC /sbin/ifconfig
–
파일
시스템
전체에
대한
문자열
검색
•
# grep
-r -i password /
•
# find / -print | xargs
grep
–i password
–
raw device에
대한
문자열
검색
•
File Searches with find
–
숨겨진
디렉토리
또는
파일
검색
•
# find / -name “₩.₩.₩.” –print
•
# find / -name “..*” -print
•
# find / -name “.*” -print
•
# find / -name “ “ -type d 2>/dev/null
3030
특정
파일
검색
(2)
•
Incident Time and Time/Date Stamps–
Initial response 때
작성한
MAC time list에서
4월
16일
오후
1
시에서
3시
사이에
접근된
파일을
찾고자
할
때.
•
[root@investor
case] # grep
“Apr 16 1[34]” atime.txt
–
passwd
파일에
공격자가
UID 0인
계정을
생성
•
[root@victim
/]# ls
–alc
/etc/passwd
-rw-r--r--
1 root root
722 Dec 8 22:58 /etc/passwd
[root@victim
/]# grep
“Dec 8” atime.txt
mtime.txt
ctime.txt
•
Special Files–
SUID and SGID files
•
# find / -type f -perm -04000
•
# find / -type f -perm -02000
•
Configuration Files–
TCP Wrapper Conf. files => /hosts.deny, /hosts.allow
–
/etc/inetd.conf
, /etc/xinetd.conf
3131
특정
파일
검색
(3)
•
Startup Files–
/var/spool/cron, /usr/spool/cron
•
이
디렉토리에
각
사용자
권한으로
실행되는
프로그램들이
사용자
명을
디렉토리
이름으로
하는
서브
디렉토리가
존재
한다.
–
System startup files
•
Linux => /etc/rc.d
•
Solaris /etc/inittab
에서
정의된
run level 에
따라
/sbin/rc* 스크립트가
선택적으로
실행된다. 이
스크립트들은
/etc 디렉토리에
심볼릭
링
크가
되어
있다.
즉, /etc 밑에
자기와
같은
이름을
가진
디렉토리를
찾고
그
디렉토
리
안에
있는
스크립트를
실행한다. 그리고
rc* 스크립트가
실행하
는
모든
스크립트들은
/etc/init.d
에
있는
스크립트들에
하드
링크
되어
있다.
–
~/.login , .profile, .bashrc, .cshrc
•
Tmp
Directory
3232
신뢰
관계
분석
•
Unix 계열
시스템간의
신뢰관계는
다양한
서비스들을
통해
이루어
질 수 있음
–
rlogin, rsh, NIS, NIS+, NFS, ssh
•
신뢰관계는
대부분
다음과
같은
파일에
의해
설정됨
–
/etc/hosts.quiv
–
~/.rhots
–
linux
: /etc/hosts.allow, /etc/hosts.deny
•
근래에는
네트워크의
특성을
이용한
sniffing 등의
기술을
통해
동일
한
세그먼트
내의
호스트들에
대한
계정
정보를
알아내어
접근하는
방법도
사용
–
dsniff
등을
이용한
스위칭
환경에서의
sniffing
3333
Forensic Software
•
피해시스템
분석
도구–
Chkrootkit
•
http://www.chkrootkit.org
–
Lsof
(List Open File)
•
ftp://vic.cc.purdue.edu/pub/tools/unix/lsof/
–
TCT (The Coroner’s Toolkit)
•
http://www.porcupine.org/forensics/tct.html
–
TCTUtils
•
http://www.cerias.purdue.edu/homes/carrier/forensics/
–
Autopsy Forensic Browser
•
http://www.cerias.purdue.edu/homes/carrier/forensics/
–
EnCase
•
http://encase.com/products/EnCaseForensic/
–
기타
•
http://www.securitymap.net/sp/sp-index.html
3434
Forensics Reference Sites
•
FBI Handbook of Forensic Services. http://www.fbi.gov/programs/lab/handbook/intro.htm•
Solaris Fingerprint Database for cryptographic
comparison of system binaries. http://sunsol
ve.sun.com/pub-cgi/fileFingerprints.pl
•
Inspecting Your Solaris System and Network Logs
for Evidence of Intrusion. http://www.cert
.org/security-improvement/implementations/i003.01.html
•
RCMP Article on the Forensic Process. http://www.rcmp-grc.gc.ca/tsb/pubs/bulletins/bull4
1_3.htm
•
Lance Spitzner’s
Page: Forensic Analysis, Building Honeypots.
http://www.enteract.com/~l
spitz/pubs.html
•
The Forensic Toolkit (NT). http://www.ntobjectives.com/forensic.htm•
Cryptcat. http://www.farm9.com/Free_Tools/Cryptcat•
Long Play Video Recorders. http://www.pimall.com/nais/vrec.html•
FBI Handbook of Forensic Services. http://www.fbi.gov/programs/lab/handbook/intro.htm•
Solaris Fingerprint Database for cryptographic comparison of system binaries. http://sunsol
ve.sun.com/pub-cgi/fileFingerprints.pl
•
Inspecting Your Solaris System and Network Logs for Evidence of Intrusion. http://www.cert
.org/security-improvement/implementations/i003.01.html
•
ONCTek
List of possible Trojan/Backdoor Activity http://www.onctek.com/trojanports.html•
Sixteen Tips for Testifying in Court from the “PI Mall” http://www.pimall.com/nais/n.testify.ht
ml
안티 포렌식
3636
안티
포렌식
-
미국
•
미국방성
DoD에서는
기밀자료
삭제를
위한
표 준
(DoD5220,22-M)에서
복구
불가능한
완전
삭제에
대한
기본
치침
제공.
1. 임의의
문자로
데이터를
덮어쓴다.
2. 첫
번째
문자의
보수로
덮어쓴다.
3. 다시
임의의
문자로
데이터를
덮어쓴다.
4. 이 과정을 7번 반복한다.
3737
안티포렌식
-
국내
사례
•
2005년
10월
금융감독원에서
`전자
금융
거래 보안
종합
대책`의
일환으로
마련한
‘고객정보
완
전
삭제
의무화’ 방침을
발표
•
금융권에서도
디가우저를
이용한
저장
매체
보 안 시행
•
삼성화재
`디가우저` 도입
금융권
첫
데이터
완 전소거로
정보유출
방지
•
악의적
목적에
의해
불법적으로
사용될
경우
수 사에
상당한
애로사항으로
급부상
•
프리
소프트웨어
등등
헤아릴
수없이
많음–
http://www.jetico.com/bcwipe3.exe
3838
안티포렌식 대응 수사 진행 과정
압수
수색
증거
확보
대응
방법
자동화
도구사용
복원
유무 복원
불가 불가
원인
복원
가능
증거
확보
실패
변 조
은 닉
암 호 화
파 괴
원형
복원
복 원
암호
크랙
불 가
3939
Timestomp
4040
대응
방향
•
정확한
시스템
지식이
필요
•
새로운
환경과
변화하는
기술을
지속적으로
습 득할 수 있는 교육 체계가 필요
•
기존의 범죄와는 다른 양상의 새로운 패러다임 으로의
인식
전환이
필요
•
다양한
포렌식
툴의
사용법과
불법적
행위자의 “역지사지” 사고가
필요
•
포렌식
분석
도구를
활용하여
컴퓨터의
기본
지 식을
바탕으로
한
전문가가
범죄에
대해서
많은
정보
수집과
분석을
통해
향후
동일한
범죄에
대 해서는
대처
방안을
만들
수
있어야
한다.
4141
결 론
–
정확한
시스템
지식이
필요
–
일선 검, 경찰 등의 관련 장비 보급 시급
–
유비쿼터스
시대에
맞춘
다양한
범죄
방식
및
증거
채득
고민
–
관련
법률
확정
및
국내외
사례를
통해
독자적
법률
제정
필요
–
새로운
환경과
변화하는
기술을
지속적으로
습득할
수
있는
교육
체계가
필요
–
기존의
범죄와는
다른
양상의
새로운
패러다임으로의
인식
전환
이 필요
–
다양한
포렌식
툴의
사용법과
불법적
행위자의
“역지사지” 사고
가 필요
–
포렌식
분석
도구를
활용하여
컴퓨터의
기본
지식을
바탕으로
한
전문가가
범죄에
대해서
많은
정보
수집과
분석을
통해
향후
동
일한
범죄에
대해서는
DB 구축
및
관련
법률
제정으로
방안을
만
들
수
있어야
함.
4242
감 사 합 니 다!!!
Q and A
Thank you