KR20150125249A - 소프트웨어 필터링 장치 및 방법 - Google Patents

소프트웨어 필터링 장치 및 방법 Download PDF

Info

Publication number
KR20150125249A
KR20150125249A KR1020140052288A KR20140052288A KR20150125249A KR 20150125249 A KR20150125249 A KR 20150125249A KR 1020140052288 A KR1020140052288 A KR 1020140052288A KR 20140052288 A KR20140052288 A KR 20140052288A KR 20150125249 A KR20150125249 A KR 20150125249A
Authority
KR
South Korea
Prior art keywords
software
feature information
information
filtering
feature
Prior art date
Application number
KR1020140052288A
Other languages
English (en)
Other versions
KR101654973B1 (ko
Inventor
강성욱
김동진
김예솔
정윤식
조성제
Original Assignee
단국대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 단국대학교 산학협력단 filed Critical 단국대학교 산학협력단
Priority to KR1020140052288A priority Critical patent/KR101654973B1/ko
Publication of KR20150125249A publication Critical patent/KR20150125249A/ko
Application granted granted Critical
Publication of KR101654973B1 publication Critical patent/KR101654973B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

소프트웨어의 특징 정보에 기반하여 불법 소프트웨어를 필터링하는 장치 및 방법이 개시된다. 소프트웨어 필터링 방법은, 대상 소프트웨어의 설치 파일로부터 제1 특징 정보를 추출하는 단계와, 특징 정보 DB에 제1 특징 정보에 상응하는 정보가 존재하는지 판단하는 단계와, 특징 정보 DB에 제1 특징 정보에 상응하는 정보가 존재하는 경우, 대상 소프트웨어를 불법 소프트웨어로 판단하는 단계를 포함한다. 따라서, 설치 파일에 포함된 특징 정보를 활용하여 소프트웨어를 필터링할 수 있기 때문에, 빠른 시간에 다수의 소프트웨어를 식별하여 필터링할 수 있다.

Description

소프트웨어 필터링 장치 및 방법{APPARATUS AND METHOD FOR SOFTWARE FILTERING}
본 발명은 소프트웨어를 필터링하는 기술에 관한 것으로, 더욱 상세하게는 소프트웨어의 특징 정보에 기반하여 불법 소프트웨어를 필터링하는 장치 및 방법에 관한 것이다.
오늘날 인터넷과 통신망의 발전으로 소프트웨어의 배포와 유통은 크게 증가하였고, 최근에는 스마트폰의 열풍으로 많은 사용자들이 어플리케이션 마켓을 통해 손쉽게 소프트웨어를 다운받아 사용할 수 있는 환경이 만들어졌다. 이러한 환경의 변화는 제품 선택의 기준이 하드웨어에서 소프트웨어로 넘어가는 결정적인 계기를 낳았다.
그러나, 인터넷과 같은 통신의 발달로 소프트웨어 불법 복제 및 표절이 급증하여, 소프트웨어 산업 발전에 걸림돌이 되고 있다.
소프트웨어의 불법 복제(piracy)란 특정 소프트웨어를 그대로 복제(copy)하여 유통하거나 사용하는 것을 의미하며, 소프트웨어의 표절/도용(plagiarism/theft)이란 소프트웨어의 전체 코드 또는 일부 코드를 역공학(reverse engineering) 등의 방법으로 도용하여 사용하는 것을 의미한다.
하지만 종래의 소프트웨어 저작권 보호 기술 중의 하나는 개발사에서 특징 정보(워터마크, 라이선스 정보 등)를 삽입하여 배포하는 방식으로서, 개발사마다 저작권보호 적용 방식이 다르고 특정정보를 추출하는 것에 어려움이 있고 또 공격에 의해 쉽게 손상될 수 있다.
한편, 더욱이 인터넷을 통해 (불법)유포되는 대부분의 소프트웨어들은 설치 파일의 행태를 가지고 있으나, 이를 고려하여 소프트웨어를 필터링하는 기술은 미흡한 실정이다.
또한, 소프트웨어의 종류 및 개수가 매우 방대하기 때문에 효율적인 소프트웨어를 필터링을 위해서는 별도의 소프트웨어 특징 정보 DB 검색 기술이 필요한 실정이다.
더 나아가, 저성능의 소프트웨어 필터링 시스템이 무분별하게 개발 및 운영되는 것을 막기 위해서는 소프트웨어 필터링 시스템에 대한 성능평가 기준이 필요한 실정이다.
상기와 같은 문제점을 해결하기 위한 본 발명의 목적은, 웹 하드 등에 업로드되는 불법 소프트웨어를 빠르게 검색하여 차단하는 소프트웨어 필터링 장치를 제공하는데 있다.
상기와 같은 문제점을 해결하기 위한 본 발명의 다른 목적은, 웹 하드 등에 업로드되는 불법 소프트웨어를 빠르게 검색하여 차단하는 소프트웨어 필터링 방법을 제공하는데 있다.
상기 목적을 달성하기 위한 본 발명의 실시예에 따른 소프트웨어 필터링 방법은, 대상 소프트웨어의 설치 파일로부터 제1 특징 정보를 추출하는 단계와, 특징 정보 DB에 제1 특징 정보에 상응하는 정보가 존재하는지 판단하는 단계와, 특징 정보 DB에 제1 특징 정보에 상응하는 정보가 존재하는 경우, 대상 소프트웨어를 불법 소프트웨어로 판단하는 단계를 포함한다.
여기에서, 상기 제1 특징 정보는, 설치 파일에 포함된 헤더 정보, 리소스 정보, 파일 설정 정보 및 아이콘 정보 중 적어도 하나를 포함할 수 있다.
여기에서, 상기 특징 정보 DB에 상기 제1 특징 정보에 상응하는 정보가 존재하지 않는 경우, 대상 소프트웨어에 대한 유포 정보에 기반하여 대상 소프트웨어가 합법 소프트웨어인지 확인하는 단계와, 대상 소프트웨어가 합법 소프트웨어인 것으로 확인된 경우, 대상 소프트웨어의 특징 정보를 이용하여 특징 정보 DB를 업데이트하는 단계를 포함할 수 있다.
여기에서, 상기 대상 소프트웨어가 합법 소프트웨어로 확인되지 않은 경우, 대상 소프트웨어의 실행 파일로부터 제2 특징 정보를 추출하는 단계와, 특징 정보 DB에 제2 특징 정보에 상응하는 정보가 존재하는 경우, 대상 소프트웨어를 불법 소프트웨어로 판단하는 단계를 포함할 수 있다.
여기에서, 상기 제2 특징 정보는, 실행 파일의 헤더에 포함된 정보일 수 있다.
여기에서, 상기 제1 특정 정보 및 상기 제2 특징 정보는, 해쉬 함수(hash function)을 통해 산출되어 해시값(hash value)로 표현될 수 있다.
여기에서, 상기 특징 정보 DB에 상기 제2 특징 정보에 상응하는 정보가 존재하지 않는 경우, 대상 소프트웨어의 실행 파일로부터 제3 특징 정보를 추출하는 단계와, 특징 정보 DB 및 제3 특징 정보에 기반하여 산출된 유사도 정보가 미리 설정된 값 이상인 경우, 대상 소프트웨어를 불법 소프트웨어로 판단하는 단계를 포함할 수 있다.
여기에서, 상기 제3 특징 정보는, 실행 파일에 포함된 문자열 및 실행 코드를 분석하여 추출될 수 있다.
여기에서, 상기 특징 정보 DB 및 상기 제3 특징 정보에 기반하여 산출된 유사도 정보가 미리 설정된 값 이하인 경우, 대상 소프트웨어를 합법 소프트웨어로 판단하는 단계를 더 포함할 수 있다,
여기에서, 소프트웨어 필터링에 대한 성능을 평가하는 단계를 더 포함할 수 있다.
여기에서, 상기 소프트웨어 필터링에 대한 성능을 평가하는 단계는, 필터링에 대한 강인성(robustness), 일관성(consistency), 시스템 사용률(system performance), 특징 정보량(feature size) 및 속도(speed) 중 적어도 하나를 산출하여 성능 평가를 수행할 수 있다.
상기 다른 목적을 달성하기 위한 본 발명의 실시예에 따른 소프트웨어 필터링 장치는, 특징 정보 DB와, 대상 소프트웨어로부터 제1 특징 정보, 제2 특징 정보 및 제3 특징 정보를 단계 별로 추출하는 특징 정보 추출부와, 특징 정보 DB, 제1 특징 정보, 제2 특징 정보 및 제3 특징 정보를 이용하여 단계 별로 대상 소프트웨어가 불법 소프트웨어인지 판단하는 소프트웨어 확인부를 포함한다.
상기와 같은 본 발명에 따른 소프트웨어 필터링 장치 및 방법은, 설치 파일에 포함된 특징 정보를 활용하여 소프트웨어를 필터링할 수 있기 때문에, 빠른 시간에 다수의 소프트웨어를 식별하여 필터링할 수 있다.
또한, 단계 별 필터링을 통하여 불법을 유통되는 소프트웨어를 정확하게 인식하여 차단할 수 있다.
더 나아가, 소프트웨어 필터링에 대한 평가 방법 및 기준을 제공하여 저성능의 SW 필터링 시스템이 무분별하게 개발 및 운영되는 것을 막을 수 있다.
도 1은 본 발명의 실시예에 따른 소프트웨어 필터링 장치가 적용되는 환경을 설명하기 위한 개념도이다.
도 2는 본 발명의 실시예에 따른 소프트웨어 필터링 장치의 동작을 설명하기 위한 개념도이다.
도 3은 본 발명의 실시예에 따른 소프트웨어 필터링 방법을 설명하기 위한 흐름도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명의 실시예에 따른 소프트웨어 필터링 장치가 적용되는 환경을 설명하기 위한 개념도이다.
먼저, 불법 소프트웨어(SW) 유포는 SW 벤더(개발 및 유통사)가 정한 경로 이외의 비정상적인 경로를 통해 SW를 유포하는 것을 의미한다. 불법 유포되는 SW는 SW를 그대로 복제(copy)하거나, 또는 라이선스 없이 사용 가능하도록 역공학(reverse engineering)을 통해 전체 또는 일부 코드가 변조된 경우가 대부분이며, 다른 SW를 표절/도용(plagiarism/theft)한 경우를 포함된다.
본 발명의 실시예에 따르면 SW 필터링을 통하여 이와 같이 불법으로 유포되는 SW를 식별하고, 유포를 차단하는 기술을 제공한다.
도 1을 참조하면, 웹 하드(web hard; 10) 상에는 다수 사용자에 의해서 다종의 SW 들(21, 22, 23)이 업로드될 수 있다. 여기에서, 웹 하드(10)는 다수의 사용자가 소프트웨어 또는 컨텐츠를 업로드할 수 있는 클라우드(cloud) 저장 공간의 일종을 의미하며, 웹 하드라는 명칭에 구애받지 않고, 다양한 온라인 저장 공간들을 포괄하는 개념이다.
또한, 소프트웨어(SW)라 함은 MS Windows, Linux, Android, Java(JRE) 등 모든 시스템 환경에서 실행 가능한 소프트웨어를 의미하며, 설치 파일은 MSI(Microsoft Installer), SFX(Self Extracting Archive), APK(Android Package), JAR(Java Archive) 등 SW의 배포 및 설치를 위한 모든 설치 파일 포맷을 포함할 수 있다.
본 발명의 실시예에 따른 소프트웨어 필터링 장치(100)는 웹 하드(10)에 업로드 되는 다종의 대상 SW 들(21, 22, 23)에 대해서 업로드 단계에서 해당 소프트웨어의 불법 복제 또는 표절 여부를 탐지하기 위해서 적용될 수 있다.
예를 들어, 소프트웨어 필터링 장치(100)는 불법 소프트웨어인 것으로 판단된 대상 소프트웨어에 대한 업로드를 차단할 수 있다.
또한, 본 발명의 실시예에 따른 소프트웨어 필터링 장치(100)는 대상 SW 들(21, 22, 23)의 소스 코드 등과 같은 민감한 정보를 요구하지 않고 대상 SW 들(21, 22, 23)을 구성하는 설치 파일 또는 실행 파일들을 단계적으로 이용하여 소프트웨어에 대한 불법 복제 또는 표절의 탐지를 수행하는 것을 특징으로 한다.
도 2는 본 발명의 실시예에 따른 소프트웨어 필터링 장치의 동작을 설명하기 위한 개념도이다.
도 2를 참조하면, 본 발명의 실시예에 따른 소프트웨어 필터링 장치는(100)는 특징 정보 추출부(110), 특정 정보 DB, 특징 정보 DB 관리부(122), 소프트웨어 확인부(130), 필터링 처리부(140)를 포함한다.
여기서, 필터링 처리부(140)는 웹 하드(10)의 내부에 위치하여 동작할 수 있으나, 이러한 실시예에 한정되는 것을 아니다. 즉, 필터링 처리부(140)는 웹 하드(10) 외부에서 소프트웨어의 업로드를 허용 또는 차단할 수 있으며, 이를 통하여 웹 하드(10) 상에 존재하는 설치 파일 DB(11)에 소프트웨어가 업로드되는 것을 관리할 수 있다.
또한, 특징 정보 검색 서버(120)는 특징 정보 DB(121)와 특정 정보 DB 관리부(122)를 포함하여 구성될 수 있다.
본 발명의 실시예에 따른 소프트웨어 필터링 장치(100)에 의해 수행되는 동작을 설명하면 다음과 같다.
소프트웨어가 웹 하드(10)에 업로드되기 위해서는 필터링 처리부(140)를 거쳐야 하며, 필터링 처리부(140)는 소프트웨어 확인부(130)의 명령에 따라 소프트웨어에 대한 업로드를 허용 또는 차단할 수 있다.
먼저, 사용자가 소프트웨어에 대한 업로드를 요청하면, 특징 정보 추출부(110)는 대상 소프트웨어에 대한 특징 정보를 추출할 수 있다.
SW에 대한 특징 정보는 설치 파일로부터 추출된 제1 특징 정보와 실행 파일로부터 추출된 제2 및 제3 특징 정보로 구분할 수 있다.
설치 파일로부터 추출된 제1 특징 정보는 설치 파일의 구성 요소인 설치 파일의 헤더 정보, 리소스, 설정 파일 정보 및 아이콘 등과 같이 설치 파일을 구성하는 모든 고유한 정보들을 의미할 수 있다.
예를 들어, MS Windows의 설치 파일 포맷인 MSI 경우에는, SW 패키지 관리를 위한 정보인 GUIDs(Globally Unique IDentifiers), 각 구성 파일의 크기 및 해시 값 등을 설치 파일의 특징 정보로 사용할 수 있다.
또한, 안드로이드의 설치 및 배포 패키지 포맷인 APK 경우에는, 추가로 앱 권한 정보 및 패키지 명 등을 설치 파일의 특징 정보로 사용할 수 있다.
실행 파일로부터 추출된 제2 및 제3 특징 정보는 실행 파일의 헤더 및 실행 코드의 정보들 중에서 프로그램을 식별 가능한 고유한 정보들을 의미할 수 있다.
예를 들어, 실행 파일의 헤더에서 추출 가능한 제2 특징 정보는 특정 정보의 주소, 옵셋, 섹션 및 테이블 크기 등을 포함할 수 있고, 제3 특징 정보는 실행 명령어 및 함수(API 포함)와 관련된 서열 및 빈도, 그래프 정보 등을 포함할 있다.
특징 정보 추출부(110)는 대상 소프트웨어로부터 제1 특징 정보, 제2 특징 정보 및 제3 특징 정보를 단계 별로 추출할 수 있다. 예를 들어, 제1 특징 정보, 제2 특징 정보 및 제3 특징 정보를 순차적으로 추출하여 특징 정보 DB 관리부(122)에 전달할 수 있다.
또한, 특징 정보 추출부(110)는 최초로 특징 정보 DB(121) 구성하거나 특정 주기 별 특징 정보 DB(121) 정보를 업데이트하기 위하여 저작권 보호 대상 SW의 특징 정보를 추출할 수 있다.
특징 정보 DB(121)는 저작권 보호 대상이 되는 SW들의 특징 정보를 저장할 수 있다. 예를 들어, 특징 정보 DB(121)는 SW 들의 특징 정보를 해시값 테이블의 형태로 저장할 수 있다.
특징 정보 DB 관리부(122)는 특징 정보 추출부(110)로부터 전달받은 특징 정보에 상응하는 정보를 특징 정보 DB(121)에서 검색하고, 검색 결과를 소프트웨어 확인부(130)로 전달할 수 있다. 여기서, 특징 정보 DB 관리부(122)는 전달받은 특징 정보를 해시값으로 변환하고, 해시값에 기반한 검색을 수행할 수 있다. 다만, 해시값으로의 변환 방법은 도 3에서 더욱 상세히 설명하기로 한다.
소프트웨어 확인부(130)는 검색 결과를 전달받아 대상 소프트웨어가 합법적인 경로를 통하여 유포되고 있는 소프트웨어인지 판단할 수 있다. 즉, 특징 정보 추출부(110)로부터 전달받은 특징 정보에 상응하는 정보를 특징 정보 DB(121)에서 검색한 경우, 대상 소프트웨어는 불법 소프트웨어인 것으로 판단할 수 있다. 반면에, 특징 정보 추출부(110)로부터 전달받은 특징 정보에 상응하는 정보를 특징 정보 DB(121)에서 검색하지 못한 경우, 대상 소프트웨어는 합법 소프트웨어인 것으로 판단할 수 있다.
상세하게는, 소프트웨어 확인부(130)는 특징 정보 DB(121), 제1 특징 정보, 제2 특징 정보 및 제3 특징 정보를 이용하여 단계 별로 대상 소프트웨어가 불법 소프트웨어인지 판단할 수 있다.
예를 들어, 소프트웨어 확인부(130)는 특징 정보 DB(121)에 제1 특징 정보에 상응하는 정보가 존재하는 경우, 대상 소프트웨어를 불법 소프트웨어로 판단할 수 있다.
또한, 소프트웨어 확인부(130)는 특징 정보 DB(121)에 제1 특징 정보에 상응하는 정보가 존재하지 않는 경우, 대상 소프트웨어에 대한 유포 정보에 기반하여 대상 소프트웨어가 합법 소프트웨어인지 확인할 수 있다. 여기서, 유포 정보는 소프트웨어를 유포한 주체에 대한 정보 및 유포 경로에 대한 정보를 포함할 수 있다.
대상 소프트웨어가 합법 소프트웨어인 것으로 확인된 경우, 소프트웨어 확인부(130)는 대상 소프트웨어의 특징 정보를 이용하여 특징 정보 DB(121)를 업데이트시킬 수 있다. 예를 들어, 소프트웨어 확인부(130)는 대상 소프트웨어가 합법 소프트웨어이고, 신규 소프트웨어인 경우, 특징 정보 DB 관리부(122)를 통하여 해당 소프트웨어의 특징 정보를 해쉬값의 형태로 특징 정보DB에 등록하도록 명령할 수 있다.
소프트웨어 확인부(130)는 특징 정보 DB(121)로부터 대상 소프트웨어의 특징 정보에 상응하는 정보가 특징 정보 DB(121)에 존재하는지 여부를 알리는 검색 결과를 수신하고, 수신한 검색 결과에 따라 SW 차단 또는 허용 명령을 필터링 처리부(140)로 전송할 수 있다.
따라서, 본 발명의 실시예에 따른 소프트웨어 필터링 장치(100)는 대상 소프트웨어로부터 특징 정보를 단계적으로 추출하고, 추출된 특징 정보에 상응하는 정보를 특징 정보 DB(121)에서 해시값 기반의 검색을 수행함으로써 불법 소프트웨어를 식별할 수 있고, 식별된 불법 소프트웨어가 웹 하드(10) 등에 업로드되는 것을 방지할 수 있다.
상술한 본 발명의 실시예에 따른 소프트웨어 필터링 장치(100)의 구성을 설명의 편의상 각각의 구성부로 나열하여 설명하였으나, 각 구성부 중 적어도 두 개가 합쳐져 하나의 구성부로 이루어지거나, 하나의 구성부가 복수개의 구성부로 나뉘어져 기능을 수행할 수 있고 이러한 각 구성부의 통합 및 분리된 실시예의 경우도 본 발명의 본질에서 벋어나지 않는 한 본 발명의 권리범위에 포함된다.
또한, 본 발명의 실시예에 따른 소프트웨어 필터링 장치(100)의 동작은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 프로그램 또는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의해 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터로 읽을 수 있는 프로그램 또는 코드가 저장되고 실행될 수 있다.
도 3은 본 발명의 실시예에 따른 소프트웨어 필터링 방법을 설명하기 위한 흐름도이다.
도 3을 참조하여, 본 발명의 실시예에 따라 단계적으로 수행되는 소프트웨어 필터링 방법을 설명한다. 소프트웨어 필터링 방법은 도 2에 도시된 소프트웨어 필터링 장치(100)에 의해 수행될 수 있다.
실행 파일들을 기반으로 소프트웨어를 필터링하기 위해서는, 설치 파일에서 실행 파일을 추출하는 추가적인 과정이 필요하다. 또한, 실행 파일들을 기반으로 하는 경우에는 비교 대상 소프트웨어 각각의 실행 코드를 분석하여 특징 정보를 추출하고, 이들 간의 유사성을 비교하여야 한다. 그러나, 이 과정은 오버헤드가 매우 높기 때문에 빠른 처리 속도가 중요한 필터링에는 부적합한 측면이 있다.
상세하게는, 소스코드 기반 유사성 비교 기술의 경우, 특징 정보 분석 및 추출, 특징 정보의 크기 및 비교 오버헤드가 높기 때문에 빠른 시간에 다수의 다수의 식별해야 하는 SW필터링에는 부적합하다.
더욱이 인터넷을 통해 (불법)유포되는 대부분의 SW들은 소스코드 및 실행 파일 형태가 아니라 설치 파일 형태이기 때문에 소프트웨어 필터링하기 위해서 설치 파일에 포함된 특징 정보를 활용하는 것이 효과적이다.
또한, SW의 종류 및 개수가 매우 방대하기 때문에 효율적인 SW 필터링을 위해서는 빠르게 특징 정보를 검색하는 것이 필요하다.
이에 본 발명의 실시예에 따른 소프트웨어 필터링 방법은, 이를 개선하기 위해, 설치 파일 수준의 특징 정보와 실행 파일에서 추출이 용이한 특징 정보를 함께 사용한 단계 별 소프트웨어 필터링 기법을 제안한다.
다만, 본 발명의 실시예에 따르면, 3개의 특징 정보를 이용한 3 단계 필터링을 설명하지만, 각 SW의 설치 파일 및 실행 파일의 포맷에 따라 필터링 단계는 축소 또는 확대될 수 있다.
1 단계
1단계에서는, 추출은 용이하지만 강인성이 낮은 특징 정보를 이용하여 먼저 필터링을 수행한다.
상세하게는, 대상 소프트웨어의 설치 파일로부터 제1 특징 정보를 추출하고(S310), 특징 정보 DB(121)에 제1 특징 정보에 상응하는 정보가 존재하는지 판단할 수 있다(S311). 또한, 특징 정보 DB(121)에 제1 특징 정보에 상응하는 정보가 존재하는 경우, 대상 소프트웨어를 불법 소프트웨어로 판단할 수 있다(S360). 여기서, 제1 특징 정보는 설치 파일에 포함된 헤더 정보, 리소스 정보, 파일 설정 정보 및 아이콘 정보 중 적어도 하나를 포함할 수 있으며, 해쉬 함수(hash function)을 통해 산출되어 해시값(hash value)로 표현될 수 있다.
또한, 특징 정보 DB(121)에 제1 특징 정보에 상응하는 정보가 존재하지 않는 경우, 대상 소프트웨어에 대한 유포 정보에 기반하여 대상 소프트웨어가 합법 소프트웨어인지 확인할 수 있다(S312).
대상 소프트웨어가 합법 소프트웨어인 것으로 확인된 경우, 대상 소프트웨어의 특징 정보를 이용하여 특징 정보 DB(121)를 업데이트할 수 있다(S340, S341). 상세하게는, 대상 소프트웨어를 신규 SW 로 등록할 지 결정할 수 있고(S340), 결정 결과에 따라 특징 정보 DB(121)를 업데이트할 수 있다(S341). 또한, 대상 소프트웨어가 합법 소프트웨어인 것으로 확인된 경우, 대상 소프트웨어를 합법 SW로 판단하여 웹 하드(10) 등에의 업로드를 허용할 수 있다(S350).
예를 들어, 특징 정보 DB(121)에 제1 특징 정보에 상응하는 정보가 존재하지 않는 경우, SW 업로드 및 유포자에 대한 확인을 통해 저작권 보호를 원하는 새로운 SW인지 확인할 수 있다. 또한, 새로운 SW로 확인될 경우, 새로운 SW로부터 특징 정보 추출 및 해시값 산출을 수행하고, 특징 정보 DB(121)에 이를 추가할 수 있다. 더 나아가, 설치 파일의 이름 및 파일 크기 등을 기반으로 불법 SW 유포로 의심되는지 여부를 확인하여 의심되는 경우, 다음의 2 및 3 단계의 필터링을 추가로 수행할 수 있다.
2 단계
2단계에서는, 설치 파일에서 실행 파일을 추출하여, 실행 파일의 헤더에서 특징 정보(제2 특징 정보)를 추출할 수 있다(S320). 즉, 실행 파일 헤더 수준의 제2 특징 정보는 설치 파일에서 실행 파일을 추출해야 하기 때문에 추출 오버헤드는 더 크지만, 제1 특징 정보와 비교하여 변조되기는 더 어렵다.
다음으로, 특징 정보 DB(121)에 제2 특징 정보에 상응하는 정보가 존재하는지 판단할 수 있고(S321). 특징 정보 DB(121)에 제2 특징 정보에 상응하는 정보가 존재하는 것으로 판단된 경우, 대상 소프트웨어를 불법 소프트웨어로 판단할 수 있다(S360).
또한, 특징 정보 DB(121)에 제2 특징 정보에 상응하는 정보가 존재하지 않는 것으로 판단된 경우, 다음의 3 단계를 수행할 수 있다.
3 단계
3단계에서는, 실행 파일에 포함된 문자열 및 실행 코드를 분석하여 제3 특징 정보를 추출할 수 있다(S330). 제3 특징 정보는 제1 및 제2 특징 정보와 비교하여, 추출 오버헤드가 크지만 변조가 더욱 어렵다.
또한, 특징 정보 DB(121) 및 제3 특징 정보에 기반하여 산출된 유사도 정보가 미리 설정된 값 이상인지 판단할 수 있고(S331), 유사도 정보가 미리 설정된 값 이상인 경우, 대상 소프트웨어를 불법 소프트웨어로 판단할 수 있다(S360). 반면에, 유사도 정보가 미리 설정된 값 이하인 경우, 대상 소프트웨어를 합법 소프트웨어로 판단할 수 있다(S350). 즉, 3 단계를 통하여, 소프트웨어 필터링 방법을 우회하기 위해 SW를 변조한 경우에도, 우회를 차단할 수 있다.
예를 들어, 유사도 정보는 0~1 사이의 값을 가질 수 있으며, 유사도 정보가 0일 경우 SW가 완전히 다른 경우를 나타내고, 유사도 정보가 1일 경우 SW가 완전히 동일 경우를 의미할 수 있다. 따라서, 미리 설정된 값은 0~1 사이의 값 중에서 설정될 수 있다.
상술한 단계 별 SW 필터링에 사용되는 정보를 예를 들어 설명하면 다음과 같다.
1. MS Windows의 설치 파일 포맷으로 유포되는 SW에 대한 필터링
(1) 1단계: MS Windows의 설치 파일 포맷인 MSI 파일에서는 GUIDs를 사용한다. GUIDs에는 Upgrade code, Product code, Package code가 있으며, Upgrade code는 동일한 SW의 다른 버전 간에도 동일한 값을 같기 때문에 SW 제품의 종류를 기준으로 필터링할 때 사용할 수 있다. Product code는 Major 버전이 다른 경우에는 값이 다르고, Minor 버전이 다른 경우에는 동일하다. Package code는 모든 각 버전마다 다른 값을 갖기 때문에 Product code와 Package code를 이용하면 SW의 버전 수준의 필터링까지 가능하다. 즉, 동일 SW이더라도 버전 별로 라이선스가 다른 경우가 있기 때문에 필요하다.
(2) 2단계: MS Windows의 실행 파일 포맷인 PE(Portable Executable)의 헤더에 포함된 정보들 중에서 AddressOfEntryPoint, SizeofInitializedData, SizeOfCode, DataDirectory[2].Size 이상 4개의 정보를 제2 특징 정보로 사용할 수 있다. 각 특징 정보의 의미는 아래와 같으며, 실행 파일이 메모리에 로드되어 실행되는데 중요한 정보들이다. 그렇기 때문에 필터링 시스템 우회를 위해, 아래 정보들을 변조할 경우 프로그램 실행이 불가능할 수 있기 때문에 쉽게 변조하기 어렵다.
- AddressOfEntryPoint: 실행파일의 엔트리포인트 주소
- SizeofInitializedData: 초기화된 데이터 섹션의 크기
- SizeOfCode: 실행코드 전체 크기
- DataDirectory[2].Size: 리소스 테이블의 크기
(3) 3단계: MS Windows의 실행 파일의 실행 코드(.text 섹션) 분석을 통해 추출 가능한 특징 정보 또는 실행 파일에 포함된 문자열을 제3 특징 정보로 사용할 수 있다. 실행코드 분석을 통해 추출 가능한 특징 정보는, 바이너리 형태의 실행코드에서는 명령어 및 API(Application Platform Interface)의 서열(sequence) 및 빈도(frequency) 기반의 특징 정보와 함수간 호출 그래프(Call graph), 제어흐름 그래프(Control-flow graph) 기반의 특징 정보, 메모리 사용 패턴 기반 특징 정보 등일 수 있다. 실행 파일에 포함된 문자열은 소스코드의 문자열 상수와 컴파일 단계에서 추가되는 문자열 등이 있으며, 소스코드의 특징을 잘 반영할 수 있기 때문에 매우 유용한 특징 정보이다. 또한 이러한 특징 정보들은 프로그램의 기능과 관련되었기 때문에 변조가 어렵기 때문에 신뢰성 및 강인성이 높다.
2. 안드로이드 앱(SW)에 대한 필터링
(1) 1단계: 안드로이드의 설치 파일 포맷인 APK 파일의 구성요소 중 실행 파일인 classes.dex(Dex 포맷)을 제외한 나머지 구성요소에서 추출 가능한 특징 정보를 사용할 수 있다.
특히, AndroidManifest.xml 파일은 xml 형태로 분석 및 추출이 용이하며, 포함된 정보들은 각 앱의 특징적인 정보들이기 때문에 제1 특징 정보로 적합하다. 또한, 패키지명, 앱 이름, 앱 버전, 호환 가능한 SDK 버전 정보, 권한 정보 등이 1단계에서 적용될 수 있다. 더 나아가, manifest.mf 파일은 APK를 포함된 모든 구성요소들의 SHA1 해시 값을 저장하고 있는데, 이 역시 제1 특징 정보로 적합하다. 즉, 앱 버전 간 구분까지 가능하여 필터링에 매우 효과적이다.
(2) 2단계: 안드로이드 앱의 실행 파일(바이트 코드)인 classes.dex 파일에서 추출 가능한 특징 정보를 사용할 수 있다. 예를 들어, 메서드 리스트, 클래스 멤버 변수 등이 사용될 수 있다. 메서드 리스트는 앱의 기능과 관련이 있고, 클래스 멤버 변수는 각 클래스의 구현과 관련 있기 때문에 쉽게 변조가 어렵다. 그렇기 때문에 이러한 특징 정보를 기반으로 하는 경우, 필터링을 우회하기는 어렵다.
본 발명의 실시예에 따른 제1 특징 정보와 제2 특징 정보는 해쉬 함수(hash function)을 통해 산출되어 해시값(hash value)로 표현될 수 있다. 따라서, 특징 정보는 특징 정보 DB(121)에서 해시 테이블(hash table)에 기반하여 빠른 검색이 수행될 수 있다.
즉, 특징 정보의 검색은 빠르고 효과적인 검색을 위해, 해시 테이블을 기반으로 할 수 있다. 해시 테이블 기반의 검색은 특징 정보로부터 해시값을 산출하여, 특징 정보 DB(121)에 포함되는 해시 테이블의 인덱스로 사용하기 때문에 검색 속도가 매우 빠르다. 특징 정보 DB(121)는 해시 테이블은 해시값을 인덱스로 사용하는 해시 테이블뿐만 아니라, 각 SW의 명칭 및 파일 크기 등과 같은 추가적인 정보들을 함께 저장할 수 있다.
해시 값 기반의 인덱스 산출 과정을 예를 들어 설명하면 다음과 같다.
(1) 소프트웨어 A로부터 추출한 특징 정보를 다음과 같이 가정할 수 있다.
특징 정보 1: 002205fc, 특징정보 2: 002df890, 특징정보 3: 00011b64, 특징정보 4: 002de8c0
(2) 0->16, a->10, b->11, c->12, d->13, e->14, f->15, 와 같이, 16진수의 a ~ f를 10 진수로 변환할 수 있다. (0은 연산에서 0나눗셈이 될 가능성이 있으므로 16으로 변환)
변환 결과로 16 16 2 2 16 5 15 12(특징정보 1), 16 16 2 13 15 8 9 0(특징정보 2), 0 0 0 1 1 11 6 4(특징정보 3), 0 0 2 13 14 8 12 0(특징정보 4)이 산출될 수 있다
(3) 위 (2)의 결과로 산출된 8자리 값을 합산한다.
(예: 16 16 2 2 16 5 15 12 -> 16+16+2+2+16+5+15+12 = 84)
이러한 연산을 수행한 결과는 84(특징정보 1), 79(특징정보 2), 23(특징정보 3), 49(특징정보 4)와 같이 나타난다.
(4) 인덱스 값의 범위를 제한하기 위해, 다수의 특징 정보에 대한 (3)의 연산 결과 중, 1개를 제외한 나머지 값을 곱하고, 곱한 결과를 제외한 1개의 값으로 나누어, 각 SW 별로 1개의 값으로 통합한다.
이러한 연산 결과로, (84×79×23)/49 = 3114이 산출된다.
(5) MOD(나머지 값) 연산으로 테이블 크기로 나눈 나머지 값(해시값)을 인덱스로 사용할 수 있다.
즉, 이러한 연산결과로, 296 => 296번째 테이블에 삽입될 수 있다.
더 나아가, 저성능의 SW 필터링 시스템이 무분별하게 개발 및 운영되는 것을 막기 위해서는 SW 필터링에 대한 성능을 평가하는 것이 필요하다.
SW 필터링에 대한 성능평가 기준 관련 용어 및 개념 정의는 다음과 같다.
- 변형 SW: 필터링 시스템의 성능평가를 위해, 정상 SW을 고의적으로 변형(변조)한 SW를 의미하며, 강인성 평가에 주로 사용된다.
- 원본 SW: 변형 SW의 변형 전의 정상 SW를 의미한다.
- 인식 : 변형 SW에서 추출된 특징 정보가 원본 SW의 특징 정보를 정확하게 찾은 결과 값을 말한다.
- 오인식 : 변형 SW에서 추출된 특징 정보가 원본 SW의 특징 정보를 정확하지 않은 정보를 나타내는 것으로, 다른 SW의 정보를 찾을 경우를 나타낸다.
- 불인식 : 변형 SW에서 추출된 특징 정보가 원본 SW의 특징 정보를 찾지 못하고 없다는 정보를 나타낸다.
- 강인성(Robustness): 변형된 SW이 원본 SW을 인식하는 정도를 나타낸다.
- 일관성(Consistency): 반복적으로 수행된 특징 정보 추출 및 인식에 대한 일관성 정도의 나타낸다.
- 시스템 사용률(System performance): 특징 정보 추출 및 인식 결과 회신 등에 사용한 시스템 자원의 사용률을 나타낸다.
- 특징 정보량(Feature Size): 원본 SW에서 추출하는 특징 정보의 크기를 타낸다.
- 추출 및 검색비교 속도(Search Speed): 변형 SW의 특징 정보 추출 및 원본 SW 특징 정보 DB(121) 검색/비교 시간을 나타낸다.
상기 용어 및 개념 정의에 기반하여 소프트웨어 필터링 방법의 성능평가를 위한 세부 평가 방법을 설명하면 다음과 같다.
(1) 강인성에 대한 평가 방법
테스트 PC를 이용하여 변형 SW에서 특징 정보를 추출한 후, 변형 SW에서 추출한 특징 정보에 상응하는 정보를 특징 정보 DB(121)에서 인식 결과 값을 전달 받는다. 전달받은 결과 값을 분석하여 인식, 불인식, 오인식을 계산할 수 있다.
안드로이드 앱에서 변형 SW의 변형 항목의 예시는 아래 표 1과 같다.
구 분 변형 항목
강인성 클래스 추가
명령어/문자열 추가
AndroidManifest.xml 권한 추가
단순 재패키징
앱 확장자 ZIP으로 변경
리소스 변경
(2) 일관성에 대한 평가 방법
임의의 원본 SW 10개를 선정하여, 특징 정보를 30회 반복 추출한다. 추출된 특징 정보 간의 동일 여부를 확인하기 위하여 바이너리 데이터 비교를 수행한다. 인식, 오인식, 불인식 각각의 변형 SW를 10개씩 임의로 선정하여, 30회 반복 인식한 결과 값을 특징 정보 DB(121)서버에서 회신받을 수 있다.
(3) 시스템 사용률에 대한 평가 방법
원본 SW에 대한 특징 정보 추출, 강인성에 대한 평가 수행 시 변형 SW에 대한 특징 정보 추출 및 인식 결과 회신에 사용되는 CPU와 메모리에 대한 정보를 5초 단위로 평균한 값을 저장하여 결과를 분석한다. 표준평가도구, OS에 필요한 기본 프로그램 등이 활용될 수 있다.
(4) 특징정보량에 대한 평가 방법
원본 및 변형 SW에서 추출된 특징 정보 파일을 원본 및 변조 SW의 전체 사이즈로 나누어 계산한다.
(5) 추출 및 검색/비교 속도
강인성에 대한 평가 수행 시 생성되는 정보로 변형 SW의 특징 정보를 추출하여 특징 정보 DB(121)에서 인식 여부의 결과 값을 리턴하는데 소요되는 변형 SW 특징 정보 추출 및 검색/비교 시간을 측정한다.
상술한 본 발명의 실시예에 따른 소프트웨어 필터링 장치 및 방법은, 설치 파일에 포함된 특징 정보를 활용하여 소프트웨어를 필터링할 수 있기 때문에, 빠른 시간에 다수의 소프트웨어를 식별하여 필터링할 수 있다.
또한, 단계 별 필터링을 통하여 불법을 유통되는 소프트웨어를 정확하게 인식하여 차단할 수 있다.
더 나아가, 소프트웨어 필터링에 대한 평가 방법 및 기준을 제공하여 저성능의 SW 필터링 시스템이 무분별하게 개발 및 운영되는 것을 막을 수 있다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
10: 웹 하드 11: 설치 파일 DB
21: SW#1 22: SW#2
23: SW#N 100: 소프트웨어 필터링 장치
110: 특징 정보 추출부 120: 특징 정보 검색 서버
121: 특징 정보 DB 122: 특징 정보 DB 관리부
130: 소프트웨어 확인부 140: 필터링 처리부

Claims (17)

  1. 소프트웨어 필터링 장치에 의해 수행되는 방법에 있어서,
    대상 소프트웨어의 설치 파일로부터 제1 특징 정보를 추출하는 단계;
    특징 정보 DB에 상기 제1 특징 정보에 상응하는 정보가 존재하는지 판단하는 단계; 및
    상기 특징 정보 DB에 상기 제1 특징 정보에 상응하는 정보가 존재하는 경우, 상기 대상 소프트웨어를 불법 소프트웨어로 판단하는 단계를 포함하는,
    소프트웨어 필터링 방법.
  2. 청구항 1에 있어서,
    상기 제1 특징 정보는,
    상기 설치 파일에 포함된 헤더 정보, 리소스 정보, 파일 설정 정보 및 아이콘 정보 중 적어도 하나를 포함하는 것을 특징으로 하는,
    소프트웨어 필터링 방법.
  3. 청구항 1에 있어서,
    상기 특징 정보 DB에 상기 제1 특징 정보에 상응하는 정보가 존재하지 않는 경우,
    상기 대상 소프트웨어에 대한 유포 정보에 기반하여 상기 대상 소프트웨어가 합법 소프트웨어인지 확인하는 단계; 및
    상기 대상 소프트웨어가 합법 소프트웨어인 것으로 확인된 경우, 상기 대상 소프트웨어의 특징 정보를 이용하여 상기 특징 정보 DB를 업데이트하는 단계를 포함하는 것을 특징으로 하는,
    소프트웨어 필터링 방법.
  4. 청구항 3에 있어서,
    상기 대상 소프트웨어가 합법 소프트웨어로 확인되지 않은 경우,
    상기 대상 소프트웨어의 실행 파일로부터 제2 특징 정보를 추출하는 단계; 및
    상기 특징 정보 DB에 상기 제2 특징 정보에 상응하는 정보가 존재하는 경우,
    상기 대상 소프트웨어를 불법 소프트웨어로 판단하는 단계를 포함하는,
    소프트웨어 필터링 방법.
  5. 청구항 4에 있어서,
    상기 제2 특징 정보는,
    상기 실행 파일의 헤더에 포함된 정보인 것을 특징으로 하는,
    소프트웨어 필터링 방법.
  6. 청구항 4에 있어서,
    상기 제1 특정 정보 및 상기 제2 특징 정보는,
    해쉬 함수(hash function)을 통해 산출되어 해시값(hash value)로 표현되는 것을 특징으로 하는,
    소프트웨어 필터링 방법.
  7. 청구항 4에 있어서,
    상기 특징 정보 DB에 상기 제2 특징 정보에 상응하는 정보가 존재하지 않는 경우,
    상기 대상 소프트웨어의 실행 파일로부터 제3 특징 정보를 추출하는 단계; 및
    상기 특징 정보 DB 및 상기 제3 특징 정보에 기반하여 산출된 유사도 정보가 미리 설정된 값 이상인 경우, 상기 대상 소프트웨어를 불법 소프트웨어로 판단하는 단계를 포함하는,
    소프트웨어 필터링 방법.
  8. 청구항 7에 있어서,
    상기 제3 특징 정보는,
    상기 실행 파일에 포함된 문자열 및 실행 코드를 분석하여 추출되는 것을 특징으로 하는,
    소프트웨어 필터링 방법.
  9. 청구항 7에 있어서,
    상기 특징 정보 DB 및 상기 제3 특징 정보에 기반하여 산출된 유사도 정보가 미리 설정된 값 이하인 경우,
    상기 대상 소프트웨어를 합법 소프트웨어로 판단하는 단계를 더 포함하는 것을 특징으로 하는,
    소프트웨어 필터링 방법.
  10. 청구항 1에 있어서,
    소프트웨어 필터링에 대한 성능을 평가하는 단계를 더 포함하는 것을 특징으로 하는,
    소프트웨어 필터링 방법.
  11. 청구항 10에 있어서,
    상기 소프트웨어 필터링에 대한 성능을 평가하는 단계는,
    필터링에 대한 강인성(robustness), 일관성(consistency), 시스템 사용률(system performance), 특징 정보량(feature size) 및 속도(speed) 중 적어도 하나를 산출하여 성능 평가를 수행하는 것을 특징으로 하는,
    소프트웨어 필터링 방법.
  12. 특징 정보 DB;
    대상 소프트웨어로부터 제1 특징 정보, 제2 특징 정보 및 제3 특징 정보를 단계 별로 추출하는 특징 정보 추출부;
    상기 특징 정보 DB, 상기 제1 특징 정보, 상기 제2 특징 정보 및 상기 제3 특징 정보를 이용하여 단계 별로 상기 대상 소프트웨어가 불법 소프트웨어인지 판단하는 소프트웨어 확인부를 포함하는,
    소프트웨어 필터링 장치.
  13. 청구항 12에 있어서,
    상기 소프트웨어 확인부에 의해 불법 소프트웨어로 판단된 해당 대상 소프트웨어를 필터링하는 필터링 처리부를 더 포함하는 것을 특징으로 하는,
    소프트웨어 필터링 장치.
  14. 청구항 12에 있어서,
    상기 특징 정보 DB로부터 상기 제1 특징 정보, 상기 제2 특징 정보 및 상기 제3 특징 정보 중 적어도 하나에 상응하는 정보를 추출하여 상기 소프트웨어 확인부로 전달하는 특징 정보 DB 관리부를 더 포함하는 것을 특징으로 하는,
    소프트웨어 필터링 장치.
  15. 청구항 14에 있어서,
    상기 특징 정보 DB 관리부는,
    상기 대상 소프트웨어가 신규한 소프트웨어인 경우,
    상기 대상 소프트웨어의 특징 정보를 이용하여 상기 특징 정보 DB를 업데이트하는 것을 특징으로 하는,
    소프트웨어 필터링 장치.
  16. 청구항 12에 있어서,
    상기 제1 특징 정보는, 상기 대상 소프트웨어의 설치 파일에 포함된 헤더 정보, 리소스 정보, 파일 설정 정보 및 아이콘 정보 중 적어도 하나를 포함하고,
    상기 제2 특징 정보는, 상기 대상 소프트웨어의 실행 파일의 헤더에 포함된 정보이며,
    상기 제3 특징 정보는,
    상기 대상 소프트웨어의 실행 파일에 포함된 문자열 및 실행 코드를 분석하여 추출되는 것을 특징으로 하는,
    소프트웨어 필터링 장치.
  17. 청구항 16에 있어서,
    상기 제1 특정 정보 및 상기 제2 특징 정보는,
    해쉬 함수(hash function)을 통해 산출되어 해시값(hash value)로 표현되는 것을 특징으로 하는,
    소프트웨어 필터링 장치.
KR1020140052288A 2014-04-30 2014-04-30 소프트웨어 필터링 장치 및 방법 KR101654973B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140052288A KR101654973B1 (ko) 2014-04-30 2014-04-30 소프트웨어 필터링 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140052288A KR101654973B1 (ko) 2014-04-30 2014-04-30 소프트웨어 필터링 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20150125249A true KR20150125249A (ko) 2015-11-09
KR101654973B1 KR101654973B1 (ko) 2016-09-06

Family

ID=54604808

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140052288A KR101654973B1 (ko) 2014-04-30 2014-04-30 소프트웨어 필터링 장치 및 방법

Country Status (1)

Country Link
KR (1) KR101654973B1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090013483A (ko) * 2007-08-02 2009-02-05 주식회사 플랜티넷 어플리케이션 프로그램 검증 및 실행 제어 방법
KR101122950B1 (ko) * 2004-04-30 2012-03-15 마이크로소프트 코포레이션 소프트웨어 업데이트를 제한하는 방법 및 시스템
KR101277517B1 (ko) * 2012-12-04 2013-06-21 주식회사 안랩 애플리케이션 위/변조 탐지장치 및 방법
KR20130096618A (ko) * 2012-02-17 2013-08-30 숭실대학교산학협력단 안드로이드 모바일 어플리케이션의 판단 방법 및 이를 이용한 불법 복제된 안드로이드 모바일 어플리케이션의 식별 장치 및 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101122950B1 (ko) * 2004-04-30 2012-03-15 마이크로소프트 코포레이션 소프트웨어 업데이트를 제한하는 방법 및 시스템
KR20090013483A (ko) * 2007-08-02 2009-02-05 주식회사 플랜티넷 어플리케이션 프로그램 검증 및 실행 제어 방법
KR20130096618A (ko) * 2012-02-17 2013-08-30 숭실대학교산학협력단 안드로이드 모바일 어플리케이션의 판단 방법 및 이를 이용한 불법 복제된 안드로이드 모바일 어플리케이션의 식별 장치 및 방법
KR101277517B1 (ko) * 2012-12-04 2013-06-21 주식회사 안랩 애플리케이션 위/변조 탐지장치 및 방법

Also Published As

Publication number Publication date
KR101654973B1 (ko) 2016-09-06

Similar Documents

Publication Publication Date Title
US9614867B2 (en) System and method for detection of malware on a user device using corrected antivirus records
JP5802848B2 (ja) モバイル環境用のトロイの木馬化されたアプリケーション(アプリ)を特定するためのコンピュータ実装方法、非一時コンピュータ読み取り可能な媒体およびコンピュータシステム
KR101337874B1 (ko) 파일 유전자 지도를 이용하여 파일의 악성코드 포함 여부를 판단하는 방법 및 시스템
CN104123493A (zh) 应用程序的安全性检测方法和装置
CN102656593B (zh) 对使用链接文件的恶意软件进行检测和响应
CN104769598B (zh) 用于检测非法应用程序的系统和方法
CN103679031A (zh) 一种文件病毒免疫的方法和装置
CN104424423A (zh) 应用程序的权限确定方法和装置
KR20190037895A (ko) 바이너리 파일에 기초하여 오픈소스 소프트웨어 패키지를 식별하는 방법 및 시스템
CN105760761A (zh) 软件行为分析方法和装置
US10685298B2 (en) Mobile application compatibility testing
KR101624387B1 (ko) 소프트웨어 버스마크에 기반한 소프트웨어 자산 관리 방법 및 그 장치
EP3692456B1 (en) Binary image stack cookie protection
KR101604891B1 (ko) 실행 파일의 부분 정보를 이용한 소프트웨어 불법 복제 및 표절 탐지 방법 및 이를 이용한 장치
KR101654973B1 (ko) 소프트웨어 필터링 장치 및 방법
KR101643454B1 (ko) 소프트웨어 필터링에 대한 성능 평가 방법 및 장치
CN113239353B (zh) 基于内容差分的容器软件安全性检测系统及方法
Kim et al. Detecting illegally-copied apps on android devices
TWI715647B (zh) 用於智慧財產(ip)指紋法與ip dna分析之系統及方法
KR102009405B1 (ko) 모바일 애플리케이션을 위한 통합 빌드 방법 및 그 시스템
KR101594643B1 (ko) 실행 파일의 부분 정보에 기반한 소프트웨어 불법 복제 및 표절 탐지 방법 및 이를 위한 장치
KR102035076B1 (ko) 통신 디바이스의 펌웨어 변조를 검출하는 장치 및 방법
CN111104671B (zh) 应用的标识确定方法和应用的检测方法
KR101842267B1 (ko) Mld를 이용한 소프트웨어 분류 장치 및 그 방법
CN117278258A (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
FPAY Annual fee payment

Payment date: 20190702

Year of fee payment: 4