NTFAQ Korea (http://www.ntfaq.co.kr) 이종량 (jrlee@ntfaq.co.kr)
1. WebKnight에대해서 WebKnight의정의 WebKnight의필요성 2. WebKnight의설치 3. 파일의구성 4. WebKnight의설정 5. 필터링 (SQL Injection Keyword) 6. 로그 WebKnight의로그 WebKnight의로그분석 7. 성능과 WebKnight 8. 안전한웹사이트구축
Network 레벨의장비가아님 IIS용어플리케이션방화벽 GNU 라이선스를따름 특정요청에대한필터링역할 Buffer overflow SQL Injection Directory traversal Character encoding 잠재적공격에대한방어
외부공격에대한적극적인방어책 중국발해킹사건 2005 년여름 서버해킹후 2 차피해최소화 ( 클라이언트의보호 ) 현재가장현실적인대안으로의 WebKnight 저렴한비용 개발시의실수 유지보수상의실수 콘텐트추가상의실수
방법 1.WebKnight.Msi 실행 가장일반적인방법 가장편하다 방법 2.Install.vbs 로설치 다수의서버를설치해야하는경우편리함 방법 3. 수동설치 웹사이트속성 -ISAPI 필터에등록 웹사이트마다다른환경을가져야하는경우사용
Log 폴더 : 로그가쌓일위치 IIS 5.0 이하 SYSTEM 계정의쓰기권한필요 IIS 6.0 -NETWORK SERVICE 계정의쓰기권한필요 Config.exe : 환경설정프로그램 denied.htm : 거부된후출력할메시지 Loaded.xml : 현재로딩된환경설정 LogAnalysis.exe : 로그분석기 readme.htm : readme robots.txt : robots.txt 예제 Robots.xml : Robots에대한접근설정 WebKnight.dll : ISAPI에올라갈파일 WebKnight.xml : 환경설정파일
대부분의중요값들은 IIS를재시작해야적용 한글폴더 / 파일사용시충돌의문제 œ Deny Url HighBitShellcode Off œ RFC Compliant * Off œ Allow Unicode On 개발자의버릇문제대부분 Off œ Deny Url Parent Path œ Deny Url Trailing Dot In Dir œ Deny Url Backslash œ Deny Parent Path œ Deny Dot in Path
설치된구성요소들과의호환성 œ DEXT Upload : Is Installed As Global Filter œ Exchange IIS 의기본세팅문제 Allow Outlook Web Access Allow RPC over HTTP Off Per Process Logging URL Denied Sequence œ /scripts œ /iisadmin œ /printers œ /samples œ /iisadmpwd IIS6.0 이후버전 On
유지관리상의문제 œ Use Denied Extensions œ Robots 항목 œ Referrer 확인여부 œ Allow File Uploads œ Allow ASP œ Allow ASP NET
' having syscomments xp_displayqueuemesgs xp_printstatements ; table raiserror xp_dsinfo xp_peekqueue -- shutdown exec xp_mergelineages xp_proxiedmetadata select kill xp_ xp_readpkfromqueue xp_displayparamstmt insert declare sp_ xp_readpkfromvarbin xp_availablemedia update openrowset xp_cmdshell xp_repl_encrypt xp_enumdsn delete opendatasource xp_reg xp_resetqueue xp_filelist drop pwdencrypt xp_servicecontrol xp_sqlinventory sp_password alter msdasql xp_setsqlsecurity xp_unpackcab sp_adduser create sqloledb xp_readerrorlog xp_sprintf sp_addextendedproc inner join char( xp_controlqueueservice xp_displayparamstmt sp_dropextendedproc from syslogins xp_createprivatequeue xp_enumresult sp_add_job where sysxlogins xp_decodequeuecommand xp_showcolv sp_start_job union sysdatabases xp_deleteprivatequeue xp_updatecolvbm sp_delete_alert group by sysobjects xp_deletequeue xp_execresultset sp_msrepl_startup 추가목록 %20and%20, ismember, administrators /add, xp_dirtree, --, 1=1, 2=2, 3=3,, a=a,b=b,c=c,, ;, ;
웹로그 : œ 다양한부분까지기록가능 œ 다양한도구사용으로분석가능 WebKnight 로그 œ 제한적인부분만남김 ( 예 :404, 500 오류..) œ Per Process Logging : On 시하루에도수십개의로그파일이생길수있음 œ Log Retention : 로그의유지기간. 이보다오래된로그는삭제됨
작업처리결과 : 처리된이유 : 접근방법 : 사용자정보
- 필터링및로그추적 -
성능에심각한영향을미치는설정 œ Is Installed As Global Filter œ Remove Server Header œ Change Server Header Off Off Off Log œ Log HTTP Server Errors œ Log HTTP Client Errors : 50x 로그 : 40x 로그 접속자증가에따른성능문제가쉽게발생하므로성능모니터링필수
Public Web과 Admin 웹의분리 œ Public Web에 WebKnight 설치 œ Admin 웹의 IP 필터링적용 IIS의에러화면감추기 œ 사이트속성-홈디렉터리-구성-디버깅- 텍스트오류메시지를클라이언트에게보내기 설치후3일간오류발생모니터링 주 1회이상의로그검사 œ 위험요소학습능력없음 œ 보고기능미약 Response Status : 값변경 œ 999 No Hacking 404 나 300, 적당한메시지로변경