(19) 대한민국특허청 (KR) (12) 공개특허공보 (A) (51) 국제특허분류 (Int. Cl.) G06F 21/60 (2013.01) G06F 21/57 (2013.01) (52) CPC 특허분류 G06F 21/60 (2013.01) G06F 21/577 (2013.01) (21) 출원번호 10-2015-0038994 (22) 출원일자 2015 년 03 월 20 일 심사청구일자 전체청구항수 : 총 6 항 2015 년 03 월 20 일 (54) 발명의명칭문서보안시스템및문서보안방법 (11) 공개번호 10-2016-0112744 (43) 공개일자 2016년09월28일 (71) 출원인 소프트캠프 ( 주 ) 서울특별시강남구테헤란로 8 길 37 ( 역삼동 ) (72) 발명자 배환국 경기도성남시분당구판교역로 100, 602 동 1503 호 ( 백현동, 백현마을 ) 강홍석 경기도용인시기흥구구성로 470,403 동 602 호 백종덕 경기도남양주시호평로 93, 1705 동 1501 호 (74) 대리인 이상문, 박천도 (57) 요약 문서보안시스템및문서보안방법에관한것으로, 본발명에따른문서보안시스템은, 문서파일의이상여부를판단하는문서취약성판단수단 ; 상기문서취약성판단수단에서의판단결과에따라문서파일에이상이있는것으로판단되면상기문서취약성판단수단에서얻어진취약점분석데이터가별도로분류및저장되도록구비된취약성지식베이스 ; 및, 상기문서취약성판단수단을거친취약점분석데이터를상기취약성지식베이스에미리축적된취약점분석데이터들과비교분석하여상기문서파일의취약점에관한결과보고데이터를생성하는취약점분석모듈 ; 을포함하는것을특징으로한다. 이에의하여, 제로데이등과같은알려지지않은문서파일의오류취약점들을유형별로체계화하여대상문서파일을실시간으로분석하고결과를도출할수있는문서보안시스템및문서보안방법을제공할수있다. 대표도 - 1 -
이발명을지원한국가연구개발사업 과제고유번호 1711014090 부처명 미래창조과학부 연구관리전문기관 정보통신산업진흥원 연구사업명 대학ICT연구센터지원육성사업 연구과제명 산업기밀정보유출방지를위한융합보안 SW연구및전문인력양성 기여율 1/1 주관기관 중앙대학교산학협력단 연구기간 2014.06.01 ~ 2017.12.31-2 -
명세서청구범위청구항 1 문서파일의이상여부를판단하는문서취약성판단단계 ; 상기문서취약성판단단계에서상기문서파일에이상이있는것으로판단되면상기문서취약성판단단계를거쳐생성된취약점분석데이터를별도로분류및저장하는취약성지식베이스구축단계 ; 및상기문서취약성판단단계를거친취약점분석데이터를상기취약성지식베이스구축단계를통해미리축적된취약점분석데이터들과비교분석하여상기문서파일의취약점에관한결과보고데이터를생성하는취약점분석및결과도출단계 ; 를포함하는것을특징으로하는문서보안방법. 청구항 2 제1항에있어서, 상기문서취약성판단단계이전에상기문서파일의포맷을검증하는포맷검증단계를더포함하는것을특징으로하는문서보안방법. 청구항 3 제2항에있어서, 상기포맷검증단계와상기문서취약성판단단계의사이에상기문서파일의파일형식을적어도하나이상의다른파일형식으로변환하는파일변환단계를더포함하는것을특징으로하는문서보안방법. 청구항 4 문서파일의이상여부를판단하는문서취약성판단수단 ; 상기문서취약성판단수단에서의판단결과에따라문서파일에이상이있는것으로판단되면상기문서취약성판단수단에서얻어진취약점분석데이터가별도로분류및저장되도록구비된취약성지식베이스 ; 및상기문서취약성판단수단을거친취약점분석데이터를상기취약성지식베이스에미리축적된취약점분석데이터들과비교분석하여상기문서파일의취약점에관한결과보고데이터를생성하는취약점분석모듈 ; 을포함하는것을특징으로하는문서보안시스템. 청구항 5 제4항에있어서, 상기단말기에구비되며, 상기문서파일의포맷을검증하는포맷검증모듈이구비된파일분석수단을더포함하는것을특징으로하는문서보안시스템. 청구항 6 제5항에있어서, 상기파일분석수단은상기포맷검증모듈에서포맷검증이완료된문서파일의파일형식을각각다른파일형식으로변환하는적어도하나이상의파일변환모듈을포함하는것을특징으로하는문서보안시스템. 발명의설명 기술분야 - 3 -
[0001] 본발명은문서보안시스템및문서보안방법에관한것으로, 더욱상세하게는컴퓨터문서파일의실행여부와 상관없이문서파일의오류취약점을알아내고이를분석할수있는문서보안시스템및문서보안방법에관한 것이다. [0002] [0003] [0004] [0005] [0006] [0007] 배경기술각종문서파일을비롯한데이터를운영하고관리하는컴퓨터또는모바일단말기등의데이터프로세싱시스템 ( 이하 ' 단말기 ') 과, 이들의상호통신을매개하는인터넷과같은통신네트워크가발달하면서, 수많은문서파일이이메일, 단말기간의통신은물론 USB 메모리, CD/DVD 등과같은이동식저장매체를통해전달되고있다. 한편, 문서파일들중에는컴퓨터시스템에해악을끼치는바이러스, 스파이웨어, 애드웨어, 해킹툴등의악성코드가포함될수있다. 이러한악성코드를가진문서파일은종래의백신을통해통제가이뤄지도록하고있다. 한편, 보안시스템의일예가대한민국특허공개번호제10-2010-0067383호 (2010년06월21일자등록, 이하 ' 특허문헌 1' 이라함 ) 등에개시되어있다. 그러나, 백신은시그니처 (signature) 방식이기때문에악성코드자체또는악성코드를포함한문서파일의정보 ( 예컨대, hash 정보등 ) 를기준으로문서파일을보안처리하게되므로제로데이 (zeroday) 등과같은알려지지않은오류취약점들을가진문서파일에대해서는보안처리가되지않을수있다는문제점이있다. 예컨대, 문서파일을직접열어서실행하기전까지는그취약점이잘드러나지않는다는점과문서파일내부에취약점을가진컨텐츠 (contents) 가포함되어있는경우에는취약성에대한패턴화가더욱어려워질수있기때문에이러한문서파일들로인하여시스템이오염되거나외부로부터의공격에쉽게노출될수있다는문제점이있다. 선행기술문헌 [0008] 특허문헌 ( 특허문헌 0001) 대한민국특허공개번호제 10-2010-0067383 호 (2010 년 06 월 21 일자등록 ) 발명의내용 [0009] [0010] [0011] 해결하려는과제본발명의목적은, 제로데이 (zeroday) 등과같은알려지지않은문서파일의오류취약점들을유형별로체계화하여대상문서파일을실시간으로분석하고결과를도출할수있는문서보안시스템및문서보안방법을제공하는것이다. 또한, 외부에서유입되거나사용자 PC나 USB, 파일서버등에이미존재하지만안전성여부를알수없는문서파일이어떠한취약점을포함하고있는지를미리판단하여시스템의위험을사전에예방할수있는문서보안시스템및문서보안방법을제공하는것이다. 아울러, 악성코드에대한별도의패턴 DB를필요로하지않고, 컴퓨터백신으로도잡아낼수없는오류취약점을가진문서파일에대해서도취약성여부를알아낼수있는문서보안시스템및문서보안방법을제공하는것이다. [0012] 과제의해결수단상기목적을달성하기위해본발명에따른문서보안방법은 : 문서파일의이상여부를판단하는문서취약성판단단계 ; 상기문서취약성판단단계에서상기문서파일에이상이있는것으로판단되면상기문서취약성판단단계를거쳐생성된취약점분석데이터를별도로분류및저장하는취약성지식베이스구축단계 ; 및, 상기문서취약성판단단계를거친취약점분석데이터를상기취약성지식베이스구축단계를통해미리축적된취약점분석데이터들과비교분석하여상기문서파일의취약점에관한결과보고데이터를생성하는취약점분석및결과도출단계 ; 를포함하는것을특징으로한다. - 4 -
[0013] [0014] [0015] [0016] [0017] 여기서, 본발명에따른문서보안방법은상기문서취약성판단단계이전에상기문서파일의포맷을검증하는포맷검증단계를더포함하는것이바람직하다. 그리고, 본발명에따른문서보안방법은상기포맷검증단계와상기문서취약성판단단계의사이에상기문서파일의파일형식을적어도하나이상의다른파일형식으로변환하는파일변환단계를더포함하는것이바람직하다. 한편, 상기목적을달성하기위해본발명에따른문서보안시스템은 : 문서파일의이상여부를판단하는문서취약성판단수단 ; 상기문서취약성판단수단에서의판단결과에따라문서파일에이상이있는것으로판단되면상기문서취약성판단수단에서얻어진취약점분석데이터가별도로분류및저장되도록구비된취약성지식베이스 ; 및, 상기문서취약성판단수단을거친취약점분석데이터를상기취약성지식베이스에미리축적된취약점분석데이터들과비교분석하여상기문서파일의취약점에관한결과보고데이터를생성하는취약점분석모듈 ; 을포함하는것을특징으로한다. 여기서, 본발명에따른문서보안시스템은, 상기단말기에구비되며, 상기문서파일의포맷을검증하는포맷검증모듈이구비된파일분석수단을더포함하는것이바람직하다. 그리고, 상기파일분석수단은상기포맷검증모듈에서포맷검증이완료된문서파일의파일형식을각각다른파일형식으로변환하는적어도하나이상의파일변환모듈을포함하는것이바람직하다. [0018] [0019] [0020] [0021] [0022] 발명의효과본발명에따르면, 제로데이 (zeroday) 등과같은알려지지않은문서파일의오류취약점들을유형별로체계화하여대상문서파일을실시간으로분석하고결과를도출할수있는문서보안시스템및문서보안방법을제공할수있다. 또한, 알려진취약점파일을기반으로파일분석을통하여지식베이스를구축하고, 지속적으로갱신되도록함으로써, 지금까지의컴퓨터백신으로통제될수있는알려진악성코드및문서파일에만초점을맞춘방역의범위를컴퓨터백신으로도잡아낼수없는오류취약점을가진문서파일로까지확대되도록할수있고, 새로이유입되거나안정성을알수없는문서파일에대해서도어떠한취약점을가진문서인지를예측할수있다. 한편, 악성코드에대한별도의패턴 DB를필요로하지않고, 컴퓨터백신으로도잡아낼수없는오류취약점을가진문서파일에대해서도문서취약성여부를알아낼수있다. 아울러, 파일분석및변환을통하여취약점이있는취약성파일은격리나삭제등의보안처리를함으로써안전한문서공유환경을지원하도록할수있다. 나아가, USB, 이메일, 인터넷등을통해외부에서유입되거나사용자 PC, 파일서버내시스템안전성여부를알수없는문서파일이어떠한취약점을포함하고있는지를미리판단하여시스템의위험을사전에예방할수있다. [0023] 도면의간단한설명 도 1 은본발명에따른문서보안시스템의블록도, 도 2는도 1의또다른실시예를도시한블록도, 도 3은본발명에따른문서보안방법의플로차트, 도 4는도 3의포맷검증단계의세부단계를도시한플로차트, 도 5는도 3의또다른실시예를도시한플로차트, 도 6은일반적인문서파일의포맷기본구조의일예를나타낸도면, 도 7은확장자가.hwp 또는.doc 인문서파일의포맷구조의일예를나타낸도면, 도 8은도 6 또는도 7의문서본문구조에서데이터헤더에압축된원본데이터크기와목표데이터에압축이풀린데이터크기를비교하는일예를나타낸도면, 도 9는확장자가.JPEG인이미지문서파일의포맷구조의일예를나타낸도면이다. - 5 -
[0024] [0025] [0026] [0027] [0028] [0029] [0030] [0031] [0032] 발명을실시하기위한구체적인내용이하에서는첨부된도면을참조하여본발명에대해상세히설명한다. 본발명에따른문서보안시스템은, 도 1에도시된바와같이, 문서파일 (1,5) 이다운로드되는단말기 (100) 에구비되며다운로드되거나미리저장된문서파일 (1,5) 이단말기 (100) 로다운로드되거나단말기 (100) 에서실행 ( 오픈 ) 되기전, 또는사용자및관리자에의하여검사가실행될때에문서파일 (1,5) 의포맷을검증하는포맷검증모듈 (format verifier)(111) 이구비된파일분석수단 (110) 과, 마찬가지로단말기 (100) 에구비되어파일분석수단 (110) 에연결되며파일분석수단 (110) 에서수행된파일분석결과에따라문서파일 (1,5) 의이상여부를판단하는문서취약성판단수단 (120) 을포함한다. 외부로부터단말기 (100) 로다운로드되는문서파일 (1,5) 은외장하드, USB 메모리, CD/DVD, 스마트폰등과같은이동식저장매체와, ptp, ftp, 이메일등의통신수단을비롯한데이터유입수단 (10) 을통해단말기 (100) 의드라이브 (101) 로저장된다. 데이터유입수단 (10) 을통해드라이브 (101) 로다운로드되거나드라이브 (101) 에미리저장된문서파일 (1,5) 은포맷검증모듈 (111) 에서파일포맷이확인되고분석되어해당문서파일이오류취약점을포함하지않고있는정상문서파일 (1) 인지아니면비정상적인파일구조의취약점을포함하고있는취약성문서파일 (5) 인지의여부가포맷검증모듈 (111) 에의해검증되고, 포맷검증모듈 (111) 은해당문서파일이취약성문서파일 (5) 인경우해당문서파일내에존재하는취약점의위치와상세내용, 원인등의검증데이터를문서취약성판단수단 (120) 으로전달한다. 즉, 포맷검증모듈 (111) 은검증되는문서파일의자료구조에따라서해당문서파일에비정상적인자료구조가포함되어있는지의여부를확인하고, 이를통하여문서파일의내부에숨겨진컨텐츠의자료구조의이상여부를확인한다. 이에따라, 악성코드에대한별도의패턴 DB를필요로하지않게됨으로써, 제로데이등과같이컴퓨터백신으로도잡아낼수없는오류취약점을가진문서파일에대해서도문서취약성여부를알아내도록할수있다. 도 1에도시된바와같이, 본발명에따른포맷검증모듈 (111) 에는문서파일의확장자별 ( 예컨대, hwp, doc, ppt, pdf, txt, bmp, gif, jpeg 등 ) 포맷구조의이미알려진기준포맷구조와기준상세자료구조등의정보를저장하고갱신하는기준포맷정보 DB(113) 가구비된다. 이에따라, 도 4에도시된바와같이, 포맷검증모듈 (111) 은문서파일의확장자별포맷구조를기준포맷정보 DB(113) 에저장된기준포맷구조와비교하여 1차적으로해당문서파일의파일명 ( 예컨대, ***.hwp) 의확장자 ( 예컨대, hwp) 가상호일치되는지의여부를확인하고나서해당문서파일의확장자별포맷의상세자료구조를기준포맷정보 DB(113) 에저장된기준상세자료구조와비교하여 2차적으로분석함으로써, 최종적으로해당문서파일에이상이없을경우에만문서취약성판단수단 (120) 에의해문서파일의사용 ( 실행 ( 오픈 ), 공유, 저장유지등 ) 이승인되도록하고, 해당문서파일에이상이있는경우에는보안정책에따라해당문서파일에대해로그전송, 격리또는삭제등의조치 ( 보안처리 ) 가취해질수있도록할수있다. 기준포맷정보 DB(113) 에저장되고갱신되는알려진취약점파일정보로서의확장자별포맷에따른기준포맷구조와기준상세자료구조는이미대외적으로공지된것으로서, 다음의 < 표 1> 에나와있는각확장자별자료공지웹사이트에서얻어질수있다. [0033] 확장자명 웹사이트주소 DOC http://msdn.microsoft.com/en-us/library/office/cc313153(v=office.12).aspx JPEG http://www.opennet.ru/docs/formats/jpeg.txt HWP http://www.hancom.com/formatqna.boardintro.do 표 1 [0034] < 확장자별포맷구조자료출처 - 예시 > [0035] 한편, 포맷검증모듈 (111) 에의해문서파일의포맷이검증되는일예가다음의 < 표 2> 에나와있다. - 6 -
표 2 [0036] 파일명확장자확장자포맷포맷유효성검증오류위치상세내용 ***.jpeg JPEG 일치 유효하지않음 COM FIELD LENGTH COM FIELD 가양수의값이어야함. 양수가아님 [0037] [0038] [0039] [0040] 상기 < 표 2> 에나타난바와같이, 포맷검증모듈 (111) 은해당문서파일의파일명과확장자가상호일치하는지의여부를 1차적으로확인하여해당문서파일의확장자별기본포맷구조를확인하고나서, 해당문서파일의확장자별상세자료구조를기준상세자료구조와비교하여 2차적으로분석하게된다. 상기 < 표 2> 의경우에는해당문서파일의파일명이확장자인 'JPEG' 와일치하여 1차확인단계는통과하였지만, 상세자료구조가확장자별기준상세자료구조 ( 상기 < 표 1> 에나와있는 'JPEG' 의포맷구조자료출처로부터획득된 ) 와는불일치 ( 유효하지않음 ) 되어해당문서파일은포맷검증모듈 (111) 에의해취약성문서파일 (5) 로분류된다. 즉, 포맷검증모듈 (111) 은확장자별데이터파일포맷구조에대한기준정보를기반으로해당문서파일이비정상적인자료구조를가졌는지의여부를확인한다. 예를들어, 문서파일은확장자별포맷에서각필드 (FIELD) 별로유효한범위를갖고있는데, 그범위를벗어나는값을해당문서파일이가진것으로포맷검증모듈 (111) 이 2차분석단계에서확인하게되면, 이는해당문서파일이실행되는과정에서버퍼오버플로우 (buffer overflow) 등과같은문제를일으킬수있는취약성문서파일 (5) 이기때문에, 포맷검증모듈 (111) 은해당문서파일을취약성문서파일 (5) 로분류하여문서취약성판단수단 (120) 으로전달하게된다. 좀더구체적으로, 해당문서파일이 HWP, MS-OFFICE 등의파일포맷을갖는경우, 포맷검증모듈 (111) 은해당문서파일의헤더 (header) 상에데이터크기 (size) 와실제데이터크기가동일한지아니면실제데이터크기가지나치게큰수이거나음수 (-) 인지의여부와, 압축된포맷일경우압축전후의비율이정상적인경우와비교하여지나치게높은지 ( 이는 Stack Overflow를일으킬불순한의도로동일한데이터를대량으로집어넣은경우에해당한다 ) 의여부를확인하여악성코드의가능성을판단하고, 그결과를문서취약성판단수단 (120) 으로전달한다. 예를들어, 해당문서파일이 JPEG 파일포맷을갖는경우, 포맷검증모듈 (111) 은해당문서파일의 COM FIELD 값이음수 (-) 의값이거나 ( 기준자료구조상으로는 COM FIELD 값이언제나양수의값이어야함 ) DHT FIELD 값이 256을초과한경우 ( 기준자료구조상으로는 DHT FIELD 값이 256 이하의값이어야함 ) 에는해당문서파일을버퍼오버플로우를발생시킬수있는취약성문서파일 (5) 로분류하여문서취약성판단수단 (120) 으로전달한다. [0041] [0042] [0043] [0044] [0045] 본발명의일실시예로서, 도 1 및도 2에도시된바와같이, 파일분석수단 (110) 은포맷검증모듈 (111) 에서포맷검증이완료된문서파일 (1,5) 의파일형식을각각다른파일형식으로변환하는적어도하나이상의파일변환모듈 (file converter)(115) 을포함하는것이바람직하다. 파일변환모듈 (115) 은문서파일 (1,5) 의확장자를다른확장자로변환하는과정에서파악되는변환성공또는변환실패의여부, 그리고변환실패에따른실패사유 ( 예컨대, 오류코드의형태 ), 실패시점과오류위치등의결과데이터를산출하여문서취약성판단수단 (120) 에서해당문서파일을취약성문서파일 (5) 로판단하여보안처리하도록결과데이터를문서취약성판단수단 (120) 으로전달한다. 본발명에따른파일변환모듈은, 도 2에도시된바와같이, 복수개가상호병렬또는직렬방식으로파일분석수단 (110) 에구비될수있다. 예를들어, 파일변환모듈 (115) 은 DOC 문서파일을 DOCX, HWP, XML, TXT 등의확장자로차례대로변환하거나동시에일괄적으로변환하는과정에서, 변환이실패될경우이를문서의취약성이있다고판단하여문서취약성판단수단 (120) 에알릴수있다. 좀더구체적으로, 도 2에도시된바와같이, 파일변환모듈은확장자가 DOC인문서파일을확장자 DOCX로변환하는파일변환모듈 A(115a) 와, 확장자 HWP로변환하는파일변환모듈 B(115b) 와, 확장자 XML로변환하는파일변환모듈 C(115c) 를포함할수있으며, 그밖에도도시되지는않았지만, 확장자 HTML로변환하는파일변환모듈 D와, 확장자 PDF로변환하는파일변환모듈 E를더포함할수있다. - 7 -
[0046] 파일변환모듈 (115) 에서수행된파일변환과정에서문서파일 (1,5) 의변환실패가발생되는경우파일변환모듈 (115) 은오류형태를다음의 < 표 3> 에나와있는형태의코드값으로산출하여문서취약성판단수단 (120) 에전달할수있다. 또한, 파일변환과정에서데이터변환이실패할경우해당오류가발생한위치 ( 예, 표, 그림등 ) 도남겨문서취약점판단수단 (120) 에전달할수있다. [0047] [0048] 오류코드 오류내용 오류발생위치 5 Access Denied - 9 Address Error - 13 Data Error Table 표 3 [0049] < 변환실패시오류결과데이터의일예 > [0050] [0051] [0052] [0053] [0054] [0055] [0056] [0057] [0058] 한편, 문서취약성판단수단 (120) 에는문서파일이정상문서파일 (1) 인경우해당문서파일이사용 ( 실행또는공유, 저장유지 ) 되도록허용하고, 문서파일이실행되는실행프로그램 (130) 과, 문서파일이취약성문서파일 (5) 인경우해당문서파일이보안정책에따라로그전송, 격리, 방역또는삭제되도록하는보안처리수단 (140) 이구비된다. 실행프로그램 (130) 은, 예를들어, 워드프로세서, 한글, 아크로뱃등과같은소프트웨어나애플리케이션, 그리고기타다양한종류의응용프로그램이나 OS 프로그램등이포함될수있다. 보안처리수단 (140) 은, 취약성문서파일 (5) 을격리할경우, 데이터유입수단 (10) 에따라전용저장경로를설정하는저장경로제어모듈과, 취약성문서파일 (5) 의격리공간을저장디스크또는이동식저장매체에생성및삭제하고이를관리하는격리공간관리모듈을포함할수있다. 이에따라, 도 3 및도 5에도시된바와같이, 파일분석및변환을통하여취약점이있는취약성문서파일 (5) 은보안처리수단 (140) 에의해격리나삭제등의보안처리가이뤄지도록함으로써안전한문서공유환경을지원하도록할수있다. 또한, 본발명에따른문서보안시스템은, 도 1 및도 2에도시된바와같이, 문서취약성판단수단 (120) 에서의판단결과에따라문서파일 (1,5) 에이상이있는것으로판단되면파일분석수단 (110) 및문서취약성판단수단 (120) 에서얻어진취약점분석데이터가별도로분류및저장되도록구비된취약성지식베이스 (150) 와, 문서취약성판단수단 (120) 을거친취약점분석데이터를취약성지식베이스 (150) 에미리축적된취약점분석데이터들과비교분석하여문서파일의취약점에관한결과보고데이터를생성하는취약점분석모듈 (160) 을더포함하는것이바람직하다. 한편, 취약성지식베이스 (150) 에저장되고갱신되는취약점분석데이터에는취약성문서파일 (5) 의이상오류형태 ( 예컨대, 코드의형태로분류된 ), 오류위치및유입출처등이포함될수있다. 예컨대, 취약점분석모듈 (160) 은문서취약성판단수단 (120) 을거친취약점분석데이터를취약성지식베이스 (150) 에저장된취약점분석데이터들과비교하여유사도분석을통해그유사정도 (100이면동일한취약점으로간주 ) 를기반으로예상되는취약점정보 ( 취약점종류, 내용, 이름등 ) 를취약점링크정보와함께포맷검증및파일변환과정에서의결과를보고서의형태로출력하여제공할수있다. 이때, 문서취약성판단수단 (120) 을거친취약점분석데이터와유사한데이터의기록이취약성지식베이스 (150) 에전혀없는경우, 취약점분석모듈 (160) 은해당취약점분석데이터가유효하지않은원인에대한취약성분석을통해취약성지식베이스 (15 0) 의데이터베이스를업데이트할수도있다. 이에따라, 알려진취약점파일을기반으로파일포맷검증및파일변환결과를취약성지식베이스 (150) 로데이터베이스화함으로써, 향후외부에서유입되거나내부의안전성여부를알수없는문서파일이어떠한취약점을포함하고있는지를미리판단하여시스템의위험을사전에예방할수있다. 또한, 알려진취약점파일을기반으로파일분석을통하여취약성지식베이스 (150) 를구축하고, 이취약성지식베이스 (150) 가지속적으로갱신되도록함으로써, 새로이유입되거나안정성을알수없는문서파일에대해서 - 8 -
도어떠한취약점을가진문서인지를예측하도록할수있다. [0059] 그리고, 해당문서파일이취약성문서파일 (5) 인경우, 취약점분석모듈 (160) 에의해문서취약성판단수단 (120) 을거친취약점분석데이터가재활용되어그에대한결과보고서가생성및출력되도록할수있다. [0060] [0061] [0062] [0063] [0064] [0065] [0066] [0067] [0068] [0069] [0070] 이러한구성에의해, 본발명에따른문서보안방법을도 3 내지도 5을참조하여설명하면다음과같다. 우선, 문서파일이단말기 (100) 로다운로드될때또는단말기 (100) 에미리저장된문서파일 (1,5) 이실행또는사용자및관리자에의하여검사가실행될때에포맷검증모듈 (111) 은문서파일 (1,5) 의포맷을검증한다 (S100). 본발명의일실시예로서, 단계 100은, 도 4에도시된바와같이, 문서파일 (1,5) 의확장자별포맷구조를기준포맷구조에대하여확인하는포맷구조확인단계 (S110) 와, 포맷구조확인단계 (S110) 를통과한문서파일의확장자별상세자료구조를기준상세자료구조와비교하여분석하는상세자료구조분석단계 (S120) 를포함하는것이바람직하다. 참고로, 문서파일이 HWP, MS-OFFICE 등의파일포맷인경우, 도 6에도시된바와같이, 특수한목적의데이터파일을제외하고는거의모든데이터파일이파일내부에데이터의크기가기록되어있고, 해당데이터크기를바탕으로응용프로그램에서메모리를읽어프로그램의목적에맞게데이터를사용하도록구성되어있는데, 이러한자료구조는데이터를활용하는데효율적이지만파일헤더가손상될경우에는데이터의유실또는오동작의가능성때문에헤더의무결성및데이터크기에대한검증을거칠필요가있다. 그러나, 이러한검증이제대로수행되지못하면이를보안취약점이라고하며악성코드의공격대상이되기도한다. 따라서, 본발명에따른포맷검증단계 (S100) 에의해이러한문서파일의헤더의무결성및데이터크기에대한검증이확실하게이뤄지도록할수있다. 도 7는확장자가.hwp 또는.doc 인문서파일의포맷구조의일예를나타낸도면이고, 도 8은도 6 또는도 7 의문서본문구조에서데이터헤더에압축된원본데이터크기가표시되는일예 ( 도 8의 (a) 참고 ) 와목표데이터에압축이풀린데이터크기를비교하는일예 ( 도 8의 (b) 참고 ) 를나타낸도면이다. 도 8을참고로설명하면, 문서자료의용량효율화를위해대부분의문서파일은내부에압축된형태의데이터를포함하고있고 ( 도 8의 (a) 에서우측부분 ), 헤더에는압축된데이터의원본크기가기록되어있어 ( 도 8의 (a) 에서좌측부분 ) 문서를실행시킬때에메모리상에압축데이터를풀어서편집할수있도록되어있다. 일반적으로의미있는데이터를압축할때에무손실압축알고리즘의최고치는최대 512배를넘지못한다. 따라서, 본발명에따른포맷검증모듈 (111) 은해당문서파일의데이터압축비가 512를넘는경우이를악의적인버퍼오버플로우공격을일으킬수있는오류취약점을포함하는취약성문서파일 (5) 로간주할수있다 ( 도 8의 (b) 참고 ). 즉, 포맷검증모듈 (111) 은문서파일의헤더내에압축된원본데이터크기를목표데이터 (object data) 상에압축된데이터크기로나누어데이터압축비를산출하고, 그압축비가 512 이상이면해당문서파일을취약성문서파일 (5) 로간주할수있다. 이때, 데이터의최대압축비 512는일예로서, 확장자별포맷의기본자료구조에따라데이터의최대압축비가변경및조절될수있음은물론이다. 한편, 도 9은확장자가.JPEG인이미지문서파일의포맷구조의일예를나타낸도면이다. 도 9을참고로설명하면, 정상적인이미지문서파일 (1) 인경우라면 DHT의데이터길이 (data length) 는 256 이하의값이어야하지만, 그렇지않고 256 초과의값이입력된경우에는버퍼오버플로우를발생시킬수있다. 그러나, 데이터길이의크기는 2byte로 2^16-1까지를데이터길이로기록할수있다. 포맷검증모듈 (111) 은이미알려진이러한기준파일자료구조를기반으로문서파일의취약점을사전에파악할수있다. 또한, 도 9에서정상적인이미지문서파일 (1) 인경우라면 COM은언제나양수의크기를가져야하나, 그이외의 0 또는마이너스의크기를가지면 GDI+ 취약점을가진환경에서는메모리할당을잘못하여버퍼오버플로우를발생시킬수있다. 따라서, 포맷검증모듈 (111) 은이러한경우에도해당문서파일을취약성문서파일 (5) 로분류할수있다. 이때의취약점링크는다음의소스샘플로부터기준포맷정보 DB(113) 가획득하도록할수있다. - 9 -
[0071] 취약점링크예 : http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=can-2004-0200 [0072] [0073] [0074] [0075] [0076] [0077] 다음에, 단계 100 이후에문서취약성판단수단 (120) 은단계 100을거친결과를가지고문서파일의이상여부를판단한다 (S300). 이때, 도 5에도시된바와같이, 단계 100과단계 300의사이에서파일변환모듈 (115) 은문서파일의파일형식을적어도하나이상의다른파일형식으로변환하여문서파일의취약성여부를검증할수있다 (S200). 단계 300에서문서파일에이상이없는것으로판단되면문서취약성판단수단 (120) 은해당문서파일의사용 ( 실행, 공유, 저장유지등 ) 을승인하고 (S400), 단계 300에서문서파일에이상이있는것으로판단되면문서취약성판단수단 (120) 은문서취약성판단단계 (S300) 를거쳐생성된취약점분석데이터를별도로분류및저장하여취약성지식베이스 (150) 를구축한다 (S600). 이때, 단계 300과단계 600의사이에서보안처리수단 (140) 은보안정책에따라취약성문서파일 (5) 에대하여로그전송, 격리, 방역및삭제중적어도어느하나의조치를취할수있다 (S500). 그리고, 단계 500과단계 600은동시에병렬적으로수행될수도있다. 한편, 본발명에따른문서보안방법은단계 600 이후에문서취약성판단수단 (120) 을거친취약점분석데이터를취약점분석모듈 (160) 이취약성지식베이스 (150) 에미리축적된취약점분석데이터들과비교분석하여취약성문서파일 (5) 의취약점에관한결과보고데이터를생성하는취약점분석및결과도출단계 (S700) 를더포함할수있다. 이에따라, 취약점분석모듈 (160) 에의해포맷검증결과및파일변환결과, 그리고기존의취약점유형및그에대한유사도등의데이터가포함된결과보고서가작성되어출력되도록할수있다. [0078] 이에, 본발명에따르면, 악성코드에대한별도의패턴 DB 를필요로하지않게됨으로써, 컴퓨터백신으로도잡 아낼수없는오류취약점을가진문서파일에대해서도문서취약성여부를알아내도록할수있다. [0079] 상기에의해설명되고첨부된도면에서그기술적인면이기술되었으나, 본발명의기술적인사상은그설명을위한것이고, 그제한을두는것은아니며본발명의기술분야에서통상의기술적인지식을가진자는본발명의기술적인사상을이하후술될특허청구범위에기재된기술영역으로부터벗어나지않는범위내에서본발명을다양하게수정및변경시킬수있음을이해할수있을것이다. [0080] 부호의설명 100 : 단말기 110 : 파일분석수단 111 : 포맷검증모듈 115 : 파일변환모듈 120 : 문서취약성판단수단 150 : 취약성지식베이스 160 : 취약점분석모듈 - 10 -
도면 도면 1-11 -
도면 2-12 -
도면 3 도면 4-13 -
도면 5 도면 6-14 -
도면 7 도면 8-15 -
도면 9-16 -