JP6734479B2 - 特定支援装置、特定支援方法及び特定支援プログラム - Google Patents
特定支援装置、特定支援方法及び特定支援プログラム Download PDFInfo
- Publication number
- JP6734479B2 JP6734479B2 JP2019525199A JP2019525199A JP6734479B2 JP 6734479 B2 JP6734479 B2 JP 6734479B2 JP 2019525199 A JP2019525199 A JP 2019525199A JP 2019525199 A JP2019525199 A JP 2019525199A JP 6734479 B2 JP6734479 B2 JP 6734479B2
- Authority
- JP
- Japan
- Prior art keywords
- difference
- source code
- unit
- correction
- vulnerability
- 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
- G06F21/562—Static detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/74—Reverse engineering; Extracting design information from source code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/033—Test or assess software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Virology (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Stored Programmes (AREA)
Description
まず、図1を用いて、第1の実施形態に係る特定支援装置の構成について説明する。図1は、第1の実施形態に係る特定支援装置の構成の一例を示す図である。図1に示すように、特定支援装置10は、学習部100及び候補算出部200を有する。
図1に示すように、学習部100は、修正箇所特定部101、変換部102、差分抽出部103及び特徴算出部104を有する。また、学習部100は、脆弱性修正の前後の差分の特徴120、及び、脆弱性修正以外の修正の前後の差分の特徴130を算出する。以下では、学習部100が、修正前ソースコード21及び修正後ソースコード22を用いて、差分の特徴120を算出する処理について説明する。同様の処理により、学習部100は、修正前ソースコード31及び修正後ソースコード32を用いて、差分の特徴130を算出することができる。
図1に示すように、候補算出部200は、変換部201、差分抽出部202、類似度算出部203及び一覧生成部204を有する。また、候補算出部200は、脆弱性修正箇所候補250を生成する。
図8〜10を用いて、特定支援装置10の処理の流れについて説明する。図8〜10は、第1の実施形態に係る特定支援装置の処理の流れを示すフローチャートである。図8に示すように、学習部100は、脆弱性修正が行われた修正箇所、及び脆弱性修正以外の修正が行われた修正箇所の差分の特徴を学習する(ステップS100)。次に、候補算出部200は、学習部100によって学習された差分の特徴を基に、修正が行われた実行ファイルから、脆弱性修正が行われた箇所の候補を算出する(ステップS200)。
差分抽出部103は、ソースコードから変換された実行ファイルと、当該ソースコードに脆弱性修正が行われた後のソースコードから変換された実行ファイルと、の当該脆弱性修正が行われた箇所の差分を抽出する。また、特徴算出部104は、差分抽出部103によって抽出された差分の特徴を算出する。また、差分抽出部202は、ソースコードから変換された実行ファイルと、当該ソースコードに修正が行われた後のソースコードから変換された実行ファイルと、の所定の箇所の差分を抽出する。また、類似度算出部203は、差分抽出部202によって算出された所定の箇所の差分の、特徴算出部104によって算出された脆弱性修正が行われた箇所の差分の特徴との類似度を算出する。本実施形態によれば、解析者は修正前後の実行ファイルを特定支援装置10入力するだけでよく、脆弱性修正箇所の候補の特定に関する処理は、特定支援装置10によって自動的に行われる。このため、本実施形態によれば、解析者の知見や経験が不足している場合であっても、ソフトウェアの解析を行うことができる。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示のように構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。さらに、各装置にて行われる各処理機能は、その全部又は任意の一部が、CPU(Central Processing Unit)及び当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
一実施形態として、特定支援装置10は、パッケージソフトウェアやオンラインソフトウェアとして上記の脆弱性修正箇所の特定支援を実行する特定支援プログラムを所望のコンピュータにインストールさせることによって実装できる。例えば、上記の特定支援プログラムを情報処理装置に実行させることにより、情報処理装置を特定支援装置10として機能させることができる。ここで言う情報処理装置には、デスクトップ型又はノート型のパーソナルコンピュータが含まれる。また、その他にも、情報処理装置にはスマートフォン、携帯電話機やPHS(Personal Handyphone System)等の移動体通信端末、さらには、PDA(Personal Digital Assistant)等のスレート端末等がその範疇に含まれる。
21、31 修正前ソースコード
22、32 修正後ソースコード
41 修正前実行ファイル
42 修正後実行ファイル
100 学習部
101 修正箇所特定部
102、201 変換部
103、202 差分抽出部
104 特徴算出部
120、130 差分の特徴
200 候補算出部
203 類似度算出部
204 一覧生成部
250 脆弱性修正箇所候補
Claims (8)
- ソースコードから変換された実行ファイルと、当該ソースコードに脆弱性修正が行われた後のソースコードから変換された実行ファイルと、の当該脆弱性修正が行われた箇所の差分を抽出する第1の差分抽出部と、
前記第1の差分抽出部によって抽出された差分の特徴を算出する特徴算出部と、
ソースコードから変換された実行ファイルと、当該ソースコードに修正が行われた後のソースコードから変換された実行ファイルと、の所定の箇所の差分を抽出する第2の差分抽出部と、
前記第2の差分抽出部によって算出された前記所定の箇所の差分の、前記特徴算出部によって算出された前記脆弱性修正が行われた箇所の差分の特徴との類似度を算出する類似度算出部と、
前記類似度算出部により算出された修正箇所ごとの類似度を出力する出力部と、
を有することを特徴とする特定支援装置。 - 前記第1の差分抽出部及び前記第2の差分抽出部は、関数単位、基本ブロック単位、機械語命令単位のいずれかの単位で差分を抽出することを特徴とする請求項1に記載の特定支援装置。
- 前記第1の差分抽出部及び前記第2の差分抽出部は、機械語命令、呼出し関数、即値のうちの少なくともいずれかに基づいて差分を抽出することを特徴とする請求項1又は2に記載の特定支援装置。
- 前記第1の差分抽出部及び前記第2の差分抽出部は、修正前後の実行ファイルにおける、所定の情報の出現回数の差分を抽出することを特徴とする請求項1から3のいずれか1項に記載の特定支援装置。
- 前記第1の差分抽出部及び前記第2の差分抽出部は、修正前後の実行ファイルにおける、所定の情報の増加分及び減少分を差分として抽出することを特徴とする請求項1から3のいずれか1項に記載の特定支援装置。
- 前記第1の差分抽出部は、ソースコードから変換された実行ファイルと、当該ソースコードに脆弱性修正以外の修正が行われた後のソースコードから変換された実行ファイルと、の当該脆弱性修正以外の修正が行われた箇所の差分をさらに抽出し、
前記類似度算出部は、前記第2の差分抽出部によって算出された前記所定の箇所の差分の、前記特徴算出部によって算出された前記脆弱性修正以外の修正が行われた箇所の差分の特徴との類似度を算出することを特徴とする請求項1から5のいずれか1項に記載の特定支援装置。 - コンピュータによって実行される特定支援方法であって、
ソースコードから変換された実行ファイルと、当該ソースコードに脆弱性修正が行われた後のソースコードから変換された実行ファイルと、の当該脆弱性修正が行われた箇所の差分を抽出する第1の差分抽出工程と、
前記第1の差分抽出工程によって抽出された差分の特徴を算出する特徴算出工程と、
ソースコードから変換された実行ファイルと、当該ソースコードに修正が行われた後のソースコードから変換された実行ファイルと、の所定の箇所の差分を抽出する第2の差分抽出工程と、
前記第2の差分抽出工程によって算出された前記所定の箇所の差分の、前記特徴算出工程によって算出された前記脆弱性修正が行われた箇所の差分の特徴との類似度を算出する類似度算出工程と、
前記類似度算出工程により算出された修正箇所ごとの類似度を出力する出力工程と、
を含んだことを特徴とする特定支援方法。 - コンピュータを、請求項1から6のいずれか1項に記載の特定支援装置として機能させるための特定支援プログラム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017116668 | 2017-06-14 | ||
JP2017116668 | 2017-06-14 | ||
PCT/JP2018/017787 WO2018230194A1 (ja) | 2017-06-14 | 2018-05-08 | 特定支援装置、特定支援方法及び特定支援プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2018230194A1 JPWO2018230194A1 (ja) | 2019-11-07 |
JP6734479B2 true JP6734479B2 (ja) | 2020-08-05 |
Family
ID=64660442
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019525199A Active JP6734479B2 (ja) | 2017-06-14 | 2018-05-08 | 特定支援装置、特定支援方法及び特定支援プログラム |
Country Status (3)
Country | Link |
---|---|
US (1) | US11609998B2 (ja) |
JP (1) | JP6734479B2 (ja) |
WO (1) | WO2018230194A1 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111310178B (zh) * | 2020-01-20 | 2024-01-23 | 武汉理工大学 | 跨平台场景下的固件漏洞检测方法及系统 |
US11768945B2 (en) * | 2020-04-07 | 2023-09-26 | Allstate Insurance Company | Machine learning system for determining a security vulnerability in computer software |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090013405A1 (en) * | 2007-07-06 | 2009-01-08 | Messagelabs Limited | Heuristic detection of malicious code |
KR20090065977A (ko) * | 2007-12-18 | 2009-06-23 | 삼성에스디에스 주식회사 | 파일의 바이러스 감염여부 판정방법 |
JP5009186B2 (ja) | 2008-02-12 | 2012-08-22 | 日本電信電話株式会社 | 逆アセンブル方法および逆アセンブル装置 |
US20090313700A1 (en) * | 2008-06-11 | 2009-12-17 | Jefferson Horne | Method and system for generating malware definitions using a comparison of normalized assembly code |
US8479188B2 (en) * | 2010-07-08 | 2013-07-02 | Microsoft Corporation | Binary code change vulnerability prioritization |
TWI515598B (zh) * | 2013-08-23 | 2016-01-01 | 國立交通大學 | 產生純化惡意程式的方法、偵測惡意程式之方法及其系統 |
CN106575337A (zh) * | 2014-08-20 | 2017-04-19 | 日本电信电话株式会社 | 漏洞发现装置、漏洞发现方法以及漏洞发现程序 |
US10043009B2 (en) * | 2014-09-24 | 2018-08-07 | Intel Corporation | Technologies for software basic block similarity analysis |
CN108140091B (zh) * | 2015-10-09 | 2021-12-31 | 日本电信电话株式会社 | 漏洞发现装置、漏洞发现方法以及存储介质 |
US10289843B2 (en) * | 2016-04-06 | 2019-05-14 | Nec Corporation | Extraction and comparison of hybrid program binary features |
-
2018
- 2018-05-08 WO PCT/JP2018/017787 patent/WO2018230194A1/ja active Application Filing
- 2018-05-08 JP JP2019525199A patent/JP6734479B2/ja active Active
- 2018-05-08 US US16/619,986 patent/US11609998B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
WO2018230194A1 (ja) | 2018-12-20 |
US20200097664A1 (en) | 2020-03-26 |
JPWO2018230194A1 (ja) | 2019-11-07 |
US11609998B2 (en) | 2023-03-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10534914B2 (en) | Vulnerability finding device, vulnerability finding method, and vulnerability finding program | |
US11775414B2 (en) | Automated bug fixing using deep learning | |
CN110287702B (zh) | 一种二进制漏洞克隆检测方法及装置 | |
US11048798B2 (en) | Method for detecting libraries in program binaries | |
KR101893090B1 (ko) | 취약점 정보 관리 방법 및 그 장치 | |
CN107615240B (zh) | 用于分析二进制文件的基于生物序列的方案 | |
RU2722692C1 (ru) | Способ и система выявления вредоносных файлов в неизолированной среде | |
CN108563951B (zh) | 病毒检测方法及装置 | |
NL2029110B1 (en) | Method and system for static analysis of executable files | |
KR102073068B1 (ko) | 어플리케이션 클러스터링 방법 및 그 장치 | |
US11250129B2 (en) | Method and system for determining affiliation of software to software families | |
JP6734479B2 (ja) | 特定支援装置、特定支援方法及び特定支援プログラム | |
JP2017004123A (ja) | 判定装置、判定方法および判定プログラム | |
US20210389977A1 (en) | System migration support apparatus, system migration support method and program | |
US20200042911A1 (en) | Mobile application compatibility testing | |
Zhang et al. | An optimized positive-unlabeled learning method for detecting a large scale of malware variants | |
US20230040982A1 (en) | Attack information processing apparatus, attack information processing method, and computer readable medium | |
WO2023072002A1 (zh) | 开源组件包的安全检测方法及装置 | |
Zou et al. | SCVD: A new semantics-based approach for cloned vulnerable code detection | |
KR102415494B1 (ko) | 에뮬레이션 기반의 임베디드 기기 취약점 점검 및 검증 방법 | |
WO2022172437A1 (ja) | 影響推定装置、影響推定方法、および、影響推定プログラム | |
JP7509244B2 (ja) | 生成装置、生成方法および生成プログラム | |
JPWO2018116522A1 (ja) | 判定装置、判定方法及び判定プログラム | |
CN116578979B (zh) | 一种基于代码特征的跨平台二进制代码匹配方法及系统 | |
RU2778979C1 (ru) | Способ и система кластеризации исполняемых файлов |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20190531 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20200428 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20200526 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20200707 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20200709 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6734479 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |