Safecode 모니터링시스템구성도 Web Appl.#1 Appl. Logic 보안모듈 Web Appl. #2 Appl. Logic 보안모듈 Web Appl. #3 Appl. Logic 보안모듈 WAS WAS #1 WAS #2 보안프로세스 Engine 보안프로세스 Engine 보안프로세스 Engine 소스레벨보안관제모니터링 각소스의중간 ( 실제 Hacking Point) 에삽입된여러개의 Safecode들은모니터링서버를통하여 Patch 및 Update가가능토록설계되어실시간 Upgrade 가능 Patch 작업및 Black list 등록 1
Safecode 세부구성도 Web Server Webhack Monitoring Server Safecode Source Module 1 Module 2 Module call Module call Module call Healthcare ( 모듈상태확인 ) Upgrade /Patch ( 최신해킹대응 ) Module3 Module4 Module5 Module call Module call Module call 실시간해킹 Monitoring 홈페이지위변조방지및홈페이지변경탐지 1 차모듈호출및차단 2 차 Signal data 전송 3 차모니터링및 Patch Database Signal Data Database 2
Safecode 모니터링시스템주요화면 3
Safecode 적용절차 4.Patch & Upgrade 1. 취약성진단 3. 웹보안모듈적용모니터링 2. 소스분석 1) 취약성진단 (Black Box Test) - 정보보호관련기관에서추천하는웹어플리케이션취약점진단툴복수활용및수작업 ( 모의해킹 ) 을통한진단 - 진단툴 : 상용취약점분석툴 - 진단툴에서아무런취약점이나오지않으면보안책해결? 2) 소스분석 (White Box Test) - 진단결과에의한세부적인 Secure Source Analysis - 진단툴 : 상용소스분석툴 - 전문컨설턴트에의한수작업및자동화툴활용 * 환경요인에따라서 2 가지분석방법및수작업병행점검 3) 웹보안모듈적용및모니터링 - 진단및분석결과에의한 Safecode 적용 - 보안프로세스로직정립및모듈화를통한어플리케이션로직과보안프로세스로직과의분리 4) Patch 및 Update - 신규해킹패턴에대한지속적 Patch 및 Update 4
Safecode 도입기대효과 도입전 보안관련정보 / 지식부재보안사고에따른이미지고려웹어플리케이션별 (ASP,PHP, JSP, dotnet등 ) 보안성검토한계어플리케이션관련보안프로세스부재외주용역어플리케이션에대한보안성검토방안부재보안사고및보안관련문의사항발생시문의할보안전문가부재 도입후 보안인식고취보안시스템구축에따른신뢰도향상어플리케이션보안프로세스확립외주용역및자체개발어플리케이션에대한일관된보안성검토가능보안사고및보안관련문의사항발생시응대할보안전문가확보 웹어플리케이션에대한보안성부재 SafeCode Service ware 보안프로세서확립보안성확보 Security Transformation 5
Safecode 의소스보안도입효과 구분도입전도입후 초기투자 1) 어플리케이션취약성분석툴도입 (Black Box Testing) 2) 소스분석툴도입 (White Box Testing) 필요없음 2 가지툴전부활용하여분석 취약성분석전담인력 1 명이상필요필요없음 비용 소스분석전담인력 1 명이상필요 ( 동일언어만사용할경우 ) 필요없음 모의해킹및보안담당 전담인력 2 명이상필요 필요없음 수정및조치 1) 전체개발인력필요 2) 자체보안을위한툴개발필요 ( 보안모듈및프레임워크 ) 필요없음 소요기간전체개발기간의 1/3~1/2 이상추가소요 1 주 ~2 주 보안성강화 최신해킹패턴에대한대응방안 1) 보안모듈및프레임워크전담개발자 2) 취약성분석및소스분석개발자 3) 초기어플리케이션개발에투입된모든개발자등이필요 1) 모듈에대한간단한 Patch 로최신해킹기법방어 2) 소스레벨침입시도모니터링 관리자사이트관련된모든업무및인력에대하여관리보안모니터링만집중 개발자 1) 항상보안에신경써야한다는부담감 2) 보안모듈이나프레임워크에대하여지속적 Upgrade 를위한보안전문개발자필수 3) 개발완료후보안적용을위한 2 중업무부담 성능및가용성에만초점을맞추어개발에만집중 6
Safecode 적용환경 IIS DotNet APACHE SafeCode Transaction Data PHP Unix SafeCode Module Web Application Windows Linux 상용 WAS JSP ASP 7
구분웹방화벽 SafeCode Position 웹서버의앞단 (H/W Appliance Type) WAS 에설치 (S/W 웹방화벽 ) 웹어플리케이션소스내부및 WAS 에설치 ( 웹어플리케이션분석후결정 ) 서비스성능 20% 내외의성능저하측정불가능할정도로매우적음 CC 인증인증대상임인증대상아님 ( 단독으로운영가능한솔루션이어야인증대상 ) 모니터링가능 ( 해킹의심내용에대한모니터링 ) 가능 ( 해킹행위에대한모니터링 ) 방어형태 방어항목 최신해킹기법방어 이슈 해킹패턴 DB 화에의한패턴방어 1) OWASP TOP 10 취약점 2) 국정원 8대취약점 1) 해킹패턴 DB Update를통한방어 2) 패턴화불가한해킹기법의경우방어불가능 1) 웹방화벽은알려진대부분의해킹시도를차단한다고하지만웹애플리케이션의설계시취약한소스에대해서는방어불가능. 2) 어플리케이션의가용성문제에대한고려가없음 취약한웹어플리케이션로직의개선과보안패턴적용을통한다단계방어 ( 심층방어기법 ) 1) OWASP TOP 10 취약점 2) 국정원8대취약점 3) 변종취약점 (Mass SQL injection, 인증우회, Script 위변조등 ) 방어 4) Outbound 해킹 ( 역해킹 ) 방어 1) Safecode Update를통한방어 2) Safecode로방어불가능한해킹기법의경우취약한로직개선및 보안코딩기법을통한방어 1) 웹방화벽과같은다양한부가기능은없으나훨씬광범위한부분에서어플리케이션의가용성을감안하여세밀하게방어가능. 2) 홈페이지 Renewal 시에만추가적인 Customizing 조치필요. Renewal 이아닌일부변경시마다수정불필요. 분기별정기점검만으로방어가능. 8
고객이신뢰할수있는웹환경구축 보안담당자선정 웹취약점분석 웹보안모듈적용 정기점검 보안담당자선정을 통해서일관성 있는보안체계 유지 상용툴및모의해킹을 이용한정밀취약점 분석 소스분석 소스분석및취약점 분석자료를토대로웹 보안엔진및모듈설치 및 Customizing 월 1회정기점검및 변경된홈페이지에 대한취약점분석및 모듈 Customizing 적용 9
분석 / 진단 / 보안 주기적점검과조치 상세한분석 Home Page 웹해킹모니터링시스템구축 신규해킹기법대책마련 취약점분석 보안대책마련 게시판 DB 주기적취약점분석 웹위변조파악 Patch & Update 모의해킹 웹보안모듈적용 대응조치 소스분석 10
구분 P 내용기능 웹보안모듈 소스보안용핵심보안프로세스모듈 웹보안엔진 보안코딩시많이사용되는핵심보안프로세스를국가정보원및한국정보보호진흥원 (KISA) 에서권고하는보안코딩권고안을준수하며 Compact-Module화하여개발자별, 언어별구현방식을통일화함으로써최소한의프로그램수정만으로도일관된보안프로세스의유지, 업데이트및기능추가, 유지보수등을용이하게하며비인가자의실수및고의로인한보안프로세스의위, 변조를원천차단합니다. 웹해킹실시간감시 s/w 웹보안모듈과연동한웹해킹실시간감시소프트웨어제공 웹보안모듈이탐지하는웹해킹에대하여보안관리자가실시간으로감시할수 있게해주는모니터링시스템입니다. (H/W 는별도입니다. 잉여시스템활용가능 ) 취약성분석 주기적점검 취약성분석툴활용 모의해킹 소스분석 정기점검 수시점검 침해사고대응 홈페이지부분및전체개편시 세계최고의취약성분석상용툴활용 보안전문가에의한해커관점에서의모의해킹실시 보안전문가에의한소스분석으로정확한문제점탐지 월 1회취약점분석및대응책마련 신규해킹기법출현시즉시대응책마련 연 4회침해사고시분석및대응책마련 보안개발가이드라인제시 취약점분석, 웹보안모듈적용및 Customizing 실시 웹해킹실시간감시 웹해킹실시간감시중탐지되는해킹시도에대하여실시간대응 S/W 및라이센스제공 웹보안모듈 SAFECODE 웹해킹실시간감시 S/W WEBHACK Monitoring 계약기간종료후에도소프트웨어의라이선스는유효하며지속적으로제공. 계약기간종료후에는 Patch 및 Update 적용안됨. 11
해킹사례 모대학수강신청및성적변조 - 모의해킹을실시한결과총장님이하모든임직원및모든학생의개인정보,ID, P/W 가노출됨. - 학생이성적변조시도를하였음. - 학생들은웹방화벽을우회하여간단한해킹툴 ( 누구나인터넷에서쉽게구할수있는툴 ) 로해킹. Þ Safecode 설치후실시간해킹모니터링시스템구축, DB 보안시스템구축 Þ 중요홈페이지위주로 SafeCode 도입시작 모기관데이터베이스변조 - 웹방화벽을설치후중국발 Mass SQL 인젝션공격을받아데이터베이스를업데이트복원하는사건이 발생. - 웹방화벽업체는현재까지도해당해킹기법에대하여패턴업데이트를못하고있는상황. ( 해당해킹기법은패턴화하기불가능한해킹기법 ) Þ SafeCode 를설치하여즉시차단 Þ 신규 Open 하는모든홈페이지 SafeCode 탑재의무화 12
SafeCode 와함께하는 Site - 대구시메인홈페이지및산하관련기관및부처 55 개홈페이지에적용 - 한국과학기술원학사행정관련모든웹어플리케이션및행정부처모든홈페이지적용 - 대표홈페이지및국방전자조달시스템에적용 - 대표홈페이지, 결제시스템및쇼핑몰엔진에적용 전국신용보증재단연합회 2011 세계육상선수권 휴니드테크놀러지즈 농수산물도매협회 수산도서관 대구소방본부 KAIST 서울경영대학원 한국원자력연구원 대구농업기술센터 대구상수도사업본부 발전재단 과학영재교육연구원대구보건환경연구원등 100 여사이트에서사용중입니다.. 13
Stress testing Tool : Compuware QALoad 로테스트하는화면 14
QALoad 결과값화면 15
QALoad Test 결과비교 기존사이트테스트결과 User1 User2 Count Last Total Count Last Total 1 0.203 0.203 1 0.203 0.203 2 0.141 0.344 2 0.172 0.375 48 0.266 9.891 48 0.188 10.438 49 0.203 10.094 49 0.14 10.578 50 0.281 10.375 50 0.281 10.406 Dot Defend 웹방화벽작동시테스트결과 User1 User2 Count Last Total Count Last Total 구분 Safecode 적용전 Safecode 적용후 s/w 웹방화벽적용후 누적시간 10.406 10.687 13.125 비율 1 1.027 1.261 1 0.797 0.797 1 0.797 0.813 2 0.219 1.016 2 0.234 1.047 48 0.234 12.609 48 0.234 12.656 49 0.235 12.844 49 0.235 12.891 50 0.265 13.109 50 0.265 13.125 Safecode 모듈작동시테스트결과 User1 User2 Count Last Total Count Last Total 1 0.172 0.172 1 0.172 0.172 2 0.187 0.359 2 0.203 0.375 48 0.235 10.25 48 0.234 10.64 49 0.203 10.453 49 0.141 10.781 50 0.204 10.672 50 0.204 10.687 Last : 테스트스크립트가수행되는시간 Total : 50 회테스트스크립트가수행된누적시간 16
Safecode 적용예 -1 문제점 : 게시판에서글작성부분에 XSS 취약점존재. 파일명 : write_ok.asp 적용전 title = replace(title,"'","''") content = UploadForm("content") content = replace(content,"'","''") admin_text = UploadForm("admin_text") 45Line if admin_text = "" then admin_text = 0 end if password = UploadForm("password") password = replace(password,"'","''") 후략 적용후 content = replace(content,"'","''") admin_text = UploadForm("admin_text") 45Line ' 보안코딩 08.06.05 이양걸 Set safe = Server.CreateObject ("SafeCode.Code") safe.setstr=title safe.doxsssafe() title =safe.getstr safe.setstr=name safe.doxsssafe() name=safe.getstr safe.setstr=email safe.doxsssafe() email=safe.getstr safe.setstr=content safe.doxsssafe() content=safe.getstr ' 보안코딩끝 if admin_text = "" then 후략 17
Safecode 적용예 -2 문제점 : 모든페이지에 URL sqlinjection, xss 취약점존재파일명 : config.asp 적용전 <!--#include file="dbconfig.asp"--> <!--#include virtual="function.asp"--> <OBJECT RUNAT=server PROGID=ADODB.Connection id=db></object> <OBJECT RUNAT=server PROGID=ADODB.Recordset id=rs></object> <% 후략 적용후 <OBJECT RUNAT=server PROGID=ADODB.Connection id=db></object> <OBJECT RUNAT=server PROGID=ADODB.Recordset id=rs></object> <% ' 보안코딩 08.06.05 이양걸 Set safe =Server.CreateObject("SafeCode.Code") safe.setstr=request.querystring() safe.doxsscheck() if safe.getbool =false then call ErrorFc(" 잘못된요청입니다.") end if safe.setstr=request.querystring() safe.dosqlcheck() if safe.getbool =false then call ErrorFc(" 잘못된요청입니다.") end if ' 보안코딩끝 후략 18
19
티앤디시스템과함께하는웹보안, 당신의 티앤디시스템웹을안전하게지켜드립니다. 전화 : 02-854-4200 070-7600-0055 TNDsystem CO.,LTD 감사합니다. 영업지원 : jun@tndsystem.com 기술지원 : help@tndsystem.comr www.tndsystem.com 20