본자료는기관외타인에게내용에대해서인용및반출을금합니다 사이버포렌식개요및실제사례적용 어울림 NGS 기술 1 팀 / 포렌식팀장 서울디지털대학교류동주교수
목차 C ontents 1.System Forensics 2. 안티포렌식 2
System Forensics
포렌식 개요 정의 실세계에서범죄를수사할때적용되는법의학적수사기법을적용하여컴퓨터범죄 (computer crime) 를수사할때법적으로유효한증거를확보하여복구와추적을쉽게하기위한수사기법을총칭하는말 삭제파일디스크복구 컴퓨터범죄에의한증거확보복구및추적 시스템변조및로그분석 네트워크로그및서비스로그분석 4
포렌식 개요 과정 전자적으로처리되어보관 전송되는디지털데이터를적법한절차와과학적기법을사용하여수집하고분석하여증거로제출하는제반행위 증거물획득 (Acquisition) 증거물분석 (Analysis) 증거물보관 (Preservation) 증거제출 (Presentation) 계획수립압수수색증거물확인디스크이미징디스크복제해쉬값입력 삭제된파일복구암호크랙문서키워드검색접근시간분석히스토리분석파일분석 증거훼손, 변경방지외부유출, 도난방지보관의연속성유지증거물꼬리표부착무결성유지 분석과정및분석보고서작성증거로제출 5
포렌식 개요 종류 시스템포렌식 시스템이벤트및로그분석 각종휘발성데이터로그분석 데이터포렌식 변조및삭제된데이터복구및분석 네트워크포렌식 IP 분석및내부보안을위한패턴분석 안티포렌식 개인정보보호측면 모바일포렌식 Hand Held PC, Mobile Phone, 등등 6
Unix Systems 의 Live Data 수집 Forensic duplication 을만들기전에휘발성정보를획득해야함 Initial Response Volatile information Expand In-depth Log files Configuration files System files Relevant files 윈도우즈와유닉스시스템의한가지차이점 파일복구의어려움 윈도우즈는프로세스가실행중에는파일을지울수없으나, 유닉스는삭제가가능함 7
Initial Response 다양한 UNIX 시스템마다고유한사고대응도구준비 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 초기대응단계에서획득한정보의저장 Local hard disk 복구문제를고려해피할것 Floppy disks, USB drives, 또는 tape drives Netcat( 또는Cryptcat) 을통한원격지시스템에전송 사본생성이전에휘발성정보의수집 현재열려진소켓, 수행중인프로세스, 시스템메모리내용 unlinked files의정보 ( 프로세스종료후사라지므로 ) 8
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 을이용하여전송 9
Collecting Volatile Data (2) 열려진포트와사용어플리케이션조사 # netstat anp -p flag 를사용하면 PID 와해당어플리케이션정보출력 # lsof -i ( 열려진네트워크소켓정보출력 ) Solaris 에서 lsof 를실행했을경우실행한사용자의홈디렉토리에.lsof_hostname 라는파일을생성시키거나접근시간을변경할수있음 10
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 11
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 12
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 해당프로세스를직접찾아야함 13
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 를피해시스템에서얻어오는방법을사용 14
로그 리눅스 / 유닉스로그분석 ( 리눅스시스템 ) 로그관리디렉토리 (/var/log/) Messages : 시스템의전반적인기록이남는다. Secure : 보안과관련된네트워크서비스기록이남는다. Lastlog : 계정별최종접속기록이남는다. Wtmp : 접속기록과시스템재부팅에대한기록이남는다. Xferlog : ftp 관련기록이남는다. 15
로그 리눅스 / 유닉스로그분석 ( 리눅스시스템 ) 로그관리명령어 # last : /var/log/wtmp로부터접속기록을가져온다. 특정사용자나시스템에대한내용을선별적으로볼수있다. 16
로그 리눅스 / 유닉스로그분석 # lastlog : /var/log/lastlog 로부터최종접속기록을가져온다. 17
로그 리눅스 / 유닉스로그분석 ( 리눅스시스템 ) 로그관리명령어 # who, w, finger: /var/run/utmp 로부터현재접속기록을가져온다. # id, whoami 18
Investigating Windows Systems 조사를시작하기전에할일 증거보존을위해모든증거데이터의복사본을만듦 Windows 시스템을조사하는방법에대해학습 증거가있을수있는곳 커널구조의휘발성데이터 지스러기공간 (slack space) 자유공간 (free space) 또는미할당공간 (unalocated space) 논리적파일시스템 이벤트로그와레지스터리 (registry) 기타어플리케이션로그 최근스웹파일 (swap files) 어플리케이션수준의특정파일 임시파일 (temporary files) 휴지통 (recycle bin) 프린터스풀 주고받은 e-mail 19
Reviewing All Pertinent Log (1) 로그분석을통해얻을수있는정보 사용자가특정파일에접근했는지 누가시스템에성공적으로로그인했는지 ID 누가시스템에로그인실패했는지 516 Some audit event records 특정어플리케이션사용여부discards 감사정책변경여부 사용자권한변경여부 517 Audit log cleared 이벤트로그의단점 디폴트설정으로로깅하지않는내용이많음 한번에한레코드만볼수있으므로인해많은시간을소모하게함 rights 원격시스템에대해 IP 주소가아닌 NETBOIS name으로저장하여신분확인이어려움 로그파일의최대크기와저장기간제한 Description 528 Successful logon 529 Failed logon 531 Failed logon, locked 538 Successful logoff 576 Assignment and use of 578 Privileged service use Event IDs 20
Reviewing All Pertinent Log (2) 이벤트로그덤프 PsLogList, dumpel.exe netcat or cryptcat 을이용네트워크를통해전송 로그파일의저장위치 %systemroot% system32 config Logs on Live System 시작 / 프로그램 / 관리도구 / 이벤트뷰어 21
키워드검색과 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 파일로저장 22
파일검색 지워진파일과데이터 Undelete 도구사용 휴지통에서의복구 Tmp 에서의복구 Low Level 의복구도구 - File Scavenger 임시적파일저장장소 큰메일의경우분할하여 tmp 형태로저장이된다. 백업파일 NT 의경우 NTBACKUP.EXE 사용 The Swap File Pagefile.sys 숨김파일로저장 셧다운시로컬보안셋팅, 로컬정책, 보안옵션에의해서접근 깨진링크 chklnks.exe 로체크가능 ( %systemroot% Profiles <user> Desktop directory 검색 23
불법적인사용검사 비인가사용자계정 / 그룹검사 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 : 상대적식별자 24
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 25
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, 등 26
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 example ( 자세한내용은 syslog.conf 맨페이지참조 ) *.err;kern.debug;daemon.notice.;mail.crit /var/adm/messages 27
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 일부리눅스 28
특정파일검색 (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 29
특정파일검색 (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 30
특정파일검색 (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 31
신뢰관계분석 Unix 계열시스템간의신뢰관계는다양한서비스들을통해이루어질수있음 rlogin, rsh, NIS, NIS+, NFS, ssh 신뢰관계는대부분다음과같은파일에의해설정됨 /etc/hosts.quiv ~/.rhots linux : /etc/hosts.allow, /etc/hosts.deny 근래에는네트워크의특성을이용한 sniffing 등의기술을통해동일한세그먼트내의호스트들에대한계정정보를알아내어접근하는방법도사용 dsniff 등을이용한스위칭환경에서의 sniffing 32
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 33
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 34
안티포렌식
안티포렌식 - 미국 미국방성 DoD 에서는기밀자료삭제를위한표준 (DoD5220,22-M) 에서복구불가능한완전삭제에대한기본치침제공. 1. 임의의문자로데이터를덮어쓴다. 2. 첫번째문자의보수로덮어쓴다. 3. 다시임의의문자로데이터를덮어쓴다. 4. 이과정을 7 번반복한다. 36
안티포렌식 - 국내사례 2005 년 10 월금융감독원에서 ` 전자금융거래보안종합대책 ` 의일환으로마련한 고객정보완전삭제의무화 방침을발표 금융권에서도디가우저를이용한저장매체보안시행 삼성화재 ` 디가우저 ` 도입금융권첫데이터완전소거로정보유출방지 악의적목적에의해불법적으로사용될경우수사에상당한애로사항으로급부상 프리소프트웨어등등헤아릴수없이많음 http://www.jetico.com/bcwipe3.exe 37
안티포렌식대응수사진행과정 압수수색 자동화도구사용 복원유무복원불가불가원인 대응방법 파괴 불가 증거확보실패 복원가능 변조 은닉 암호화 원형복원 복원 암호크랙 증거확보 38
Timestomp 39
대응방향 정확한시스템지식이필요 새로운환경과변화하는기술을지속적으로습득할수있는교육체계가필요 기존의범죄와는다른양상의새로운패러다임으로의인식전환이필요 다양한포렌식툴의사용법과불법적행위자의 역지사지 사고가필요 포렌식분석도구를활용하여컴퓨터의기본지식을바탕으로한전문가가범죄에대해서많은정보수집과분석을통해향후동일한범죄에대해서는대처방안을만들수있어야한다. 40
결론 정확한시스템지식이필요 일선검, 경찰등의관련장비보급시급 유비쿼터스시대에맞춘다양한범죄방식및증거채득고민 관련법률확정및국내외사례를통해독자적법률제정필요 새로운환경과변화하는기술을지속적으로습득할수있는교육체계가필요 기존의범죄와는다른양상의새로운패러다임으로의인식전환이필요 다양한포렌식툴의사용법과불법적행위자의 역지사지 사고가필요 포렌식분석도구를활용하여컴퓨터의기본지식을바탕으로한전문가가범죄에대해서많은정보수집과분석을통해향후동일한범죄에대해서는 DB 구축및관련법률제정으로방안을만들수있어야함. 41
감사합니다!!! Q and A 42
Thank you