KR101963822B1 - 프로그램 분류 방법 및 장치 - Google Patents
프로그램 분류 방법 및 장치 Download PDFInfo
- Publication number
- KR101963822B1 KR101963822B1 KR1020170078565A KR20170078565A KR101963822B1 KR 101963822 B1 KR101963822 B1 KR 101963822B1 KR 1020170078565 A KR1020170078565 A KR 1020170078565A KR 20170078565 A KR20170078565 A KR 20170078565A KR 101963822 B1 KR101963822 B1 KR 101963822B1
- Authority
- KR
- South Korea
- Prior art keywords
- bit
- vector
- program
- vectors
- group
- Prior art date
- Legal status (The legal status 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 status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/35—Clustering; Classification
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
Abstract
Description
도 2는 본 발명의 실시예에 따른 프로그램 분류 방법을 설명하기 위한 순서도이다.
도 3은 본 발명의 실시예에 따른 프로그램 분류 방법에서 복수 개의 프로그램 비트벡터를 생성하는 방법을 설명하기 위한 순서도이다.
도 4a 및 도 4b는 본 발명의 실시예에 따른 프로그램 분류 방법에서 복수 개의 프로그램 비트벡터를 생성하는 방법을 설명하기 위한 도면이다.
도 5는 본 발명의 실시예에 따른 프로그램 분류 방법에서 복수 개의 유효 프로그램 비트벡터를 생성하는 방법을 설명하기 위한 순서도이다.
도 6a 및 도 6b는 본 발명의 실시예에 따른 프로그램 분류 방법에서 복수 개의 유효 프로그램 비트벡터를 생성하는 방법을 설명하기 위한 도면이다.
도 7 및 도 8은 본 발명의 실시예에 따른 프로그램 분류 방법에서 그룹 특성 벡터 집합을 생성하는 방법을 설명하기 위한 순서도이다.
도 9는 본 발명의 실시예에 따른 프로그램 분류 방법에서 그룹 특성 벡터 집합을 생성하기 위해 제1 유사도, 제2 유사도 및 제3 유사도를 산출하는 방법을 설명하기 위한 도면이다.
도 10은 본 발명의 실시예에 따른 프로그램 분류 방법에서 분류 대상 프로그램을 분류하는 방법을 설명하기 위한 순서도이다.
도 11은 본 발명의 실시예에 따른 프로그램 분류 방법에서 분류 대상 프로그램을 분류하기 위한 포함률을 산출하는 방법을 설명하기 위한 도면이다.
61: 제1 프로그램 비트벡터 62: 제2 프로그램 비트벡터
63: 제n 프로그램 비트벡터 64: 함수 빈도수 벡터
65: 비트벡터 마스크 66: 제i 프로그램 비트벡터
67: 제i 유효 프로그램 비트벡터
91: 제1 비트벡터 92: 제2 비트벡터
111: 제1 그룹 특성 벡터 112: 제1 분류 대상 프로그램 비트벡터
1000: 프로그램 분류 장치 1100: 비트벡터 생성부
1200: 유효 비트벡터 생성부 1300: 그룹 특성 벡터 집합 생성부
1400: 프로그램 분류부
Claims (13)
- 비트벡터 생성부가, 미리 저장된 복수 개의 프로그램 각각에 포함된 모든 함수 또는 모든 기본 블록(basic block)을 나타내는 복수 개의 프로그램 비트벡터(bit vector)를 상기 복수 개의 프로그램 별로 각각 생성하는 단계;
유효 비트벡터 생성부가, 상기 복수 개의 프로그램 비트벡터에 기초하여 비트벡터 마스크(mask)를 생성하고, 상기 복수 개의 프로그램 비트벡터 각각에 상기 비트벡터 마스크를 적용하여 복수 개의 유효 프로그램 비트벡터를 생성하는 단계;
그룹 특성 벡터 집합 생성부가, 상기 복수 개의 유효 프로그램 비트벡터에 기설정된 조건을 적용하여 결정된 비트벡터인 복수 개의 그룹 특성 벡터를 포함하는 그룹 특성 벡터 집합을 생성하는 단계; 및
프로그램 분류부가, 미리 저장된 적어도 하나의 분류 대상 프로그램과 상기 복수 개의 그룹 특성 벡터를 비교하여 상기 적어도 하나의 분류 대상 프로그램을 분류하는 단계를 포함하되,
상기 복수 개의 프로그램 비트벡터는,
상기 복수 개의 프로그램 각각에 포함된 모든 함수 또는 모든 기본 블록의 존재 여부를 나타내는 벡터로, 상기 모든 함수 또는 모든 기본 블록 각각에 대응되는 식별 번호에 대응되는 비트의 비트값을 설정하여 생성된 것을 특징으로 하는, 프로그램 분류 방법. - 제1항에 있어서,
상기 복수 개의 프로그램 비트벡터를 상기 복수 개의 프로그램 별로 각각 생성하는 단계는,
상기 복수 개의 프로그램 각각에 포함된 모든 함수 또는 모든 기본 블록 각각에 해시함수를 적용하여 상기 모든 함수 또는 모든 기본 블록 각각을 임의의 비트열로 변환하는 단계;
상기 모든 함수 또는 모든 기본 블록 각각에 대응되는 상기 임의의 비트열 각각에서 기설정된 개수의 연속된 비트열인 연속 비트열을 각각 추출하는 단계;
추출된 상기 연속 비트열 각각을 기설정된 조건에 따라 변환하여 상기 모든 함수 또는 모든 기본 블록 각각에 대응되는 식별 번호를 생성하는 단계; 및
상기 복수 개의 프로그램 각각에 대응되며 기설정된 개수의 비트를 포함하는 복수 개의 비트벡터 상에서 상기 식별 번호에 각각 대응되는 비트의 비트값을 설정하여 상기 복수 개의 프로그램 비트벡터를 각각 생성하는 단계를 포함하는, 프로그램 분류 방법. - 제1항에 있어서,
상기 복수 개의 유효 프로그램 비트벡터를 생성하는 단계는,
상기 복수 개의 프로그램 비트벡터 상호간에 서로 대응되는 비트의 비트값을 모두 합산하여 상기 모든 함수 또는 모든 기본 블록 각각의 빈도수를 나타내는 함수 빈도수 벡터를 생성하는 단계;
상기 함수 빈도수 벡터에 포함된 상기 모든 함수 또는 모든 기본 블록 각각의 빈도수에 기설정된 제1 임계값을 적용하여 상기 비트벡터 마스크를 생성하는 단계; 및
상기 복수 개의 프로그램 비트벡터 각각과 상기 비트벡터 마스크를 서로 AND 연산하여 상기 복수 개의 유효 프로그램 비트벡터를 생성하는 단계를 포함하는, 프로그램 분류 방법. - 제3항에 있어서,
상기 비트벡터 마스크는,
상기 모든 함수 또는 모든 기본 블록 각각의 빈도수 중 상기 기설정된 제1 임계값보다 큰 빈도수에 대응되는 함수 또는 기본 블록에 대한 비트의 비트값을 "1"로 설정하고, 상기 기설정된 제1 임계값보다 작은 빈도수에 대응되는 함수 또는 기본 블록에 대한 비트의 비트값을 "0"으로 설정한 비트벡터인, 프로그램 분류 방법. - 제1항에 있어서,
상기 그룹 특성 벡터 집합이 공집합인 경우,
상기 그룹 특성 벡터 집합을 생성하는 단계는,
상기 복수 개의 유효 프로그램 비트벡터 중 선택된 하나의 유효 프로그램 비트벡터를 그룹 특성 벡터로 결정하여 상기 그룹 특성 벡터 집합에 저장하는 단계를 포함하는, 프로그램 분류 방법. - 제1항에 있어서,
상기 그룹 특성 벡터 집합이 미리 저장된 적어도 하나의 그룹 특성 벡터를 포함하는 경우,
상기 그룹 특성 벡터 집합을 생성하는 단계는,
상기 적어도 하나의 그룹 특성 벡터 중 i 번째 그룹 특성 벡터와 상기 복수 개의 유효 프로그램 비트벡터 중 j 번째 유효 프로그램 비트벡터 상호 간의 제1 유사도를 산출하는 단계;
상기 제1 유사도에 기설정된 제2 임계값을 적용하여 상기 i 번째 그룹 특성 벡터와 상기 j 번째 유효 프로그램 비트벡터가 서로 유사한지 여부를 판단하는 제1 판단 단계; 및
상기 제1 판단 결과에 기초하여 상기 그룹 특성 벡터 집합에 저장될 그룹 특성 벡터를 결정하는 제1 결정 단계를 포함하는, 프로그램 분류 방법. - 제6항에 있어서,
상기 i 번째 그룹 특성 벡터와 상기 j 번째 유효 프로그램 비트벡터가 서로 비유사한 경우,
상기 제1 결정 단계는,
상기 j 번째 유효 프로그램 비트벡터를 그룹 특성 벡터로 결정하여 상기 그룹 특성 벡터 집합에 저장하는 단계를 포함하는, 프로그램 분류 방법. - 제6항에 있어서,
상기 i 번째 그룹 특성 벡터와 상기 j 번째 유효 프로그램 비트벡터가 서로 유사한 경우,
상기 제1 결정 단계는,
상기 i 번째 그룹 특성 벡터와 상기 j 번째 유효 프로그램 비트벡터를 서로 AND 연산하여 공통 비트벡터를 생성하는 단계;
상기 i 번째 그룹 특성 벡터와 상기 공통 비트벡터 상호 간의 제2 유사도 및 상기 j 번째 유효 프로그램 비트벡터와 상기 공통 비트벡터 상호 간의 제3 유사도를 각각 산출하는 단계;
상기 제2 유사도 및 상기 제3 유사도 각각에 상기 제2 임계값을 적용하여 상기 i 번째 그룹 특성 벡터와 상기 공통 비트벡터가 서로 유사한지 여부 및 상기 j 번째 유효 프로그램 비트벡터와 상기 공통 비트벡터가 서로 유사한지 여부를 각각 판단하는 제2 판단 단계; 및
상기 제2 판단 결과에 기초하여 상기 그룹 특성 벡터 집합에 저장될 그룹 특성 벡터를 결정하는 제2 결정 단계를 포함하는, 프로그램 분류 방법. - 제8항에 있어서,
상기 i 번째 그룹 특성 벡터와 상기 공통 비트벡터가 서로 유사하고, 상기 j 번째 유효 프로그램 비트벡터와 상기 공통 비트벡터가 서로 유사한 경우,
상기 제2 결정 단계는,
상기 i 번째 그룹 특성 벡터를 상기 그룹 특성 벡터 집합에서 삭제하는 단계; 및
상기 공통 비트벡터를 그룹 특성 벡터로 결정하여 상기 그룹 특성 벡터 집합에 저장하는 단계를 포함하는, 프로그램 분류 방법. - 제8항에 있어서,
상기 i 번째 그룹 특성 벡터와 상기 공통 비트벡터가 서로 비유사하고, 상기 j 번째 유효 프로그램 비트벡터와 상기 공통 비트벡터가 서로 유사한 경우,
상기 제2 결정 단계는,
상기 공통 비트벡터를 그룹 특성 벡터로 결정하여 상기 그룹 특성 벡터 집합에 저장하는 단계를 포함하는, 프로그램 분류 방법. - 제8항에 있어서,
상기 i 번째 그룹 특성 벡터와 상기 공통 비트벡터가 서로 유사하고, 상기 j 번째 유효 프로그램 비트벡터와 상기 공통 비트벡터가 서로 비유사한 경우,
상기 제2 결정 단계는,
상기 i 번째 그룹 특성 벡터를 상기 그룹 특성 벡터 집합에서 삭제하는 단계; 및
상기 j 번째 유효 프로그램 비트벡터 및 상기 공통 비트벡터 각각을 그룹 특성 벡터로 결정하여 상기 그룹 특성 벡터 집합에 저장하는 단계를 포함하는, 프로그램 분류 방법. - 제1항에 있어서,
상기 적어도 하나의 분류 대상 프로그램을 분류하는 단계는,
상기 복수 개의 그룹 특성 벡터 각각에 대한 상기 적어도 하나의 분류 대상 프로그램 각각의 포함률을 산출하는 단계; 및
상기 포함률에 기설정된 제3 임계값을 적용하여 상기 적어도 하나의 분류 대상 프로그램 각각이 속하는 프로그램 그룹을 결정하는 단계를 포함하는, 프로그램 분류 방법. - 미리 저장된 복수 개의 프로그램 각각에 포함된 모든 함수 또는 모든 기본 블록(basic block)을 나타내는 복수 개의 프로그램 비트벡터(bit vector)를 상기 복수 개의 프로그램 별로 각각 생성하는 비트벡터 생성부;
상기 복수 개의 프로그램 비트벡터에 기초하여 비트벡터 마스크(mask)를 생성하고, 상기 복수 개의 프로그램 비트벡터 각각에 상기 비트벡터 마스크를 적용하여 복수 개의 유효 프로그램 비트벡터를 생성하는 유효 비트벡터 생성부;
상기 복수 개의 유효 프로그램 비트벡터에 기설정된 조건을 적용하여 결정된 비트벡터인 복수 개의 그룹 특성 벡터를 포함하는 그룹 특성 벡터 집합을 생성하는 그룹 특성 벡터 집합 생성부; 및
미리 저장된 적어도 하나의 분류 대상 프로그램과 상기 복수 개의 그룹 특성 벡터를 비교하여 상기 적어도 하나의 분류 대상 프로그램을 분류하는 프로그램 분류부를 포함하되,
상기 복수 개의 프로그램 비트벡터는,
상기 복수 개의 프로그램 각각에 포함된 모든 함수 또는 모든 기본 블록의 존재 여부를 나타내는 벡터로, 상기 모든 함수 또는 모든 기본 블록 각각에 대응되는 식별 번호에 대응되는 비트의 비트값을 설정하여 생성된 것을 특징으로 하는, 프로그램 분류 장치.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170025313 | 2017-02-27 | ||
KR20170025313 | 2017-02-27 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20180099422A KR20180099422A (ko) | 2018-09-05 |
KR101963822B1 true KR101963822B1 (ko) | 2019-04-01 |
Family
ID=63594494
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020170078565A Active KR101963822B1 (ko) | 2017-02-27 | 2017-06-21 | 프로그램 분류 방법 및 장치 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101963822B1 (ko) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8660370B1 (en) | 2009-04-30 | 2014-02-25 | Google Inc. | Principal component analysis based seed generation for clustering analysis |
JP2016509309A (ja) * | 2013-02-01 | 2016-03-24 | シンボリック アイオー コーポレーション | データを格納および取得するための方法およびシステム |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100572660B1 (ko) | 2004-06-30 | 2006-04-24 | 부산대학교 산학협력단 | 프로그램 소스의 표절 탐색 방법 및 이를 이용한프로그래밍 과제의 채점 시스템 |
-
2017
- 2017-06-21 KR KR1020170078565A patent/KR101963822B1/ko active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8660370B1 (en) | 2009-04-30 | 2014-02-25 | Google Inc. | Principal component analysis based seed generation for clustering analysis |
JP2016509309A (ja) * | 2013-02-01 | 2016-03-24 | シンボリック アイオー コーポレーション | データを格納および取得するための方法およびシステム |
Also Published As
Publication number | Publication date |
---|---|
KR20180099422A (ko) | 2018-09-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109445834B (zh) | 基于抽象语法树的程序代码相似性快速比较方法 | |
CN111428044B (zh) | 多模态获取监管识别结果的方法、装置、设备及存储介质 | |
Dash et al. | Are ChatGPT and deepfake algorithms endangering the cybersecurity industry? A review | |
KR102010468B1 (ko) | 악성코드 머신 러닝 분류 모델 검증 장치 및 방법 | |
CN109005145B (zh) | 一种基于自动特征抽取的恶意url检测系统及其方法 | |
CN109635298B (zh) | 团体状态识别方法、装置、计算机设备及存储介质 | |
JP5611852B2 (ja) | 公開情報のプライバシー保護装置、公開情報のプライバシー保護方法およびプログラム | |
CN113221747B (zh) | 一种基于隐私保护的隐私数据处理方法、装置及设备 | |
Qiao et al. | Malware classification based on multilayer perception and Word2Vec for IoT security | |
CN109614795B (zh) | 一种事件感知的安卓恶意软件检测方法 | |
CN114429222A (zh) | 一种模型的训练方法、装置及设备 | |
CN114726823B (zh) | 一种基于生成对抗网络的域名生成方法、装置和设备 | |
Pham et al. | Exploring efficiency of character-level convolution neuron network and long short term memory on malicious URL detection | |
Karampidis et al. | File type identification-computational intelligence for digital forensics | |
Feng et al. | Hrs: A hybrid framework for malware detection | |
Assefa et al. | Intelligent phishing website detection using deep learning | |
Kumar et al. | Detection of recurring vulnerabilities in computing services | |
CN113407495A (zh) | 一种基于simhash的文件相似度判定方法及系统 | |
CN113961704B (zh) | 一种基于文本的风险防控处理方法、装置及设备 | |
CN105243327B (zh) | 一种文件安全处理方法 | |
CN105468972B (zh) | 一种移动终端文件检测方法 | |
An et al. | Deep learning based webshell detection coping with long text and lexical ambiguity | |
KR101963822B1 (ko) | 프로그램 분류 방법 및 장치 | |
CN108717511A (zh) | 一种Android应用威胁度评估模型建立方法、评估方法及系统 | |
CN113221717A (zh) | 一种基于隐私保护的模型构建方法、装置及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
PA0109 | Patent application |
Patent event code: PA01091R01D Comment text: Patent Application Patent event date: 20170621 |
|
PA0201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
PE0902 | Notice of grounds for rejection |
Comment text: Notification of reason for refusal Patent event date: 20180828 Patent event code: PE09021S01D |
|
PG1501 | Laying open of application | ||
E701 | Decision to grant or registration of patent right | ||
PE0701 | Decision of registration |
Patent event code: PE07011S01D Comment text: Decision to Grant Registration Patent event date: 20190324 |
|
GRNT | Written decision to grant | ||
PR0701 | Registration of establishment |
Comment text: Registration of Establishment Patent event date: 20190325 Patent event code: PR07011E01D |
|
PR1002 | Payment of registration fee |
Payment date: 20190326 End annual number: 3 Start annual number: 1 |
|
PG1601 | Publication of registration | ||
PR1001 | Payment of annual fee |
Payment date: 20220223 Start annual number: 4 End annual number: 4 |
|
PR1001 | Payment of annual fee |
Payment date: 20230227 Start annual number: 5 End annual number: 5 |
|
PR1001 | Payment of annual fee |
Payment date: 20240228 Start annual number: 6 End annual number: 6 |