2012. 10. 본보고서의전부나일부를인용시 반드시 자료 한국인터넷진흥원 를명시하여주시기바랍니다
가이드요약 가이드목적 해킹사고원인분석및조치시참고자료 사고예방을위한서비스보안강화시참고자료 가이드내용 사고가발생한경우사고유형별점검사항과특이사항발생에따른조치방법안내 사고유형공통웹변조악성코드경유지 유포지봇넷 해킹경유지 점검사항 계정 로그파일 웹쉘 백도어 루트킷 웹페이지 메소드 웹로그 웹페이지 접속 네트워크연결 네트워크연결 설치프로그램 시스템보안강화를위해서비스별조치방법안내 서비스 웹서버 네트워크 어플리케이션 조치방안 에대한최신패치적용 웹서버전용호스트로구성 서버에대한접근제어 영역에위치 강력한관리자계정패스워드사용 파일접근권한설정 웹프로세스의권한제한 로그파일의보호 웹서비스영역의분리 설정파일백업 트래픽제한 원격접근제한 불필요한서비스중단 로그관리 시스템보안패치적용 원격으로부터의접속차단 사용자별접속권한설정 웹취약점점검수행 휘슬설치및주기적인검사수행 캐슬설치및운영 - 2 -
< 목차 > 침해사고개요 사고유형별시스템점검항목및조치방안 공통 웹변조 악성코드경유지 유포지 봇넷 해킹경유지 웹서버취약점조치방안 네트워크취약점조치방안 취약점조치방안 어플리케이션취약점조치방안 별첨 사용법 별첨 주요용어정리 - 3 -
I. 침해사고개요 침해사고정의 < 정보통신망이용촉진및정보보호등에관한법률제2조 1항 7조 > 침해사고 란해킹, 컴퓨터바이러스, 논리폭탄, 메일폭탄, 서비스거부또는고출력전자기파등의방법으로정보통신망또는이와관련된정보시스템을공격하는행위를하여발생한사태를말한다. m 침해사고유형 바이러스 트로이잔 웜 백도어 악성코드등의공격 비인가된시스템접근및파일접근 네트워크정보수집을포함한비인가된네트워크정보접근 네트워크서비스의취약점을이용하여서비스를무단이용하는비인가된서비스이용 네트워크및시스템의정상적인서비스를마비또는파괴시키는서비스방해 m 침해사고대응 단계 - 4 -
단계 사고전준비 사고가발생하기전침해사고대응팀과조직적인대응을준비 단계 사고탐지 정보보호및네트워크장비에의한이상징후탐지 관리자에의한침해사고의식별 단계 초기대응 초기조사수행 사고정황에대한기본적인세부사항기록 사고대응팀신고및소집 침해사고관련부서에통지 단계 대응전략체계화 최적의전략을결정하고관리자승인을획득 초기조사결과를참고하여소송이필요한사항인지를결정하여사고조사과정에수사기관공조여부를판단 단계 사고조사 데이터수집및분석을통하여수행 언제 누가 어떻게사고가일어났는지 피해확산및사고재발을어떻게방지할것인지를결정 단계 보고서작성 의사결정자가이해할수있는형태로사고에대한정확한보고서를작성 단계 해결 차기유사공격을식별및예방하기위한보안정책의수립 절차변경 사건의기록 장기보안정책수립 기술수정계획수립등을결정 각단계별세부내용은침해사고분석절차안내서참고 - 5 -
II. 사고유형별시스템점검항목및조치방안 한국인터넷진흥원에분석을요청할경우유의사항 침해사고관련파일 악성코드 프로세스 등을제거하지않은상태에서분석요청 불가피하게제거해야할경우악성파일은경로와 생성 접근 수정시간 을확보하고 프로세스는해당프로세스와관련된디렉토리또는파일경로와 을확보해야함 악성파일백업필수 리눅스의경우 명령문과 명령문활용 사고유형 - 공통 m 시스템점검사항 사고유형점검항목점검내용비고 공통 계정로그파일웹쉘백도어루트킷 사용하지않는계정및숨겨진계정확인 Windows : [ 관리도구 ]->[ 컴퓨터관리 ]-> [ 로컬사용자및그룹 ]->[ 사용자 ] 정보확인 Linux : /etc/passwd 확인 이벤트로그및시스템로그변조유무확인 Windows : [ 관리도구 ]->[ 컴퓨터관리 ]-> [ 이벤트뷰어 ] 확인 Linux : /var/log/secure, message 등확인 웹로그경로및변조유무확인 [ 관리도구 ]->[ 인터넷정보서비스 (IIS) 관리 ] 에서웹로그경로확인 Linux : /usr/local/apache/logs 확인 확장자별웹쉘 Signature 점검 asp, aspx, asa, cer, cdx, php, jsp, html, htm, jpg, jpeg, gif, bmp, png 네트워크상태확인 nmap -sv 서버IP 비정상포트및외부연결확인 Windows : netstat, TCPView 등사용 Linux : netstat -nlp, lsof -i 숨겨진프로세스및비정상프로세스확인 변조된파일및시스템명령어확인 Windows : IceSword, GMER 등사용 Linux : Rootkit Hunter, Check Rootkit 등사용 $ 문자가포함된계정확인 패스워드미설정계정확인 /bin/bash 점검 웹로그생성 / 수정시간확인 휘슬 (WHISTL) 사용 www.krcert.or.kr 신청 사용법 : 붙임1 참조 6666, 6667 등의심 Port 확인 의심 Port를사용하는프로세스확인 Rootkit Hunter 업데이트필수 rkhunter --update 사용법 : 붙임1 참조 - 6 -
m 특이사항발생에따른조치방안 사용하지않는계정과숨겨진계정삭제 웹쉘발견시업로드된경로를파악하여해당취약점제거 루트킷의경우일부시스템명령어만변조된경우는무결성이보장된명령어로교체가능하나다수의라이브러리들이변조되었을경우는시스템재설치필요 백도어포트가발견될경우해당 에대한차단정책을적용하고백도어서비스와관련된파일을확인하여삭제 차단정책적용을위해서버내방화벽 활용가능 서버내바이너리변조를통한백도어증상확인시관련된바이너리제거및재설치 리눅스바이너리변조여부확인 활용가능 사고유형 - 웹변조 m 시스템점검사항 사고유형점검항목점검내용비고 웹페이지확인 공통 : index.html, main.html, default.html, index.php, main.php Windows : index.asp, main.asp, default.asp 기타메인페이지로설정된파일확인 Windows : WebDAV 활성화확인 웹사이트 변조 HTTP 메소드 [ 관리도구 ]->[ 인터넷정보서비스 (IIS) 관리 ] ->[ 웹서비스확장 ] 허용여부확인 Linux : Apache 웹서버의 httpd.conf 확인 Windows : [ 사용금지 ] 로설정 Linux : deny로설정 <Directory/> 에서 MOVE 또는 PUT 메소드 allow 설정여부확인 웹로그 MOVE, PUT 메소드공격여부확인 Linux : grep 기본제공 분석 grep MOVE 웹로그 grep -v 404 Windows : grep.exe 사용 m 특이사항발생에따른조치방안 윈도우 웹서버의 가활성화되어있을경우사용중지 - 7 -
리눅스아파치웹서버의설정파일에서사용하지않는 메소드에대해허용금지 웹서버또는아파치웹서버의설정이변경되었을경우관리자계정변경필수 웹페이지내용이변경되었을경우휘슬을통해웹쉘감염여부를확인하고발견될경우삭제조치 웹쉘이발견될경우웹접속로그를통해웹쉘에접근한 를확인하고방화벽을통해접근제한정책적용 사고유형 - 악성코드경유지 / 유포지 m 시스템점검사항 사고유형점검항목점검내용비고 악성코드 유포지 / 경유지 웹페이지확인접속 IP 확인 악성코드유포페이지확인 x.html 등과같은의심페이지점검 악성코드유포지 URL 삽입페이지검출 grep -r 유포지 URL 웹페이지Path 웹페이지생성및수정시간확인 악성코드유포 / 경유페이지접속 IP 추출 grep 유포 / 경유페이지 Path 웹로그 Path 추출된 IP는악성코드에감염된좀비 PC를확보하는데매우중요 KISA 에서보급중인휘슬 설치권장 www.krcert.or.kr 신청 m 특이사항발생에따른조치방안 악성코드유포페이지에대한파일생성및수정시간확인 유포페이지생성시점기준으로웹접속로그및시스템로그를분석하여또다른침해여부확인 휘슬을통해웹쉘감염여부를확인하고발견될경우삭제조치 웹쉘이발견될경우웹접속로그를통해웹쉘에접근한 를확인하고방화벽을통해접근제한정책적용 - 8 -
사고유형 - 봇넷 C&C m 시스템점검사항 사고유형점검항목점검내용비고 봇넷 C&C 네트워크 연결 외부네트워크연결확인 Windows - netetat -na를통해확인후의심 Port (6667, 6668 등과같은 IRC Port) 에연결된 IP를확인 Linux : netstat -na 또는 lsof -i - Windows와동일하게확인 네트워크트래픽분석 Windows : Wireshark 를사용하여패킷분석 Linux : TCPDump를사용하여패킷분석 m 특이사항발생에따른조치방안 외부네트워크와연결된백도어포트발견시방화벽을통해해당포트로의접근제한정책적용 백도어포트서비스를실행중인파일확인및삭제 사고유형 - 해킹경유지 m 시스템점검사항 사고유형 점검항목 점검내용 비고 공통 : Nmap, netstat 사용하여의심 Port 확인 nmap -sv 서버IP 1723, 4444, 38317 등의심 Port 확인 네트워크 Windows : RRAS 서비스설정확인 RRAS 및 PPTP 프로세스는 [ 컴퓨터관리 ]->[ 서비스및응용프로그램 ]-> VPN 서비스 [ 서비스 ] 의 Routing and Remote Access 서비스 해킹경유지 시작유형 ( 사용안함 ) 확인 Linux : PPTP 서비스실행확인 ps -ef 명령실행후 pptpd 프로세스확인 설치프로그램확인 Windows : CCProxy, RealVNC 등설치확인 [ 제어판 ]->[ 프로그램추가 / 제거 ] 에서설치여부확인 Linux : Rootkit Hunter, Check Rootkit 검사를통해악성프로그램설치여부확인 Rootkit Hunter 업데이트필수 rkhunter --update 설치는붙임참고 - 9 -
m 특이사항발생에따른조치방안 윈도우서버의 서비스가실행중일경우해당서비스중지 윈도우서버의이벤트로그를통해 서비스를실행시킨이력및 를확인하고해당 에대한접근제한정책적용 리눅스서버의 서비스가실행중일경우해당프로세스중지 리눅스서버의시스템로그를통해 서비스를실행시킨이력및 를확인하고해당 에대한접근제한정책적용 - 10 -
III. 웹서버취약점조치방안 상세한조치방안은웹서버구축보안점검안내서참고 취약점점검체크리스트제공 m 에대한최신패치적용 벤더사이트나보안취약점정보사이트를주기적으로방문하여현재사용하고있는 에대한최신취약점정보획득및패치 정기적으로취약점점검도구와보안체크리스트를사용하여호스트 의보안취약점점검 m 웹서버전용호스트로구성 웹서비스운영에필요한최소한의프로그램들만남겨두고불필요한서비스들은반드시제거 시스템사용을목적으로하는일반사용자계정은모두삭제하거나최소한의권한만할당 오직관리자만이로그인가능하도록설정 - 11 -
m 서버에대한접근제어 관리목적의웹서버접근은콘솔접근만을허용 위사항이불가능할경우관리자가사용하는 의 만접근이가 능하도록접근제어수행 m 영역에위치 웹서버를방화벽에의해서보호받도록하고 웹서버가침해당하더라도웹서버를경유해서내부네트워크로의침입은불가능하도록구성 m 강력한관리자계정패스워드사용 관리자계정패스워드는유추가불가능하고패스워드크랙으로도쉽게알아낼수없는강력한패스워드사용 패스워드길이는최소 자이상을사용하고 이름이나계정명으로유추할수없도록구성 또한 사전에없는단어를사용하고기호문자를최소한개이상포함 m 파일접근권한설정 관리자계정이아닌일반사용자계정으로관리자계정이사용하 는파일들을변경할수없도록구성 m 웹프로세스의권한제한 시스템전체적인관점에서웹프로세스가웹서비스운영에필요한최소한의권한만을갖도록제한 웹서버관리시에는일반적으로사용되는 권한으로웹프로세스가동작하도록구성 m 로그파일의보호 - 12 -
침입혹은침입시도등보안문제점파악을위해로그파일이노출 변조혹은삭제되지않도록불필요한접근으로부터보호 불필요한접근으로부터보호하기위해로그파일을별도의서버에백업하여관리하는것이필요 로그파일은최소 개월이상의로그를확보하는것이필요 m 웹서비스영역의분리 웹서비스영역과시스템 영역을분리시켜서웹서비스의침해가시스템영역으로확장될가능성을최소화 웹서버의루트디렉토리와 의루트디렉토리를다르게지정 m 설정파일백업 초기설정파일을백업받아서보관해두고 변경이있을때마다 설정파일을백업함으로써해킹사고발생시빠르게복구 m 트래픽제한 공개용침입차단시스템을이용하여트래픽을제한 리눅스커널에서는 또는 침입차단시스템이기본으로제공됨 전체서비스 포트 에대해차단설정후고객이필요로하는서비스 포트 에대해선별적으로접속제한을해제 필요서비스 포트 예 등 필요할경우아래와같이 를사용하여특정포트에대한 트래픽을제한 는테이블형식으로관리되며 먼저등록된것이효력을발생하기때문에허용하는정책이거부하는정책보다먼저위치해야함 iptables -A INPUT -p TCP --dport 22 -s ip앞세자리.0/24 -j ACCEPT iptables -A INPUT -p TCP --dport 22 -s 192.168.0.0/24 -j ACCEPT iptables -A INPUT -p TCP --dport 22 -j DROP ssh 포트에대해특정 ip군과사설ip만허용하고나머지는 Drop - 13 -
IV. 네트워크취약점조치방안 상세한조치방안은웹서버구축보안점검안내서참고 m 네트워크장비의원격접근제한설정 허용된 외에는 이나 를통해네트워크장비에원격접 속할수없도록제한 m 접근제한설정 패스워드역할을하는 문자열의 값 을추측하기어렵고의미없는문자열로변경 네트워크장비에서 기능을이용하여 에대한접근제한 m 불필요한서비스중단 네트워크장비를처음설치하거나 등을업그레이드한후에는 사용하지않거나보안상불필요한서비스를반드시중지 - 14 -
m 설정을통한로그인시간제한 로그인한후일정시간동안아무런명령어를입력하지않으면자 동으로접속을종료하도록설정 m 로그관리 시스템자체적으로제공하는로그와 와같은특정한룰 에매칭되는로그를남기도록설정 - 15 -
V. DB 취약점조치방안 상세한조치방안은웹서버구축보안점검안내서참고 DB 구분 - My SQL m 시스템보안패치적용 이동작하는시스템에대한기본적인보안패치적용 m 계정확인 디폴트설치시설정되지않은채비어있는데이터베이스관리자패스워드변경 의관리자인 는기본설치시비밀번호가 로설정됨 설치시기본적으로생성되어있는 계정삭제 m 원격으로부터의접속차단 이디폴트로리스닝하는 포트를차단함으로써데 - 16 -
이터베이스가로컬로설치된 어플리케이션에의해서만사용되도록설정 데이터백업등의이유로데이터베이스로원격에서접속해야하는경우 프로토콜사용 m 데이터베이스내의사용자별접속 권한설정확인 생성후사용자접근권한설정시일반사용자에게는최소한 의권한만을부여 m 데이터디렉토리보호 데몬을 이라는시스템계정으로구동할경우 디렉토리이하에대한읽기 쓰기권한을제한함으로써데이터파일및로그파일보호 DB 구분 - MS SQL m 시스템보안패치적용 에서제공되는서비스팩과수시로발표되는보안패치설치 m 인증및계정관리확인 윈도우인증모드사용을통해 사용권한이없는도메인사용자또는윈도우사용자로부터윈도우비밀번호정책을사용하여보안강화 게스트계정비활성화 은데이터베이스에대한완전한관리권한을필요로하는사용자를위해만들어진역할이므로 이역할에인증되지않은사용자는삭제 - 17 -
m 외부로부터의 포트접속차단 의디폴트포트인 를임의의다른 포트로설정하여운영 m 확장프로시저제거 서버의유지관리를위해제공하는확장프로시저중공격에자주 이용되고있는특정프로시저 제거 - 18 -
VI. 어플리케이션취약점조치방안 상세한조치방안은홈페이지개발보안안내서참고 m 웹취약점점검서비스수행 원격으로웹공격에대한취약점점검수행 점검결과제공 - 19 -
m 휘슬설치및주기적인검사수행 공격자에의해생성된웹쉘및악성코드은닉사이트탐지가능 m 캐슬설치및운영 홈페이지보안성강화를위한웹방화벽기능제공 - 20 -
m 접근통제취약점에대한조치 설명 - /admin, /admin_login 등과같이보편적으로사용되는관리자페이지주소를입력하여해당페이지로접근이가능한취약점 관리자페이지를유추하기어려운주소로변경하고관리자호스트 IP만접근가능하도록설정 m 부적절한파라미터취약점에대한조치 설명 - URL, 쿼리문자열, HTTP 헤더, 쿠키, HTML 폼인자, HTML hidden 필드등의 HTTP 요청을변조하여웹사이트의보안메커니즘을우회하는취약점 모든입력값에대해중앙에서집중적으로처리하는하나의컴포넌트나라이브러리를사용하여모든인자에대해사용전에입력값검증을수행하도록구성 m 취약점에대한조치 설명 - 쿠키값변조를통해다른사용자로의위장및권한상승을수행할수있는취약점 Client Side Session 방식인 Cookie는구조상다양한취약점에노출될수있으므로웹서버에서제공되는 Sever Side Session을사용 SSL과같은기술을사용하여로그인트랜잭션전체를암호화 m 악의적인명령어주입 취약점에대한조치 설명 - 데이터베이스접근을위해사용되는 SQL Query문을비정상적으로조작하여사용자인증우회, DB에저장된데이터열람, DB의시스템명령어를이용하여시스템조작등의행위를할수있는취약점 데이터베이스와연동하는스크립트의모든파라미터를점검하여사용자의입력값이 SQL injection을일으키지않도록수정 사용자입력값및 URL 인자값에대해특수문자 (,, ', ;, :, %, Space, --, +, <, >, (, ), #, & 등 ) 와 SQL 구문 (Insert, Select 등 ) 이포함되어있는지검사후허용되지않은문자열이나문자가포함된경우에는에러로처리 SQL 서버의에러메시지를사용자에게보여주지않도록설정 웹어플리케이션이사용하는데이터베이스사용자의권한을제한하여일반사용자권한으로는모든 system stored procedures에접근하지못하도록설정함으로써 - 21 -
SQL Injection 취약점을이용하여데이터베이스전체에대한제어권을얻거나데 이터베이스를운용중인서버에접근이불가능하도록수정 php.ini 설정중 magic_quotes_gpc 값을 On 으로설정 m 크로스사이트스크립팅 취약점에대한조치 설명 - 자바스크립트처럼클라이언트측에서실행되는언어로작성된악성스크립 트코드를웹페이지, 웹게시판또는이메일에포함시켜사용자에게전달하 면, 해당웹페이지나이메일을사용자가클릭하거나읽을경우악성스크립 트코드가웹브라우저에서실행되는취약점 사용자로부터입력받는모든값을서버에서검증후입력받도록수정 스크립트문장에존재할수있는아래와같은특수문자를다른문자로변환하도 록소스를수정 특수문자치환예 < < > > ( ( ) ) # # & & 특수문자변환을위해서는 Server Side 언어별로아래와같은함수이용가능 ASP : Server.HTMLEncode( ) PHP : htmlspecialchars( ) 또는 strip_tags( ) 또는 strip_replace( ) m 버퍼오버플로우취약점에대한조치 설명 - 지정된버퍼의크기보다큰데이터를저장함으로써실행시오류를발생시키는취약점 서버제품군과라이브러리의경우, 사용하고있는제품군에대한최신버그리포트를지속적으로참고하여최신패치를적용 자체제작한어플리케이션의경우 HTTP 요청을통해사용자의입력을받아들이는모든코드를검토하여입력값에대해적절한크기를점검하는지확인 m 스크립트요청참조 취약점에대한조치 설명 - 공격자가사용자의 Cookie 값이나 Session 정보를의도한사이트로보내거 나특정한동작을유발하는스크립트를글에삽입하여사용자가게시물등 - 22 -
을클릭할경우공격자가원하는동작이실행되게하는취약점 헤더, 쿠키, 질의문, 폼필드, 숨겨진필드등과같은모든파라미터들을엄격한규칙에의해서검증하여 HTML을사용할경우태그내에 html,?, & 등이포함되지않도록수정 m 취약점에대한조치 설명 - URL이나파일시스템참조등외부객체참조를사용하는어플리케이션에서입력파일또는입력외부객체를검증하지않을때발생하는취약점 PHP 환경설정파일수정 PHP 4.x 이하버전 : allow_url_fopen' 항목을 off' 로변경 PHP 5.x 이하버전 : allow_url_fopen' 항목과 allow_url_include' 항목을 'off' 로변경 외부사이트의소스실행이반드시필요한홈페이지에대해서는선별적으로해당기능을허용 <VirtualHost www.abc.co.kr> ServerAdmin webmaster@abc.co.kr DocumentRoot /home/abc/public_html ServerName www.abc.co.kr php_admin_flag allow_url_fopen On 추가 </VirtualHost> m 파일업로드취약점에대한조치 설명 - 공격자가조작한 Server Side Script 파일을게시판등에업로드하고, 업로드된파일이서버상에저장된경로를유추한후이경로를통해 Server Side Script 파일을실행하여쉘을획득하거나권한을탈취하는취약점 Upload 파일을위한전용디렉토리를별도생성하여 httpd.conf와같은웹서버데몬설정파일에서실행설정을제거함으로써, Server Side Script가 Upload되더라도웹엔진이실행하지않게환경을설정 IIS보안설정설정 -> 제어판 -> 관리도구 -> 인터넷서비스관리자선택 -> 해당 Upload 폴더에오른쪽클릭을하고등록정보 -> 디렉토리 -> 실행권한을 없음 으로설정 Apache 설정 Apache 설정파일인 httpd.conf의해당디렉토리에대한문서타입을컨트롤하기위해 Directory 세션의 AllowOverride 지시자에서 FileInfo 또는 All 추가 <Directory "/usr/local/apache"> AllowOverride FileInfo( 또는 All)...... - 23 -
</Directory> 파일업로드디렉토리에.htaccess 파일을만들고 AddType 지시자를이용, 현재서버에서운영되는 Server Side Script 확장자를 text/html로 MIME Type을재조정하여업로드된 Server Side Script가실행되지않도록설정 <.htaccess> <FilesMatch \.(ph inc lib) > Order allow, deny Deny from all </FilesMatch> AddType text/html.html.htm.php.php3.php4.phtml.phps.in.cgi.pl.shtml.jsp 설정후데몬재시작 모든확장자를제한하고허용하는일부확장자만업로드되도록제한확장자검사우회 (ex. shell.gif.jsp, shell.jpg.jsp) 를막기위해뒤에서부터검사하도록수정 m 파일다운로드취약점에대한조치 설명 - 웹어플리케이션에서상대경로를사용할수있도록설정되어있는경우, 상대경로표시문자열인../ 를통해허가되지않은상위경로로이동하여시스템주요파일, 소스코드등중요자료의열람이가능한취약점 파일다운로드시파일명을직접 URL에서사용하거나입력받지않도록하며, 게시판이름과게시물번호를이용하여서버측에서데이터베이스재검색을통하여해당파일을다운로드할수있도록수정 다운로드위치는지정된데이터저장소를지정하여사용하고, 데이터저장소상위디렉토리로이동되지않도록설정 PHP를사용하는경우 php.ini에서 magic_quotes_gpc를 On으로설정하여.\./ 와같은역슬래시문자에대응할수있도록설정 m 부적절한파라미터취약점에대한조치 설명 - 웹어플리케이션에서상대경로를사용할수있도록설정되어있는경우, 상대경로표시문자열인../ 를통해허가되지않은상위경로로이동하여시스템주요파일, 소스코드등중요자료의열람이가능한취약점 파일다운로드시파일명을직접 URL에서사용하거나입력받지않도록하며, 게시판이름과게시물번호를이용하여서버측에서데이터베이스재검색을통하여해당파일을다운로드할수있도록수정 다운로드위치는지정된데이터저장소를지정하여사용하고, 데이터저장소상위디렉토리로이동되지않도록설정 - 24 -
m 백업파일노출취약점에대한조치 설명 - 관리자가홈페이지상에서작은수정을위해기존홈페이지파일의원본을특정확장자를사용하여저장할수있는데, 이러한특정확장자의파일들이서버에서적절하게처리되지못할경우소스가유출될수있는취약점 백업파일이웹서버에존재하는것은소스노출이나 DB정보노출등의문제가발생할수있으므로웹서버상의불필요한백업파일들은모두삭제 홈페이지서비스와관련없는디렉토리 ( 백업디렉토리등 ) 는일반사용자접근이불가능하도록권한설정 <Files ~ "\.bak$"> Order allow,deny Deny from all </Files> m 디렉토리리스팅취약점에대한조치 설명 - 웹서버에는현재브라우징하는디렉토리의모든파일들을사용자에게보여줄수있는디렉토리인덱스기능이존재하는데, 이런설정이활성화되어있는경우공격자가웹어플리케이션의구조를파악할수있는기회를제공하게되는취약점 아파치웹서버 : httpd.conf 파일에서 DocumentRoot 항목을아래와같이수정... <Directory "/usr/local/www"> Options Indexes 제거한다 </Directory>... IIS 웹서버 : IIS 관리메뉴의기본웹사이트등록정보에서홈디렉토리검색부분체크해제 m 설정파일및환경변수노출취약점에대한조치 설명 - 웹어플리케이션을설정하기위해위치하는파일들은시스템이나 DB에관련한많은정보를포함하고있는데, 이런파일들이공격자에게노출될경우공격자에게시스템의많은정보를제공하게되는취약점 홈페이지서비스와관련없는파일은일반사용자접근이불가능하도록권한설정 - 25 -
m 부적절한 사용취약점에대한조치 설명 - 원격사용자가 DocumentRoot 디렉토리에파일을업로드하거나수정하는등의행위를하는것을제한해야하는데, 이러한제한이적절히이루어지지않을경우홈페이지가변조되거나침해를입을수있는취약점 PUT, DELETE Method는제한된사용자만가능하도록하거나아무도사용하지못하도록아래와같이설정... <Directory "/home/*/public_html"> <Limit POST PUT DELETE> Require valid-user </Limit> </Directory>... m 헤더정보노출취약점에대한조치 설명 - 웹서버에서는응답메시지의헤더에웹서버버전이나응용프로그램버전등을전송하는데, 많은정보들이노출될경우알려진취약점을이용한공격에악용될수있는취약점 아파치웹서버의경우 httpd.conf 내용에 ServerTokens 지시자를삽입하여헤더에의해전송되는정보를최소화 m 오류메시지노출취약점에대한조치 설명 - 오류메시지가공격자에게무엇이틀렸는지알려주는표시를해주는것으로인해공격자가다양한공격방법을시도할수있게되는취약점 별도의오류페이지를제작하여각각의오류코드에대해제작된하나의오류페이지로 Redirection 처리 아파치웹서버의경우 httpd.conf 파일에서아래와같이설정 ErrorDocument 404 /error_page.html m 파일시스템설정오류취약점에대한조치 설명 - 악성프로그램을 /tmp, /dev/shm 등의파일시스템관련디렉토리에업로드 - 26 -
하여실행하는형태로공격에악용될수있는취약점 /etc/fstab( 파일시스템의마운트설정정보파일 ) 내용을아래와같이수정하여해당디렉토리의실행권한을제거 ( 변경후에는 mount 명령을실행하여적용해야함 ) none on /dev/shm type tmpfs (rw,noexec) /dev/hda9 on /tmp type ext3 (rw,noexec,nosuid,nodev) m 심볼릭링크취약점에대한조치 설명 - 웹서버에서심볼릭링크를이용해서기존의웹문서이외의파일시스템에접근하는것이가능한취약점 아파치웹서버환경설정파일 (httpd.conf) 의 Options 지시자에서심볼릭링크를가능하게하는옵션인 FollowSymLinks" 를제거 m 최신보안패치항상유지 제로보드 테크보드 그누보드등의웹어플리케이션에대한최신 의보안패치를유지 - 27 -
붙임 및 사용법 설치및사용 다운로드 웹사이트보안도구 휘슬 o root 디렉토리에.whistl 디렉토리생성 [root@linux root]# mkdir. /whistl o whistl 압축해제및실행권한설정 [root@linux.whistl]# tar zxvf Whistl_Linux.tgz [root@linux.whistl]# chmod 755 whistl_kernel_2.6 kernel 2.4.x 의경우 whistl_kernel_2.4에실행권한 (755) 부여 o 실행 [root@linux.whistl]#./whistl_kernel_2.6 설치및사용 다운로드 o 압축해제 [root@linux root]# tar zxvf rkhunter-1.3.8.tar.gz [root@linux root]# cd rkhunter-1.3.8 o 설치 [root@linux rkhunter-1.3.8]#./installer.sh --layout default install o 업데이트 [root@linux rkhunter-1.3.8]# rkhunter update o 실행 [root@linux rkhunter-1.3.8]# rkhunter -c 설치및사용 다운로드 - 28 -
o 압축해제 [root@linux root]# tar zxvf chkrootkit.tar.gz [root@linux root]# cd chkrootkit o 설치 [root@linux chkrootkit]# make sense; o 실행 [root@linux chkrootkit]#./chkrootkit q -q 옵션 : rootkit에감염된파일 ( 프로세스 ) 만출력 - 29 -
붙임 주요용어정리 해킹 컴퓨터또는시스템의정당한접근권한없이또는허용된접근권한을초과하여정보통신시스템에침입하는행위 [ 망법제48조 1항, 3항에의한정의 ] 예를들어 아이디 비밀번호를탈취후타인의시스템에접속하여정보를유출하거나 의취약점을악용하여시스템침입 파괴하는행위 최근에는악성코드및해킹도구를복합적으로활용하여해킹하는추세 악성코드 정당한사유없이정보통신시스템 데이터등을훼손 멸실 변경또는그운용을방해할수있는프로그램 [ 망법제48조 2항에의한정의 ] 일반적으로는정보유출 시스템파괴 원격조종등악의적인목적으로이용하는컴퓨터프로그램을총칭 홈페이지변조 홈페이지의화면을변조시켜다른이미지가보이도록하는침해사고유형을의미하며 특정기업이나조직의이미지 신뢰성등을실추하려는목적으로많이발생 권한상승 시스템사용에있어제한없이자유자재로사용하기위해시스템에서허용하는권한을상승시키는행위를의미 예를들면 해커가일반사용자권한을획득한후 관리자권한 을획득하여시스템사용권한을상승 웹쉘 해커가원격에서웹서버를조종할수있도록제작한웹서버용악성코드 웹서버가가지고있는취약점을악용해웹쉘을업로드시켜웹서버를해킹하는데이용하거나 해킹한웹서버를관리하기위한목적으로설치하기도함 - 30 -
바이러스 정상적인실행파일에달라붙어 기생 를다운시키거나파일을파괴하는등컴퓨터의운영을방해하는악성코드의일종 감염대상이되는파일이나프로그램이있어야하며 자신을복제하는기능이있음 주로 80~ 90 년대에많이발생했고, 플로피디스크등을통해감염 웜 다른파일에기생하지않고독립적으로자신을복제하여확산함으로써전파속도가매우빠른특징을가지는악성코드유형 주로메일이나네트워크공유폴더등을통해전파되어시스템과네트워크에부하를높이는증상을보임 트로이목마 컴퓨터에숨어있다가사용자의정보를몰래유출하는악성코드의일종 정상적인파일 게임 응용 등 에포함되어함께설치되는경우가많음 그리스신화트로이목마에서개념이나옴 백도어 해커가이용자몰래컴퓨터에접속하여악의적인행위를하기위해설 치해놓은출입통로역할을하는악성코드 루트킷 루트킷은해커가설치한악성코드 트로이목마 악성봇등 가백신이나 사용자에게발각되지않도록숨겨주는역할을함 대부분의루트킷은일반프로그램이동작하는계층보다더하위계층 즉커널이라는운영체제핵심부분에숨어서동작하여탐지 분석이어려움 유포지사이트 악성코드를직접적으로유포하는웹사이트 경유지사이트 - 31 -
실제악성코드를유포하지않으나이용자 가감염되도록악성코드유포지로연결시켜주는웹사이트 해커가자신의위치를속이기위해다른시스템을경유하여공격할때의경유한사이트 명령제어서버 해커가각봇 좀비 을관리하고명령을내리기위해구축하는서버로 사용자 등이봇에감염되면해당 서버로자동접속됨 서버에접속하면봇넷의일원이되고해커가 서버에내리는명령을받아다양한공격을수행하게됨 - 32 -