JP7800678B2 - 修正装置、修正方法及び修正プログラム - Google Patents
修正装置、修正方法及び修正プログラムInfo
- Publication number
- JP7800678B2 JP7800678B2 JP2024526079A JP2024526079A JP7800678B2 JP 7800678 B2 JP7800678 B2 JP 7800678B2 JP 2024526079 A JP2024526079 A JP 2024526079A JP 2024526079 A JP2024526079 A JP 2024526079A JP 7800678 B2 JP7800678 B2 JP 7800678B2
- Authority
- JP
- Japan
- Prior art keywords
- regular expression
- regular
- correction
- unit
- strings
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/554—Detecting local intrusion or implementing counter-measures involving event detection and direct action
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/034—Test or assess a computer or a system
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Machine Translation (AREA)
Description
まず、図1を用いて、第1の実施形態に係る修正装置の構成について説明する。図1は、第1の実施形態に係る修正装置の構成の一例を示す図である。図1に示すように、修正装置10は、ソースコードの入力を受け付け、入力されたソースコードに含まれる正規表現の修正を行い、修正後の正規表現を出力する。
1: Import re
2: if input() == “example”:
3: s = “example.com”
4: else:
5: s = “example.com/abc”
6: r = ‘http://’ + s + “.*/index[.]html”
7: re.match(r, input())
図9は、第1の実施形態に係る修正装置の処理の流れを示すフローチャートである。図9に示すように、まず、修正装置10は、ソースコードの入力を受け付ける(ステップS11)。
これまで説明してきたように、修正装置10の抽出部131は、ソースコードから第1の正規表現を抽出する。判定部132は、第1の正規表現が、ReDoSに対して脆弱であることを示す条件を満たすか否かを判定する。合成部134は、第1の正規表現を基に、条件を満たさない第2の正規表現を合成する。これにより、実世界で利用されている正規表現の脆弱性を効率良く修正することができる。例えば、事前にソースコードから正規表現を抽出しておく処理を省略することができる。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示のように構成されていることを要しない。すなわち、各装置の分散及び統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散又は統合して構成することができる。さらに、各装置にて行われる各処理機能は、その全部又は任意の一部が、CPU(Central Processing Unit)及び当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。なお、プログラムは、CPUだけでなく、GPU等の他のプロセッサによって実行されてもよい。
一実施形態として、修正装置10は、パッケージソフトウェアやオンラインソフトウェアとして上記の修正処理を実行する修正プログラムを所望のコンピュータにインストールさせることによって実装できる。例えば、上記の修正プログラムを情報処理装置に実行させることにより、情報処理装置を修正装置10として機能させることができる。ここで言う情報処理装置には、デスクトップ型又はノート型のパーソナルコンピュータが含まれる。また、その他にも、情報処理装置にはスマートフォン、携帯電話機やPHS(Personal Handyphone System)等の移動体通信端末、さらには、PDA(Personal Digital Assistant)等のスレート端末等がその範疇に含まれる。
11 インタフェース部
12 記憶部
13 制御部
121 置換候補構文情報
131 抽出部
132 判定部
133 生成部
134 合成部
Claims (5)
- ソースコードを構文解析木に変換し、前記構文解析木から抽出された変数を基に復元した正規表現を第1の正規表現として抽出する抽出部と、
前記第1の正規表現が、ReDoSに対して脆弱であることを示す条件を満たすか否かを判定する判定部と、
前記第1の正規表現を基に、前記条件を満たさない第2の正規表現を合成する合成部と、
を有することを特徴とする修正装置。 - 第1の正規表現によって受理される文字列の集合である第1の集合、及び、前記第1の正規表現によって拒否される文字列の集合である第2の集合を生成する生成部をさらに有し、
前記合成部は、前記第1の正規表現における範囲文字を所定の構文に置換した正規表現であって、前記第1の集合の文字列を受理し、かつ前記第2の集合の文字列を拒否するような正規表現である第2の正規表現を合成することを特徴とする請求項1に記載の修正装置。 - 前記生成部は、前記第1の正規表現を非決定性有限オートマトンに変換し、前記非決定性有限オートマトン上のパスのうち、受理状態に到達するパスにより得られた文字列の集合を前記第1の集合として生成し、前記非決定性有限オートマトン上のパスのうち、受理状態に到達しないパスにより得られた文字列の集合を前記第2の集合として生成することを特徴とする請求項2に記載の修正装置。
- 修正装置によって実行される修正方法であって、
ソースコードを構文解析木に変換し、前記構文解析木から抽出された変数を基に復元した正規表現を第1の正規表現として抽出する抽出工程と、
前記第1の正規表現が、ReDoSに対して脆弱であることを示す条件を満たすか否かを判定する判定工程と、
前記第1の正規表現を基に、前記条件を満たさない第2の正規表現を合成する合成工程と、
を含むことを特徴とする修正方法。 - ソースコードを構文解析木に変換し、前記構文解析木から抽出された変数を基に復元した正規表現を第1の正規表現として抽出する抽出ステップと、
前記第1の正規表現が、ReDoSに対して脆弱であることを示す条件を満たすか否かを判定する判定ステップと、
前記第1の正規表現を基に、前記条件を満たさない第2の正規表現を合成する合成ステップと、
をコンピュータに実行させることを特徴とする修正プログラム。
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/JP2022/022968 WO2023238239A1 (ja) | 2022-06-07 | 2022-06-07 | 修正装置、修正方法及び修正プログラム |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPWO2023238239A1 JPWO2023238239A1 (ja) | 2023-12-14 |
| JP7800678B2 true JP7800678B2 (ja) | 2026-01-16 |
Family
ID=89118095
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2024526079A Active JP7800678B2 (ja) | 2022-06-07 | 2022-06-07 | 修正装置、修正方法及び修正プログラム |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US20250322065A1 (ja) |
| JP (1) | JP7800678B2 (ja) |
| WO (1) | WO2023238239A1 (ja) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2025220143A1 (ja) * | 2024-04-16 | 2025-10-23 | Ntt株式会社 | 情報処理装置、情報処理方法、及び情報処理プログラム |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2007052625A (ja) | 2005-08-18 | 2007-03-01 | Hitachi Software Eng Co Ltd | ソースコード脆弱性検査装置 |
| US11200144B1 (en) | 2017-09-05 | 2021-12-14 | Amazon Technologies, Inc. | Refinement of static analysis of program code |
| WO2022113308A1 (ja) | 2020-11-27 | 2022-06-02 | 日本電信電話株式会社 | 修正装置、修正方法及び修正プログラム |
Family Cites Families (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8683590B2 (en) * | 2008-10-31 | 2014-03-25 | Alcatel Lucent | Method and apparatus for pattern matching for intrusion detection/prevention systems |
| CN110928793B (zh) * | 2019-11-28 | 2023-07-28 | Oppo广东移动通信有限公司 | 一种正则表达式检测方法、装置及计算机可读存储介质 |
| CN113139183B (zh) * | 2020-01-17 | 2023-12-29 | 深信服科技股份有限公司 | 一种检测方法、装置、设备及存储介质 |
-
2022
- 2022-06-07 US US18/869,861 patent/US20250322065A1/en active Pending
- 2022-06-07 WO PCT/JP2022/022968 patent/WO2023238239A1/ja not_active Ceased
- 2022-06-07 JP JP2024526079A patent/JP7800678B2/ja active Active
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2007052625A (ja) | 2005-08-18 | 2007-03-01 | Hitachi Software Eng Co Ltd | ソースコード脆弱性検査装置 |
| US11200144B1 (en) | 2017-09-05 | 2021-12-14 | Amazon Technologies, Inc. | Refinement of static analysis of program code |
| WO2022113308A1 (ja) | 2020-11-27 | 2022-06-02 | 日本電信電話株式会社 | 修正装置、修正方法及び修正プログラム |
Also Published As
| Publication number | Publication date |
|---|---|
| JPWO2023238239A1 (ja) | 2023-12-14 |
| WO2023238239A1 (ja) | 2023-12-14 |
| US20250322065A1 (en) | 2025-10-16 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US9305116B2 (en) | Dual DFA decomposition for large scale regular expression matching | |
| Song et al. | Mab-malware: A reinforcement learning framework for attacking static malware classifiers | |
| US20230254326A1 (en) | System and Method for Information Gain for Malware Detection | |
| EP2420931B1 (en) | Solving hybrid constraints to generate test cases for validating a software module | |
| WO2019075390A1 (en) | BOX BLACK MATCHING MOTOR | |
| Yamaguchi | Pattern-based vulnerability discovery | |
| Li et al. | Cobra: interaction-aware bytecode-level vulnerability detector for smart contracts | |
| WO2022113308A1 (ja) | 修正装置、修正方法及び修正プログラム | |
| US12282736B2 (en) | Framework for managing natural language processing tools | |
| JP7231664B2 (ja) | 脆弱性特徴の取得方法、装置及び電子機器 | |
| US12093388B2 (en) | Multivariate malware detection methods and systems | |
| EP4111302A1 (en) | Detection of runtime errors using machine learning | |
| CN113688240B (zh) | 威胁要素提取方法、装置、设备及存储介质 | |
| US12314390B2 (en) | Malicious VBA detection using graph representation | |
| Yu et al. | Cfg2vec: Hierarchical graph neural network for cross-architectural software reverse engineering | |
| JP2008299723A (ja) | プログラム検証方法、プログラム検証装置 | |
| CN117940894A (zh) | 用于检测代码克隆的系统和方法 | |
| WO2025115162A1 (ja) | 情報補完装置及び情報補完方法 | |
| JP6984761B2 (ja) | 情報処理装置及び情報処理プログラム | |
| JP7800678B2 (ja) | 修正装置、修正方法及び修正プログラム | |
| CN121399603A (zh) | 使用反向工程安全提示的安全提示推荐 | |
| US11386209B2 (en) | Static source code scanner | |
| CN112445468A (zh) | Typescript类型文件生成方法、装置、设备及计算机可读存储介质 | |
| CN118296605A (zh) | 一种用于生成漏洞挖掘模型的平台及相关方法 | |
| Zhou et al. | From Obfuscated to Obvious: A Comprehensive JavaScript Deobfuscation Tool for Security Analysis |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20241122 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20250610 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20250812 |
|
| 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: 20251202 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20251215 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 7800678 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |