KR102443766B1 - 애플리케이션의 보안 취약성 평가기기 및 그 평가방법 - Google Patents
애플리케이션의 보안 취약성 평가기기 및 그 평가방법 Download PDFInfo
- Publication number
- KR102443766B1 KR102443766B1 KR1020160006571A KR20160006571A KR102443766B1 KR 102443766 B1 KR102443766 B1 KR 102443766B1 KR 1020160006571 A KR1020160006571 A KR 1020160006571A KR 20160006571 A KR20160006571 A KR 20160006571A KR 102443766 B1 KR102443766 B1 KR 102443766B1
- Authority
- KR
- South Korea
- Prior art keywords
- application
- api
- vulnerability
- degree
- security vulnerability
- Prior art date
Links
- 238000011156 evaluation Methods 0.000 title claims abstract description 67
- 238000000034 method Methods 0.000 title claims description 43
- 230000006854 communication Effects 0.000 claims description 28
- 238000004891 communication Methods 0.000 claims description 28
- 230000009471 action Effects 0.000 claims description 24
- 238000012795 verification Methods 0.000 description 21
- 230000006399 behavior Effects 0.000 description 15
- 238000010586 diagram Methods 0.000 description 13
- 238000012545 processing Methods 0.000 description 13
- 239000008186 active pharmaceutical agent Substances 0.000 description 12
- 238000010801 machine learning Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 7
- 238000013523 data management Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 239000013598 vector Substances 0.000 description 6
- 238000007476 Maximum Likelihood Methods 0.000 description 5
- 238000012937 correction Methods 0.000 description 4
- 238000003384 imaging method Methods 0.000 description 3
- 239000004973 liquid crystal related substance Substances 0.000 description 3
- 238000002910 structure generation Methods 0.000 description 3
- 238000010276 construction Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 230000007175 bidirectional communication Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000002041 carbon nanotube Substances 0.000 description 1
- 229910021393 carbon nanotube Inorganic materials 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000002772 conduction electron Substances 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000002159 nanocrystal Substances 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Technology Law (AREA)
- Multimedia (AREA)
- Computing Systems (AREA)
- Debugging And Monitoring (AREA)
- Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)
- Alarm Systems (AREA)
Abstract
본 발명은 애플리케이션의 정량적 수치를 제공해 줌으로써 보안 취약성에 대한 객관적인 데이터를 제공하는 애플리케이션의 보안 취약성 평가기기 및 그 평가방법이 제공된다. 본 발명의 애플리케이션의 보안 취약성 평가방법은, 평가 대상인 애플리케이션에 사용되는 적어도 하나의 API (APPLICATION PROGRAMING INTERFACE)를 결정하는 단계와; 상기 결정된API의 특성정보에 기초하여 상기 API 에 대한 배타적 정보에의 접근 정도를 결정하는 단계와; 상기 결정된API의 배타적 정보에의 접근 정도에 기초하여 상기 애플리케이션의 보안 취약성을 평가하는 단계를 포함하는 것을 특징으로 한다.
Description
본 발명은 애플리케이션에서 사용되는 API(APPLICATION PROGRAMING INTERFACE)에 대한 분석에 기초하여 애플리케이션의 정량적 수치를 제공해 줌으로써 보안 취약성에 대한 객관적인 데이터를 제공하는 애플리케이션의 보안 취약성 평가기기 및 그 평가방법이다.
본 발명과 관련된 응용 프로그램의 취약성 평가 기법은 애플리케이션의 퍼미션(permission)이나 데이터 유출 여부 등을 이용하여 취약성을 평가 하였다. 또한 정량적인 취약성 수치를 제공해 주지 못하였다. 이와 같은 방법으로 평가된 결과물은 평가기법 개발자의 주관적 의도가 들어있고 그렇기 때문에 객관적인 수치를 제공해주지 못하며, 정량적인 수치를 제공하는데 어려움이 있었다.
또한, 상기 퍼미션을 이용하는 방법은 애플리케이션의 퍼미션을 통하여 취약성을 평가하는데, 이는 정상적인 동작을 위한 퍼미션 사용에도 불구하고, 취약성을 밝히는 등의 평가의 오류 가능성을 지니고 있다.
본 발명의 목적은 애플리케이션에서 사용되는 API(APPLICATION PROGRAMING INTERFACE)는 항상 명확하게 분석할 수 있으므로 이에 대한 분석에 기초하여 애플리케이션의 정량적 수치를 제공해 줌으로써 애플리케이션의 보안 취약성에 대한 객관적인 데이터를 제공할 수 있는 애플리케이션의 보안 취약성 평가기기 및 그 평가방법을 제공함에 있다.
상기 본 발명의 해결과제를 달성하기 위한 애플리케이션의 보안 취약성 평가방법은, 평가 대상인 애플리케이션에 사용되는 적어도 하나의 API (APPLICATION PROGRAMING INTERFACE)를 결정하는 단계와; 상기 결정된API의 특성정보에 기초하여 상기 API 에 대한 배타적 정보에의 접근 정도를 결정하는 단계와; 상기 결정된API의 배타적 정보에의 접근 정도에 기초하여 상기 애플리케이션의 보안 취약성을 평가하는 단계를 포함하는 애플리케이션의 보안 취약성 평가방법에 의해 달성된다.
여기서, 네트워크로부터 상기 사용되는 적어도 하나의 API에 대응하는 특성정보를 획득하는 단계를 더 포함할 수 있다.
그리고, 상기 배타적 정보에의 접근 정도를 결정하는 단계는, 상기 API의 특성정보 중 상기 사용되는 적어도 하나의 API의 명칭에 포함되어 있는 단어에 대한 확률을 이용하여 상기 배타적 정보에의 접근 정도를 산출하는 단계를 포함할 수 있다.
여기서, 상기 애플리케이션의 보안 취약성을 평가하는 단계는, 상기 API의 특성정보 중 상기 배타적 정보에의 접근 정도가 결정된 API의 명칭에 대한 확률을 이용하여 상기 애플리케이션의 보안 취약성을 평가한 취약성정도를 산출하는 단계를 포함할 수 있다.
그리고, 상기 배타적 정보에의 접근 정도가 결정된 API 및 상기 애플리케이션의 보안 취약성이 평가된 API 중 적어도 하나에 기초하여 상기 애플리케이션의 취약성 평가에 대한 결과정보를 제공하는 단계를 더 포함할 수 있다.
여기서, 악성행위를 하는 애플리케이션 및 정상행위를 하는 애플리케이션 중 적어도 하나에서 사용되는 적어도 하나의 API에 대한 상기 배타적 정보에의 접근 정도 및 해당 애플리케이션의 보안 취약성을 평가한 취약성정도를 산출하는 단계를 더 포함할 수 있다.
그리고, 상기 배타적 정보에의 접근 정도를 결정하는 단계는, 상기 평가 대상인 애플리케이션에서 사용되는 적어도 하나의 API에 대한 상기 배타적 정보에의 접근 정도가 상기 산출된 악성행위를 하는 애플리케이션 및 정상행위를 하는 애플리케이션 중에서 사용되는 적어도 하나의 API에 대한 상기 배타적 정보에의 접근 정도 중 어느 값에 가까운지를 판단하는 단계를 포함할 수 있다.
여기서, 상기 애플리케이션의 보안 취약성을 평가하는 단계는, 상기 평가 대상인 애플리케이션의 보안 취약성을 평가한 취약성정도가 상기 산출된 악성행위를 하는 애플리케이션 및 정상행위를 하는 애플리케이션 중에서 보안 취약성을 평가한 취약성정도 중 어느 값에 가까운지를 판단하는 단계를 포함할 수 있다.
그리고, 상기 API의 특성정보는 상기 API의 패키지, 클래스, 명칭, 파라미터의 형태, 리턴값, 설명 중 적어도 하나를 포함할 수 있다.
여기서, 상기 배타적 정보에의 접근 정도가 결정된 API는 개인 및 단체 중 적어도 하나의 정보 및 권리 중 적어도 하나를 침해할 가능성이 있는 API를 포함할 수 있다.
한편, 상기 본 발명의 해결과제를 달성하기 위한 애플리케이션의 보안 취약성 평가기기는, 애플리케이션에 대한 데이터를 수신할 수 있는 통신부와; 평가 대상인 상기 애플리케이션에 사용되는 적어도 하나의 API (APPLICATION PROGRAMING INTERFACE)를 결정하며, 상기 결정된API의 특성정보에 기초하여 상기 API 에 대한 배타적 정보에의 접근 정도를 결정하고, 상기 결정된API의 배타적 정보에의 접근 정도에 기초하여 상기 애플리케이션의 보안 취약성을 평가하는 제어부를 포함하는 애플리케이션의 보안 취약성 평가기기에 의해 달성된다.
여기서, 상기 제어부는 네트워크로부터 상기 사용되는 적어도 하나의 API에 대응하는 특성정보를 획득하도록 상기 통신부를 제어할 수 있다.
그리고, 상기 제어부는 상기 API의 특성정보 중 상기 사용되는 적어도 하나의 API의 명칭에 포함되어 있는 단어에 대한 확률을 이용하여 상기 배타적 정보에의 접근 정도를 산출할 수 있다.
여기서, 상기 제어부는 상기 API의 특성정보 중 상기 배타적 정보에의 접근 정도가 결정된 API의 명칭에 대한 확률을 이용하여 상기 애플리케이션의 보안 취약성을 평가한 취약성정도를 산출할 수 있다.
그리고, 상기 애플리케이션의 취약성 평가에 대한 결과정보를 표시하는 디스플레이부를 더 포함하고, 상기 제어부는 상기 배타적 정보에의 접근 정도가 결정된 API 및 상기 애플리케이션의 보안 취약성이 평가된 API 중 적어도 하나에 기초하여 상기 애플리케이션의 취약성 평가에 대한 결과정보를 제공하도록 상기 디스플레이부를 제어할 수 있다.
여기서, 상기 제어부는 악성행위를 하는 애플리케이션 및 정상행위를 하는 애플리케이션 중 적어도 하나에서 사용되는 적어도 하나의 API에 대한 상기 배타적 정보에의 접근 정도 및 해당 애플리케이션의 보안 취약성을 평가한 취약성정도를 산출할 수 있다.
그리고, 상기 산출된 상기 배타적 정보에의 접근 정도 및 취약성정도를 저장하는 저장부를 더 포함하고, 상기 제어부는 상기 평가 대상인 애플리케이션에서 사용되는 적어도 하나의 API에 대한 상기 배타적 정보에의 접근 정도가 산출되어 상기 저장부에 저장된 악성행위를 하는 애플리케이션 및 정상행위를 하는 애플리케이션 중에서 사용되는 적어도 하나의 API에 대한 상기 배타적 정보에의 접근 정도 중 어느 값에 가까운지를 판단할 수 있다.
여기서, 상기 산출된 상기 배타적 정보에의 접근 정도 및 취약성정도를 저장하는 저장부를 더 포함하고, 상기 제어부는 상기 평가 대상인 애플리케이션의 보안 취약성을 평가한 취약성정도가 산출되어 상기 저장부에 저장된 상기 산출된 악성행위를 하는 애플리케이션 및 정상행위를 하는 애플리케이션 중에서 보안 취약성을 평가한 취약성정도 중 어느 값에 가까운지를 판단할 수 있다.
그리고, 상기 API의 특성정보는 상기 API의 패키지, 클래스, 명칭, 파라미터의 형태, 리턴값, 설명 중 적어도 하나를 포함할 수 있다.
여기서, 상기 배타적 정보에의 접근 정도가 결정된 API는 개인 및 단체 중 적어도 하나의 정보 및 권리 중 적어도 하나를 침해할 가능성이 있는 API를 포함할 수 있다.
본 발명에 의하면, 애플리케이션에서 사용되는 API(APPLICATION PROGRAMING INTERFACE)는 항상 명확하게 분석할 수 있으므로 이에 대한 분석에 기초하여 애플리케이션의 정량적 수치를 제공해 줌으로써 애플리케이션의 보안 취약성에 대한 객관적인 데이터를 제공할 수 있는 효과가 있다.
도 1은 본 발명에 따른 평가기기의 구성을 나타내는 블록도이며,
도 2는 본 발명의 일 실시 예에 따른 평가기기의 구성을 나타내는 블록도이고,
도3 은 본 발명에 따른 평가기기의 애플리케이션의 보안 취약성 평가방법을 나타내는 제어흐름도이며,
도 4 는 본 발명의 일 실시 예에 따른 평가기기의 애플리케이션의 보안 취약성 평가방법을 나타내는 제어흐름도이고,
도 5는 본 발명의 일 실시 예에 따른 평가기기를 나타내는 개략도이며,
도 6은 본 발명의 다른 실시 예에 따른 평가기기를 구체적으로 나타내는 개략구조도이고,
도 7은 본 발명의 다른 실시 예에 따른 평가기기의 평가방법에 대하여 전체적인 순서흐름을 나타내는 제어흐름도이며,
도 8과 9는 본 발명의 다른 실시 예에 따른 평가기기에서 나이브 베이즈 분류 (Naive Bayes Classification) 공식을 이용하여 API에 대한 조건부 확률을 나타내는 예시표이다.
도 2는 본 발명의 일 실시 예에 따른 평가기기의 구성을 나타내는 블록도이고,
도3 은 본 발명에 따른 평가기기의 애플리케이션의 보안 취약성 평가방법을 나타내는 제어흐름도이며,
도 4 는 본 발명의 일 실시 예에 따른 평가기기의 애플리케이션의 보안 취약성 평가방법을 나타내는 제어흐름도이고,
도 5는 본 발명의 일 실시 예에 따른 평가기기를 나타내는 개략도이며,
도 6은 본 발명의 다른 실시 예에 따른 평가기기를 구체적으로 나타내는 개략구조도이고,
도 7은 본 발명의 다른 실시 예에 따른 평가기기의 평가방법에 대하여 전체적인 순서흐름을 나타내는 제어흐름도이며,
도 8과 9는 본 발명의 다른 실시 예에 따른 평가기기에서 나이브 베이즈 분류 (Naive Bayes Classification) 공식을 이용하여 API에 대한 조건부 확률을 나타내는 예시표이다.
이하에서는 첨부한 도면을 참조하여 본 발명에 대해 상세히 설명한다.
도 1은 본 발명에 따른 평가기기(10)의 구성을 나타내는 블록도이다. 본 발명에 따른 평가기기(10)는 통신부(110)와 제어부(100)를 포함할 수 있다.
통신부(110)는 외부입력에 의한 신호를 수신하여 제어부(100)에 전달할 수 있다. 통신부(110)는 다양한 외부입력 케이블이 접속됨으로써 해당 외부입력으로부터의 신호를 유선으로 수신하며, 또는 무선으로 수신되는 신호를 미리 정해진 무선통신규격에 따라서 수신할 수 있다.
통신부(110)는 각 케이블이 개별적으로 접속되는 복수의 커넥터(미도시)를 포함할 수 있다. 통신부(110)는 접속된 외부입력으로부터의 신호, 예를 들면 HDMI, USB, 컴포넌트(component) 규격에 따른 방송신호, 영상신호, 데이터신호 등을 수신하거나, 또는 통신 네트워크를 통한 통신데이터를 수신할 수 있다.
통신부(110)는 외부입력으로부터의 신호/데이터를 수신하는 구성뿐 아니라, 평가기기(10)의 설계 방식에 따라서, 무선 통신을 위한 무선통신모듈(미도시)이나 방송신호의 튜닝을 위한 튜너(미도시)와 같은 다양한 부가적인 구성을 더 포함할 수 있다. 통신부(110)는 외부장치로부터 신호를 수신하는 것 이외에도, 평가기기(10)의 정보/데이터/신호를 외부장치에 전송할 수도 있다. 즉, 통신부(110)는 외부장치로 신호를 수신하는 구성으로만 한정할 수 없으며, 양방향 통신이 가능한 인터페이스(interface)로 구현될 수 있다. 통신부(110)는 복수의 제어장치로부터 UI를 선택하기 위한 제어신호를 수신할 수 있다. 통신부(110)는 블루투스(Bluetooth), IR(Infrared), UWB(Ultra Wideband), 지그비(Zigbee) 등 공지의 근거리 무선통신을 위한 통신모듈로 구성될 수 있으며, 유선통신을 위한 공지의 통신포트로 구성될 수도 있다. 통신부(110)는 UI를 선택하기 위한 제어신호 이외에, 디스플레이의 조작을 위한 명령, 데이터의 송수신 등 다양한 목적으로 활용될 수 있다. 통신부(110)는 애플리케이션에 대한 데이터를 수신할 수 있다.
제어부(100)는 평가 대상인 상기 애플리케이션에 사용되는 적어도 하나의 API (APPLICATION PROGRAMING INTERFACE)를 결정하며, 결정된API의 특성정보에 기초하여 API 에 대한 배타적 정보에의 접근 정도를 결정하고, 결정된API의 배타적 정보에의 접근 정도에 기초하여 애플리케이션의 보안 취약성을 평가할 수 있다.
도 2는 본 발명의 일 실시 예에 따른 평가기기(10)의 구성을 나타내는 블록도이다. 본 발명의 일 실시 예에 따른 평가기기(10)는 도 1의 구성을 포함할 수 있으며, 추가로 영상처리부(120), 디스플레이부(130), 사용자입력부(140), 저장부(150), 촬상부(160), UI생성부(170)를 포함할 수 있다.
영상처리부(120)가 수행하는 영상처리 프로세스의 종류는 한정되지 않으며, 예를 들면 소정 신호를 각 특성별 신호로 분배하는 디멀티플렉싱(de-multiplexing), 영상신호의 영상 포맷에 대응하는 디코딩(decoding), 인터레이스(interlace) 방식의 영상신호를 프로그레시브(progressive) 방식으로 변환하는 디인터레이싱(de-interlacing), 영상 화질 개선을 위한 노이즈 감소(noise reduction), 디테일 강화(detail enhancement), 프레임 리프레시 레이트(frame refresh rate) 변환 등을 포함할 수 있으며, 인코딩된 소스영상의 영상 포맷에 대응하여 소스 영상을 디코딩하는 디코더(미도시) 및 디코딩된 소스영상을 프레임단위로 저장하는 프레임버퍼(미도시)를 포함할 수 있다.
영상처리부(120)는 이러한 여러 기능을 통합시킨 SOC(system-on-chip), 또는 이러한 각 프로세스를 독자적으로 수행할 수 있는 개별적인 구성들이 인쇄회로기판 상에 장착됨으로써 영상처리보드(미도시)로 구현되어 평가기기(10)에 내장될 수 있다.
영상처리부(120)는 통신부(110)로부터 수신되는 영상신호를 포함하는 방송신호 및 영상공급원(미도시)으로부터 제공받은 영상신호를 포함하는 소스영상에 대해 기 설정된 다양한 영상처리 프로세스를 수행한다. 영상처리부(120)는 이러한 프로세스가 수행된 영상신호를 디스플레이부(130)에 출력함으로써, 디스플레이부(130)에 처리된 소스영상이 표시될 수 있다.
디스플레이부(130)는 영상처리부(120)로부터 출력되는 영상신호에 기초하여 영상을 표시할 수 있다. 디스플레이부(130)의 구현 방식은 한정되지 않는 바, 액정(liquid crystal), 플라즈마(plasma), 발광 다이오드(light-emitting diode), 유기발광 다이오드(organic light-emitting diode), 면전도 전자총(surface-conduction electron-emitter), 탄소 나노 튜브(carbon nano-tube), 나노 크리스탈(nano-crystal) 등의 다양한 디스플레이 방식으로 구현될 수 있다.
디스플레이부(130)는 그 구현 방식에 따라서 부가적인 구성을 추가적으로 포함할 수 있다. 예를 들면, 디스플레이부(130)가 액정 방식인 경우, 디스플레이 액정 디스플레이 패널(미도시)과, 이에 광을 공급하는 백라이트유닛(미도시)과, 패널(미도시)을 구동시키는 패널구동기판(미도시)을 포함할 수 있다.
디스플레이부(130)는 영상처리부(120)에 의해 처리된 영상신호에 기초하여 영상을 표시한다. 디스플레이부(130)가 영상을 표시하는 방식에는 제한이 없으나, LCD, PDP, OLED 등의 방식을 포함한다. 이 경우, 디스플레이부(130)는 LCD패널, PDP패널, OLED패널 등을 포함할 수 있다.
디스플레이부(130)는 영상 및 색보정 과정을 표시할 수 있다. 디스플레이부(130)는 영상이 표시되는 디스플레이패널과 입력되는 영상신호를 처리하여 디스플레이패널에 영상이 표시되게 하는 패널구동부를 포함할 수 있으며, 자세한 구현 방식에 있어 한정되지 않는다. 인터페이스를 통해 외부의 입력소스로부터 수신된 영상신호는 디코딩(decoding), 디인터레이싱(deinterlacing), 스케일링(scaling) 등의 영상 처리 과정을 거쳐 디스플레이부(130)에 표시될 수 있다. 사용자의 명령에 따라, 후술할 제어부가 색보정을 수행하는 경우, 디스플레이부(130)에는 컬러 패치와 색보정 상태 창 등을 포함한 색보정 과정이 표시될 수 있다. 디스플레이부(130)는 애플리케이션의 취약성 평가에 대한 결과정보를 표시할 수 있다.
사용자입력부(140)는 사용자의 조작 및 입력에 따라서 기 설정된 다양한 제어 커맨드 또는 정보를 제어부(100)에 전달할 수 있다. 사용자입력부(140)는 평가기기(10) 외측에 설치된 메뉴 키(menu-key) 또는 입력 패널(panel)이나, 평가기기(10)와 분리 이격된 리모트 컨트롤러(remote controller) 등으로 구현될 수 있다. 또는, 사용자입력부(140)는 디스플레이부(130)와 일체형으로 구현될 수 있는 바, 디스플레이부(130)가 터치스크린(touch-screen)인 경우에 사용자는 디스플레이부(130)에 표시된 입력메뉴(미도시)를 터치함으로써 기 설정된 커맨드를 제어부(100)에 전달할 수 있다.
사용자입력부(140)는 사용자의 모션 및 음성을 수신할 수 있다. 사용자의 모션은 터치입력을 포함할 수 있다. 사용자입력부(140)는 사용자의 모션 및 음성을 직접 수신할 수도 있고, 혹은 사용자의 모션 및 음성에 관한 정보를 외부장치로부터 수신할 수도 있다.
저장부(150)는 평가기기(10)에 전원이 차단되더라도 데이터들이 남아있어야 하며, 사용자의 변동 사항을 반영할 수 있도록 쓰기 가능한 비휘발성 메모리(Writable ROM)로 마련되는 것이 바람직하다. 즉, 저장부(150)는 플래쉬 메모리(Flash Memory) 또는 EPROM 또는 EEPROM 중 어느 하나로 마련될 수 있다. 저장부(150)는 산출된 상기 배타적 정보에의 접근 정도 및 취약성정도를 저장할 수 있다.
촬상부(160)는 카메라로 마련되어 외부를 촬상하여 제어부(100)의 제어에 의해 저장부(150)에 저장할 수 있다.
UI생성부(170)는 실행되는 응용프로그램을 동작하기 위한 UI를 생성할 수 있다. 생성되는 UI는 아이콘, 텍스트 등의 형태로 제공되는 복수의 서브 UI를 포함하며, 사용자가 평가기기(10)를 통해 특정 서브UI를 선택하면 선택된 서브UI에 대응하여 응용프로그램이 동작될 수 있다. 즉, 각각의 서브UI는 평가기기(10)에서 실행 중인 응용프로그램을 동작할 수 있는 복수의 기능 또는 이벤트 단위로 생성될 수 있다.
UI생성부(170)는 디스플레이부(130)에 표시되는 UI를 생성하고 제어하는 소프트웨어 또는 하드웨어 적 기능을 의미하는 것으로, 제어부(100)에 의해 그 기능이 수행될 수 있을 것이다. 다시 말하면, UI생성부(170)가 별도의 칩셋으로 구성되거나, 별도의 마이크로프로세서에 의해 구현될 수도 있다.
API의 특성정보는 API의 패키지, 클래스, 명칭, 파라미터의 형태, 리턴값, 설명 중 적어도 하나를 포함할 수 있다.
배타적 정보에의 접근 정도가 결정된 API는 개인 및 단체 중 적어도 하나의 정보 및 권리 중 적어도 하나를 침해할 가능성이 있는 API를 포함할 수 있다.
제어부(100)는 네트워크로부터 애플리케이션에 사용되는 적어도 하나의 API에 대응하는 특성정보를 획득하도록 통신부(110)를 제어할 수 있다. 제어부(100)는 네트워크를 무작위로 검색하여 애플리케이션에 사용되는 적어도 하나의 API에 대응하는 특성정보를 획득하여 계속적으로 업데이트를 할 수 있다.
제어부(100)는 API의 특성정보 중 사용되는 적어도 하나의 API의 명칭에 포함되어 있는 단어에 대한 확률을 이용하여 배타적 정보에의 접근 정도를 산출할 수 있다.
제어부(100)는 API의 특성정보 중 상기 배타적 정보에의 접근 정도가 결정된 API의 명칭에 대한 확률을 이용하여 애플리케이션의 보안 취약성을 평가한 취약성정도를 산출할 수 있다.
제어부(100)는 배타적 정보에의 접근 정도가 결정된 API 및 애플리케이션의 보안 취약성이 평가된 API 중 적어도 하나에 기초하여 애플리케이션의 취약성 평가에 대한 결과정보를 제공하도록 디스플레이부(130)를 제어할 수 있다.
제어부(100)는 악성행위를 하는 애플리케이션 및 정상행위를 하는 애플리케이션 중 적어도 하나에서 사용되는 적어도 하나의 API에 대한 배타적 정보에의 접근 정도 및 해당 애플리케이션의 보안 취약성을 평가한 취약성정도를 산출할 수 있다.
제어부(100)는 평가 대상인 애플리케이션에서 사용되는 적어도 하나의 API에 대한 배타적 정보에의 접근 정도가 산출되어 저장부(150)에 저장된 악성행위를 하는 애플리케이션 및 정상행위를 하는 애플리케이션 중에서 사용되는 적어도 하나의 API에 대한 배타적 정보에의 접근 정도 중 어느 값에 가까운지를 판단할 수 있다.
제어부(100)는 평가 대상인 애플리케이션의 보안 취약성을 평가한 취약성정도가 산출되어 저장부(150에 저장된 산출된 악성행위를 하는 애플리케이션 및 정상행위를 하는 애플리케이션 중에서 보안 취약성을 평가한 취약성정도 중 어느 값에 가까운지를 판단할 수 있다.
도3 은 본 발명에 따른 평가기기(10)의 애플리케이션의 보안 취약성 평가방법을 나타내는 제어흐름도이다.
평가 대상인 애플리케이션에 사용되는 적어도 하나의 API (APPLICATION PROGRAMING INTERFACE)를 결정한다(S11).
결정된API의 특성정보에 기초하여 API 에 대한 배타적 정보에의 접근 정도를 결정한다(S12).
결정된API의 배타적 정보에의 접근 정도에 기초하여 애플리케이션의 보안 취약성을 평가한다(S13).
도 4 는 본 발명의 일 실시 예에 따른 평가기기(10)의 애플리케이션의 보안 취약성 평가방법을 나타내는 제어흐름도이다.
네트워크로부터 사용되는 적어도 하나의 API에 대응하는 특성정보를 획득한다(S21). 접근 가능한 복수의 주소에 공개되어 있는 API를 지속적으로 수집하여 저장할 수 있고 업데이트할 수 있다. 공개되어 있지 않는 API는 수신할 수도 있다.
악성행위를 하는 애플리케이션 및 정상행위를 하는 애플리케이션 중 적어도 하나에서 사용되는 적어도 하나의 API에 대한 배타적 정보에의 접근 정도 및 해당 애플리케이션의 보안 취약성을 평가한 취약성정도를 산출한다(S22). 악성행위를 하는 애플리케이션 및 정상행위를 하는 애플리케이션 중 적어도 하나에서 사용되는 적어도 하나의 API의 명칭 및 명칭에 포함되어 있는 단어에 대한 확률을 이용하여 배타적 정보에의 접근 정도 및 해당 애플리케이션의 보안 취약성을 평가한 취약성정도를 산출한다.
평가 대상인 애플리케이션을 수신하면, 평가 대상인 애플리케이션에 사용되는 적어도 하나의 API (APPLICATION PROGRAMING INTERFACE)를 결정한다(S23).
API의 특성정보 중 사용되는 적어도 하나의 API의 명칭에 포함되어 있는 단어에 대한 확률을 이용하여 배타적 정보에의 접근 정도를 산출한다(S24).
평가 대상인 애플리케이션에서 사용되는 적어도 하나의 API에 대한 배타적 정보에의 접근 정도가 산출된 악성행위를 하는 애플리케이션 및 정상행위를 하는 애플리케이션 중에서 사용되는 적어도 하나의 API에 대한 배타적 정보에의 접근 정도 중 어느 값에 가까운지를 판단한다(S25).
API의 특성정보 중 배타적 정보에의 접근 정도가 결정된 API의 명칭에 대한 확률을 이용하여 애플리케이션의 보안 취약성을 평가한 취약성정도를 산출한다(S26).
평가 대상인 애플리케이션의 보안 취약성을 평가한 취약성정도가 산출된 악성행위를 하는 애플리케이션 및 정상행위를 하는 애플리케이션 중에서 보안 취약성을 평가한 취약성정도 중 어느 값에 가까운지를 판단한다(S27).
배타적 정보에의 접근 정도가 결정된 API 및 애플리케이션의 보안 취약성이 평가된 API 중 적어도 하나에 기초하여 애플리케이션의 보안 취약성 평가에 대한 결과정보를 제공한다(S28).
도 5는 본 발명의 일 실시 예에 따른 평가기기(10)를 나타내는 개략도이다.
도 5의 평가기기(10)는 보안적 취약성의 검증을 원하는 모바일 애플리케이션을 검증 및 평가하여 생성된 데이터를 이용하여 애플리케이션 취약성 평가 수치를 제공할 수 있다. 도 5의 평가기기(10)는 API학습기(200), API검증기(210), 데이터베이스(230) 및 실시간 API정보수집기(220)를 포함할 수 있다.
데이터베이스(230)는 프레임워크가 제공하는 API 특성정보를 기반으로 한 API 데이터베이스와 API 가 배타적 정보에 접근 가능한지 아닌지에 대해 저장하고 있는 Sensitive API 데이터베이스와, 악성행위의 API Dataset을 저장하고 있는 API Dataset Database로 구성할 수 있다. 데이터베이스(230)는 도 2의 저장부(150)에 대응할 수 있다.
실시간 API정보수집기(220)는 모바일 플랫폼 등의 참조 가능한 웹 페이지로부터 API 특성 정보를 획득할 수 있다. 획득한 API 특성 정보를 이용하여 데이터 구조를 생성하고 API 데이터베이스를 구성할 수 있다. 실시간 API정보수집기(220)는 도 2의 통신부(110)와 제어부(100)에 대응할 수 있다.
API학습기(200)는 학습 대상인 애플리케이션을 기반으로 API를 추출하여 API 특성정보와 Dataset을 이용하여 애플리케이션의 보안 취약성 평가방법으로 학습할 수 있다. 학습 후 Sensitive API 와 API Dataset 데이터베이스를 생성할 수 있다. API학습기(200)는 제어부(100)에 대응할 수 있다.
API검증기(210)는 검증 대상의 애플리케이션을 수신하고 Sensitive API 데이터베이스와 API Dataset의 데이터 베이스를 이용하여 수신된 애플리케이션을 검증할 수 있다. API검증기(210)는 제어부(100)에 대응할 수 있다.
도 6은 본 발명의 다른 실시 예에 따른 평가기기(10)를 구체적으로 나타내는 개략구조도이다.
도 6에서는 도 5의 구성을 자세하게 나타내고 있다.
데이터베이스(230)는 API데이터베이스(232), Sensitive API 데이터베이스(234) 및 API Dataset(236)를 포함할 수 있다.
API데이터베이스(232)는 프레임워크에서 제공하는 API에 대한 정보에 대한 내용을 제어부(100)의 제어에 의해 수집하고 데이터 베이스를 구성할 수 있다. API데이터베이스(232)에는 API 각각이 속하는 패키지명, 클래스명, API 메소드명, 파라미터, 리턴값, 해당 API의 디스크립션과 같은 API의 특성 정보를 가지고 있을 수 있다.
Sensitive API 데이터베이스(234)는 API 특성 분류 모듈(204)로부터 머신러닝 알고리즘(애플리케이션의 보안 취약성 평가방법)을 통해 학습된 배타적 정보에 접근 가능한 API들의 데이터베이스이다. 학습 후 데이터를 저장하고 프레임워크 상에서 제공하고 있는 API 각각이 배타적 정보에 접근 가능한지 아닌지에 대한 정보를 저장할 수 있다.
API Dataset(236)는 API Dataset 분류 모듈(206)로부터 Sensitive API의 학습 후 데이터를 저장하고 있는 데이터베이스일 수 있다.
실시간 API정보수집기(220)는 웹파싱모듈(222), 데이터 구조 생성모듈(224) 및 데이터 관리모듈(226)을 포함할 수 있다.
웹파싱모듈(222)은 참조사이트로부터 API 특성정보의 데이터를 실시간으로 획득할 수 있다. 참조사이트는 API 특성정보로 구성되어 있을 수 있으며 웹파싱모듈(222)은 HTML, XML등의 태그로 구성되어 있을 수 있는 웹 데이터를 파싱하여 필요한 API 특성정보만을 획득할 수 있다.
데이터 구조 생성모듈(224)은 웹파싱모듈(222)에서 생성된 API 특성정보를 이용하여 데이터 구조를 생성할 수 있다.
데이터 관리모듈(226)은 데이터 구조 생성모듈(224)에서 생성된 데이터 구조를 이용하여 API데이터베이스(232)를 생성할 수 있다.
API학습기(200)는 애플리케이션 입력모듈(202), API 특성 분류 모듈(204), API Dataset 분류 모듈(206) 및 데이터 관리 모듈(208)를 포함할 수 있다.
애플리케이션 입력모듈(202)은 학습대상으로 선정된 애플리케이션을 수신한다. 학습대상으로 선정된 애플리케이션은 악성행위를 하는 애플리케이션과 정상적으로 일반 작업을 수행하는 애플리케이션이다. 애플리케이션 입력모듈(202)은 상기 두 애플리케이션(악성행위, 일반행위 애플리케이션)을 수신하여 각각의 애플리케이션에서 사용하는 API를 추출할 수 있다. 추출 후 학습을 위한 데이터 구조를 생성할 수 있다.
API 특성 분류 모듈(204)은 상기 애플리케이션 입력모듈(202)에서 생성한 데이터 구조를 기반으로 배타적 정보에의 접근 가능한 API 의 여부를 머신러닝 알고리즘을 이용해 학습할 수 있다. 머신러닝 알고리즘을 이용한 학습 시 API 데이터베이스(232)의 정보를 활용할 수 있는데 API 데이터베이스(232)의 패키지, 클래스, API 이름, 디스크립션과 같은 API 특성을 이용할 수 있다.
API Dataset 분류 모듈(206)은 애플리케이션 입력 모듈(202)에서 생성된 데이터 구조와 Sensitive API 데이터베이스(234)를 이용하여 머신러닝 알고리즘을 통해 Dataset을 학습한다. Dataset 분류 시 학습대상으로 선정된 애플리케이션이 사용하고 있는 배타적 정보에의 접근 가능한 API중 어떤 API를 사용하고 있는 지를 학습 소스로 사용하고 학습 후 데이터를 생성할 수 있다.
데이터 관리 모듈(208)은 데이터베이스를 생성하고 데이터베이스 내용을 조회하는 등의 데이터 베이스를 관리하는 역할을 할 수 있다. API 특성 분류모듈(204)과 API Dataset 분류모듈(206)로부터 학습된 데이터를 기반으로 데이터베이스를 생성할 수 있다. 다른 모듈의 요청에 따라 특정 데이터베이스를 조회할 수도 있다. API 검증기(210)와 API 학습기(200) 사이의 중간자 역할을 할 수 있다.
API검증기(210)는 애플리케이션 입력모듈(211), API 특성 검증 모듈(213), API Dataset 검증 모듈(214), 데이터 관리 모듈(215) 및 결과 출력 모듈(212)을 포함할 수 있다.
애플리케이션 입력모듈(211)은 검증대상의 애플리케이션을 수신하여 사용하고 있는 API를 추출하여 데이터 구조를 생성할 수 있다.
API 특성 검증 모듈(213)은 API 특성 분류 모듈(204)을 통해 학습된 데이터가 저장되어있는 Sensitive API 데이터베이스(234)에서 데이터를 조회해 검증 대상의 애플리케이션이 사용하고 있는 배타적 정보에 접근 가능한 API를 검증한다. 검증 완료 후 배타적 정보에 접근 가능한 API 인지의 여부와 해당 API의 특성정보(패키지명, 클래스명, 메소드명, 디스크립션) 등의 결과 데이터를 생성할 수 있다.
API Dataset 검증 모듈(214)은 API Dataset 분류 모듈(206)을 통해 학습된 데이터가 저장되어 있는 API Dataset 데이터베이스(236)에서 데이터를 조회해 검증대상의 애플리케이션이 사용하고 있는 Dataset을 검증할 수 있다. 여기서 Dataset은 악성행위를 할 수 있는 API 의 그룹일 수 있다. 검증완료 후 배타적 정보에 접근 가능한 Dataset 인지의 결과 데이터를 생성할 수 있다.
데이터 관리 모듈(215)은 API 검증기(210) 상에서 데이터베이스와 통신 시 총괄하는 모듈이다. API 특성검증모듈(213), API Dataset 검증모듈(214), 결과출력모듈(212)에서 데이터베이스의 데이터를 조회 할 수 있도록 할 수 있다. API 학습기(200)와 API 검증기(210)의 중간 역할을 할 수 있다.
결과 출력 모듈(212)은 API 특성 검증모듈(213)과, API Dataset 검증모듈(214)에서 생성된 결과데이터를 기반으로 정량적 취약성 측정치의 결과를 출력할 수 있다. 또한 검증대상 애플리케이션의 배타적 정보에 접근 가능하다고 검증된 API의 디스크립션 정보와 Dataset을 표시할 수 있다. 결과 출력 모듈(212)은 도 2의 디스플레이부(130)에 대응할 수 있다.
도 7은 본 발명의 다른 실시 예에 따른 평가기기(10)의 평가방법에 대하여 전체적인 순서흐름을 나타내는 제어흐름도이다.
레퍼런스 사이트로부터 API 특성정보의 데이터를 실시간으로 획득한다(S31).
HTML, XML등의 태그로 구성되어 있는 웹 데이터를 파싱하여 필요한 API 특성정보만을 획득한다(S32).
웹 파싱 모듈(222)에서 생성된 API 특성정보를 이용하여 데이터 구조를 생성한다(S33).
데이터 구조 생성 모듈(224)에서 생성된 데이터 구조를 이용하여 API 데이터베이스(232)를 생성한다(S34).
학습대상인 애플리케이션을 수신한다(S35). 학습대상으로 선정된 애플리케이션은 악성 행위를 하는 애플리케이션과 일반 작업을 수행하는 애플리케이션이다.
학습대상인 애플리케이션 상에서 사용하고 있는 API의 명칭 및 특성정보를 추출한다(S36).
API 데이터베이스(232)에 저장하고 있는 API 정보를 이용하여 학습대상의 애플리케이션에서 추출한 API에 대응하는 학습 데이터를 생성하고 머신러닝 알고리즘을 통해 학습을 수행하며 API의 특성을 분류한다(S37).
학습을 통해 생성된 Sensitive API 데이터베이스(234)를 생성한다(S38).
Sensitive API 데이터베이스(234)에 있는 데이터와 학습대상의 애플리케이션 상에서 추출된 API를 이용하여 머신러닝 알고리즘을 통해 학습 후 API Dataset(236)를 생성한다(S39).
학습된 데이터로 API Dataset(236)의 데이터베이스를 구성한다(S40).
검증 대상 애플리케이션을 수신한다(S41).
검증 대상 애플리케이션으로부터 사용하고 있는 AP정보를 추출한다(S42).
검증 대상 애플리케이션이 사용하고 있는 배타적 정보에 접근 가능한 API를 검증한다(S43).
검증 대상 애플리케이션이 사용하고 있는 악성행위의 Dataset을 검증한다(S44).
API 특성 기반 검증과 API Dataset 기반 검증 상에서 생성된 결과데이터를 기반으로 사용된 배타적 정보에 접근 가능한 API 의 API 특성정보와 배타적 정보에 접근 가능한 API Dataset(236)의 여부를 제공하고 정량적 취약성 측정치의 결과를 출력한다(S45).
도 8과 9는 본 발명의 다른 실시 예에 따른 평가기기(10)에서 나이브 베이즈 분류 (Naive Bayes Classification) 공식을 이용하여 API에 대한 조건부 확률을 나타내는 예시표이다.
나이브 베이즈 분류 (Naive Bayes Classification)는 나이브 베이즈 정리를 근거로 각 속성들의 확률을 파라미터로 하여 부류를 결정하는 기법이다. 나이브 베이즈 분류에서는 모든 속성 값은 서로 독립임을 가정하며 파라미터의 추정은 최대 우도 방법(Maximum Likelihood Estimation)을 사용한다.
[표 1]은 나이브 베이즈 분류의 공식을 나타내고 있으며 (1)은 나이브 베이즈 정리에 의해 특정 n개의 속성(x)이 있을 때 어떤 부류(c)일 확률을 공식으로 나타낸 것이다. (2)에서는 (1)의 공식의 각각이 무엇을 의미하는지 나타내고 있다. 사후 확률(Posterior), 관찰 값(Evidence), 우도(Likelihood), 사전 확률(Prior)을 나타내고 있다. (3)은 부류의 결과 선택을 나타낸 공식이며 나이브 베이즈 분류는 최대 우도 방법을 사용한다고 하였으므로 우도(Likelihood)값이 최대가 되는 부류를 결과 값으로 선택한다.
도 8은 API 학습기(200)의 API 특성 분류 모듈(204)이 머신러닝 알고리즘을 이용하기 위하여 각 부류 일 때 (배타적 정보에 접근 가능한 부류 혹은 일반 부류)일 때의 조건부 확률을 구한 것이다. 여기서, 조건부확률을 구하는 속성(x) 값은 API 특성정보 (API가 속한 패키지, 클래스, API의 이름, 파라미터의 형태, 리턴 값, API의 설명 등)값을 이용할 수 있다. 이후 해당 조건부 확률을 이용하여 API 데이터베이스 내의 API 들을 분류할 수 있다. 부류가 분류된 API를 이용하여 Sensitive API 데이터베이스(234)를 생성한다.
이를 테면 다음과 같이 조건부 확률을 구할 수 있다.
예제) API 데이터 베이스 내의 getLine1Number API 학습
1) API 특성정보 로딩 : getLine1Number API의 부류를 결정하기 위해 API 데이터 베이스로부터 해당 API의 특성정보를 로딩한다.
API 이름 | getLine1Number |
API가 속한 패키지 | android.Telephony |
API가 속한 클래스 | TelephonyManager |
API의 디스크립션 | Returns the phone number string for line 1 |
… | … |
2) 전처리 : 특성정보는 위와 같으며 디스크립션의 경우 판단하는데 필요 없는 관사나 전치사 숫자등과 같은 부분(the,for,1)을 제외시킨다. API 이름과 패키지 이름 같은 경우 다수의 단어로 구성되어있을 경우 각 단어로 분리한다. 분리 후 디스크립션과 마찬가지로 필요 없는 부분을 제외시킨다. (getLine1Number => get + line + number)
3) 벡터 구성 : 이후 특성 정보 등을 파싱하고 중복된 항목이 없도록 벡터를 구성한다.
{x1, x2, x3,…,x9} = {get, line, number, android, telephony, manager, returns, phone, string}
4) 검증 : 해당 벡터를 머신러닝 알고리즘(여기서는 나이브 베이즈 분류를 사용)을 이용한다.
(1) 해당 API가 배타적 정보에 접근 가능한 API에 속할 확률 (P(Sensitive API) = 0.5로 가정)
(2) 해당 API가 일반 API에 속할 확률(P(Normal API) = 0.5로 가정)
(1)의 가정에서 getLine1Number API 는 Sensitive API 일 확률이 0.000395136으로 Normal API 일 확률 0.00000504 일 확률보다 크므로 최대 우도 방법에 의하여 Sensitive API로 판단.
5) Sensitive API 데이터베이스(234)에 입력 : 판단된 부류정보를 이용해 Sensitive API 데이터베이스(234)에 입력한다.
6) Sensitive API 검증 : 입력받은 API 가 배타적 정보에 접근 가능한 API 인지 Sensitive API 데이터베이스(234)에 있는 내용을 이용해 판단한다.
도 9는 API 학습기(200)의 API Dataset 분류 모듈(206)이 머신러닝 알고리즘을 이용하기 위하여 각 부류 일 때 (배타적 정보에 접근 가능한 Dataset 부류 혹은 일반 Dataset 부류)일 때의 조건부 확률을 구한 것이다. 이때 조건부확률을 구하는 속성(x) 값은 앞서 API 특성분류 과정을 통해 획득한 Sensitive API데이터베이스(234)로 구성한다. 이후 해당 조건부 확률을 이용하여 API Dataset 데이터 베이스(236)를 구성한다.
API Dataset 데이터베이스(236)를 이용하여 API 검증기(210)의 API Dataset 검증모듈(214)은 머신러닝 알고리즘으로 입력받은 애플리케이션인지 배타적 정보에 접근 가능한 Dataset 을 포함하고 있는지 아닌지에 대한 판단을 한다.
이를 테면 다음과 같이 조건부 확률을 구할 수 있다.
예제) {getLine1Number, sendTextMessage, getDeviceID, moveToNext} Dataset 판단
1) 애플리케이션 내 배타적 정보에 접근 가능한 API 추출 : 애플리케이션에서 사용하는 API 중 Sensitive API 데이터베이스(234)에 있는 배타적 정보에 접근 가능한 API 만을 추출 한다.
2) 벡터 구성 : 그 후 중복된 항목이 없도록 벡터를 구성한다.
{x1, x2....} = {getLine1Number, sendTextMessage, getDeviceID, movetoNext}
3) 검증 : 해당 벡터를 머신러닝 알고리즘(여기서는 나이브 베이즈 분류를 사용)을 이용한다.
(1) 해당 Dataset이 Sensitive Dataset에 속할 확률 (P(Sensitive Dataset) = 0.5로 가정)
(2) 해당 API가 Normal API에 속할 확률(P(Normal API) = 0.5로 가정)
(1)의 가정에서 {getLine1Number, sendTextMessage, getDeviceID, moveToNext} 는 Sensitive Dataset 일 확률이 0.0576으로 Normal Dataset 일 확률 0.0036 일 확률보다 큼으로 최대 우도 방법에 의하여 Sensitive Dataset로 판단한다.
다음은 정량적 수치 결과를 나타내는 것이다.
API 검증기(210)의 결과 출력 모듈(212)에서 앞서 검증된 값을 기반으로 정량적 수치 결과를 제공한다. Sensitive API와 Sensitive API Dataset의 부류 판단을 통한 사후 확률(Posterior) 값을 이용한다. 예를 들어 어떠한 애플리케이션 내에 {getLine1Number, sendTextMessage, getDeviceID,…, moveToNext}의 Dataset을 사용했다고 할 때 다음과 같은 사후 확률이 주어졌다고 가정하자.
이때 평가대상의 애플리케이션이 소유하고 있는 Sensitive API 사후확률과 Sensitive Dataset의 사후확률을 파라미터로 하는 어떤 특정한 연산에 의해 정량적 수치(Evaluation)를 제공할 수 있다.
애플리케이션은 사용자가 작성한 방법과 API의 흐름으로 구성된다고 할 수 있는데 사용자가 작성한 방법과 API를 사용하는 방법에 따라 특정 애플리케이션의 특성이나 기능이 정의될 수 있다. 이중 실제적인 기능을 나타내는 것은 API 이며 사용자가 작성한 방법 역시 최종적으로 API를 호출하며 기능적 특징을 나타낸다.
상기의 평가기기(10)로 인하여, 프레임워크상에서 제공하는 API의 실시간으로 추출된 특성 정보를 이용하여 악성 애플리케이션에서 사용하는 API를 분석하고, 애플리케이션의 취약성을 머신러닝 알고리즘을 통해 정량적으로 평가할 수 있다. 애플리케이션을 검증하고 결과적으로 도출된 정량적 수치를 이용하여 현재 사용되고 있는 분석 대상의 애플리케이션을 검증할 수 있고 어떤 부분이 취약한지, 어떤 악성 행위를 할 수 있는지에 대한 정보의 획득이 가능하다. 또한, 실시간으로 추출된 특성정보를 이용하므로 최신 경향의 API 특성정보를 이용할 수 있으므로 API 구성변동이나 API 정보 변경에 쉽게 대응하여 최신버전의 모바일 플랫폼이더라도 항상 유효하게 해당 기법을 적용 할 수 있다.
지금까지 본 발명의 실시 예가 도시되고 설명되었지만, 본 발명이 속하는 기술분야의 통상의 지식을 가진 당업자라면 본 발명의 원칙이나 정신에서 벗어나지 않으면서 실시 예를 변형할 수 있을 것이다. 따라서, 발명의 범위는 지금까지 설명된 실시 예로 정해지는 것이 아니라 첨부된 청구항과 그 균등물에 의해 정해질 것이다.
10 : 평가기기 100 : 제어부
110 : 통신부 120 : 영상처리부
130 : 디스플레이부 140 : 사용자입력부
150 : 저장부 160 : 촬상부
170 : UI생성부 200 : API학습기
210 : API검증기 220 : 실시간API정보수집기
230 : 데이터베이스
110 : 통신부 120 : 영상처리부
130 : 디스플레이부 140 : 사용자입력부
150 : 저장부 160 : 촬상부
170 : UI생성부 200 : API학습기
210 : API검증기 220 : 실시간API정보수집기
230 : 데이터베이스
Claims (20)
- 애플리케이션의 보안 취약성 평가방법에 있어서,
보안이 취약하다고 기 평가된 하나 이상의 제1애플리케이션이 사용하는 적어도 하나의 API(application programming interface)를 기반으로 한 학습을 통해 생성된 상기 적어도 하나의 API의 특성에 관한 데이터베이스를 획득하는 단계와;
평가 대상인 제2애플리케이션에 사용되는 적어도 하나의 API의 특성정보를 식별하는 단계와;
상기 데이터베이스에서의 상기 특성에 대한 상기 식별된 API의 특성정보의 관련 정도에 기초하여 상기 제2애플리케이션의 보안 취약성을 평가하는 단계를 포함하고,
상기 제2애플리케이션의 보안 취약성을 평가하는 단계는,
상기 식별된 API의 특성정보 중 상기 식별된 API의 명칭에 포함되어 있는 단어에 대한 확률에 기초하여 상기 관련 정도를 식별하는 애플리케이션의 보안 취약성 평가방법. - 삭제
- 삭제
- 삭제
- 제1항에 있어서,
상기 제2애플리케이션의 보안 취약성이 평가된 API에 기초하여 상기 제2애플리케이션의 취약성 평가에 대한 결과정보를 제공하는 단계를 더 포함하는 애플리케이션의 보안 취약성 평가방법. - 제1항에 있어서,
악성행위를 하는 애플리케이션 및 정상행위를 하는 애플리케이션 각각에서 사용되는 적어도 하나의 API에 기초하여, 상기 제2애플리케이션의 보안 취약성을 평가한 취약성정도를 산출하는 단계를 더 포함하는 애플리케이션의 보안 취약성 평가방법. - 삭제
- 제6항에 있어서,
상기 제2애플리케이션의 보안 취약성을 평가하는 단계는,
상기 제2애플리케이션의 보안 취약성을 평가한 상기 취약성정도가, 상기 산출된 악성행위를 하는 애플리케이션에서의 취약성정도 및 정상행위를 하는 애플리케이션에서의 취약성정도 중 어느 값에 가까운지를 판단하는 단계를 포함하는 애플리케이션의 보안 취약성 평가방법. - 제1항에 있어서,
상기 식별된 API의 특성정보는 상기 식별된 API의 패키지, 클래스, 명칭, 파라미터의 형태, 리턴값, 설명 중 적어도 하나를 포함하는 애플리케이션의 보안 취약성 평가방법. - 삭제
- 애플리케이션의 보안 취약성 평가기기에 있어서,
애플리케이션에 대한 데이터를 수신할 수 있는 통신부와;
보안이 취약하다고 기 평가된 하나 이상의 제1애플리케이션이 사용하는 적어도 하나의 API(application programming interface)를 기반으로 한 학습을 통해 생성된 상기 적어도 하나의 API의 특성에 관한 데이터베이스를 획득하고,
평가 대상인 제2애플리케이션에 사용되는 적어도 하나의 API의 특성정보를 식별하고,
상기 데이터베이스에서의 상기 특성에 대한 상기 식별된 API의 특성정보의 관련 정도에 기초하여 상기 제2애플리케이션의 보안 취약성을 평가하는 제어부를 포함하고,
상기 제어부는, 상기 식별된 API의 특성정보 중 상기 식별된 API의 명칭에 포함되어 있는 단어에 대한 확률에 기초하여 상기 관련 정도를 식별하는 애플리케이션의 보안 취약성 평가기기. - 삭제
- 삭제
- 삭제
- 제11항에 있어서,
디스플레이부를 더 포함하고,
상기 제어부는, 상기 제2애플리케이션의 보안 취약성이 평가된 API에 기초하여 상기 제2애플리케이션의 취약성 평가에 대한 결과정보를 제공하도록 상기 디스플레이부를 제어하는 애플리케이션의 보안 취약성 평가기기. - 제11항에 있어서,
상기 제어부는, 악성행위를 하는 애플리케이션 및 정상행위를 하는 애플리케이션 각각에서 사용되는 적어도 하나의 API에 기초하여, 상기 제2애플리케이션의 보안 취약성을 평가한 취약성정도를 산출하는 애플리케이션의 보안 취약성 평가기기. - 삭제
- 제16항에 있어서,
저장부를 더 포함하고,
상기 제어부는, 상기 제2애플리케이션의 보안 취약성을 평가한 상기 취약성정도가, 상기 저장부에 저장된 상기 산출된 악성행위를 하는 애플리케이션에서의 취약성정도 및 정상행위를 하는 애플리케이션에서의 취약성정도 중 어느 값에 가까운지를 판단하는 애플리케이션의 보안 취약성 평가기기. - 제11항에 있어서,
상기 식별된 API의 특성정보는 상기 식별된 API의 패키지, 클래스, 명칭, 파라미터의 형태, 리턴값, 설명 중 적어도 하나를 포함하는 애플리케이션의 보안 취약성 평가기기. - 삭제
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160006571A KR102443766B1 (ko) | 2016-01-19 | 2016-01-19 | 애플리케이션의 보안 취약성 평가기기 및 그 평가방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160006571A KR102443766B1 (ko) | 2016-01-19 | 2016-01-19 | 애플리케이션의 보안 취약성 평가기기 및 그 평가방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20170086926A KR20170086926A (ko) | 2017-07-27 |
KR102443766B1 true KR102443766B1 (ko) | 2022-09-19 |
Family
ID=59428039
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020160006571A KR102443766B1 (ko) | 2016-01-19 | 2016-01-19 | 애플리케이션의 보안 취약성 평가기기 및 그 평가방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102443766B1 (ko) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102046748B1 (ko) * | 2019-04-25 | 2019-11-19 | 숭실대학교산학협력단 | 트리 부스팅 기반 애플리케이션의 위험도 평가 방법, 이를 수행하기 위한 기록 매체 및 장치 |
US11907405B2 (en) * | 2020-10-14 | 2024-02-20 | International Business Machines Corporation | Secure data storage device access control and sharing |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101461051B1 (ko) * | 2013-06-11 | 2014-11-13 | (주) 에스에스알 | 웹 기능 분석을 통한 악성 코드 탐지방법 및 그 기록매체 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20110128632A (ko) * | 2010-05-24 | 2011-11-30 | 충남대학교산학협력단 | 스마트폰 응용프로그램의 악성행위 탐지 방법 및 장치 |
KR101230271B1 (ko) * | 2010-12-24 | 2013-02-06 | 고려대학교 산학협력단 | 악성 코드 탐지를 위한 시스템 및 방법 |
KR101573871B1 (ko) * | 2014-04-25 | 2015-12-11 | 코드마인드(주) | 애플리케이션의 정보유출 분석장치 및 방법 |
-
2016
- 2016-01-19 KR KR1020160006571A patent/KR102443766B1/ko active IP Right Grant
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101461051B1 (ko) * | 2013-06-11 | 2014-11-13 | (주) 에스에스알 | 웹 기능 분석을 통한 악성 코드 탐지방법 및 그 기록매체 |
Also Published As
Publication number | Publication date |
---|---|
KR20170086926A (ko) | 2017-07-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11122089B2 (en) | Authorization policy optimization method and apparatus, and storage medium | |
US11144274B2 (en) | Methods, systems, and media for providing a remote control interface | |
CN109388532A (zh) | 测试方法、装置、电子设备及计算机可读取存储介质 | |
CN105447204A (zh) | 网址识别方法和装置 | |
CN105204797A (zh) | 屏幕分享方法以及使用该方法的装置 | |
US11238630B2 (en) | Electronic device for generating an image based on a style of another image and control method thereof | |
CN109947650B (zh) | 脚本步骤处理方法、装置和系统 | |
CN111045344A (zh) | 一种家居设备的控制方法及电子设备 | |
CN112822529A (zh) | 电子设备及其控制方法 | |
CN111324408A (zh) | 应用程序的功能模块智能显示方法、装置、设备和介质 | |
CN104661093A (zh) | 用于确定视频教程的更新的方法和系统 | |
US9536273B2 (en) | Simulation method for improving picture quality of image display device and a simulation device therefor | |
KR102443766B1 (ko) | 애플리케이션의 보안 취약성 평가기기 및 그 평가방법 | |
KR20210082401A (ko) | 사용자 이미지 식별 모델 업데이트 방법 및 장치 | |
CN112287234A (zh) | 信息检索方法、装置及存储介质 | |
CN110809036A (zh) | 资源更新方法及装置 | |
KR102155484B1 (ko) | 사용자단말기 및 그 제어방법 | |
CN108306795A (zh) | 一种电子设备控制的方法、装置以及移动终端 | |
KR102537781B1 (ko) | 전자 장치 및 이의 제어 방법 | |
CN116229188A (zh) | 图像处理显示方法、分类模型的生成方法及其设备 | |
KR20210011096A (ko) | 디스플레이장치 및 그 제어방법 | |
CN113672807B (zh) | 推荐方法、装置、介质、装置和计算设备 | |
CN109634500B (zh) | 一种用户资料填写方法、装置、终端设备及存储介质 | |
KR20170103559A (ko) | 전자장치, 어플리케이션 실행 시스템 및 그 제어방법 | |
CN111813741A (zh) | 文件的共享方法及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |