국외출장복명서 - it 전문 뉴스포털...
TRANSCRIPT
국외출장복명서
- OWASP & WASC AppSec 2007 참석 -
2007. 11
IT기반보호단/
IT기반기획팀
목 차
1. 출장 목적
2. 출장자
3. 출장 기간 및 장소
4. 세부 일정
5. 활동 내용
6. 출장 소감 및 업무 활용 계획
7. 수집 자료
- 1 -
1. 출장 목적
o “OWASP & WASC AppSec 2007”는 웹 어플리케이션 보안을 다
루는 국제행사로서 세계 각지에서 최고의 전문가가 참석하여 기
존 홈페이지 보안에 대한 분석 결과 및 최신 홈페이지 보호기술
관련 동향에 대해 발표하고 토론하는 대규모 국제 행사임
- 특히, OWASP는 전세계 웹 어플리케이션에서 가장 많이 발생하고
있는 TOP 10 취약점을발표하는등홈페이지보안분야에서가장권위있
는기구로서,
- 온라인상에서 TOP 10 취약점학습, 웹어플리케이션보호툴제공, 허
니팟을 활용한 분석 등의 홈페이지 보호를 위한 다양한 프로젝트를 진
행 하고 있음
- 또한, OWASP & WASC AppSec에서 발표되는 주요 내용들은
대부분 최신 홈페이지 보안 분야의 국제 동향을 주도하고 있음
※ OWASP : Open Web Application Security Project
※ WASC : Web Application Security Consortium
o 이러한 이유로 OWASP & WASC AppSec 2007에 참석하여 홈페이지
보호 분야의 최신 동향 및 이슈사항을 파악하여 원 내․외에 최
신 정보를 제공할 뿐만 아니라 국내 홈페이지 보호를 위한 계획 수립
에 활용하고자 함
- 특히, 다양한 세션에서 발표되는 홈페이지 보호 관련 국제 전문
가들의 아이디어 및 의견을 수렴하여 추후 홈페이지 보호 분야의
중장기적 계획수립에 참고할 수 있을 것으로 기대
- 2 -
2. 출장자
o 민복기 주임 연구원 (IT기반보호단 IT기반기획팀)
3. 출장 기간 및 장소
o 출장기간 : 2007. 11. 11(일) ~ 2007. 11. 17(토) (5박 7일)
o 출 장 지 : 미국 산호세(US, San Jose)
- 3 -
4. 세부 일정
구분 내 용
'07.11.11(일) ◦ 인천공항 출발 → 시애틀 경유 → 산호세 도착
'07.11.12(월)
~
'07.11.15(목)
◦ Registration
◦ Building and Testing Secure Web Applications 코스 참석
- Authentication and Session Management
- Cross-Site Request Forgery (CSRF)
- Cross-Site Scripting (XSS)
- Information Leakage and Improper Error Handling
- Insecure Cryptographic Storage
- Failure to Restrict URL Access
- Malicious File Execution
- Error Handling and Logging 등
◦ Web Service Security Conference 참석
- Challenges and Techniques
- Dynamic Web Services Security and Policy
Management
'07.11.15(목)
~
'07.11.17(토)
o 미국 산호세 출발 → 로스앤젤레스 경유 → 인천공항 도착
- 4 -
5. 세부 내용
□ 개요
o “OWASP & WASC AppSec 2007” 컨퍼런스는 OWASP Top 10
웹 어플리케이션 보안 취약점의 중요성을 알리는 것을 목적으로 하며,
취약점들로부터 보호하기 위한 기본적인 보호대책과 정보들을 소개함
o OWASP에서는 2004년도에 이어 2007년 OWASP TOP 10 웹 어플
리케이션 취약점을 발표하였으며, 이는 CVE(Common Vulnerabilities
and Exposures) 데이터베이스를 운영하고 있는 MITRE의 2006년
취약성 데이터를 분석 및 참조하여 TOP 10 취약점 목록을 정함
o 안전한 웹 어플리케이션의 운영을 위해서는 어플리케이션 구현단계 뿐만
아니라 라이프사이클 전체 단계에서의 보호수단을 강구해야함을 강조함
※ 보안성 점검도 단 한 번의 점검만으로는 충분하지 못하며, 지속적인 어플리케이션 점검
및 코드 라인을 수정을 통하여 보호수준을 제고하여야함을 강조함
□ OWASP TOP 10 주요내용
o OWASP TOP 10
크로스사이트A1 –
스크립팅(XSS)
Cross Site Scripting (XSS)
취약점은 콘텐츠 암호화나 검증하는 절차 없이 사용자가- XSS
제공하는 데이터를 어플리케이션에서 받아들이거나 웹,
브라우저로 보낼 때마다 발생.
는 공격자가 희생자의 브라우저 내에서 스크립트를- XSS
실행하게 허용함으로써 사용자 세션을 가로채거나 웹,
사이트를 손상하거나 웜을 심는 것 등을 가능하게 할 수 있음.
- 5 -
인젝션 취약점A2 –
Injection Flaws
인젝션 취약점 특히 인젝션 취약점은 웹- , SQL
어플리케이션에서 자주 발생함 인젝션은 사용자가 입력한.
데이터가 명령어나 질의문의 일부분으로 인터프리터에 보내질
때 발생.
악의적인 공격자가 삽입한 데이터에 대해 인터프리터는-
의도하지 않은 명령어를 실행하거나 데이터를 변경할 수 있음.
신규[ ]
악성 파일A3 –
실행
Malicious File Execution
원격 파일 인젝션 에 취약한 코드는 공격자가 악의적인- (RFI)
코드와 데이터의 삽입을 허용함으로써 전체 서버 훼손과 같은
파괴적인 공격을 가할 수 있음
악성 파일 실행 공격은 그리고 사용자로부터- PHP, XML,
파일명이나 파일을 받아들이는 프레임워크에 영향을 줌
불안전한 직접A4 –
객체 참조
Insecure Direct ObjectReference
직접 객체 참조는 개발자가 파일 디렉토리 데이터베이스- , ,
기록 혹은 키 같은 내부 구현 객체에 대한 참조를 혹은 폼URL
매개변수로 노출시킬 때 발생.
공격자는 이러한 참조를 조작해서 승인 없이 다른 객체에 접속할 수-
있음
신규[ ]
크로스 사이트A5 –
요청 변조(CSRF)
Cross Site RequestForgery (CSRF)
공격은 로그온 한 희생자의 브라우저가 사전 승인된- CSRF
요청을 취약한 웹 어플리케이션에 보내도록 함으로써 희생자의
브라우저가 공격자에게 악의적인 행동을 수행하도록 함.
정보 유출 및A6 –
부적절한 오류
처리
Information Leakage andImproper Error Handling
어플리케이션은 다양한 어플리케이션 문제점을 통해 의도하지-
않게 자신의 구성 정보 내부 작업에 대한 정보를 누출할 수,
있음
공격자는 이러한 약점을 사용해서 민감한 정보를 훔치거나-
보다 심각한 공격 수행 가능
취약한 인증A7 –
및 세션 관리
Broken Authentication andSession Management
자격 증명과 세션 토큰은 종종 적절히 보호되지 못함- .
공격자는 다른 사용자인 것처럼 보이게 하기 위하여 비밀번호,
키 혹은 인증 토큰을 손상시킴,
불안전한A8 -
암호화 저장
Insecure CryptographicStorage
데이터를 적절히 보호하기 위한 적절한 암호화 기능을-
사용하지 않은 데이터를 공격하여 개인정보 노출이나 신용카드
사기와 같은 범죄에 사용 가능
- 6 -
o 2007년 TOP 10 웹 어플리케이션 취약점은 도출 방법은 2006년도
MITRE 데이터의 웹 어플리케이션 취약점을 분석하여 도출하였음
- XSS(Crocess-site scripting) Injection Flaws, Malicious File Exclution
취약점등이 주를 이루고 있으며, 2007년도 TOP 10 취약점이 대부분
이를 반영하였음
2006년도 MITRE 데이터의 TOP 10 웹 어플리케이션 취약점
신규[ ]
불안전한 통신A9 –
Insecure Communications
대부분 민감한 데이터의 전송에는 암호화 전송이 필요하지만- ,
이를 암호화하지 않거나 암호화가 부족하여 발생
접속A10 URL–
제한 실패
Failure to Restrict URLAccess
허가받지 않은 사용자가 인가되지 않은 에 우회하여 접속할- URL
수 있어 발생
- 7 -
□ OWASP TOP 10에 새롭게 등장한 항목
o 2007년 새롭게 발표된 중요 취약점은 기존 중요한 웹 보안 취약점을
그대로 유지하면서도 새롭게 등장한 여러 취약점들을 잘 보여주고 있으며,
이전과는 달리 프라이버시 관련 요구가 반영됨
o 2007년 웹 보안 중요 취약점에 새롭게 등장한 항목은 세가지임
- 악성 파일 실행(Malicious File Execution)
- 크로스사이트 리퀘스트 변조(CSRF, Cross Site Request Forgery)
- 안전하지 못한 통신(Insecure Communications)
년도2007
OWASP Top 10
년도2004
OWASP Top 10
년도2006
순위MITRE
크로스 사이트 스크립팅A1. (XSS) 크로스 사이트 스크립팅A4. (XSS) 1
인젝션 취약점A2. 인젝션 취약점A6. 2
악성 파일 실행A3. 신규( ) 3
불안전한 직접 객체 참조A4.훼손된 접근 제어 년A2. (2007
에서는 분리됨Top10 )5
크로스사이트 리퀘스트 변조A5.
(CSRF)신규( ) 36
정보 유출 및 부적절한 오류A6.
처리부적절한 오류 처리A7. 6
훼손된 인증 및 세션 관리A7. 훼손된 인증 및 세션 관리A3. 14
불안전한 암호화 저장A8. 불안전한 저장A8. 8
불안전한 통신 신규A9. ( )
신규( )
불안전한 구성 관리 부분에서A10.
논의됨
8
접근 제한 실패A10. URL훼손된 접근 제어A2.
년 에서는 분리됨(2007 Top10 )14
년에 삭제<2007 > 검증되지 않은 입력A1. 7
년에 삭제<2007 > 버퍼 오버 플로우A5. 4, 8, 10
년에 삭제<2007 > 서비스 거부A9. 17
년에 삭제<2007 > 불안전한 구성 관리A10. 29
- 8 -
o 악성 파일 실행은 웹 어플리케이션의 파일 첨부 기능을 악의적으로
사용하여 발생하며, 이는 충분하지 못한 악성 파일 검사로 인하여
발생되는 취약점임
- 대표적으로 웹쉘(Web Shell)과 그 밖의 원격 악성코드와 루트킷을
웹페이지에 올리는 방법 등이 있음
- 전형적인 공격방법은 게시판에 웹쉘등의 악의적인 파일올 게시하여
서버 권한을 획득하는 등의 방법이었으나, 최근에는 악의적인 파일을
외부의 서버에서 참조하는 Remote File Inclusion(RFI) 취약점이
보고되고 있음
※ 국내에서는 Remote file inclusion (RFI) 부분에 대하여 2004년도 이전부터 공개용
게시판인 ZERO 보드에 본 취약점이 보고되어 지속적으로 점검하고 있는 분야임
- 최근 유행하고 있는 다양한 기능을 가진 웹쉘(Web Shell)인 r57shell,
c99shell등이 있으며, 이러한 진화된 웹쉘이 홈페이지에 게시될 경우
보다 많은 공격을 수행할 수 있는 환경이 만들어짐
※ r57shell 등의 웹쉘이 게시된 홈페이지들을 인터넷에서 찾는 방법은, 구글해킹을
이용하여 가능하며 구글특수검색어를 이용하여 검색이 가능함(구글검색어 :
intitle:r57shell)
o CSRF로 최근에 널리 알려지고 있는 크로스사이트 리퀘스트 변조 공격은
2001년도 정도부터 조금씩 알려지기 시작했지만 많이 사용되거나
알려지지 않았음
- 이 공격은 세션 쿠키, SSL 인증서 등과 같이 자동으로 입력된 정보를
웹 어플리케이션에서 사용자의 요청을 변조함으로써 해당 사용자의
권한으로 악의적인 공격을 수행할 수 있는 취약점임
※ 예로는, 아래와 같이 이미지 내용을 변경하여 공격자의 계좌로 자금을 이체하는 코드 삽입
- 9 -
<img src="http://www.mybank.com/transferFunds.do?acctId=132486&amount=2000
" width="0" height="0" />
※ 이 취약점은 웹2.0 환경에서 전통적인 XSS 취약점 기반의 공격과 함께 매우 효과
적인 공격 기법으로 선호될 것으로 판단됨
- 이공격은 기존에 지속적으로 점검하여 조치하였던, XSS 취약점에 대한
방어로 대처할 수 있음. 또한, 브라우저로부터 자동으로 전송되지
못하도록 유일하고 랜덤한 토큰 등을 각각의 URL로부터 발생시키며,
중요한 트랜젝션에는 재인증을 수행하여 방어해야함
o 안전하지 못한 통신의 경우에는 웹 어플리케이션과 관련된 네트워크
트래픽이나 민감한 정보의 암호화 문제를 다루고 있음
- 내부의 중요 구간에서는 암호화 통신을 사용할 것을 권고하며, 신용
카드 정보와 같은 중요한 정보를 전송할 때에는 반드시 암호화할 것을
권고하고 있으며, 이 새로운 취약점은 업계의 프라이버시 보호 요구가
반영된 것임
- 특히, 인증된 연결이나, 중요한 정보를 전송하는 모든 연결
(Connection), 웹서버와 DB 어플리케이션 사이의 내부 연결은
SSL/TLS를 사용할 것을 권고함
□ 2004년도 OWASP TOP 10대비 삭제된 항목
o 지난 2004년 OWASP TOP 10 취약점 대비 삭제된 것은,
- 서비스 거부(Denial of Service)
- 안전하지 못한 구성 관리(Insecure Configuration Management)
- 확인되지 않은 입력(Unvalidated Input)
- 버퍼 오버플로우(Buffer Overflows)
- 10 -
o “서비스 거부”와 “안전하지 못한 구성 관리”는 여전히 중요한 웹 보안
취약점이지만 지난해 이를 기반으로 한 공격이 그다지 많지 않아
2007년도 웹 중요 취약점 목록에서는 제외되었음
※ MITRE 취약점 순위는 서비스 거부 공격(17위), 안전하지 못한 구성관리(29위)임
o “버퍼 오버플로우”는 웹 어플리케이션 상의 취약성이라기보다는 주로
C나 C++가 같은 언어로 작성된 프로그램의 취약성이므로 2007년도
웹 중요 취약점 목록에서는 제외되었음
o 확인되지 않은 입력은 웹 중요 취약점 가운데 가장 기본적이고 여전히
중요한 취약점이지만, 이미 널리 알려져 있고 많은 가이드와 권고들이
있기 때문에 2007년도 웹 중요 취약점 목록에서는 빠진 것으로 보임
□ 기타 이슈사항
o OWASP에서는 OWASP TOP 10 취약점을 학습 할 수 있도록 사용자에게
실전 위주로 취약점을 공격하고 공격원리를 파악하여 방어할 수 있도록
하기위하여 제작되어 운영되는 WebGoat Project를 운영하고 있음
o OWASP에서는 어플리케이션 개발 라이프사이클에서 보안위협을 줄이고
어플리케이션의 보안을 보증하기 위한 기초적인 방향을 제시하고 있음
o OWASP에서는 “A Guide to Building Secure Web Applications” 등의
웹 어플리케이션 구축 가이드를 제공하고 있어 국내에서도 이러한
가이드라인에 대한 지속적인 관심 필요
o 웹 어플리케이션에 대한 취약점에 대한 구체적인 예를 들어 시큐어
코딩에 대한 가이드를 제시
- 11 -
※ DB에 대한 에러의 예를 보여주며, 이러한 불필요한 외부에 노출되는 정보
는 SQL Injection 등의 공격에 재사용 될 수 있음을 강조함
Example 1Microsoft OLE DB Provider for ODBC Drivers error
'80004005'[Microsoft][ODBC Microsoft Access 97 Driver] Can't open
database 'VDPROD'.Example 2
java.sql.SQLException: ORA-00600: internal error code,arguments: [ttcgnd-1], [0], [], [], [],
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:169)
at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:208)
o 세션관리에 대하여 다루어지고 있으며, 대부분 국내에서도 보안을
위하여 적용하고 있는 것들을 소개하고 있음
- 공격자는 패스워드, 인증키, 인증토큰 등에 대한 공격을 수행하며,
웹어플리케이션에서는 종종 적절하지 못하게 이러한 정보를 관리하지
못하여 문제가 발생하고 있음
- 이를 방지하기 위하여, 추측할 수 없는 랜덤 세션 ID를 사용하며,
URL 쿼리 스트링이 세션 ID 및 사용자 정보로 이뤄지지 않도록 함
※ 예 : https://www.example.net/servlet/login?userid=ralph&password=dumb
- 또한 세션ID의 유효기간 및 사용 가능한 도메인을 정하여 사용
[ ID ]쿠키를 이용한 세션 예
Set-Cookie: siteid=91d3dc13713aa579d0f148972384f4; path=/; expires=Wednesday,22-Oct-2007 02:12:40domain=.www.rd1.net
secureCookie: siteid=91d3dc13713aa579d0f148972384f4
- 12 -
6. 출장 소감 및 업무 활용 계획
o OWASP & WASC AppSec 2007에서는 최근 웹 어플리케이션 보안에
대한 내용을 중심을 이루고 있음
- OWASP에서는 2004년 웹 어플리케이션 보안의 10대 취약점 발표에
이어, MITRE 등의 데이터를 수집 분석하여 2007년 웹 어플리케이션
10대 취약점을 발표하였음
o 정보통신부 소속․산하기관 홈페이지 취약점 점검 및 보호진흥원
내부의 취약점 점검시에 2007년도 OWASP TOP 10 취약점 분야가
대부분 다루어지고 있음
- 하지만, 2007년도 OWASP TOP 10 취약점에서 새롭게 등장한 3개
분야(악성 파일 실행, 크로스사이트 리퀘스트 변조, 안전하지 못한
통신)는 웹 어플리케이션 보안의 세계적인 트랜드임을 감안하여
보호진흥원에서 점검시에 보다 관심을 가지고 집중적으로 점검
해야할 필요성이 있음
- 외부 점검에서 발견하기 어려운 분야였던 버퍼 오버플로우 취약
점, 웹 어플리케이션 보안의 기본이되며 광범위하게 발생되어 취
약점 범주 분류가 어려웠던 사용자 입력 검증 등 2007년도
OWASP TOP 10에 삭제되는 항목을 보호진흥원의 점검 항목
에서도 삭제 검토가 필요
o 보호진흥원에서는 2004년도에 “웹서버 보안관리가이드”를 필두로
“홈페이지 개발보안가이드”를 작성하여 배포하였으나,
- 변화하는 환경에서 기존 웹 관련 보안 가이드에 대한 업그레이드가
부족하였으며, 웹 보안에 대하여 각 언어별로 보안 프로그램하는
방법 등의 교육이 부족한 실정으로 다양한 프로그래밍 언어별로
시큐어 코딩 등의 교육 프로그램 개발이 필요한 것으로 생각됨
- 13 -
o OWASP 에서는 웹 보안도 어플리케이션 구축을 통하여 이루어지는
것이므로, 웹 어플리케이션 개발 라이프사이클에서의 보안에 대
한 중요성을 강조함
- 어플리케이션 보안은 아키텍처와 디자인으로부터 시작하고, 철저한
테스트를 통하여 보장됨
- 또한, 한 발표자가 발표한 “디자인, 디자인, 디자인, 코딩, 테스트,
테스트, 테스트”란 말과 같이 디자인 및 테스트의 중요성이
웹 어플리케이션의 보안을 보증하는 중요한 요소임을 느꼈음
o 마지막으로, OWASP는 안전한 웹 어플리케이션을 위한 다양한 분
야의 사람들이 모여 다양한 시각으로 정보보호 업무를 수행함
- 많은 사람들의 참여를 독려하여 디자인방법, 코딩방법, 테스팅방
법, 공격방법, 다양한 문서화를 제공하고 있음
- 국내에서도 보다 다양한 전문가들이 함께 모여서 웹 어플리케이션
보호를위하여다양한활동을수행할수있는장마련의필요성을느꼈음
7. 수집 자료
o OWASP & WASC AppSec 2007 자료집 1부