430 likes | 692 Views
Web 2.0 Security. NHN security analysis team, 전 상훈 2007.04 (p4ssion@nhncorp.com). NHN Security Division. Web 2.0 ? 위험요소 위험의 발전과 방향 Web 2.0 threat? Countermeasure 결론과 예상. Contents. Web 2.0 이란 ? 사용자의 적극적인 참여 개방성 집단지성의 출현과 활용 ( 사용자에 의한 지식의 집대성 ) 사용자에 의한 정보 및 네트워크 창조와 공유
E N D
Web 2.0 Security NHN security analysis team, 전 상훈 2007.04 (p4ssion@nhncorp.com) NHN Security Division
Web 2.0 ? 위험요소 위험의 발전과 방향 Web 2.0 threat? Countermeasure 결론과 예상 Contents
Web 2.0 이란? 사용자의 적극적인 참여 개방성 집단지성의 출현과 활용 ( 사용자에 의한 지식의 집대성) 사용자에 의한 정보 및 네트워크 창조와 공유 멀티 디바이스 ( Ubiquitous ) 사용자 접근성의 향상 ( RSS , Atom , AJAX , Open API …) Web 2.0 비즈니스 사용자의 의견을 적극적으로 활용 하고 사용자의 접근성을 개선하여 직접적인 사용자의 참여를 통한 이익모델 창출 Web 2.0 ?
Web의 paradigm shift Web 2.0은 특별한 용어나 현상인가? 도구로서의 Web 에서 생활 속의 Web Network를 통한 가상의 사회 -> 현실 속으로 ( second life , blog , avatar ) Web 2.0 ?
UCC ( User Created Contents) UCC의 정의 일반적으로 동영상 게시물을 UCC라 칭하나 모든 부분에서 사용자가 작성하는 유형의 인터넷 활동을 UCC라 할 수 있다. 게시물 , 덧글 , 동영상 , 이미지 , 메일과 같은 의견 및 정보를 나타내는 모든 유형이 UCC Web 2.0 ?
Web 환경의 발전에 따른 위험요소 Web의 발전에 따른 현재의 환경 이해 다양한 online client method , 다양한 접근 방법, 사용자 참여 일반화 Ref: http://web2.wsj2.com 위험요소
Web 환경의 발전에 따른 위험요소 유형별 광고 (ActiveX) , 피싱 악성코드 유포 개인정보 관련 ( 정보 유출 ,욕설 , 비방 , 허위사실 ) , 피싱 Service Hacking XSS (다양한 부분의 XSS 공격), SQL Injection , XML , Request 위조 , DOM , script attack 매개체 별 게시물 덧글 , RSS 동영상 , 이미지 , Flash , Music … 구조별 Open API ( Mashup) 및 다양한 접근 환경 취약성 ( Ajax , SOAP , DoM ) 서비스별 구성요소 분석에 따른 위험 – ex )Myspace Attack 위험요소
Web 기술의 발전에 따른 위험요소 유형별 광고 (ActiveX) 위험요소
Web 기술의 발전에 따른 위험요소 유형별 광고 (RSS Advertising) 자동화된 RSS 광고의 범람 위험요소
Web 기술의 발전에 따른 위험요소 유형별 Phishing ( 사회 공학적인 기법 – 속임수와 결합) 여러 유형으로 발전 위험요소
Web 기술의 발전에 따른 위험요소 유형별 악성코드 유포 ( 2006년 10월 이후) 위험요소 07.3월 ANI 파일 취약성
Web 기술의 발전에 따른 위험요소 유형별 Service Hacking - ex) Html / Script Injection – XSS Attack XSS (다양한 부분의 XSS 공격), SQL Injection , XML , Request 위조 , DOM , script attack 위험요소 RSS Example: <item rdf:about="http://host/about.foo"> <title> <script>alert(‘Item Title')</script> </title> <link>http://host/?<script>alert('Item Link')</script> </link> <description><script>alert(‘Item Description')</script> </description> <author><script>alert(‘Item Author')</script> </author> </item> Atom Example <entry xmlns="http://www.w3.org/2005/Atom"> <author><name> <script>alert('Entry Author Name')</script></name> </author> <published>2005-09-15T06:27:00-07:00</published> <updated>2005-09-15T13:33:06</updated> <id>tag:url.com,1999:blog-6356614.post-112679118286717848<script>alert('Entry ID')</script></id> <title type="html"> <script>alert('Entry Title')</script> </title> <content type="xhtml" xml:base="http://url"xml:space="preserve"> <div xmlns="http://www.w3.org/1999/xhtml"> <script>alert('Entry Div XMLNS')</script></div> </content><draft xmlns="http://purl.org/atom-blog/ns#">false</draft></entry>
Web 기술의 발전에 따른 위험요소 유형별 Service Hacking XSS (다양한 부분의 XSS 공격)( RSS –security www.spidynamic.com참조) Feedback attack 위험요소 RSS Example <item rdf:about="http://host/about.foo"> <title> <script>alert(‘Item Title')</script> </title> <link>http://host/?<script>alert(‘Item Link')</script> </link> <description><script>alert(‘Item Description')</script> </description> <author> <script>alert(‘Item Author')</script> </author> </item> Atom Example <entry xmlns="http://www.w3.org/2005/Atom"> <author> <name><script>alert('Entry Author Name')</script></name></author> <published>2005-09-15T06:27:00-07:00</published> <updated>2005-09-15T13:33:06</updated> <link href="http://url/?<script>alert('Entry Link')</script>" rel="alternate" title="<script>alert('Entry Link Title')</script>"type="text/html"/> <id>tag:url.com,1999:blog-6356614.post-112679118286717848<script>alert('Entry ID')</script></id> <div xmlns="http://www.w3.org/1999/xhtml"> <script>alert('Entry Div XMLNS') </script></div></content> <draft xmlns="http://purl.org/atom-blog/ns#">false</draft></entry>
Web 기술의 발전에 따른 위험요소 유형별 Service Hacking XSS (다양한 부분의 XSS 공격) 2006년 7월 Google RSS Reader XSS 취약성 http://ha.ckers.org/blog/20060704/cross-site-scripting-vulnerability-in-google/ 위험요소
Web 기술의 발전에 따른 위험요소 유형별 Service Hacking ( XSS , SQL Injection) 위험요소
Web 환경의 발전에 따른 위험요소 매개체 별 게시물 게시판에 악성코드 설치 루틴이나 사용자 정보 유출 하는 XSS 취약성 공격 루틴을 작성 하여 올림 악성코드 실행 루틴이 포함된 게시물 클릭 시에 설치 되거나 정보 유출 위험요소
Web 환경의 발전에 따른 위험요소 매개체 별 동영상 , 이미지 , Flash , Music Ex) mp3 파일에 포함된 악성코드 example 위험요소
Web 환경의 발전에 따른 위험요소 매개체 별 동영상 , 이미지 , Flash , Music Ex) Apple의 quicktime 동영상을 이용한 악성코드 설치 2006.12월 Myspace Attack에 사용 위험요소
Web 환경의 발전에 따른 위험요소 매개체 별 동영상 , 이미지 , Flash , Music Ex) Flash를 통한 악성코드 유포 , 동영상중간에 삽입된 악성코드 위험요소
Application Attack 위험의 발전과 방향
Application Attack Flow 위험의 발전과 방향
Application Attack ( Ubiquitous service Attack) platform에 관계 없는 Application Attack의 일반화 일반 Application 및 표준규격의 다양한 플랫폼 탑재 ( TV , PDA , 가정용 기기 ,Handphone … ) ex) Java , web , xml … 위험의 발전과 방향
Web 2.0 threat 특징 ? Application worm 특정 서비스에 특화된 Worm Ubiquitous service attack ( 다양한 접속 매개체 ) 다양한 platform attack 여러 종류의 통신 규약 , 여러 종류의 Application 공격하는 유형의 Monster application attack 출현 가능성 Web 2.0 threat?
Application worm 최초 santy worm ( 2004년 12월) Application Worm( ex –Santy worm) 취약 Application 서버 취약 Application 서버 취약 Application 서버 취약 Application 서버 1. APP 취약성을 이용 최초공격 2.검색엔진 이용 취약한 서버 검색 후 공격 Worm Process Attacker Web 2.0 threat?
Application worm 공개용 게시판 취약성을 이용한 Application worm 2. 외부 사이트의 코드가 대상서버에서 실행됨 악성코드 업로드 사이트 Web Server Application Server PHP Web Server 1. APP 취약성을 이용 외부 파일 실행 명령 3. Option에 따른 명령 실행 Attacker . Option에서 Exploit을 선택 할 때 웹서버내에 Local exploit 파일을 파일로 쓰고 생성을 시킴 . 악성코드내 명령 입력창에서 Exploit 실행 . 웹상에서 root 권한 획득 악성 코드 옵션 Reverse Backdoor Local root exploit Web 2.0 threat?
Service Application worm ex) myspace , 다른 서비스들도 유사한 형태의 공격 위험성 Web 2.0 threat?
Service Application worm ex) yahoo messenger attack (YH032.explr) 악성코드 배포사이트 • Yahoo Messenger Attack • Code Insert 4. 스파이 웨어 설치 5. 등록자 List에서 Script base worm 재전송 3. 가짜 IE Icon 생성 Attacker Yahoo Chatting 2. 악성코드 사용자 노출 및 감염 채팅 사용자 Web 2.0 threat?
Web 2.0은 패러다임의 변화 이므로 단순 요소 기술로는 대응이 어려움 Technical Base Filtering 사용자 입력의 Filtering ( 기술적 , 정책적 이슈) 위험요소 판별을 위한 자동 판별 시스템의 구축 및 운용 Platform의 체계화 Filtering system의 체계화 및 구조화 전문 보안 인력의 운용과 합리적인 프로세스 수립 Monitoring 인력을 이용한 이슈 모니터링 자동 Filtering 예외 사안의 수시 모니터링 및 Rule Update 신규 취약성에 대한 모니터링 보안성 검수 (Black box Test) 전문 인력을 이용한 웹 서비스 및 Application에 대한 보안성 검수 취약성 모니터링을 통한 취약부분 일괄 적용 및 문제 해결 프로세스 Open Api 취약성에 대한 검증 Countermeasure
Technical Base Filtering ( 게시판 , 게시물 , 덧글 , 이미지 , Flash , 동영상 …) 광고 Filtering ActiveX 외 악성코드 설치 유형 Fitering 악성코드 포함된 이미지에 대한 Filtering ( string) Flash , 동영상에 대한 Pop up 이슈 판별을 통한 filtering 욕설 , 성인 관련물에 대한 Filtering 악성코드 , 해킹툴, Virus의 File Upload에 대한 Filtering Countermeasure
Technical Base Platform의 체계화 Filtering 시스템에 대한 체계적인 구성 전체 사용자 입력에 대한 Filtering 구조 수립 전문 인력의 연구에 의한 Filtering Rule 갱신 및 추가 사용자의 직접 입력에 대한 빠른 모니터링 구조 수립 신규 Filtering issue 발생시의 업무 분담 및 체계적인 대응 구조 수립 Countermeasure – service owner
Technical Base Monitoring 동영상에 대한 모니터링 ( 성인물 , 악성코드 팝업 , 설치 유형) 비정상 행위에 대한 특이사항 모니터링 – 신규 유형 탐지 개인정보 침해 사안에 대한 직접 모니터링 Filtering 이후의 결과에 대한 Sample 모니터링 전문 인력에 의한 신규 취약성 전담 모니터링 Customer service 이상 징후 신고에 대한 모니터링 강화 Service Abusing 발견을 위한 로그 모니터링 RSS ,Atom과 같은 전달 method와 기술적 이슈 모니터링 Countermeasure – service owner
Technical Base 보안성 검수 (Web , Application 취약성 제거 ) secure coding & secure inspection Risk Discovery App 보안성 검수 반복 Assessment Approved? Yes Critical Vulnerabilities? IT Security No Project Approved Review Request Perform Assessment Generate Report No Yes Project Owner Submits Request Request Deferred or Rejected 개발 부서 Apply Fixes Review Report Review Report 사업부서 Fix or go live? Go live Fix 위험감수 정책적인 예외 경영층 Countermeasure – service owner
Technical Base 보안성 검수와 SDLC ( secure development life cycle) 역량 있는 보안 전문가 집단 이나 조직을 활용한 취약성 점검 Countermeasure – service owner
사용자의 대응 개인 PC차원의 보호 방안 수립 Phishing 주의 ( 메일 , 링크 …) 첨부파일 주의 ( Zeroday worm …) 알려진 위험요소의 최소화 ( 보안 패치 , AV ) ActiveX의 시스템 설치 제한 주기적인 보안 설정 확인 ( 보안패치 , AV update) 주기적 패스워드 변경 신뢰 할 수 있는 기관의 보안 설정 설치 사이트별 중요도에 따른 보안 마인드 ( 패스워드 , 가입 여부) Countermeasure – user
정책적인 대응 ISO27001 , ISMS의 실효적인 관리 ( 실무적인 보안성 측면) White list의 관리 ( site , program … ) 보안 전문 인력의 효율적인 육성방안 수립 모니터링 체제 및 Filtering에 대한 방안 수립 권고 Countermeasure
위협은 지속된다. “인간적인 너무나 인간적인” 참여는 현재 진행형 Service Application attack의 일반화 특화된 조건의 Attack ( service별 공격) 기술적인 보안의 중요성 Web 2.0은 변화의 과정이며 향후를 대비하여 충분한 모니터링과 프로세스의 수립이 필요. P4ssion is never fade away 결론과 예상
별첨 ( SQL Injection & XSS 대책) • 텍스트 문장의 가운데에 특수 문자가 나올경우 ( HTML 로 문장이 표현될 경우) • “<”태그를 시작하는 문자 , “&”문자 속성을 나타내는 문자 , “>” • 태그의 끝을 나타내는 문자의 경우 처리가 필요하다. – • <script> </script> 의 body 부분에 위치하는 문자의 경우 • 세미콜론과 {} , [] 문자들은 필터링이 이루어 져야 한다. • < , > 문자에 대한 치환 혹은 <script , </script> 문장이 HTML 입력 필드 내에 출현할 경우에는 반드시 치환이 되어 < = < , > => 등의 문자로 치환하여 행위가 발생하지 않도록 처리할 것을 권고한다.
Web Application 인자의 유효성 체크( RSS ,Atom 등에 대해서는 별도 구성 필요) DB 쿼리에 변수로 사용되는 모든 인자에 대해 입력값 검증이 수행 되어야 함 single quote 하나를 single quote 두 개로 replace하거나 \'로 replace data = replace(data, "'", "''") , data = replace(data, "'", "\'") semi colon과 double dash 제거 정수이여야만하는 입력값에 대해 정수값 여부 체크 Use IsNumeric Function 길이 체크 : DB컬럼의 크기와 같거나 작은지 체크 ' , <,>,; ,-- 와 같은 문자가 변수에 존재 하지 않도록 강력한 체크 필요 SQL Injection 및 Validation Checking program의 사용 및 주기적 점검 필요 Application 개발자의 보안 문제 인식을 통한 습관화된 인자 유효성 체크 필요 DB의 권한 축소 및 불필요한 Stored Procedure 제거 db_owner 권한의 제거가 필요하며 일반 user 권한 부여 필요함. ( 데이터의 보기는 가능하나 시스템 명령어 실행은 불가능하도록 ) xp_cmdshell xp_dirtree xp_regdeletekey xp_regenumvalues xp_regread xp_regwrite sp_makewebtask sp_adduser … 별첨 ( SQL Injection & XSS 대책)
IDS를 이용한 침입 탐지 Ruleset을 업데이트 하여 다음과 같은 문자열을 감지 할 수 있도록 조정한다. IS_SRVROLEMEMBER , IS_MEMBER('db_owner') , db_name() ,%5Bsysobjects%5D , drop , delete 등의 경우 False alarm의 경우도 다수 있을 수 있으나 손쉽게 필터링 가능할 것이다. 또한 IDS_Evasion과 관련하여서도 대책이 필요 할 수 있다고 본다. 침입 탐지 이후에 Firewall 혹은 switch 상에서의 공격 IP 차단 목적지를 확인하여 존재하는 취약성에 대한 강력한 수정 필요. 비정상 행위에 대한 모니터링 및 Alert 강화 필요 DB 및 웹서버 단위의 비정상 행위에 대한 심각한 주의 필요 시스템의 장애 발생시의 원인 파악 명확히 전달 IN/Out port에 대한 접근제어 강화 및 모니터링 강화 사용자 접근에 대한 통제 강화 별첨 ( SQL Injection & XSS 대책)
별첨 ( SQL Injection & XSS 대책) • Web Application Validation 체크 –다수의 웹 진단 프로그램이 존재 하고 있음 Web Page crawling 이후 Validation 체크를 수행하는 자체 진단 프로그램
별첨 ( SQL Injection & XSS 대책) Secure Programming & Secure Inspection For Web 다수의 웹 취약성 스캐너를 통해 취약성 보완 –상용 공개용 Web Validation check scanner – Gamja [ download at http://blog.naver.com/p4ssion ] Problem Clear [ XSS , SQL Injection …] Check problem & correcting [ XSS , SQL Injection …]
별첨 ( SQL Injection & XSS 대책) Secure Programming & Secure Inspection For Web Gamja – Requirement: Wget [Windows] + Perl