<4D F736F F F696E74202D204D6F B7CEB1D7BAD0BCAEB9D7B0EDB1DEB7EABCB3C1A42DC8ABBCAEB9FC2E BC8A3C8AF20B8F0B5E55D>

Similar documents
Microsoft PowerPoint - 홍석범

목 차 1. 웹방화벽 기능 소개 2. mod_security 설치 가) apache 1.3 에서 mod_security 설치 나) apache 2.0 에서 mod_security 설치 3. 기본설정 4. 사용자 룰 설정 5. 주요 웹공격 룰 설정 가) PHP Injec

LXR 설치 및 사용법.doc

PowerPoint 프레젠테이션

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D D382E687770>

본문서는 초급자들을 대상으로 최대한 쉽게 작성하였습니다. 본문서에서는 설치방법만 기술했으며 자세한 설정방법은 검색을 통하시기 바랍니다. 1. 설치개요 워드프레스는 블로그 형태의 홈페이지를 빠르게 만들수 있게 해 주는 프로그램입니다. 다양한 기능을 하는 플러그인과 디자인

[080630_정식] ModSecurity 안내서_090427_name_fixed.hwp

1. efolder 시스템구성 A. DB B. apache - mod-perl - PHP C. SphinxSearch ( 검색서비스 ) D. File Storage 2. efolder 설치순서 A. DB (MySQL) B. efolder Service - efolder

untitled

3장

ModSecurity 안내서_090427_name_fixed.hwp

PowerPoint 프레젠테이션

1) 인증서만들기 ssl]# cat > // 설명 : 발급받은인증서 / 개인키파일을한파일로저장합니다. ( 저장방법 : cat [ 개인키

1) 인증서만들기 ssl]# cat > // 설명 : 발급받은인증서 / 개인키파일을한파일로저장합니다. ( 저장방법 : cat [ 개인키

목차 1. 사전준비 mod_ssl OpenSSL 인증서파일 2. 주의사항 신규및갱신구분 CSR 직접생성여부 3. 인증서설치 httpd.conf 설정 httpd-ssl.conf 설정 갱신설치 서비스재시작 4. 확인및테스트 서비스구동확인 네트워크상태확인 방화벽확인 실제브라

PowerPoint 프레젠테이션

1217 WebTrafMon II

Apache install guide

Analytics > Log & Crash Search > Unity ios SDK [Deprecated] Log & Crash Unity ios SDK. TOAST SDK. Log & Crash Unity SDK Log & Crash Search. Log & Cras

chapter1,2.doc

4S 1차년도 평가 발표자료

1. 발급받으신인증서를해당서버폴더에업로드또는저장합니다. 설명 : [$Apache] = Apache 디렉토리. 소스버전의경우 Apache]# mkdir conf/ssl Apache]# cp

SPECweb Install

Apache( 단일도메인 ) SSL 인증서신규설치가이드 본문서는주식회사한국기업보안에서 SSL 보안서버인증서설치를위해작성된문서로 주식회사한국기업보안의동의없이무단으로사용하실수없습니다. [ 고객센터 ] 한국기업보안. 유서트기술팀 Copyright 201

Apache( 단일도메인 ) SSL 인증서갱신설치가이드 본문서는주식회사한국기업보안에서 SSL 보안서버인증서설치를위해작성된문서로 주식회사한국기업보안의동의없이무단으로사용하실수없습니다. [ 고객센터 ] 한국기업보안. 유서트기술팀 Copyright 201

제20회_해킹방지워크샵_(이재석)

Apache( 단일도메인 ) SSL 인증서갱신설치가이드 본문서는주식회사한국기업보안에서 SSL 보안서버인증서설치를위해작성된문서로 주식회사한국기업보안의동의없이무단으로사용하실수없습니다. [ 고객센터 ] 한국기업보안. 유서트기술팀 Copyright 201

Eclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 11 년 10 월 26 일수요일

thesis-shk

초보자를 위한 ASP.NET 2.0

Copyright 2012, Oracle and/or its affiliates. All rights reserved.,,,,,,,,,,,,,.,..., U.S. GOVERNMENT END USERS. Oracle programs, including any operat

