KR101654973B1 - Apparatus and method for software filtering - Google Patents

Apparatus and method for software filtering Download PDF

Info

Publication number
KR101654973B1
KR101654973B1 KR1020140052288A KR20140052288A KR101654973B1 KR 101654973 B1 KR101654973 B1 KR 101654973B1 KR 1020140052288 A KR1020140052288 A KR 1020140052288A KR 20140052288 A KR20140052288 A KR 20140052288A KR 101654973 B1 KR101654973 B1 KR 101654973B1
Authority
KR
South Korea
Prior art keywords
software
feature information
information
filtering
target
Prior art date
Application number
KR1020140052288A
Other languages
Korean (ko)
Other versions
KR20150125249A (en
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/en
Publication of KR20150125249A publication Critical patent/KR20150125249A/en
Application granted granted Critical
Publication of KR101654973B1 publication Critical patent/KR101654973B1/en

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 특징 정보에 상응하는 정보가 존재하는 경우, 대상 소프트웨어를 불법 소프트웨어로 판단하는 단계를 포함한다. 따라서, 설치 파일에 포함된 특징 정보를 활용하여 소프트웨어를 필터링할 수 있기 때문에, 빠른 시간에 다수의 소프트웨어를 식별하여 필터링할 수 있다. An apparatus and method for filtering illegal software based on feature information of software are disclosed. The software filtering method includes the steps of extracting first feature information from an installation file of the target software, determining whether information corresponding to the first feature information exists in the feature information DB, And if the corresponding information exists, judging the target software as illegal software. Therefore, since the software can be filtered using the feature information included in the installation file, it is possible to identify and filter a plurality of software in a short time.

Figure R1020140052288
Figure R1020140052288

Description

소프트웨어 필터링 장치 및 방법{APPARATUS AND METHOD FOR SOFTWARE FILTERING}[0001] APPARATUS AND METHOD FOR SOFTWARE FILTERING [0002]

본 발명은 소프트웨어를 필터링하는 기술에 관한 것으로, 더욱 상세하게는 소프트웨어의 특징 정보에 기반하여 불법 소프트웨어를 필터링하는 장치 및 방법에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a technology for filtering software, and more particularly, to an apparatus and method for filtering illegal software based on feature information of software.

오늘날 인터넷과 통신망의 발전으로 소프트웨어의 배포와 유통은 크게 증가하였고, 최근에는 스마트폰의 열풍으로 많은 사용자들이 어플리케이션 마켓을 통해 손쉽게 소프트웨어를 다운받아 사용할 수 있는 환경이 만들어졌다. 이러한 환경의 변화는 제품 선택의 기준이 하드웨어에서 소프트웨어로 넘어가는 결정적인 계기를 낳았다. Today, with the development of the Internet and communication network, the distribution and distribution of software has greatly increased. Recently, with the hot air of smartphone, many users have created an environment where they can easily download and use the software through the application market. This change in circumstances has led to a decisive momentum for product selection to move from hardware to software.

그러나, 인터넷과 같은 통신의 발달로 소프트웨어 불법 복제 및 표절이 급증하여, 소프트웨어 산업 발전에 걸림돌이 되고 있다. However, due to the development of communication such as the Internet, software piracy and plagiarism have soared, which has hampered the development of the software industry.

소프트웨어의 불법 복제(piracy)란 특정 소프트웨어를 그대로 복제(copy)하여 유통하거나 사용하는 것을 의미하며, 소프트웨어의 표절/도용(plagiarism/theft)이란 소프트웨어의 전체 코드 또는 일부 코드를 역공학(reverse engineering) 등의 방법으로 도용하여 사용하는 것을 의미한다.Piracy of software means copying and distributing certain software as it is, and plagiarism / theft of software means reverse engineering of whole or partial code of software. And the like.

하지만 종래의 소프트웨어 저작권 보호 기술 중의 하나는 개발사에서 특징 정보(워터마크, 라이선스 정보 등)를 삽입하여 배포하는 방식으로서, 개발사마다 저작권보호 적용 방식이 다르고 특정정보를 추출하는 것에 어려움이 있고 또 공격에 의해 쉽게 손상될 수 있다.However, one of the conventional software copyright protection technologies is a method of inserting and distributing feature information (watermark, license information, etc.) from a developer, and it is difficult to extract specific information because of different copyright protection applying method for each developer. Can easily be damaged.

한편, 더욱이 인터넷을 통해 (불법)유포되는 대부분의 소프트웨어들은 설치 파일의 행태를 가지고 있으나, 이를 고려하여 소프트웨어를 필터링하는 기술은 미흡한 실정이다. On the other hand, most of the software that is distributed (illegally) through the Internet has the behavior of the installation file, but there is not enough technology to filter the software considering this.

또한, 소프트웨어의 종류 및 개수가 매우 방대하기 때문에 효율적인 소프트웨어를 필터링을 위해서는 별도의 소프트웨어 특징 정보 DB 검색 기술이 필요한 실정이다. In addition, since the types and the number of software are very large, a separate software feature information DB search technique is required for efficient software filtering.

더 나아가, 저성능의 소프트웨어 필터링 시스템이 무분별하게 개발 및 운영되는 것을 막기 위해서는 소프트웨어 필터링 시스템에 대한 성능평가 기준이 필요한 실정이다.Furthermore, performance evaluation criteria for software filtering systems are needed to prevent low-performance software filtering systems from being developed and operated indiscriminately.

상기와 같은 문제점을 해결하기 위한 본 발명의 목적은, 웹 하드 등에 업로드되는 불법 소프트웨어를 빠르게 검색하여 차단하는 소프트웨어 필터링 장치를 제공하는데 있다.SUMMARY OF THE INVENTION The present invention has been made to solve the above-mentioned problems, and it is an object of the present invention to provide a software filtering apparatus for quickly searching for and blocking illegal software to be uploaded to a web hard.

상기와 같은 문제점을 해결하기 위한 본 발명의 다른 목적은, 웹 하드 등에 업로드되는 불법 소프트웨어를 빠르게 검색하여 차단하는 소프트웨어 필터링 방법을 제공하는데 있다.Another object of the present invention is to provide a software filtering method for quickly searching for and blocking illegal software to be uploaded to a web hard or the like.

상기 목적을 달성하기 위한 본 발명의 실시예에 따른 소프트웨어 필터링 방법은, 대상 소프트웨어의 설치 파일로부터 제1 특징 정보를 추출하는 단계와, 특징 정보 DB에 제1 특징 정보에 상응하는 정보가 존재하는지 판단하는 단계와, 특징 정보 DB에 제1 특징 정보에 상응하는 정보가 존재하는 경우, 대상 소프트웨어를 불법 소프트웨어로 판단하는 단계를 포함한다.According to another aspect of the present invention, there is provided a software filtering method including extracting first feature information from an installation file of a target software, determining whether information corresponding to the first feature information exists in the feature information DB, And judging the target software as illegal software when information corresponding to the first feature information exists in the feature information DB.

여기에서, 상기 제1 특징 정보는, 설치 파일에 포함된 헤더 정보, 리소스 정보, 파일 설정 정보 및 아이콘 정보 중 적어도 하나를 포함할 수 있다. Here, the first feature information may include at least one of header information, resource information, file setting information, and icon information included in the installation file.

여기에서, 상기 특징 정보 DB에 상기 제1 특징 정보에 상응하는 정보가 존재하지 않는 경우, 대상 소프트웨어에 대한 유포 정보에 기반하여 대상 소프트웨어가 합법 소프트웨어인지 확인하는 단계와, 대상 소프트웨어가 합법 소프트웨어인 것으로 확인된 경우, 대상 소프트웨어의 특징 정보를 이용하여 특징 정보 DB를 업데이트하는 단계를 포함할 수 있다. If the information corresponding to the first feature information does not exist in the feature information DB, it is determined whether the target software is legitimate software based on the distribution information about the target software. If the target software is legitimate software And updating the feature information DB using the feature information of the target software, if it is confirmed.

여기에서, 상기 대상 소프트웨어가 합법 소프트웨어로 확인되지 않은 경우, 대상 소프트웨어의 실행 파일로부터 제2 특징 정보를 추출하는 단계와, 특징 정보 DB에 제2 특징 정보에 상응하는 정보가 존재하는 경우, 대상 소프트웨어를 불법 소프트웨어로 판단하는 단계를 포함할 수 있다. Extracting second feature information from an executable file of the target software when the target software is not identified as legitimate software; and if the information corresponding to the second feature information exists in the feature information DB, May be judged to be illegal software.

여기에서, 상기 제2 특징 정보는, 실행 파일의 헤더에 포함된 정보일 수 있다. Here, the second characteristic information may be information included in the header of the executable file.

여기에서, 상기 제1 특정 정보 및 상기 제2 특징 정보는, 해쉬 함수(hash function)을 통해 산출되어 해시값(hash value)로 표현될 수 있다. Here, the first specific information and the second characteristic information may be calculated through a hash function and expressed as a hash value.

여기에서, 상기 특징 정보 DB에 상기 제2 특징 정보에 상응하는 정보가 존재하지 않는 경우, 대상 소프트웨어의 실행 파일로부터 제3 특징 정보를 추출하는 단계와, 특징 정보 DB 및 제3 특징 정보에 기반하여 산출된 유사도 정보가 미리 설정된 값 이상인 경우, 대상 소프트웨어를 불법 소프트웨어로 판단하는 단계를 포함할 수 있다. Extracting third feature information from an executable file of the target software when information corresponding to the second feature information does not exist in the feature information DB; And judging the target software to be illegal software when the calculated similarity degree information is equal to or larger than a predetermined value.

여기에서, 상기 제3 특징 정보는, 실행 파일에 포함된 문자열 및 실행 코드를 분석하여 추출될 수 있다. Here, the third characteristic information may be extracted by analyzing a character string and an executable code included in the executable file.

여기에서, 상기 특징 정보 DB 및 상기 제3 특징 정보에 기반하여 산출된 유사도 정보가 미리 설정된 값 이하인 경우, 대상 소프트웨어를 합법 소프트웨어로 판단하는 단계를 더 포함할 수 있다, If the similarity information calculated based on the feature information DB and the third feature information is less than a predetermined value, the method may further include determining the target software as legitimate software.

여기에서, 소프트웨어 필터링에 대한 성능을 평가하는 단계를 더 포함할 수 있다. Here, it may further include a step of evaluating performance for software filtering.

여기에서, 상기 소프트웨어 필터링에 대한 성능을 평가하는 단계는, 필터링에 대한 강인성(robustness), 일관성(consistency), 시스템 사용률(system performance), 특징 정보량(feature size) 및 속도(speed) 중 적어도 하나를 산출하여 성능 평가를 수행할 수 있다.Wherein evaluating the performance of the software filtering includes at least one of robustness, consistency, system performance, feature size, and speed for filtering. The performance evaluation can be performed.

상기 다른 목적을 달성하기 위한 본 발명의 실시예에 따른 소프트웨어 필터링 장치는, 특징 정보 DB와, 대상 소프트웨어로부터 제1 특징 정보, 제2 특징 정보 및 제3 특징 정보를 단계 별로 추출하는 특징 정보 추출부와, 특징 정보 DB, 제1 특징 정보, 제2 특징 정보 및 제3 특징 정보를 이용하여 단계 별로 대상 소프트웨어가 불법 소프트웨어인지 판단하는 소프트웨어 확인부를 포함한다.According to another aspect of the present invention, there is provided a software filtering apparatus including a feature information DB, a feature information extracting unit for extracting first feature information, second feature information, And a software verification unit for determining whether the target software is illegal software by using the feature information DB, the first feature information, the second feature information, and the third feature information.

상기와 같은 본 발명에 따른 소프트웨어 필터링 장치 및 방법은, 설치 파일에 포함된 특징 정보를 활용하여 소프트웨어를 필터링할 수 있기 때문에, 빠른 시간에 다수의 소프트웨어를 식별하여 필터링할 수 있다. Since the software filtering apparatus and method according to the present invention can filter software using feature information included in an installation file, it is possible to identify and filter a plurality of software in a short time.

또한, 단계 별 필터링을 통하여 불법을 유통되는 소프트웨어를 정확하게 인식하여 차단할 수 있다. In addition, through the step-by-step filtering, the illegally distributed software can be correctly recognized and blocked.

더 나아가, 소프트웨어 필터링에 대한 평가 방법 및 기준을 제공하여 저성능의 SW 필터링 시스템이 무분별하게 개발 및 운영되는 것을 막을 수 있다. Furthermore, by providing evaluation methods and criteria for software filtering, it is possible to prevent a low performance SW filtering system from being developed and operated indiscriminately.

도 1은 본 발명의 실시예에 따른 소프트웨어 필터링 장치가 적용되는 환경을 설명하기 위한 개념도이다.
도 2는 본 발명의 실시예에 따른 소프트웨어 필터링 장치의 동작을 설명하기 위한 개념도이다.
도 3은 본 발명의 실시예에 따른 소프트웨어 필터링 방법을 설명하기 위한 흐름도이다.
1 is a conceptual diagram illustrating an environment in which a software filtering apparatus according to an embodiment of the present invention is applied.
2 is a conceptual diagram illustrating an operation of a software filtering apparatus according to an embodiment of the present invention.
3 is a flowchart illustrating a software filtering method according to an embodiment of the present invention.

본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다. While the invention is susceptible to various modifications and alternative forms, specific embodiments thereof are shown by way of example in the drawings and will herein be described in detail. It should be understood, however, that the invention is not intended to be limited to the particular embodiments, but includes all modifications, equivalents, and alternatives falling within the spirit and scope of the invention. Like reference numerals are used for like elements in describing each drawing.

제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다. The terms first, second, A, B, etc. may be used to describe various elements, but the elements should not be limited by the terms. The terms are used only for the purpose of distinguishing one component from another. For example, without departing from the scope of the present invention, the first component may be referred to as a second component, and similarly, the second component may also be referred to as a first component. And / or < / RTI > includes any combination of a plurality of related listed items or any of a plurality of related listed items.

어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. It is to be understood that when an element is referred to as being "connected" or "connected" to another element, it may be directly connected or connected to the other element, . On the other hand, when an element is referred to as being "directly connected" or "directly connected" to another element, it should be understood that there are no other elements in between.

본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used in this application is used only to describe a specific embodiment and is not intended to limit the invention. The singular expressions include plural expressions unless the context clearly dictates otherwise. In the present application, the terms "comprises" or "having" and the like are used to specify that there is a feature, a number, a step, an operation, an element, a component or a combination thereof described in the specification, But do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, or combinations thereof.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. Terms such as those defined in commonly used dictionaries are to be interpreted as having a meaning consistent with the contextual meaning of the related art and are to be interpreted as either ideal or overly formal in the sense of the present application Do not.

이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.Hereinafter, preferred embodiments according to the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명의 실시예에 따른 소프트웨어 필터링 장치가 적용되는 환경을 설명하기 위한 개념도이다. 1 is a conceptual diagram illustrating an environment in which a software filtering apparatus according to an embodiment of the present invention is applied.

먼저, 불법 소프트웨어(SW) 유포는 SW 벤더(개발 및 유통사)가 정한 경로 이외의 비정상적인 경로를 통해 SW를 유포하는 것을 의미한다. 불법 유포되는 SW는 SW를 그대로 복제(copy)하거나, 또는 라이선스 없이 사용 가능하도록 역공학(reverse engineering)을 통해 전체 또는 일부 코드가 변조된 경우가 대부분이며, 다른 SW를 표절/도용(plagiarism/theft)한 경우를 포함된다. First, the distribution of illegal software (SW) means that the SW is distributed through abnormal routes other than the route set by the SW vendor (development and distributor). The illegally circulated SWs are most likely to have full or partial code tampering through reverse engineering to copy the SW as it is, or to use it without a license, and plagiarism / theft ).