Microsoft PowerPoint SDK설치.HelloAndroid(1.5h).pptx

1. 발급받으신인증서를해당 SSL 폴더에업로드또는저장합니다. Apache source 및 package 구분아파치경로확인명령어 : ps ef grep httpd -source: /usr/local/apache [ 경로및 apache이름은상이할수있음 ] -> 확인경로에설

Apache2 + Tomcat 5 + JK2 를 사용한 로드밸런싱과 세션 복제 클러스터링 사이트 구축

Apache( 멀티도메인 ) SSL 인증서신규설치가이드 본문서는주식회사한국기업보안에서 SSL 보안서버인증서설치를위해작성된문서로 주식회사한국기업보안의동의없이무단으로사용하실수없습니다. [ 고객센터 ] 한국기업보안. 유서트기술팀 Copyright 201

bn2019_2

USB USB DV25 DV25 REC SRN-475S REC SRN-475S LAN POWER LAN POWER Quick Network Setup Guide xdsl/cable Modem PC DVR 1~3 1.. DVR DVR IP xdsl Cable xdsl C

네트워크 보안 시스템 구축과 보안 관제_보안 관제편

Apache( 단일도메인 ) SSL 인증서신규설치가이드 본문서는주식회사한국기업보안에서 SSL 보안서버인증서설치를위해작성된문서로 주식회사한국기업보안의동의없이무단으로사용하실수없습니다. [ 고객센터 ] 한국기업보안. 유서트기술팀 Copyright 201

Apache( 멀티도메인 ) SSL 인증서신규설치가이드 본문서는주식회사한국기업보안에서 SSL 보안서버인증서설치를위해작성된문서로 주식회사한국기업보안의동의없이무단으로사용하실수없습니다. [ 고객센터 ] 한국기업보안. 유서트기술팀 Copyright 201

The Self-Managing Database : Automatic Health Monitoring and Alerting

02 C h a p t e r Java

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx

PWR PWR HDD HDD USB USB Quick Network Setup Guide xdsl/cable Modem PC DVR 1~3 1.. DVR DVR IP xdsl Cable xdsl Cable PC PC DDNS (

API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Docum

1. 안드로이드개발환경설정 안드로이드개발을위해선툴체인을비롯한다양한소프트웨어패키지가필요합니다 툴체인 (Cross-Compiler) 설치 안드로이드 2.2 프로요부터는소스에기본툴체인이 prebuilt 라는이름으로포함되어있지만, 리눅스 나부트로더 (U-boot)

리눅스설치가이드 3. 3Rabbitz Book 을리눅스에서설치하기위한절차는다음과같습니다. 설치에대한예시는우분투서버 기준으로진행됩니다. 1. Java Development Kit (JDK) 또는 Java Runtime Environment (JRE) 를설치합니다. 2.

Microsoft PowerPoint - 5. Exploring Apache Security_v2 (안랩-정관진 연구원).ppt [호환 모드]

메일서버등록제(SPF) 인증기능적용안내서 (HP-UX - qmail) OS Mail Server SPF 적용모듈 (Perl 기반) 작성기준 HP-UX 11.11i qmail 1.03 spf-filter 년 6 월

Assign an IP Address and Access the Video Stream - Installation Guide

Copyright 2012, Oracle and/or its affiliates. All rights reserved.,.,,,,,,,,,,,,.,...,. U.S. GOVERNMENT END USERS. Oracle programs, including any oper

Microsoft PowerPoint - [Practice #1] APM InstalI.ppt

ÀÎÅÍ³Ý ÁøÈï¿ø 5¿ù

Remote UI Guide

인도 웹해킹 TCP/80 apache_struts2_remote_exec-4(cve ) 인도 웹해킹 TCP/80 apache_struts2_remote_exec-4(cve ) 183.8

6강.hwp

Cache_cny.ppt [읽기 전용]


메일서버등록제(SPF) 인증기능적용안내서 (HP-UX - postfix) OS Mail Server SPF 적용모듈 (Perl 기반) 작성기준 HP-UX 11.11i postfix spf-filter 년 6 월

vm-웨어-01장

슬라이드 1

ORANGE FOR ORACLE V4.0 INSTALLATION GUIDE (Online Upgrade) ORANGE CONFIGURATION ADMIN O

untitled

Apache( 멀티도메인 ) SSL 인증서신규설치가이드 본문서는주식회사한국기업보안에서 SSL 보안서버인증서설치를위해작성된문서로 주식회사한국기업보안의동의없이무단으로사용하실수없습니다. [ 고객센터 ] 한국기업보안. 유서트기술팀 Copyright 201

본교재는수업용으로제작된게시물입니다. 영리목적으로사용할경우저작권법제 30 조항에의거법적처벌을받을수있습니다. [ 실습 ] 스위치장비초기화 1. NVRAM 에저장되어있는 'startup-config' 파일이있다면, 삭제를실시한다. SWx>enable SWx#erase sta

SMB_ICMP_UDP(huichang).PDF

untitled

DIY 챗봇 - LangCon

Microsoft PowerPoint - ch02_인터넷 이해와 활용.ppt

본 CERT) "Security Consumer Report - DLP" 는 한국침해사고대응팀협의회(CNCERT:CNsortium of 회원으로 활동하는 보안 담당자가 자발적으로 보고서 위원회를 구성한 후 국내에서 유 통되는 DLP 제품을 조사( 기획 수행 제작) 한

chapter4

멀티 & 와일드 1. OHS 인증서설치 * $ORACLE_HOME/opmn/conf/opmn.xml 파일확인하기 default]$ vi /App/UCERT/opmn/conf/opmn.conf <ias-component id="http_serve

SSL인증서 설치 매뉴얼 (Apache)

YUM(Yellowdog Updater,Modified) : RPM 패키지가저장된서버 ( 저장소 ) 로부터원하는패키지를자동으로설치한다. : YUM 도구는 RPM 의패키지의존성문제를해결

Microsoft Word - Windows_apahce_php_CUBRID2008

Network seminar.key


PCServerMgmt7

Apache( 멀티도메인 ) SSL 인증서갱신설치가이드 본문서는주식회사한국기업보안에서 SSL 보안서버인증서설치를위해작성된문서로 주식회사한국기업보안의동의없이무단으로사용하실수없습니다. [ 고객센터 ] 한국기업보안. 유서트기술팀 Copyright 201

메일서버등록제(SPF) 인증기능적용안내서 (AIX - sendmail) OS Mail Server SPF 적용모듈 (Perl 기반) 작성기준 AIX 5.3 sendmail spf-filter 년 6 월

28 THE ASIAN JOURNAL OF TEX [2] ko.tex [5]

1. OHS 인증서설치 * $ORACLE_HOME/opmn/conf/opmn.xml 파일확인하기 default]$ vi /App/UCERT/opmn/conf/opmn.conf <ias-component id="http_server"> <proc

Secure Programming Lecture1 : Introduction

Solaris Express Developer Edition

정적으로 설치된 mod_ssl 모듈확인 동적으로 설치된 mod_ssl 모듈확인 웹서버에 설치된 모듈중 mod_so.c 를 먼저 확인후 동적으로 설치된 모듈중 mod_ssl.so 를 확인합니다. 동적으로 설치된 경우 apache 설치 디렉토리의 module 이나 libe

4. 스위치재부팅을실시한다. ( 만약, Save 질문이나오면 'no' 를실시한다.) SWx#reload System configuration has been modified. Save? [yes/no]: no Proceed with reload? [confirm] (

Backup Exec

ETL_project_best_practice1.ppt

C# Programming Guide - Types

10X56_NWG_KOR.indd

김기남_ATDC2016_160620_[키노트].key

14-Servlet

< 목차 > Ⅰ. 개요 3 Ⅱ. 실시간스팸차단리스트 (RBL) ( 간편설정 ) 4 1. 메일서버 (Exchange Server 2007) 설정변경 4 2. 스팸차단테스트 10

0. 들어가기 전

HLS(HTTP Live Streaming) 이용가이드 1. HLS 소개 Apple iphone, ipad, ipod의운영체제인 ios에서사용하는표준 HTTP 기반스트리밍프로토콜입니다. 2. HLS 지원대상 - 디바이스 : iphone/ipad/ipod - 운영체제 :

소개 TeraStation 을 구입해 주셔서 감사합니다! 이 사용 설명서는 TeraStation 구성 정보를 제공합니다. 제품은 계속 업데이트되므로, 이 설명서의 이미지 및 텍스트는 사용자가 보유 중인 TeraStation 에 표시 된 이미지 및 텍스트와 약간 다를 수

Microsoft Word - src.doc

I T C o t e n s P r o v i d e r h t t p : / / w w w. h a n b i t b o o k. c o. k r

Interstage4 설치가이드

Transcription:

Modsecurity 로그분석및 고급룰설정 오늘과내일홍석범 antihong@tt.co.kr

적용여부확인방법 차단은되는것같은데, 로그가남지않는다? error_log : [Fri Oct 19 11:24:04 2007] [error] ModSecurity: ModSecurity requires mod_unique_id to be installed. modsec_audit.log 에는남지않음이러한경우 httpd.conf 에서 LoadModule unique_id_module modules/mod_unique_id.so 확인 SecServerSignature 를 IIS 로변경하여설정했는데, 질의를하면헤더가변경되지않는다? # lynx -head -source http://127.0.0.1/ # wget -S --spider http://127.0.0.1/ # curl --head http://127.0.0.1/ httpd.conf 에서 ServerTokens Prod 를 Full 로설정하여야함 2

제로보드관련룰 (1.9) 기존KISA 제공룰 SecFilterSelective REQUEST_URI "/include/write.php?dir=(ftp http):" SecFilterSelective REQUEST_URI "/include/print_category.php?setup=1&dir=(ftp http):" SecFilterSelective REQUEST_URI "/zero_vote/error.php?dir=(ftp http):" SecFilterSelective REQUEST_URI "/outlogin.php?_zb_path=(ftp http):" SecFilterSelective S l ti REQUEST_URI URI "filename= " SecFilterSelective REQUEST_URI "check_user_id.php?user_id=<script>alert(document.cookie)" 추가룰 SecFilterSelective REQUEST_URI URI "/zero_vote/login.php?dir=(ftp http): php?dir=(ftp http): SecFilterSelective REQUEST_URI "/zero_vote/setup.php?dir=(ftp http): SecFilterSelective REQUEST_URI "/zero_vote/ask_password.php?dir=(ftp http): 또는 #Generic PHP remote file inclusion attack signature with command SecFilterSelective REQUEST_URI ".php?" chain SecFilterSelective REQUEST_URI "(http https ftp) :/" chain SecFilterSelective REQUEST_URI REQUEST_BODY "(cd ; perl lynx links mkdir cmd pwd wget lwp- (download request mirror rget) d t) id uname net(stat cat) t t t) curl telnet t gcc cc rm -[a-z A-Z])" 2.x 에서는 SecFilterSelective Secrule 3

disable 해야할룰 (1.9.x) SecFilterSelective ARGS "-->" "msg:'xss attack'" SecRule ARGS "-->" "msg:'xss attack'" 전송데이터에 --> 만들어가도공격으로판단 mod_security-message: Access denied with code 403. Error processing request body: Multipart: final boundary missing [severity "EMERGENCY"] 파일업로드시일부발생, 1.9.x에만발생, SecFilterScanPOST On =>Off mod_security-message: Access denied with code 403. Pattern match ";[[:space:]]*(ls id pwd wget cd)" at ARGS_VALUES( VALUES("content") [msg "Command execution attack"] [severity "EMERGENCY"] ttp://www.example.com/example.php?board=public&id=1225 정상임 SecFilterSelective ARGS "alert[[:space:]]*\( <SCRIPT LANGUAGE="JAVASCRIPT"> function openertr() { alert(" 팝업이차단되었습니다!"); } </SCRIPT> 4

disable or 커스터마이징 (1.9.x) SecFilterSelective ARGS "http-equiv <meta http-equiv="content-type SecFilterSelective ARGS "style[[:space:]]*= <style type="text/css"> SecFilter "\.\./\.\." SecFilter "\.\./\.\./" SecFilter "/\.\./\.\./\.\./\.\./" 고도몰등특정프로그램이작동안됨 # WEB-CGI technote main.cgi file directory traversal attempt SecFilterSelective THE_REQUEST "/technote/main\.cgi" chain SecFilter "\.\./\.\./" # WEB-CGI technote print.cgi directory traversal attempt SecFilterSelective THE_REQUEST "/technote/print\.cgi" chain SecFilter "\x00" 5

Host 나 User-Agent 가없는경우 Message: Warning. Operator EQ match: 0. [id "960008"] [msg "Request Missing a Host Header"] [severity "WARNING"] HEAD / HTTP/1.0 Accept: */* User-Agent: WhatsUp Professional/1.0 modsecurity_crs_21_protocol_anomalies.conf SecRule &REQUEST_HEADERS:Host "@eq 0" \ "skip:1,log,auditlog,msg:'request Missing a Host Header',,id:'960008',severity:'4'" SecRule REQUEST_HEADERS:Host "^$" \ "log,auditlog,msg:'request Missing a Host Header',,id:'960008',severity:'4'" SecRule &REQUEST_HEADERS:User-Agent "@eq 0" \ "skip:1,log,auditlog,msg:'request Missing a User Agent Header',,id:'960009',severity:'4'" SecRule REQUEST_HEADERS:User HEADERS:User-Agent Agent "^$" \ "log,auditlog,msg:'request Missing a User Agent Header',,id:'960009',severity:'4'" SecFilterSelective HTTP_Host "^$" (1.9.x) & : counting the number of variables (1) 아예헤더에 User-Agent가없는경우 (2) 헤더에 User-Agent는있지만데이터가없는경우 6

커스터마이징 Message: Access denied with code 400 (phase 2). Pattern match "^[\\d\\.]+$" at REQUEST_HEADERS:Host. [id "960017"] [msg "Host header is a numeric IP address"] [severity "CRITICAL"] 도메인이아닌 IP 로접속시발생 modsecurity_crs_21_protocol_anomalies.conf SecRule REQUEST_HEADERS:Host H "^[\d\.]+$" "deny,log,auditlog,status:400,msg:'host di l header is a numeric IP address', severity:'2',,id:'960017'," 7

파일에특수문자포함시 Message: Warning. Match of "rx ^[a-z]{3,10} s*(?: w{3,7}? : / /[ w -. /]*)?? /[ w -. /~%:@&=+$,;]*(?:?[ S]*)?? s*http / d. d$" against "REQUEST_LINE" required. [id "960911"] [msg "Invalid HTTP Request Line"] [severity "CRITICAL"] SecRule REQUEST_LINE "!^[a-z]{3,10} s*(?: w{3,7}? : / /[ w -. /]*)?? /[ w -. /~%:@&=+$,;]*(?:?[ S]*)?? s*http / d. d$" "t:none,t:lowercase,deny,log,auditlog,status:400,msg:'invalid HTTP Request Line',,id: id:'960911',severity: severity:'2'" ==> GET /1181633664worldhistory(McGrawHill)cover.jpg HTTP/1.1 와같이파일이나디렉토리이름에 () 가포함된경우또는공란 (space) 이있는경우등 8

특정 IP/ 도메인을제외할때 특정한 IP 에대해서는모니터링하지않을때 SecRule REMOTE_ADDR "^192.168.1 100$" phase:1,nolog,allow,ctl:ruleengine=off,ctl:auditengine=off * 특정도메인 ( 디렉토리 ) 에대해서는 modsecurity 설정을해제하고자할때.htaccess SecFilterEngine Off # 기본엔진동작정지 SecFilterScanPOST Off # POST 스캔중지 SecFilterCheckURLEncoding Off # URL 인코딩체크중지.htaccess 에 # 이있을경우 500 error가발생하므로그대로복사할경우서비스가되지않을수있으므로주석 (#) 부분은명기하지않아야함 주의 : modsecurity 2.x 에서는.htaccess 를지원하지않음 9

Phpmyadmin 등예외사항 phpmyadmin 사용시, 제외하고자할때 SecRule REQUEST_URI R ^/phpmyadmin phase:1,allow,ctl:ruleengine=off l l 또는 <LocationMatch "^/phpmyadmin/"> SecRuleEngine Off </LocationMatch> 특정룰을주석처리하지않고 disable하고자할때 Message: Warning. Pattern match "(?:\\b(?:\\.(?:ht(?:access passwd group) www_?acl) global\\.asa httpd\\.conf boot\\.ini)\\b \\/etc\\/)(?:ht(?:access passwd group) www?acl) global\\ asa httpd\\ conf boot\\ ini)\\b \\/etc\\/)" at REQUEST_FILENAME. [id "950005"] [msg "Remote File Access Attempt. Matched signature </etc/>"] [severity "CRITICAL"] SecRuleRemoveById R 950005 룰의선언위치가중요, 기선언된룰의뒤 ( 예 :modsecurity_crs_80.conf) 에선언해야함 <VirtualHost 192.168.1.4> ServerAdmin webmaster@example.com DocumentRoot /home/example/public_html ServerName example.com SecRuleRemoveById 950005 </VirtualHost> 10

404 는로그에남지않도록설정 apache-error: [level 3] File does not exist: /var/www/html/favicon.ico 주로사용하는설정 ) SecAuditLogRelevantStatus "^[45]" 권장설정 ) SecAuditLogRelevantStatus "^(?:5 4 d[^4]) 404는포함하지않음 파일명또는파라미터에한글이포함된경우예 :/list.php?page=&addr1= 강남구 &grade= 중학교 Message: Access denied with code 400 (phase 2). Invalid Unicode encoding: invalid byte value in character. [id "950801"] [msg "UTF8 Encoding Abuse Attack Attempt"] [severity "WARNING"] SecFilterCheckUnicodeEncoding Off SecFilterForceByteRange 0 255( 기본값 ) @validateutf8encoding, @validatebyterange, (2.x) 11

1.9.x 에서로그만남도록했는데, 차단되는이유? SecFilterDefaultAction "pass,log 로설정해도차단되는이유? SecFilterSignatureAction "msg:'command execution attack'" SecFilterSelective ARGS_VALUES ";[[:space:]]*(pwd wget curl) 와같이설정시발생. 옳은설정 ) SecFilterSelective ARGS_VALUES ";[[:space:]]*(ls id pwd wget cd)" "msg:'command execution attack'" SecFilterSignatureAction 의기본값이 log,deny,status:403 이므로 (1) SecFilterSignatureAction을사용하지않거나 (2) SecFilterSignatureAction "log,pass,msg: 'Command execution attack '' 와같이변경 12

modsecurity console -. 웹을통해실시간통합로그관리가가능한패키지프로그램 (web+db) -. 1개의콘솔에서 3개의센서까지무료로제공 -. 상용버전 (Enterprise Manager Console) 은 breach를통해제공 -. JDK / JRE 1.4 이상에서작동함 -. 메일등으로알람 (notify) 기능 -. pdf로보고서작성기능제공 13

console 설치방법 # tar zxvfp modsecurity-console_1_0_2_unix.tar.gz # cd modsecurity-console #./modsecurity-console No suitable Java Virtual Machine could be found on your system. The version of the JVM must be at least 1.4. Please define INSTALL4J_JAVA_HOME to point to a suitable JVM. You can also try to delete the JVM cache file /root/.install4j 에러메시지 http://java.sun.com/ 에서 jdk1.5 다운로드및설치 #./jdk-1_5_0_09-linux-i586.bin 엔터만입력 # export INSTALL4J_JAVA_HOME=/usr/local/src/modsecurity-console/jdk1.5.0_09 #./modsecurity-console start 8886/tcp 리슨확인 14

console 설정방법 Sensors => Add Sensor 클릭 httpd.conf 에아래설정추가 SecAuditEngine RelevantOnly SecAuditLogRelevantStatus "^(?:5 4 d[^4])" SecAuditLogType Concurrent SecAuditLogParts ABCDEFGHZ SecAuditLogStorageDir /usr/local/apache2/logs/data/ SecAuditLog /usr/local/apache2/logs/modsec-audit.log SecAuditLog " /usr/local/apache2/bin/modsec-auditlog-collector.pl /usr/local/apache2/logs/data/ /usr/local/apache2/logs/modsec-audit.log" http://xx.xx.xx.xx:8886/static/modsec-auditlog-collector 파일저장 my $CONSOLE_HOST = "218.236.xx.xxx"; my $CONSOLE_PORT = "8886"; my $CONSOLE_USERNAME = "alpha1"; my $CONSOLE_PASSWORD = "sensor1"; 15

라이센스입력 The licence key is missing, invalid, or expired. Please configure a valid licence key to unlock the full functionality https://bsn.breach.com/ 접속후 Licensing 클릭하여발급 발급된라이센스로업데이트시행 16

라이센스입력 LS0tLS1CRUdJTiBGSUxFLS0tLS0KcHJvZHVjdE5hbWUgPSBNb2RTZWN1cml0eSBDb25zb2xlCnBy b2r1y3rwzxjzaw9uid0gms4wljikchjvzhvjdfvyasa9igh0dha6ly93d3cubw9kc2vjdxjpdhku W9 ZHVjdFV SA9IGh0dHA6L 93d3 bw9k 2VjdXJ dhk b3jnl3byb2ply3rzl2nvbnnvbguvcnbyb2r1y3rwzw5kb3igpsbccmvhy2ggu2vjdxjpdhkkchjv ZHVjdFZlbmRvclVyaSA9IGh0dHA6Ly93d3cuYnJlYWNoLmNvbQoKbGljZW5jZURlc2NyaXB0aW9u ID0gTW9kU2VjdXJpdHkgQ29uc29sZSBGcmVlIENvbW11bml0eSBMaWNlbmNlCmxpY2VuY2VHZW5l cmf0zwrpbia9idiwmdcvmtavmjukbgljzw5jzvzhbglkvw50awwgpsa5otk5lzaxlzaxcgpsawnl bmnlzu5hbwugpsbub2rheqpsawnlbmnlzvvyasa9igh0dha6ly9jb2z3lnr0lmnvlmtylwpsawnl bmnlzuvtywlsid0gyw50awhvbmdadhquy28ua3ikicagicagicakywxsb3dlzfnlbnnvcnmgpsaz Ci0tLS0tQkVHSU4gU0lHTkFUVVJFLS0tLS0KTUN3Q0ZIdjduUGxPUjJmMlJEMTJGL3o0L0hhWHdT amlbafjyevlhmxf4zncvdfrrcfqytklqoxnzry81v0e9pq0kls0tls1ftkqgu0lhtkfuvvjfls0t LS0K Console 설정후에는 modsec_audit.log 가다음과같이보임 cofw.tt.co.kr 192.168.69.32 - - [26/Oct/2007:17:52:28 +0900] "GET /etc/passwd HTTP/1.1" 501 293 "-" "-" eg72fdrsk0saaebncvwaaaah AAAAH "-"" /20071026/20071026-1752/20071026-175228-eG72FdrsK0sAAEbnCVwAAAAH1752/20071026 175228 AAAAH 0 1282 md5:23776c01b2680eccc120209a4b7e2300 /var/log/httpd/data/20071026/20071026-1752/20071026-175228-eg72fdrsk0saaebncvwaaaah 17

console 로그조회 18

console 의부하가높을경우? -. SecAuditEngine On RelevantOnly -. SecAuditLogRelevantStatus "^[45] "^(?:5 4 d[^4])" -. modsecurity-auditlog-collector mlogc -. modsecurity-console 스크립트에 -INSTALL4J_ADD_VM_PARAMS="-Xms128M -Xmx512M 사용가능한메모리를시작시 128M, 최대 512M 로제한 19

오탐에대한대응방법 -. 어떤 application 이든오탐은있을수있다. -. 초기에는 DetectionOnly 모드로사용해야한다. -. 특정룰에오탐이있다고룰자체를삭제하면또다른오탐 (false negative) 의원인이될수있으므로상황에맞는커스터마이징이필요하다. -. 로그 (log) 에원인과해결방법이있다. ( 만약특정한로그만자세히보고자할경우 ) 특정조건만상세로그를볼수있음 SecRule REMOTE_ADDR "^192 192.168.10.69$ 168 10 69$ phase:1,log,pass,ctl:debugloglevel=9 pass SecRule REQUEST_URI "^/path/to/script.pl$" phase:1,log,pass,ctl:debugloglevel=9 -. Whitelist에대해서는 10번과 20번룰사이에생성 ( 예 :modsecurity_crs_10_white.conf) blacklist(negative) 에대해서는제일마지막 ( 예 : modsecurity_crs_60_black.conf) crs conf) -. 상세한로그설정은 performance impact 유발가능예 )-. snort등의룰 (rule) 설정 X -. 정규식을이용룰최소화 SecRule REQUEST_URI file1.cgi SecRule REQUEST_URI file2.cgi SecRule REQUEST_URI (file1 file2)\.cgi 20

부가기능활용 #Specify the local directory for collection storage SecDataDir /path/to/apache/logs/state # Initiate a collection based on the source IP address SecAction initcol:ip=%{remote_addr},nolog,pass # Increase the IP collection score based on filter hits SecRule REQUEST_FILENAME /cgi-bin/phf" pass,setvar:ip.score=+10 SecRule REQUEST_FILENAME cmd.exe pass,setvar:ip.score=+10 SecRule REQUEST_METHOD TRACE pass,setvar:ip.score=+5setvar:ip score=+5 # Evaluate the overall IP collection score SecRule IP:SCORE "@ge 30 SecRule ARGS REQUEST_BODY REQUEST_URI "Subject\:" chain SecRule ARGS REQUEST_BODY REQUEST_URI URI "\s*bcc\:" 21

Modsecurity 1.x / 2.x 차이 Modsecurity 1.x Modsecurity 2.x Processing phase Inbound(Request body) / Outbound(Response body) 지원 Request header(phase:1) Request body(phase:2) Response header(phase:3) Response body(phase:4) logging(phase:5) 설정방법 apache 1.x 의경우 <IfModule mod_security.c> apache 2.x의경우 <IfModule security_module> <IfModule security2_module> Turn on/off Rule engine SecFilterEngine SecRuleEngine Default rule action SecFilterDefaultAction SecDefaultAction Rule directive SecFilter, SecFilterSelective Secrule Accessing reuqest bodies SecFilterScanPost SecRequestBodyAccess Accessing response bodies SecFilterScanOutput SecResponseBodyAccess 22

Modsecurity 상용솔루션및작동모드 Modsecurity M1100 -. 브리지 (Transparent) 모드로동작 -. 100Mbps 처리가능, bypass 제공. -. 약 1500 만원 구현방식라우팅브리지 Reverse proxy Embeded 설치공간동일네트워크동일네트워크관계없음자체 네트워크 변경필요 불필요 불필요 불필요 설정변경 DNS 변경불필요불필요필요함불필요 서버 IP 노출노출됨노출됨노출안됨노출됨 기타대부분의상용장비방식 modsecurity 23

결론 -. 불필요한룰을삭제하고, custommizing 한다면성능저하없이이용가능함예 ) sql injection 차단룰만설정시 95% 내외 -. 초기에는오탐에대비, DetectionOnly로설정후로그를보며 Customizing 하여야함 -. DoS 공격등에는 iptables 이용이보다효과적 2.2 이상버전에는국가별설정이가능한 geoip 기능제공 SecGeoLookupsDb /usr/local/geo/data/geolitecity.dat SecRule REMOTE_ADDR "@geolookup" chain,drop,msg:'non-kr IP address' SecRule GEO:COUNTRY_CODE CODE "!@streq KR /sbin/iptables -A INPUT -m geoip! --src-cc KR -j DROP /sbin/iptables -A INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 30 -j DROP -. 메일링리스트를통해최신정보습득및정보공유필요 -. Modsecurity 3.0에서는 apache 1.3.x 도지원예정 24

Q & A 질문 : antihong@tt.co.kr 25