본 발명의 실시예에 따르면 SW 필터링을 통하여 이와 같이 불법으로 유포되는 SW를 식별하고, 유포를 차단하는 기술을 제공한다. According to the embodiment of the present invention, a SW is illegally distributed through SW filtering, and a technique for blocking the dissemination is provided.

도 1을 참조하면, 웹 하드(web hard; 10) 상에는 다수 사용자에 의해서 다종의 SW 들(21, 22, 23)이 업로드될 수 있다. 여기에서, 웹 하드(10)는 다수의 사용자가 소프트웨어 또는 컨텐츠를 업로드할 수 있는 클라우드(cloud) 저장 공간의 일종을 의미하며, 웹 하드라는 명칭에 구애받지 않고, 다양한 온라인 저장 공간들을 포괄하는 개념이다. Referring to FIG. 1, a plurality of SWs 21, 22, and 23 may be uploaded by a plurality of users on a web hard 10. Here, the web hard 10 is a kind of cloud storage space in which a plurality of users can upload software or contents. The web hard 10 is a concept that includes various online storage spaces to be.

또한, 소프트웨어(SW)라 함은 MS Windows, Linux, Android, Java(JRE) 등 모든 시스템 환경에서 실행 가능한 소프트웨어를 의미하며, 설치 파일은 MSI(Microsoft Installer), SFX(Self Extracting Archive), APK(Android Package), JAR(Java Archive) 등 SW의 배포 및 설치를 위한 모든 설치 파일 포맷을 포함할 수 있다. Software (SW) refers to software that can be executed in all system environments such as MS Windows, Linux, Android, Java (JRE) and the installation files are MSI (Microsoft Installer), SFX (Self Extracting Archive) Android Package), Java Archive (JAR), and so on.

본 발명의 실시예에 따른 소프트웨어 필터링 장치(100)는 웹 하드(10)에 업로드 되는 다종의 대상 SW 들(21, 22, 23)에 대해서 업로드 단계에서 해당 소프트웨어의 불법 복제 또는 표절 여부를 탐지하기 위해서 적용될 수 있다. The software filtering apparatus 100 according to the embodiment of the present invention detects the illegal copying or plagiarism of the corresponding software in the uploading step for a plurality of target SWs 21, 22, 23 uploaded to the web hard 10 .

예를 들어, 소프트웨어 필터링 장치(100)는 불법 소프트웨어인 것으로 판단된 대상 소프트웨어에 대한 업로드를 차단할 수 있다. For example, the software filtering apparatus 100 may block the uploading of the target software determined to be illegal software.

또한, 본 발명의 실시예에 따른 소프트웨어 필터링 장치(100)는 대상 SW 들(21, 22, 23)의 소스 코드 등과 같은 민감한 정보를 요구하지 않고 대상 SW 들(21, 22, 23)을 구성하는 설치 파일 또는 실행 파일들을 단계적으로 이용하여 소프트웨어에 대한 불법 복제 또는 표절의 탐지를 수행하는 것을 특징으로 한다.
In addition, the software filtering apparatus 100 according to the embodiment of the present invention includes the target SWs 21, 22, and 23 without requiring sensitive information such as source codes of the target SWs 21, And performs illegal copying or plagiarism detection on the software by using the installation file or executable files in a step-by-step manner.

도 2는 본 발명의 실시예에 따른 소프트웨어 필터링 장치의 동작을 설명하기 위한 개념도이다. 2 is a conceptual diagram illustrating an operation of a software filtering apparatus according to an embodiment of the present invention.

도 2를 참조하면, 본 발명의 실시예에 따른 소프트웨어 필터링 장치는(100)는 특징 정보 추출부(110), 특정 정보 DB, 특징 정보 DB 관리부(122), 소프트웨어 확인부(130), 필터링 처리부(140)를 포함한다. Referring to FIG. 2, the software filtering apparatus 100 includes a feature information extracting unit 110, a specific information DB, a feature information DB managing unit 122, a software verifying unit 130, (140).

여기서, 필터링 처리부(140)는 웹 하드(10)의 내부에 위치하여 동작할 수 있으나, 이러한 실시예에 한정되는 것을 아니다. 즉, 필터링 처리부(140)는 웹 하드(10) 외부에서 소프트웨어의 업로드를 허용 또는 차단할 수 있으며, 이를 통하여 웹 하드(10) 상에 존재하는 설치 파일 DB(11)에 소프트웨어가 업로드되는 것을 관리할 수 있다. Here, the filtering processing unit 140 may operate within the web hard 10, but the present invention is not limited thereto. That is, the filtering processing unit 140 may allow or block the uploading of software from outside the web hard 10, and manage the uploading of software to the installation file DB 11 existing on the web hard 10 .

또한, 특징 정보 검색 서버(120)는 특징 정보 DB(121)와 특정 정보 DB 관리부(122)를 포함하여 구성될 수 있다. In addition, the feature information search server 120 may include a feature information DB 121 and a specific information DB management unit 122.

본 발명의 실시예에 따른 소프트웨어 필터링 장치(100)에 의해 수행되는 동작을 설명하면 다음과 같다. The operation performed by the software filtering apparatus 100 according to the embodiment of the present invention will now be described.

소프트웨어가 웹 하드(10)에 업로드되기 위해서는 필터링 처리부(140)를 거쳐야 하며, 필터링 처리부(140)는 소프트웨어 확인부(130)의 명령에 따라 소프트웨어에 대한 업로드를 허용 또는 차단할 수 있다. In order for the software to be uploaded to the web hard 10, the filtering processing unit 140 must pass through the filtering processing unit 140 and the filtering processing unit 140 may allow or block the uploading of the software according to a command of the software checking unit 130.

먼저, 사용자가 소프트웨어에 대한 업로드를 요청하면, 특징 정보 추출부(110)는 대상 소프트웨어에 대한 특징 정보를 추출할 수 있다. First, when a user requests uploading of software, the feature information extracting unit 110 may extract feature information on the target software.

SW에 대한 특징 정보는 설치 파일로부터 추출된 제1 특징 정보와 실행 파일로부터 추출된 제2 및 제3 특징 정보로 구분할 수 있다.The feature information on the SW can be divided into first feature information extracted from the installation file and second and third feature information extracted from the execution file.

설치 파일로부터 추출된 제1 특징 정보는 설치 파일의 구성 요소인 설치 파일의 헤더 정보, 리소스, 설정 파일 정보 및 아이콘 등과 같이 설치 파일을 구성하는 모든 고유한 정보들을 의미할 수 있다. The first characteristic information extracted from the installation file may refer to all the unique information constituting the installation file, such as header information, resource, setting file information and icon of the installation file which is a component of the installation file.

예를 들어, MS Windows의 설치 파일 포맷인 MSI 경우에는, SW 패키지 관리를 위한 정보인 GUIDs(Globally Unique IDentifiers), 각 구성 파일의 크기 및 해시 값 등을 설치 파일의 특징 정보로 사용할 수 있다. For example, in case of MSI, which is an installation file format of MS Windows, Globally Unique IDentifiers (GUIDs) for managing SW packages, the size and hash value of each configuration file, and the like can be used as feature information of the installation file.

또한, 안드로이드의 설치 및 배포 패키지 포맷인 APK 경우에는, 추가로 앱 권한 정보 및 패키지 명 등을 설치 파일의 특징 정보로 사용할 수 있다.Further, in the case of APK, which is an installation and distribution package format of the Android, app authority information and package name can be used as feature information of the installation file.

실행 파일로부터 추출된 제2 및 제3 특징 정보는 실행 파일의 헤더 및 실행 코드의 정보들 중에서 프로그램을 식별 가능한 고유한 정보들을 의미할 수 있다. The second and third feature information extracted from the executable file may mean unique information that can identify the program from the header of the executable file and the information of the executable code.

예를 들어, 실행 파일의 헤더에서 추출 가능한 제2 특징 정보는 특정 정보의 주소, 옵셋, 섹션 및 테이블 크기 등을 포함할 수 있고, 제3 특징 정보는 실행 명령어 및 함수(API 포함)와 관련된 서열 및 빈도, 그래프 정보 등을 포함할 있다. For example, the second feature information extractable from the header of the executable file may include an address, an offset, a section and a table size of specific information, and the third feature information may include a sequence related to an execution command and a function And frequency, graph information, and the like.

특징 정보 추출부(110)는 대상 소프트웨어로부터 제1 특징 정보, 제2 특징 정보 및 제3 특징 정보를 단계 별로 추출할 수 있다. 예를 들어, 제1 특징 정보, 제2 특징 정보 및 제3 특징 정보를 순차적으로 추출하여 특징 정보 DB 관리부(122)에 전달할 수 있다. The feature information extracting unit 110 may extract the first feature information, the second feature information, and the third feature information from the target software step by step. For example, the first feature information, the second feature information, and the third feature information may be sequentially extracted and transmitted to the feature information DB management unit 122.

또한, 특징 정보 추출부(110)는 최초로 특징 정보 DB(121) 구성하거나 특정 주기 별 특징 정보 DB(121) 정보를 업데이트하기 위하여 저작권 보호 대상 SW의 특징 정보를 추출할 수 있다. In addition, the feature information extracting unit 110 may extract the feature information of the copyright-protected SW in order to configure the feature information DB 121 for the first time or to update the feature information DB 121 of the specific period.

특징 정보 DB(121)는 저작권 보호 대상이 되는 SW들의 특징 정보를 저장할 수 있다. 예를 들어, 특징 정보 DB(121)는 SW 들의 특징 정보를 해시값 테이블의 형태로 저장할 수 있다. The feature information DB 121 can store the feature information of the SWs that are subject to copyright protection. For example, the feature information DB 121 may store the feature information of the SWs in the form of a hash value table.

특징 정보 DB 관리부(122)는 특징 정보 추출부(110)로부터 전달받은 특징 정보에 상응하는 정보를 특징 정보 DB(121)에서 검색하고, 검색 결과를 소프트웨어 확인부(130)로 전달할 수 있다. 여기서, 특징 정보 DB 관리부(122)는 전달받은 특징 정보를 해시값으로 변환하고, 해시값에 기반한 검색을 수행할 수 있다. 다만, 해시값으로의 변환 방법은 도 3에서 더욱 상세히 설명하기로 한다. The feature information DB management unit 122 may search the feature information DB 121 for information corresponding to the feature information received from the feature information extraction unit 110 and may transmit the search result to the software verification unit 130. [ Here, the feature information DB management unit 122 may convert the received feature information into a hash value, and perform a search based on the hash value. However, the method of conversion to the hash value will be described in more detail in Fig.

소프트웨어 확인부(130)는 검색 결과를 전달받아 대상 소프트웨어가 합법적인 경로를 통하여 유포되고 있는 소프트웨어인지 판단할 수 있다. 즉, 특징 정보 추출부(110)로부터 전달받은 특징 정보에 상응하는 정보를 특징 정보 DB(121)에서 검색한 경우, 대상 소프트웨어는 불법 소프트웨어인 것으로 판단할 수 있다. 반면에, 특징 정보 추출부(110)로부터 전달받은 특징 정보에 상응하는 정보를 특징 정보 DB(121)에서 검색하지 못한 경우, 대상 소프트웨어는 합법 소프트웨어인 것으로 판단할 수 있다.The software verification unit 130 may receive the search result and determine whether the target software is software distributed through a legitimate path. That is, if information corresponding to the feature information transmitted from the feature information extracting unit 110 is searched from the feature information DB 121, the target software can be determined to be illegal software. On the other hand, if the feature information DB 121 can not retrieve information corresponding to the feature information received from the feature information extracting unit 110, the target software can be determined to be legitimate software.

상세하게는, 소프트웨어 확인부(130)는 특징 정보 DB(121), 제1 특징 정보, 제2 특징 정보 및 제3 특징 정보를 이용하여 단계 별로 대상 소프트웨어가 불법 소프트웨어인지 판단할 수 있다. In detail, the software verification unit 130 may determine whether the target software is illegal software by using the feature information DB 121, the first feature information, the second feature information, and the third feature information.

예를 들어, 소프트웨어 확인부(130)는 특징 정보 DB(121)에 제1 특징 정보에 상응하는 정보가 존재하는 경우, 대상 소프트웨어를 불법 소프트웨어로 판단할 수 있다. For example, when the information corresponding to the first feature information exists in the feature information DB 121, the software verification unit 130 may determine that the target software is illegal software.

또한, 소프트웨어 확인부(130)는 특징 정보 DB(121)에 제1 특징 정보에 상응하는 정보가 존재하지 않는 경우, 대상 소프트웨어에 대한 유포 정보에 기반하여 대상 소프트웨어가 합법 소프트웨어인지 확인할 수 있다. 여기서, 유포 정보는 소프트웨어를 유포한 주체에 대한 정보 및 유포 경로에 대한 정보를 포함할 수 있다. If the information corresponding to the first feature information does not exist in the feature information DB 121, the software verification unit 130 may check whether the target software is legitimate software based on the distribution information about the target software. Here, the dissemination information may include information about the dissemination entity of the software and information about the dissemination path.

대상 소프트웨어가 합법 소프트웨어인 것으로 확인된 경우, 소프트웨어 확인부(130)는 대상 소프트웨어의 특징 정보를 이용하여 특징 정보 DB(121)를 업데이트시킬 수 있다. 예를 들어, 소프트웨어 확인부(130)는 대상 소프트웨어가 합법 소프트웨어이고, 신규 소프트웨어인 경우, 특징 정보 DB 관리부(122)를 통하여 해당 소프트웨어의 특징 정보를 해쉬값의 형태로 특징 정보DB에 등록하도록 명령할 수 있다. If it is determined that the target software is legitimate software, the software verification unit 130 may update the feature information DB 121 using the feature information of the target software. For example, if the target software is legitimate software and the new software is the software, the software verification unit 130 instructs the feature information DB management unit 122 to register feature information of the software in the feature information DB in the form of a hash value can do.

소프트웨어 확인부(130)는 특징 정보 DB(121)로부터 대상 소프트웨어의 특징 정보에 상응하는 정보가 특징 정보 DB(121)에 존재하는지 여부를 알리는 검색 결과를 수신하고, 수신한 검색 결과에 따라 SW 차단 또는 허용 명령을 필터링 처리부(140)로 전송할 수 있다. The software verification unit 130 receives a search result informing whether or not information corresponding to the feature information of the target software exists in the feature information DB 121 from the feature information DB 121, Or the permission command to the filtering processing unit 140. [

따라서, 본 발명의 실시예에 따른 소프트웨어 필터링 장치(100)는 대상 소프트웨어로부터 특징 정보를 단계적으로 추출하고, 추출된 특징 정보에 상응하는 정보를 특징 정보 DB(121)에서 해시값 기반의 검색을 수행함으로써 불법 소프트웨어를 식별할 수 있고, 식별된 불법 소프트웨어가 웹 하드(10) 등에 업로드되는 것을 방지할 수 있다. Accordingly, the software filtering apparatus 100 according to the embodiment of the present invention extracts feature information from the target software step by step, and searches for information corresponding to the extracted feature information in the feature information DB 121 based on the hash value Illegal software can be identified, and the illegal software identified can be prevented from being uploaded to the web hard 10 or the like.

상술한 본 발명의 실시예에 따른 소프트웨어 필터링 장치(100)의 구성을 설명의 편의상 각각의 구성부로 나열하여 설명하였으나, 각 구성부 중 적어도 두 개가 합쳐져 하나의 구성부로 이루어지거나, 하나의 구성부가 복수개의 구성부로 나뉘어져 기능을 수행할 수 있고 이러한 각 구성부의 통합 및 분리된 실시예의 경우도 본 발명의 본질에서 벋어나지 않는 한 본 발명의 권리범위에 포함된다.Although the configuration of the software filtering apparatus 100 according to the embodiment of the present invention has been described above for the sake of convenience, at least two of the configuration units may be combined to form one configuration unit, It is to be understood that the invention is not limited to the disclosed embodiments, but may be embodied in many other specific forms without departing from the spirit or essential characteristics thereof.

또한, 본 발명의 실시예에 따른 소프트웨어 필터링 장치(100)의 동작은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 프로그램 또는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의해 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터로 읽을 수 있는 프로그램 또는 코드가 저장되고 실행될 수 있다.
In addition, the operation of the software filtering apparatus 100 according to the embodiment of the present invention can be implemented as a computer-readable program or code on a computer-readable recording medium. A computer-readable recording medium includes all kinds of recording apparatuses in which data that can be read by a computer system is stored. The computer-readable recording medium may also be distributed and distributed in a networked computer system so that a computer-readable program or code can be stored and executed in a distributed manner.

도 3은 본 발명의 실시예에 따른 소프트웨어 필터링 방법을 설명하기 위한 흐름도이다.3 is a flowchart illustrating a software filtering method according to an embodiment of the present invention.

도 3을 참조하여, 본 발명의 실시예에 따라 단계적으로 수행되는 소프트웨어 필터링 방법을 설명한다. 소프트웨어 필터링 방법은 도 2에 도시된 소프트웨어 필터링 장치(100)에 의해 수행될 수 있다. Referring to FIG. 3, a software filtering method performed step by step according to an embodiment of the present invention will be described. The software filtering method may be performed by the software filtering apparatus 100 shown in Fig.

실행 파일들을 기반으로 소프트웨어를 필터링하기 위해서는, 설치 파일에서 실행 파일을 추출하는 추가적인 과정이 필요하다. 또한, 실행 파일들을 기반으로 하는 경우에는 비교 대상 소프트웨어 각각의 실행 코드를 분석하여 특징 정보를 추출하고, 이들 간의 유사성을 비교하여야 한다. 그러나, 이 과정은 오버헤드가 매우 높기 때문에 빠른 처리 속도가 중요한 필터링에는 부적합한 측면이 있다. To filter software based on executables, additional steps are required to extract the executable from the installation file. In the case of based on executable files, the executable code of each of the comparison target software is analyzed to extract the feature information, and the similarity between them is compared. However, since this process has a very high overhead, it is not suitable for filtering where fast processing speed is important.

상세하게는, 소스코드 기반 유사성 비교 기술의 경우, 특징 정보 분석 및 추출, 특징 정보의 크기 및 비교 오버헤드가 높기 때문에 빠른 시간에 다수의 다수의 식별해야 하는 SW필터링에는 부적합하다. In particular, the source-code-based similarity comparison technique is unsuitable for a large number of SW filters to be identified in a short time because of feature information analysis and extraction, feature information size, and comparison overhead.

더욱이 인터넷을 통해 (불법)유포되는 대부분의 SW들은 소스코드 및 실행 파일 형태가 아니라 설치 파일 형태이기 때문에 소프트웨어 필터링하기 위해서 설치 파일에 포함된 특징 정보를 활용하는 것이 효과적이다. Furthermore, since most of the SWs that are distributed (illegally) through the Internet are not the source code and executable files but the installation files, it is effective to use the feature information included in the installation file to filter the software.

또한, SW의 종류 및 개수가 매우 방대하기 때문에 효율적인 SW 필터링을 위해서는 빠르게 특징 정보를 검색하는 것이 필요하다. In addition, since the types and the number of SWs are very large, it is necessary to quickly search for feature information for effective SW filtering.

이에 본 발명의 실시예에 따른 소프트웨어 필터링 방법은, 이를 개선하기 위해, 설치 파일 수준의 특징 정보와 실행 파일에서 추출이 용이한 특징 정보를 함께 사용한 단계 별 소프트웨어 필터링 기법을 제안한다. Accordingly, a software filtering method according to an embodiment of the present invention proposes a step-by-step software filtering method in which feature information at an installation file level is used together with feature information that can be easily extracted from an executable file.

다만, 본 발명의 실시예에 따르면, 3개의 특징 정보를 이용한 3 단계 필터링을 설명하지만, 각 SW의 설치 파일 및 실행 파일의 포맷에 따라 필터링 단계는 축소 또는 확대될 수 있다.
However, according to the embodiment of the present invention, the three-step filtering using three feature information is explained, but the filtering step can be reduced or enlarged according to the format of the installation file and the executable file of each SW.

1 단계Stage 1

1단계에서는, 추출은 용이하지만 강인성이 낮은 특징 정보를 이용하여 먼저 필터링을 수행한다. In the first step, filtering is performed using feature information that is easy to extract but low in robustness.

상세하게는, 대상 소프트웨어의 설치 파일로부터 제1 특징 정보를 추출하고(S310), 특징 정보 DB(121)에 제1 특징 정보에 상응하는 정보가 존재하는지 판단할 수 있다(S311). 또한, 특징 정보 DB(121)에 제1 특징 정보에 상응하는 정보가 존재하는 경우, 대상 소프트웨어를 불법 소프트웨어로 판단할 수 있다(S360). 여기서, 제1 특징 정보는 설치 파일에 포함된 헤더 정보, 리소스 정보, 파일 설정 정보 및 아이콘 정보 중 적어도 하나를 포함할 수 있으며, 해쉬 함수(hash function)을 통해 산출되어 해시값(hash value)로 표현될 수 있다. More specifically, the first feature information is extracted from the installation file of the target software (S310), and it is determined whether information corresponding to the first feature information exists in the feature information DB 121 (S311). If information corresponding to the first feature information exists in the feature information DB 121, the target software may be determined to be illegal software (S360). Here, the first feature information may include at least one of header information, resource information, file setting information, and icon information included in the installation file, and may be calculated using a hash function and hash value Can be expressed.

또한, 특징 정보 DB(121)에 제1 특징 정보에 상응하는 정보가 존재하지 않는 경우, 대상 소프트웨어에 대한 유포 정보에 기반하여 대상 소프트웨어가 합법 소프트웨어인지 확인할 수 있다(S312). If information corresponding to the first feature information does not exist in the feature information DB 121, it can be determined whether the target software is legitimate software based on the distribution information about the target software (S312).

대상 소프트웨어가 합법 소프트웨어인 것으로 확인된 경우, 대상 소프트웨어의 특징 정보를 이용하여 특징 정보 DB(121)를 업데이트할 수 있다(S340, S341). 상세하게는, 대상 소프트웨어를 신규 SW 로 등록할 지 결정할 수 있고(S340), 결정 결과에 따라 특징 정보 DB(121)를 업데이트할 수 있다(S341). 또한, 대상 소프트웨어가 합법 소프트웨어인 것으로 확인된 경우, 대상 소프트웨어를 합법 SW로 판단하여 웹 하드(10) 등에의 업로드를 허용할 수 있다(S350).If it is determined that the target software is legitimate software, the feature information DB 121 may be updated using the feature information of the target software (S340, S341). More specifically, it is possible to determine whether to register the target software with the new SW (S340), and update the feature information DB 121 according to the determination result (S341). If it is determined that the target software is legitimate software, the target software may be determined to be legitimate software and allowed to be uploaded to the web hard 10 or the like (S350).

예를 들어, 특징 정보 DB(121)에 제1 특징 정보에 상응하는 정보가 존재하지 않는 경우, SW 업로드 및 유포자에 대한 확인을 통해 저작권 보호를 원하는 새로운 SW인지 확인할 수 있다. 또한, 새로운 SW로 확인될 경우, 새로운 SW로부터 특징 정보 추출 및 해시값 산출을 수행하고, 특징 정보 DB(121)에 이를 추가할 수 있다. 더 나아가, 설치 파일의 이름 및 파일 크기 등을 기반으로 불법 SW 유포로 의심되는지 여부를 확인하여 의심되는 경우, 다음의 2 및 3 단계의 필터링을 추가로 수행할 수 있다.
For example, if information corresponding to the first feature information does not exist in the feature information DB 121, it can be confirmed that the new SW is copyright-protected by uploading the SW and checking the distributor. In addition, when the new SW is confirmed, feature information extraction and hash value calculation from the new SW can be performed and it can be added to the feature information DB 121. Furthermore, if it is determined whether suspected illegal SW distribution is suspected based on the name of the installation file and the file size, and if there is a suspicion, the following two and three-step filtering can be additionally performed.

2 단계Step 2

2단계에서는, 설치 파일에서 실행 파일을 추출하여, 실행 파일의 헤더에서 특징 정보(제2 특징 정보)를 추출할 수 있다(S320). 즉, 실행 파일 헤더 수준의 제2 특징 정보는 설치 파일에서 실행 파일을 추출해야 하기 때문에 추출 오버헤드는 더 크지만, 제1 특징 정보와 비교하여 변조되기는 더 어렵다. In the second step, the executable file is extracted from the installation file, and the feature information (second characteristic information) is extracted from the header of the executable file (S320). That is, since the second feature information at the executable file header level has to extract the executable file from the install file, the extraction overhead is larger, but is more difficult to be modulated compared with the first feature information.

다음으로, 특징 정보 DB(121)에 제2 특징 정보에 상응하는 정보가 존재하는지 판단할 수 있고(S321). 특징 정보 DB(121)에 제2 특징 정보에 상응하는 정보가 존재하는 것으로 판단된 경우, 대상 소프트웨어를 불법 소프트웨어로 판단할 수 있다(S360). Next, it is determined whether information corresponding to the second characteristic information exists in the characteristic information DB 121 (S321). If it is determined that information corresponding to the second feature information exists in the feature information DB 121, the target software may be determined to be illegal software (S360).

또한, 특징 정보 DB(121)에 제2 특징 정보에 상응하는 정보가 존재하지 않는 것으로 판단된 경우, 다음의 3 단계를 수행할 수 있다.
If it is determined that information corresponding to the second feature information does not exist in the feature information DB 121, the following three steps can be performed.

3 단계Step 3

3단계에서는, 실행 파일에 포함된 문자열 및 실행 코드를 분석하여 제3 특징 정보를 추출할 수 있다(S330). 제3 특징 정보는 제1 및 제2 특징 정보와 비교하여, 추출 오버헤드가 크지만 변조가 더욱 어렵다. In step 3, the character string included in the executable file and the executable code may be analyzed to extract the third characteristic information (S330). The third feature information is larger than the first and second feature information, but has a large extraction overhead, but is more difficult to be modulated.

또한, 특징 정보 DB(121) 및 제3 특징 정보에 기반하여 산출된 유사도 정보가 미리 설정된 값 이상인지 판단할 수 있고(S331), 유사도 정보가 미리 설정된 값 이상인 경우, 대상 소프트웨어를 불법 소프트웨어로 판단할 수 있다(S360). 반면에, 유사도 정보가 미리 설정된 값 이하인 경우, 대상 소프트웨어를 합법 소프트웨어로 판단할 수 있다(S350). 즉, 3 단계를 통하여, 소프트웨어 필터링 방법을 우회하기 위해 SW를 변조한 경우에도, 우회를 차단할 수 있다. It is also possible to determine whether the similarity information calculated based on the characteristic information DB 121 and the third characteristic information is equal to or greater than a preset value (S331). If the similarity information is equal to or larger than a preset value, (S360). On the other hand, if the similarity degree information is less than a preset value, the target software can be judged as legitimate software (S350). That is, even if the SW is modulated to bypass the software filtering method through the third step, the bypass can be blocked.

예를 들어, 유사도 정보는 0~1 사이의 값을 가질 수 있으며, 유사도 정보가 0일 경우 SW가 완전히 다른 경우를 나타내고, 유사도 정보가 1일 경우 SW가 완전히 동일 경우를 의미할 수 있다. 따라서, 미리 설정된 값은 0~1 사이의 값 중에서 설정될 수 있다.
For example, the similarity information may have a value between 0 and 1. If the similarity information is 0, the SW is completely different, and when the similarity information is 1, the SW is completely the same. Therefore, the preset value can be set to a value between 0 and 1.

상술한 단계 별 SW 필터링에 사용되는 정보를 예를 들어 설명하면 다음과 같다. Hereinafter, the information used for the stepwise SW filtering will be described as an example.

1. MS Windows의 설치 파일 포맷으로 유포되는 SW에 대한 필터링1. Filtering SWs that are distributed in the MS Windows installation file format

(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이더라도 버전 별로 라이선스가 다른 경우가 있기 때문에 필요하다. (1) Step 1: Use GUIDs in the MSI file, the installation file format of MS Windows. GUIDs have upgrade code, product code, and package code. Upgrade code can be used to filter based on SW product type because same value is same between different versions of same SW. The product code is the same when the major version is different, but the value is different, and the Minor version is different. Since the package code has different values for each version, it is possible to filter version level of SW using Product code and Package code. That is, even if the same SW is used, the licenses may be different for each version.

(2) 2단계: MS Windows의 실행 파일 포맷인 PE(Portable Executable)의 헤더에 포함된 정보들 중에서 AddressOfEntryPoint, SizeofInitializedData, SizeOfCode, DataDirectory[2].Size 이상 4개의 정보를 제2 특징 정보로 사용할 수 있다. 각 특징 정보의 의미는 아래와 같으며, 실행 파일이 메모리에 로드되어 실행되는데 중요한 정보들이다. 그렇기 때문에 필터링 시스템 우회를 위해, 아래 정보들을 변조할 경우 프로그램 실행이 불가능할 수 있기 때문에 쉽게 변조하기 어렵다.(2) Step 2: Four pieces of information, such as AddressOfEntryPoint, SizeofInitializedData, SizeOfCode, and DataDirectory [2] .Size, among the information included in the header of a portable executable (PE), which is an executable file format of MS Windows, have. The meaning of each feature information is as follows. It is important information that the executable file is loaded into memory and executed. Therefore, in order to bypass the filtering system, modulating the following information makes it difficult to modulate easily because the program execution may not be possible.

- AddressOfEntryPoint: 실행파일의 엔트리포인트 주소- AddressOfEntryPoint: the entry point address of the executable file

- SizeofInitializedData: 초기화된 데이터 섹션의 크기- SizeofInitializedData: Size of initialized data section

- SizeOfCode: 실행코드 전체 크기- SizeOfCode: total size of executable code

- DataDirectory[2].Size: 리소스 테이블의 크기- DataDirectory [2] .Size: Size of resource table

(3) 3단계: MS Windows의 실행 파일의 실행 코드(.text 섹션) 분석을 통해 추출 가능한 특징 정보 또는 실행 파일에 포함된 문자열을 제3 특징 정보로 사용할 수 있다. 실행코드 분석을 통해 추출 가능한 특징 정보는, 바이너리 형태의 실행코드에서는 명령어 및 API(Application Platform Interface)의 서열(sequence) 및 빈도(frequency) 기반의 특징 정보와 함수간 호출 그래프(Call graph), 제어흐름 그래프(Control-flow graph) 기반의 특징 정보, 메모리 사용 패턴 기반 특징 정보 등일 수 있다. 실행 파일에 포함된 문자열은 소스코드의 문자열 상수와 컴파일 단계에서 추가되는 문자열 등이 있으며, 소스코드의 특징을 잘 반영할 수 있기 때문에 매우 유용한 특징 정보이다. 또한 이러한 특징 정보들은 프로그램의 기능과 관련되었기 때문에 변조가 어렵기 때문에 신뢰성 및 강인성이 높다.
(3) Step 3: Extractable feature information through analysis of executable code (.text section) of MS Windows executable file or a string included in the executable file can be used as the third feature information. Feature information that can be extracted through analysis of executable code is composed of sequence and frequency based feature information of command and API (Application Platform Interface), call graph between functions, control Flow graph-based feature information, memory usage pattern-based feature information, and the like. The strings included in the executable file are string constants of the source code and the strings added at the compilation step, and are very useful feature information because they can reflect the characteristics of the source code well. Also, since these feature information is related to the function of the program, it is difficult to modulate and therefore reliability and robustness are high.

2. 안드로이드 앱(SW)에 대한 필터링2. Filtering for Android apps (SW)

(1) 1단계: 안드로이드의 설치 파일 포맷인 APK 파일의 구성요소 중 실행 파일인 classes.dex(Dex 포맷)을 제외한 나머지 구성요소에서 추출 가능한 특징 정보를 사용할 수 있다. (1) Step 1: Extractable feature information can be used from the components other than the classes.dex (Dex format), which is an executable file of the APK file, which is an installation file format of the Android.

특히, AndroidManifest.xml 파일은 xml 형태로 분석 및 추출이 용이하며, 포함된 정보들은 각 앱의 특징적인 정보들이기 때문에 제1 특징 정보로 적합하다. 또한, 패키지명, 앱 이름, 앱 버전, 호환 가능한 SDK 버전 정보, 권한 정보 등이 1단계에서 적용될 수 있다. 더 나아가, manifest.mf 파일은 APK를 포함된 모든 구성요소들의 SHA1 해시 값을 저장하고 있는데, 이 역시 제1 특징 정보로 적합하다. 즉, 앱 버전 간 구분까지 가능하여 필터링에 매우 효과적이다. In particular, the AndroidManifest.xml file is easy to analyze and extract in the form of xml, and the included information is suitable as the first feature information because it is characteristic information of each app. In addition, package name, app name, app version, compatible SDK version information, and authority information can be applied in the first step. Further, the manifest.mf file stores the SHA1 hash value of all the components including the APK, which is also suitable as the first feature information. In other words, it is possible to distinguish between versions of an app, which is very effective for filtering.

(2) 2단계: 안드로이드 앱의 실행 파일(바이트 코드)인 classes.dex 파일에서 추출 가능한 특징 정보를 사용할 수 있다. 예를 들어, 메서드 리스트, 클래스 멤버 변수 등이 사용될 수 있다. 메서드 리스트는 앱의 기능과 관련이 있고, 클래스 멤버 변수는 각 클래스의 구현과 관련 있기 때문에 쉽게 변조가 어렵다. 그렇기 때문에 이러한 특징 정보를 기반으로 하는 경우, 필터링을 우회하기는 어렵다.
(2) Step 2: Extractable feature information can be used from classes.dex file which is executable file (bytecode) of Android app. For example, method lists, class member variables, and so on can be used. The method list is related to the functionality of the app, and the class member variables are related to the implementation of each class, making it difficult to modulate. Therefore, if you are based on this feature information, it is difficult to bypass filtering.

본 발명의 실시예에 따른 제1 특징 정보와 제2 특징 정보는 해쉬 함수(hash function)을 통해 산출되어 해시값(hash value)로 표현될 수 있다. 따라서, 특징 정보는 특징 정보 DB(121)에서 해시 테이블(hash table)에 기반하여 빠른 검색이 수행될 수 있다. The first feature information and the second feature information according to an embodiment of the present invention may be calculated through a hash function and expressed as a hash value. Therefore, the feature information can be quickly retrieved based on the hash table in the feature information DB 121. [

즉, 특징 정보의 검색은 빠르고 효과적인 검색을 위해, 해시 테이블을 기반으로 할 수 있다. 해시 테이블 기반의 검색은 특징 정보로부터 해시값을 산출하여, 특징 정보 DB(121)에 포함되는 해시 테이블의 인덱스로 사용하기 때문에 검색 속도가 매우 빠르다. 특징 정보 DB(121)는 해시 테이블은 해시값을 인덱스로 사용하는 해시 테이블뿐만 아니라, 각 SW의 명칭 및 파일 크기 등과 같은 추가적인 정보들을 함께 저장할 수 있다.
That is, the retrieval of feature information can be based on a hash table for fast and efficient retrieval. The search based on the hash table is very fast because the hash value is calculated from the feature information and used as the index of the hash table included in the feature information DB 121. The feature information DB 121 can store not only a hash table using an hash value as an index, but also additional information such as a name of a respective SW and a file size.

해시 값 기반의 인덱스 산출 과정을 예를 들어 설명하면 다음과 같다. An index calculation process based on a hash value will be described as an example.

(1) 소프트웨어 A로부터 추출한 특징 정보를 다음과 같이 가정할 수 있다.(1) Feature information extracted from software A can be assumed as follows.

특징 정보 1: 002205fc, 특징정보 2: 002df890, 특징정보 3: 00011b64, 특징정보 4: 002de8c0Feature information 1: 002205fc, Feature information 2: 002df890, Feature information 3: 00011b64, Feature information 4: 002de8c0

(2) 0->16, a->10, b->11, c->12, d->13, e->14, f->15, 와 같이, 16진수의 a ~ f를 10 진수로 변환할 수 있다. (0은 연산에서 0나눗셈이 될 가능성이 있으므로 16으로 변환)(2) The hexadecimal numbers a through f are converted into decimal numbers, such as 0-> 16, a-> 10, b-> 11, c-> 12, d-> . ≪ / RTI > (0 is converted to 16 because there is a possibility of 0 division in the operation)

변환 결과로 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)이 산출될 수 있다16 16 2 2 16 5 15 12 (feature information 1), 16 16 2 13 15 8 9 0 (feature information 2), 0 0 0 1 1 11 6 4 (feature information 3), 0 0 2 13 14 8 12 0 (feature information 4) can be calculated

(3) 위 (2)의 결과로 산출된 8자리 값을 합산한다. (3) Sum the 8 digit values calculated as a result of (2) above.

(예: 16 16 2 2 16 5 15 12 -> 16+16+2+2+16+5+15+12 = 84)(Eg 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)와 같이 나타난다. The results of performing these calculations are shown as 84 (feature information 1), 79 (feature information 2), 23 (feature information 3), and 49 (feature information 4).

(4) 인덱스 값의 범위를 제한하기 위해, 다수의 특징 정보에 대한 (3)의 연산 결과 중, 1개를 제외한 나머지 값을 곱하고, 곱한 결과를 제외한 1개의 값으로 나누어, 각 SW 별로 1개의 값으로 통합한다. (4) To limit the range of the index value, the remaining values except for one of the calculation results of (3) are multiplied, and the result is divided into one value excluding the multiplication result, and one Value.

이러한 연산 결과로, (84×79×23)/49 = 3114이 산출된다. As a result of this calculation, (84 x 79 x 23) / 49 = 3114 is calculated.

(5) MOD(나머지 값) 연산으로 테이블 크기로 나눈 나머지 값(해시값)을 인덱스로 사용할 수 있다. (5) You can use the remaining value (hash value) divided by the table size by the MOD (residual value) operation as an index.

즉, 이러한 연산결과로, 296 => 296번째 테이블에 삽입될 수 있다.
That is, as a result of such an operation, it can be inserted into the 296 => 296th table.

더 나아가, 저성능의 SW 필터링 시스템이 무분별하게 개발 및 운영되는 것을 막기 위해서는 SW 필터링에 대한 성능을 평가하는 것이 필요하다. Furthermore, it is necessary to evaluate the performance of SW filtering in order to prevent undesirable development and operation of a low-performance SW filtering system.

SW 필터링에 대한 성능평가 기준 관련 용어 및 개념 정의는 다음과 같다.Performance evaluation criteria for SW filtering Related terms and concept definitions are as follows.

- 변형 SW: 필터링 시스템의 성능평가를 위해, 정상 SW을 고의적으로 변형(변조)한 SW를 의미하며, 강인성 평가에 주로 사용된다.- Deformation SW: This is a SW that intentionally deforms (modulates) the normal SW to evaluate the performance of the filtering system. It is mainly used for robustness evaluation.

- 원본 SW: 변형 SW의 변형 전의 정상 SW를 의미한다.- Original SW: means normal SW before deformation of the deformation SW.

- 인식 : 변형 SW에서 추출된 특징 정보가 원본 SW의 특징 정보를 정확하게 찾은 결과 값을 말한다. - Recognition: The feature information extracted from the transformed SW is the result of finding the feature information of the original SW accurately.

- 오인식 : 변형 SW에서 추출된 특징 정보가 원본 SW의 특징 정보를 정확하지 않은 정보를 나타내는 것으로, 다른 SW의 정보를 찾을 경우를 나타낸다. - Crash: The feature information extracted from the transformed SW represents the information of the original SW which is not accurate, and indicates the case where information of other SW is searched.

- 불인식 : 변형 SW에서 추출된 특징 정보가 원본 SW의 특징 정보를 찾지 못하고 없다는 정보를 나타낸다. - Non-recognition: Information indicating that the feature information extracted from the transform SW does not find the feature information of the original SW.

- 강인성(Robustness): 변형된 SW이 원본 SW을 인식하는 정도를 나타낸다. Robustness: Indicates the degree to which the modified SW recognizes the original SW.

- 일관성(Consistency): 반복적으로 수행된 특징 정보 추출 및 인식에 대한 일관성 정도의 나타낸다. - Consistency: indicates the degree of consistency in repeated feature information extraction and recognition.

- 시스템 사용률(System performance): 특징 정보 추출 및 인식 결과 회신 등에 사용한 시스템 자원의 사용률을 나타낸다. - System performance: It shows the usage rate of system resources used for extracting feature information and returning recognition result.

- 특징 정보량(Feature Size): 원본 SW에서 추출하는 특징 정보의 크기를 타낸다. - Feature Size: It shows the size of feature information extracted from original SW.

- 추출 및 검색비교 속도(Search Speed): 변형 SW의 특징 정보 추출 및 원본 SW 특징 정보 DB(121) 검색/비교 시간을 나타낸다.
- Extraction and Search Comparison Speed (Search Speed): It represents feature information extraction of modified SW and search / comparison time of original SW feature information DB 121.

상기 용어 및 개념 정의에 기반하여 소프트웨어 필터링 방법의 성능평가를 위한 세부 평가 방법을 설명하면 다음과 같다. A detailed evaluation method for evaluating the performance of the software filtering method based on the above-mentioned terms and concept definitions will be described as follows.

(1) 강인성에 대한 평가 방법(1) Evaluation method for robustness

테스트 PC를 이용하여 변형 SW에서 특징 정보를 추출한 후, 변형 SW에서 추출한 특징 정보에 상응하는 정보를 특징 정보 DB(121)에서 인식 결과 값을 전달 받는다. 전달받은 결과 값을 분석하여 인식, 불인식, 오인식을 계산할 수 있다. After extracting the feature information from the modified SW using the test PC, the recognition result information is received from the feature information DB 121 in accordance with the feature information extracted from the modified SW. The recognition result, the non-recognition, and the misrecognition can be calculated by analyzing the received result.

안드로이드 앱에서 변형 SW의 변형 항목의 예시는 아래 표 1과 같다. An example of the transformation items of the transform SW in the Android app is shown in Table 1 below.

구 분division 변형 항목Variant 강인성Toughness 클래스 추가Adding a class 명령어/문자열 추가Add command / string AndroidManifest.xml 권한 추가Add AndroidManifest.xml permission 단순 재패키징Simple repackaging 앱 확장자 ZIP으로 변경Change app extension to ZIP 리소스 변경Change resource

(2) 일관성에 대한 평가 방법(2) Evaluation method for consistency

임의의 원본 SW 10개를 선정하여, 특징 정보를 30회 반복 추출한다. 추출된 특징 정보 간의 동일 여부를 확인하기 위하여 바이너리 데이터 비교를 수행한다. 인식, 오인식, 불인식 각각의 변형 SW를 10개씩 임의로 선정하여, 30회 반복 인식한 결과 값을 특징 정보 DB(121)서버에서 회신받을 수 있다. 10 arbitrary original SWs are selected, and the feature information is extracted 30 times. The binary data comparison is performed to confirm whether or not the extracted feature information is the same. Each of the deformation SWs of recognition, false recognition, and non-recognition is arbitrarily selected for each of 10 pieces, and the result of repeatedly recognizing 30 times can be received from the feature information DB 121 server.

(3) 시스템 사용률에 대한 평가 방법 (3) Evaluation method of system utilization rate

원본 SW에 대한 특징 정보 추출, 강인성에 대한 평가 수행 시 변형 SW에 대한 특징 정보 추출 및 인식 결과 회신에 사용되는 CPU와 메모리에 대한 정보를 5초 단위로 평균한 값을 저장하여 결과를 분석한다. 표준평가도구, OS에 필요한 기본 프로그램 등이 활용될 수 있다. When the feature information extraction and robustness evaluation of the original SW are performed, the result of analyzing the result is stored by the average value of the CPU and memory used for the feature information extraction and the recognition result reply in the modified SW in 5 second units. Standard evaluation tools, basic programs necessary for the OS, and the like.

(4) 특징정보량에 대한 평가 방법(4) Evaluation method for characteristic information amount

원본 및 변형 SW에서 추출된 특징 정보 파일을 원본 및 변조 SW의 전체 사이즈로 나누어 계산한다. The feature information file extracted from the original and modified SW is divided by the total size of the original and the modulation SW.

(5) 추출 및 검색/비교 속도(5) extraction and search / comparison speed

강인성에 대한 평가 수행 시 생성되는 정보로 변형 SW의 특징 정보를 추출하여 특징 정보 DB(121)에서 인식 여부의 결과 값을 리턴하는데 소요되는 변형 SW 특징 정보 추출 및 검색/비교 시간을 측정한다.
The characteristic information of the transformed SW is extracted from information generated when the robustness evaluation is performed, and the transformed SW feature information extraction and search / comparison time required to return the result of recognition or not is measured in the feature information DB 121.

상술한 본 발명의 실시예에 따른 소프트웨어 필터링 장치 및 방법은, 설치 파일에 포함된 특징 정보를 활용하여 소프트웨어를 필터링할 수 있기 때문에, 빠른 시간에 다수의 소프트웨어를 식별하여 필터링할 수 있다. Since the software filtering apparatus and method according to the embodiment of the present invention can filter the software using the feature information included in the installation file, it is possible to identify and filter a plurality of software in a short time.

또한, 단계 별 필터링을 통하여 불법을 유통되는 소프트웨어를 정확하게 인식하여 차단할 수 있다. In addition, through the step-by-step filtering, the illegally distributed software can be correctly recognized and blocked.

더 나아가, 소프트웨어 필터링에 대한 평가 방법 및 기준을 제공하여 저성능의 SW 필터링 시스템이 무분별하게 개발 및 운영되는 것을 막을 수 있다. Furthermore, by providing evaluation methods and criteria for software filtering, it is possible to prevent a low performance SW filtering system from being developed and operated indiscriminately.

상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.It will be apparent to those skilled in the art that various modifications and variations can be made in the present invention without departing from the spirit or scope of the present invention as defined by the following claims It can be understood that

10: 웹 하드 11: 설치 파일 DB
21: SW#1 22: SW#2
23: SW#N 100: 소프트웨어 필터링 장치
110: 특징 정보 추출부 120: 특징 정보 검색 서버
121: 특징 정보 DB 122: 특징 정보 DB 관리부
130: 소프트웨어 확인부 140: 필터링 처리부
10: WebHard 11: Setup File DB
21: SW # 1 22: SW # 2
23: SW # N 100: Software filtering device
110: feature information extraction unit 120: feature information search server
121: feature information DB 122: feature information DB management unit
130: software verification unit 140: filtering processing unit

Claims (17)

소프트웨어 필터링 장치에 의해 수행되는 방법에 있어서,
대상 소프트웨어의 설치 파일로부터 제1 특징 정보를 추출하는 단계;
특징 정보 DB에 상기 제1 특징 정보에 상응하는 정보가 존재하는지 판단하는 단계; 및
상기 특징 정보 DB에 상기 제1 특징 정보에 상응하는 정보가 존재하는 경우, 상기 대상 소프트웨어를 불법 소프트웨어로 판단하고
상기 특징 정보 DB에 상기 제1 특징 정보에 상응하는 정보가 존재하지 않는 경우,
상기 대상 소프트웨어에 대한 유포 정보에 기반하여 상기 대상 소프트웨어가 합법 소프트웨어인지 확인하는 단계를 포함하는,
소프트웨어 필터링 방법.
A method performed by a software filtering device,
Extracting first feature information from an installation file of the target software;
Determining whether information corresponding to the first feature information exists in the feature information DB; And
If the information corresponding to the first feature information exists in the feature information DB, the target software is determined to be illegal software
If there is no information corresponding to the first feature information in the feature information DB,
Determining whether the target software is legitimate software based on the distribution information for the target software;
Software filtering method.
청구항 1에 있어서,
상기 제1 특징 정보는,
상기 설치 파일에 포함된 헤더 정보, 리소스 정보, 파일 설정 정보 및 아이콘 정보 중 적어도 하나를 포함하는 것을 특징으로 하는,
소프트웨어 필터링 방법.
The method according to claim 1,
Wherein the first feature information comprises:
And at least one of header information, resource information, file setting information, and icon information included in the installation file.
Software filtering method.
청구항 1에 있어서,
상기 대상 소프트웨어가 합법 소프트웨어인 것으로 확인된 경우, 상기 대상 소프트웨어의 특징 정보를 이용하여 상기 특징 정보 DB를 업데이트하는 단계를 포함하는 것을 특징으로 하는,
소프트웨어 필터링 방법.
The method according to claim 1,
And updating the feature information DB using the feature information of the target software when the target software is determined to be legitimate software.
Software filtering method.
청구항 1에 있어서,
상기 대상 소프트웨어가 합법 소프트웨어로 확인되지 않은 경우,
상기 대상 소프트웨어의 실행 파일로부터 제2 특징 정보를 추출하는 단계; 및
상기 특징 정보 DB에 상기 제2 특징 정보에 상응하는 정보가 존재하는 경우,
상기 대상 소프트웨어를 불법 소프트웨어로 판단하는 단계를 포함하는,
소프트웨어 필터링 방법.
The method according to claim 1,
If the target software is not identified as legitimate software,
Extracting second characteristic information from an executable file of the target software; And
If there is information corresponding to the second feature information in the feature information DB,
Determining that the target software is illegal software;
Software filtering method.
청구항 4에 있어서,
상기 제2 특징 정보는,
상기 실행 파일의 헤더에 포함된 정보인 것을 특징으로 하는,
소프트웨어 필터링 방법.
The method of claim 4,
Wherein the second feature information comprises:
And the information included in the header of the executable file.
Software filtering method.
청구항 4에 있어서,
상기 제1 특징 정보 및 상기 제2 특징 정보는,
해쉬 함수(hash function)을 통해 산출되어 해시값(hash value)로 표현되는 것을 특징으로 하는,
소프트웨어 필터링 방법.
The method of claim 4,
Wherein the first feature information and the second feature information include at least one of:
Is calculated through a hash function and expressed as a hash value.
Software filtering method.
청구항 4에 있어서,
상기 특징 정보 DB에 상기 제2 특징 정보에 상응하는 정보가 존재하지 않는 경우,
상기 대상 소프트웨어의 실행 파일로부터 제3 특징 정보를 추출하는 단계; 및
상기 특징 정보 DB 및 상기 제3 특징 정보에 기반하여 산출된 유사도 정보가 미리 설정된 값 이상인 경우, 상기 대상 소프트웨어를 불법 소프트웨어로 판단하는 단계를 포함하는,
소프트웨어 필터링 방법.
The method of claim 4,
If there is no information corresponding to the second feature information in the feature information DB,
Extracting third feature information from an executable file of the target software; And
And judging the target software as illegal software when the similarity information calculated based on the characteristic information DB and the third characteristic information is equal to or larger than a preset value.
Software filtering method.
청구항 7에 있어서,
상기 제3 특징 정보는,
상기 실행 파일에 포함된 문자열 및 실행 코드를 분석하여 추출되는 것을 특징으로 하는,
소프트웨어 필터링 방법.
The method of claim 7,
Wherein the third feature information comprises:
And extracts a character string and an execution code included in the executable file,
Software filtering method.
청구항 7에 있어서,
상기 특징 정보 DB 및 상기 제3 특징 정보에 기반하여 산출된 유사도 정보가 미리 설정된 값 이하인 경우,
상기 대상 소프트웨어를 합법 소프트웨어로 판단하는 단계를 더 포함하는 것을 특징으로 하는,
소프트웨어 필터링 방법.
The method of claim 7,
If the similarity information calculated based on the feature information DB and the third feature information is less than a predetermined value,
Further comprising the step of determining that the target software is legitimate software,
Software filtering method.
청구항 1에 있어서,
소프트웨어 필터링에 대한 성능을 평가하는 단계를 더 포함하는 것을 특징으로 하는,
소프트웨어 필터링 방법.
The method according to claim 1,
Further comprising evaluating performance against software filtering. ≪ RTI ID = 0.0 >
Software filtering method.
청구항 10에 있어서,
상기 소프트웨어 필터링에 대한 성능을 평가하는 단계는,
필터링에 대한 강인성(robustness), 일관성(consistency), 시스템 사용률(system performance), 특징 정보량(feature size) 및 속도(speed) 중 적어도 하나를 산출하여 성능 평가를 수행하는 것을 특징으로 하는,
소프트웨어 필터링 방법.
The method of claim 10,
Wherein evaluating performance for the software filtering comprises:
Wherein the performance evaluation is performed by calculating at least one of robustness, consistency, system performance, feature size, and speed for filtering.
Software filtering method.
특징 정보 DB;
대상 소프트웨어로부터 제1 특징 정보, 제2 특징 정보 및 제3 특징 정보를 단계 별로 추출하는 특징 정보 추출부;
상기 특징 정보 DB, 상기 제1 특징 정보, 상기 제2 특징 정보 및 상기 제3 특징 정보를 이용하여 단계 별로 상기 대상 소프트웨어가 불법 소프트웨어인지 판단하되,
상기 특징 정보 DB에 상기 제1 특징 정보에 상응하는 정보가 존재하지 않는 경우,
상기 대상 소프트웨어에 대한 유포 정보에 기반하여 상기 대상 소프트웨어가 합법 소프트웨어인지 확인하는 소프트웨어 확인부를 포함하는,
소프트웨어 필터링 장치.
Feature information DB;
A feature information extracting unit for extracting the first feature information, the second feature information, and the third feature information from the target software step by step;
Determining whether the target software is illegal software by using the feature information DB, the first feature information, the second feature information, and the third feature information,
If there is no information corresponding to the first feature information in the feature information DB,
And a software verification unit for verifying that the target software is legitimate software, based on distribution information about the target software.
Software filtering device.
청구항 12에 있어서,
상기 소프트웨어 확인부에 의해 불법 소프트웨어로 판단된 해당 대상 소프트웨어를 필터링하는 필터링 처리부를 더 포함하는 것을 특징으로 하는,
소프트웨어 필터링 장치.
The method of claim 12,
Further comprising a filtering processing unit for filtering the target software determined to be illegal software by the software checking unit,
Software filtering device.
청구항 12에 있어서,
상기 특징 정보 DB로부터 상기 제1 특징 정보, 상기 제2 특징 정보 및 상기 제3 특징 정보 중 적어도 하나에 상응하는 정보를 추출하여 상기 소프트웨어 확인부로 전달하는 특징 정보 DB 관리부를 더 포함하는 것을 특징으로 하는,
소프트웨어 필터링 장치.
The method of claim 12,
Further comprising a feature information DB management unit for extracting information corresponding to at least one of the first feature information, the second feature information, and the third feature information from the feature information DB and transmitting the extracted information to the software confirmation unit ,
Software filtering device.
청구항 14에 있어서,
상기 특징 정보 DB 관리부는,
상기 대상 소프트웨어가 신규한 소프트웨어인 경우,
상기 대상 소프트웨어의 특징 정보를 이용하여 상기 특징 정보 DB를 업데이트하는 것을 특징으로 하는,
소프트웨어 필터링 장치.
15. The method of claim 14,
The feature information DB management unit,
If the target software is new software,
And the feature information DB is updated using the feature information of the target software.
Software filtering device.
청구항 12에 있어서,
상기 제1 특징 정보는, 상기 대상 소프트웨어의 설치 파일에 포함된 헤더 정보, 리소스 정보, 파일 설정 정보 및 아이콘 정보 중 적어도 하나를 포함하고,
상기 제2 특징 정보는, 상기 대상 소프트웨어의 실행 파일의 헤더에 포함된 정보이며,
상기 제3 특징 정보는,
상기 대상 소프트웨어의 실행 파일에 포함된 문자열 및 실행 코드를 분석하여 추출되는 것을 특징으로 하는,
소프트웨어 필터링 장치.
The method of claim 12,
Wherein the first feature information includes at least one of header information, resource information, file setting information, and icon information included in an installation file of the target software,
Wherein the second characteristic information is information included in a header of an executable file of the target software,
Wherein the third feature information comprises:
And extracting a character string and an executable code included in the executable file of the target software.
Software filtering device.
청구항 16에 있어서,
상기 제1 특징 정보 및 상기 제2 특징 정보는,
해쉬 함수(hash function)을 통해 산출되어 해시값(hash value)로 표현되는 것을 특징으로 하는,
소프트웨어 필터링 장치.
18. The method of claim 16,
Wherein the first feature information and the second feature information include at least one of:
Is calculated through a hash function and expressed as a hash value.
Software filtering device.
KR1020140052288A 2014-04-30 2014-04-30 Apparatus and method for software filtering KR101654973B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140052288A KR101654973B1 (en) 2014-04-30 2014-04-30 Apparatus and method for software filtering

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140052288A KR101654973B1 (en) 2014-04-30 2014-04-30 Apparatus and method for software filtering

Publications (2)

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

Family

ID=54604808

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140052288A KR101654973B1 (en) 2014-04-30 2014-04-30 Apparatus and method for software filtering

Country Status (1)

Country Link
KR (1) KR101654973B1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101122950B1 (en) 2004-04-30 2012-03-15 마이크로소프트 코포레이션 Method and system for limiting software updates
KR101277517B1 (en) 2012-12-04 2013-06-21 주식회사 안랩 Apparatus and method for detecting falsified application

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100918626B1 (en) * 2007-08-02 2009-09-25 주식회사 플랜티넷 Method for verifying application programs and controlling the execution thereof
KR101304307B1 (en) * 2012-02-17 2013-09-11 숭실대학교산학협력단 Method for determining android mobile application, Method and Apparatus for identifying illegal copied android mobile application using the same

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101122950B1 (en) 2004-04-30 2012-03-15 마이크로소프트 코포레이션 Method and system for limiting software updates
KR101277517B1 (en) 2012-12-04 2013-06-21 주식회사 안랩 Apparatus and method for detecting falsified application

Also Published As

Publication number Publication date
KR20150125249A (en) 2015-11-09

Similar Documents

Publication Publication Date Title
JP6088713B2 (en) Vulnerability discovery device, vulnerability discovery method, and vulnerability discovery program
US9614867B2 (en) System and method for detection of malware on a user device using corrected antivirus records
JP5802848B2 (en) Computer-implemented method, non-temporary computer-readable medium and computer system for identifying Trojanized applications (apps) for mobile environments
KR101337874B1 (en) System and method for detecting malwares in a file based on genetic map of the file
CN102656593B (en) Detection and response is carried out to using the Malware of chained file
CN104769598B (en) System and method for detecting unauthorized applications
EP2693356A2 (en) Detecting pirated applications
KR20190031030A (en) Method and system for identifying an open source software package based on binary files
KR20190037895A (en) Method and system for identifying an open source software package based on binary files
US10685298B2 (en) Mobile application compatibility testing
US11868465B2 (en) Binary image stack cookie protection
KR101624387B1 (en) Method for software asset management based on software birthmark and apparatus thereof
KR101604891B1 (en) Method for detection software piracy and theft using partial information of executable file and apparatus using the same
KR101654973B1 (en) Apparatus and method for software filtering
KR101643454B1 (en) Method and apparatus for evaluating performance of software filtering
Kim et al. Detecting illegally-copied apps on android devices
TWI715647B (en) System and method for ip fingerprinting and ip dna analysis
KR101594643B1 (en) Method for detecting software piracy and theft based on partial information of executable file, and apparatus therefor
KR20190056664A (en) System and method for protecting font copyrights
CN111104671B (en) Application identification determining method and application detection method
KR101842267B1 (en) Apparatus for categorizing unknown softwares using mld and method thereof
CN117278258A (en) Supply chain attack detection method, system, electronic device and storage medium
KR101494431B1 (en) System, device, method and computer readable recording medium for detecting manipulation of a mobile application file
KR20150007904A (en) Method for detecting smart-phone app piracy and theft based on characteristic of software, and apparatus therefor
CN103164651B (en) Extract apparatus and method and the virus detection system of virus document condition code

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