JP2013134573A - Software correction device, software correction system, software correction method and software correction program - Google Patents

Software correction device, software correction system, software correction method and software correction program Download PDF

Info

Publication number
JP2013134573A
JP2013134573A JP2011283716A JP2011283716A JP2013134573A JP 2013134573 A JP2013134573 A JP 2013134573A JP 2011283716 A JP2011283716 A JP 2011283716A JP 2011283716 A JP2011283716 A JP 2011283716A JP 2013134573 A JP2013134573 A JP 2013134573A
Authority
JP
Japan
Prior art keywords
correction
information
record
software
code
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.)
Granted
Application number
JP2011283716A
Other languages
Japanese (ja)
Other versions
JP5845888B2 (en
Inventor
Fumitaka Akahori
文隆 赤堀
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2011283716A priority Critical patent/JP5845888B2/en
Publication of JP2013134573A publication Critical patent/JP2013134573A/en
Application granted granted Critical
Publication of JP5845888B2 publication Critical patent/JP5845888B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

PROBLEM TO BE SOLVED: To provide a software correction device which automatically generates a candidate for a source file correction code for resolving problems such as security vulnerability or the like of software.SOLUTION: A software correction device comprises: a problem information storage unit which stores a problem type including a name of an illegal function in which a problem included in a source code of software exists and a problem information record including an argument name of the illegal function related to the problem; a correction information storage unit which stores the problem type and a correction record associated with a correction general purpose code including an argument name for correcting the problem; and a correction candidate generation unit which retrieves the correction information record having the same problem type as the problem information record, replaces the argument name in the correction general purpose code in the retrieved correction record with the argument name in the retrieved problem information record and generates a correction actual code.

Description

本願発明は、ソフトウェアのセキュリティ脆弱性を含む問題を解消するためのソフトウェア修正装置、ソフトウェア修正システム、ソフトウェア修正方法、及び、ソフトウェア修正プログラムに関する。   The present invention relates to a software correction apparatus, a software correction system, a software correction method, and a software correction program for solving problems including software security vulnerabilities.

IT環境が高度に発達した現代社会においては、システムの中で使用されているソフトウェアに存在する様々な問題を、迅速に解消することが必要不可欠になってきている。特に最近は、サイバー攻撃をはじめとするコンピュータ犯罪等による影響が深刻化しており、ソフトウェアのセキュリティ脆弱性を可能な限り小さくすることの重要性がますます高まってきている。   In the modern society where the IT environment is highly developed, it is indispensable to quickly solve various problems existing in the software used in the system. Particularly recently, the effects of cyber attacks and other computer crimes have become more serious, and it is becoming increasingly important to make software security vulnerabilities as small as possible.

セキュリティ脆弱性の例としては、ソフトウェアが外部からの入力データを誤処理することで生じるバッファオーバーフローがある。また、入力データを誤処理、あるいは未処理のまま他のソフトウェアに出力することで生じるクロスサイトスクリプティングやSQLインジェクションなどもある。   An example of a security vulnerability is a buffer overflow that occurs when software misprocesses input data from the outside. There are also cross-site scripting and SQL injection that occur when input data is erroneously processed or output to other software without processing.

このようなセキュリティ脆弱性を排除するための技術として、特許文献1には、ソフトウェアのソースコードのセキュリティ脆弱性検査において、構文解析の解析木を構築することで、脆弱性を有する部分を精度よく検出するための装置が公開されている。   As a technique for eliminating such security vulnerabilities, Patent Document 1 discloses that a portion having a vulnerability can be accurately obtained by constructing an analysis tree for parsing in security vulnerability inspection of software source code. Devices for detection are publicly available.

また、特許文献2には、脆弱なライブラリを全て検出するのではなく、適切に用いられていない箇所のみを検出することで、脆弱性検出の制度を向上させるプログラムが公開されている。   Further, Patent Document 2 discloses a program that improves the vulnerability detection system by detecting only portions that are not used appropriately, rather than detecting all vulnerable libraries.

特開2007−052625号公報JP 2007-052625 A 特開2011−150716号公報JP 2011-150716 A

前述の特許文献1や特許文献2に記載された技術では、セキュリティ脆弱性の検出結果に対して、ソフトウェアのソースコードをどのように修正したらよいかまでは提示されず、修正内容の検討はソフトウェア開発者に委ねられる。   In the techniques described in Patent Document 1 and Patent Document 2 described above, how to correct the source code of the software is not presented with respect to the detection result of the security vulnerability. Entrusted to the developer.

したがって、特にセキュリティ領域に精通していないソフトウェア開発者がソースコードの修正を行う場合は、修正対応完了まで多くの時間を要するという問題がある。   Therefore, when a software developer who is not familiar with the security area makes corrections to the source code, there is a problem that it takes a long time to complete the correction.

本願発明の目的は、これらの問題点を解決したソフトウェア修正装置、ソフトウェア修正システム、ソフトウェア修正方法、及び、ソフトウェア修正プログラムを提供することである。   An object of the present invention is to provide a software correction apparatus, a software correction system, a software correction method, and a software correction program that solve these problems.

本願発明の一実施形態のソフトウェア修正装置は、ソフトウェアのソースコードに含まれる問題が存在する不正関数の名称を含む問題種別と、前記問題に関連する前記不正関数の引数名を含む問題情報レコードを格納する問題情報格納手段と、前記問題種別と、前記問題を修正するための、引数名を含む修正汎用コードを対応付けた修正レコードと、を格納する修正情報格納手段と、前記問題情報レコードと前記問題種別が一致する、前記修正情報レコードを検索して、検索された前記修正レコード内の前記修正汎用コード内の前記引数名を、検索された前記問題情報レコード内の前記引数名で置換して修正実コードを生成する修正候補生成手段と、を備える。   A software correction apparatus according to an embodiment of the present invention includes a problem type including a problem type including a name of an illegal function having a problem included in a software source code and an argument name of the incorrect function related to the problem. A problem information storage means for storing; a problem record; a correction record in which a correction general-purpose code including an argument name for correcting the problem is associated; a correction information storage means for storing; a problem information record; Search for the correction information record that matches the problem type, and replace the argument name in the correction general-purpose code in the searched correction record with the argument name in the searched problem information record. Correction candidate generation means for generating a correction actual code.

本願発明の一実施形態のソフトウェア修正方法は、ソフトウェアのソースコードに含まれる問題が存在する不正関数の名称を含む問題種別と、前記問題に関連する前記不正関数の引数名を含む問題情報レコードを格納し、前記問題種別と、前記問題を修正するための、引数名を含む修正汎用コードを対応付けた修正レコードと、を格納し、前記問題情報レコードと前記問題種別が一致する、前記修正情報レコードを検索して、検索された前記修正レコード内の前記修正汎用コード内の前記引数名を、検索された前記問題情報レコード内の前記引数名で置換して修正実コードを生成する。   A software correction method according to an embodiment of the present invention includes: a problem type including a name of an illegal function in which a problem included in a software source code exists; and a problem information record including an argument name of the illegal function related to the problem. Storing and storing the problem type and a correction record in which a correction general-purpose code including an argument name is associated to correct the problem, and the problem information record and the problem type match. A record is searched, and the argument name in the correction general-purpose code in the searched correction record is replaced with the argument name in the searched problem information record to generate a correction actual code.

本願発明の一実施形態のソフトウェア修正プログラムは、ソフトウェアのソースコードに含まれる問題が存在する不正関数の名称を含む問題種別と、前記問題に関連する前記不正関数の引数名を含む問題情報レコードを格納する問題情報格納処理と、前記問題種別と、前記問題を修正するための、引数名を含む修正汎用コードを対応付けた修正レコードと、を格納する修正情報格納処理と、前記問題情報レコードと前記問題種別が一致する、前記修正情報レコードを検索して、検索された前記修正レコード内の前記修正汎用コード内の前記引数名を、検索された前記問題情報レコード内の前記引数名で置換して修正実コードを生成する修正候補生成処理と、をコンピュータに実行させる。   A software correction program according to an embodiment of the present invention includes a problem type including a problem type including a name of an illegal function having a problem included in a software source code and an argument name of the incorrect function related to the problem. A problem information storage process for storing; a problem record; a modification record in which a modification general-purpose code including an argument name for correcting the problem is associated; a modification information storage process for storing; a problem information record; Search for the correction information record that matches the problem type, and replace the argument name in the correction general-purpose code in the searched correction record with the argument name in the searched problem information record. Then, a correction candidate generation process for generating a correction actual code is executed by the computer.

本願発明は、ソフトウェアのセキュリティ脆弱性等の問題を解消するソースファイル修正コードの候補を自動生成することを実現する。   The present invention realizes automatic generation of source file correction code candidates that solve problems such as software security vulnerabilities.

本願発明の第1の実施形態の構成を示すブロック図である。It is a block diagram which shows the structure of the 1st Embodiment of this invention. 本願発明の第1の実施形態の動作を示すフローチャートである。It is a flowchart which shows operation | movement of the 1st Embodiment of this invention. 本願発明の第1の実施形態におけるオリジナルソースファイル11の例1である。It is Example 1 of the original source file 11 in 1st Embodiment of this invention. 本願発明の第1の実施形態におけるオリジナルソースファイル11の例2である。It is Example 2 of the original source file 11 in 1st Embodiment of this invention. 本願発明の第1の実施形態におけるセキュリティ脆弱性種別情報1020とセキュリティ脆弱性詳細情報1021の詳細である。It is the detail of the security vulnerability classification information 1020 and the security vulnerability detailed information 1021 in the first embodiment of the present invention. 本願発明の第1の実施形態におけるセキュリティ脆弱性種別情報1010とセキュリティ脆弱性修正情報1011の詳細である。It is the detail of the security vulnerability classification information 1010 and the security vulnerability correction information 1011 in 1st Embodiment of this invention. 本願発明の第1の実施形態におけるセキュリティ脆弱性修正内容反映部106の処理実行時のユーザコンソール15の画面(例1の場合)である。It is the screen (in the case of Example 1) of the user console 15 at the time of the process execution of the security vulnerability correction content reflection part 106 in 1st Embodiment of this invention. 本願発明の第1の実施形態における修正後ソースファイル14の例1である。It is Example 1 of the source file 14 after correction in the 1st Embodiment of this invention. 本願発明の第1の実施形態における修正後ソースファイル14の例2である。It is Example 2 of the source file 14 after correction | amendment in 1st Embodiment of this invention. 本願発明の第2の実施形態の構成を示すブロック図である。It is a block diagram which shows the structure of 2nd Embodiment of this invention. 本願発明の第2の実施形態の動作を示すフローチャートである。It is a flowchart which shows the operation | movement of 2nd Embodiment of this invention.

本願発明の第一の実施の形態について図面を参照して詳細に説明する。   A first embodiment of the present invention will be described in detail with reference to the drawings.

図1はセキュリティ脆弱性修正装置10と、オリジナルソースファイル11と、セキュリティ脆弱性検証ツール12と、検証ツール検証結果13と、修正後ソースファイル14と、ユーザコンソール15とから構成されたセキュリティ脆弱性修正システムの構成を示す。   FIG. 1 shows a security vulnerability composed of a security vulnerability correcting device 10, an original source file 11, a security vulnerability verification tool 12, a verification tool verification result 13, a corrected source file 14, and a user console 15. The configuration of the correction system is shown.

オリジナルソースファイル11は、セキュリティ脆弱性の検証、修正の対象であるソフトウェアのソースファイルであり、その2つの例を例1(SampleXSS.java)、例2(SQLInjection.java)としてそれぞれ図3、図4に示す。例1、例2は、プログラミング言語としてJAVA(登録商標)を使用しているが、C言語やhtmlなどのその他のプログラミング言語で書かれたソースファイルでもよい。   The original source file 11 is a source file of software to be verified and corrected for security vulnerabilities, and two examples thereof are shown as Example 1 (SampleXSS.java) and Example 2 (SQLInjection.java), respectively, as shown in FIGS. 4 shows. Example 1 and Example 2 use JAVA (registered trademark) as a programming language, but may be a source file written in another programming language such as C language or html.

例1のソースファイルの場合、24行目のリクエストパラメータから取得したデータを、そのまま26行目のsendErrorメソッドで使用しているため、クロスサイトスクリプティングの脆弱性が存在する。   In the case of the source file of Example 1, since the data acquired from the request parameter on the 24th line is used as it is in the sendError method on the 26th line, there is a cross-site scripting vulnerability.

例2のソースファイルの場合、15行目のリクエストパラメータから取得したデータをそのまま22行目のprepareStatementメソッドで使用しているため、SQLインジェクションの脆弱性が存在する。   In the case of the source file of Example 2, since the data acquired from the request parameter on the 15th line is used as it is in the prepareStatement method on the 22nd line, there is an SQL injection vulnerability.

セキュリティ脆弱性検証ツール12は、オリジナルソースファイル11のセキュリティ脆弱性を解析するパッケージソフトウェアであり、いくつかのツールが知られている。セキュリティ脆弱性検証ツール12が出力する検証ツール検証結果13は、図5に記載のセキュリティ脆弱性種別情報1020、セキュリティ脆弱性詳細情報1021を必ず包含する。検証ツール検証結果13は、その他に、セキュリティ脆弱性カテゴリの重要度レベル、脆弱性カテゴリの解説と対応方法の概要説明、不正データの入力から出力にいたるまでのプログラムの流れなどの様々な解析情報を包含してもよい。   The security vulnerability verification tool 12 is package software for analyzing the security vulnerability of the original source file 11, and several tools are known. The verification tool verification result 13 output by the security vulnerability verification tool 12 necessarily includes the security vulnerability type information 1020 and the security vulnerability detailed information 1021 shown in FIG. The verification tool verification result 13 includes various analysis information such as the importance level of the security vulnerability category, the description of the vulnerability category and the outline of the response method, and the program flow from input to output of illegal data. May be included.

修正後ソースファイル14は、セキュリティ脆弱性修正装置10がオリジナルソースファイル11におけるセキュリティ脆弱性の存在する箇所のコードを修正して出力したファイルである。前記例1、例2のオリジナルソースファイル11が修正されて出力された修正後ソースファイル14を、それぞれ図8、図9に示す。   The corrected source file 14 is a file that is output by the security vulnerability correcting apparatus 10 by correcting the code of the location where the security vulnerability exists in the original source file 11. FIGS. 8 and 9 show modified source files 14 obtained by modifying the original source files 11 of Examples 1 and 2 and outputting them, respectively.

図8に示す通り、例1のソースファイルの場合、セキュリティ脆弱性修正装置10が26行目のサニタイズ処理を追加することで、オリジナルソースファイル11に存在したクロスサイトスクリプティングの脆弱性を解消する。   As shown in FIG. 8, in the case of the source file of Example 1, the security vulnerability correcting apparatus 10 adds the sanitization process on the 26th line, thereby eliminating the cross-site scripting vulnerability existing in the original source file 11.

図9に示す通り、例2のソースファイルの場合、セキュリティ脆弱性修正装置10が22行目のサニタイズ処理を追加することで、オリジナルソースファイル11に存在したSQLインジェクションの脆弱性を解消する。   As shown in FIG. 9, in the case of the source file of Example 2, the security vulnerability correcting apparatus 10 adds the sanitization process on the 22nd line, thereby eliminating the vulnerability of the SQL injection existing in the original source file 11.

ユーザコンソール15は、ソフトウェア開発者がセキュリティ脆弱性修正装置10を使用する時のユーザインターフェースとなる画面、キーボード、および、マウスである。   The user console 15 is a screen, a keyboard, and a mouse that serve as a user interface when the software developer uses the security vulnerability correcting apparatus 10.

セキュリティ脆弱性修正装置10は、セキュリティ脆弱性検証結果情報取得部100と、セキュリティ脆弱性修正ルール格納部101と、セキュリティ脆弱性検証結果情報格納部102と、セキュリティ脆弱性修正候補提示部103と、セキュリティ脆弱性修正コード104と、セキュリティ脆弱性修正箇所105と、セキュリティ脆弱性修正内容反映部106とを備えている。   The security vulnerability correction apparatus 10 includes a security vulnerability verification result information acquisition unit 100, a security vulnerability correction rule storage unit 101, a security vulnerability verification result information storage unit 102, a security vulnerability correction candidate presentation unit 103, A security vulnerability correction code 104, a security vulnerability correction location 105, and a security vulnerability correction content reflection unit 106 are provided.

セキュリティ脆弱性検証結果情報取得部100は、検証ツール検証結果13からセキュリティ脆弱性種別情報1020とセキュリティ脆弱性詳細情報1021を抜き出して、セキュリティ脆弱性検証結果情報格納部102に格納する。   The security vulnerability verification result information acquisition unit 100 extracts the security vulnerability type information 1020 and the security vulnerability detailed information 1021 from the verification tool verification result 13 and stores them in the security vulnerability verification result information storage unit 102.

セキュリティ脆弱性種別情報1020は、図5に記載の通り、セキュリティ脆弱性のカテゴリと不正関数名の情報とを包含している。オリジナルソースファイル11が前記例1の場合、セキュリティ脆弱性検証結果情報取得部100は、カテゴリに「Cross Site Scripting」、不正関数名に「sendError」を格納する。オリジナルソースファイル11が前記例2の場合、セキュリティ脆弱性検証結果情報取得部100は、カテゴリに「SQL Injection」、不正関数名に「prepareStatement」を格納する。   As shown in FIG. 5, the security vulnerability type information 1020 includes a security vulnerability category and illegal function name information. When the original source file 11 is Example 1, the security vulnerability verification result information acquisition unit 100 stores “Cross Site Scripting” in the category and “sendError” in the illegal function name. When the original source file 11 is Example 2, the security vulnerability verification result information acquisition unit 100 stores “SQL Injection” in the category and “preparationStatement” in the illegal function name.

セキュリティ脆弱性詳細情報1021は、図5に記載の通り、セキュリティ脆弱性が存在するファイル名と、そのファイルにおけるセキュリティ脆弱性が存在する箇所の行番号と、不正関数引数情報とを包含している。オリジナルソースファイル11が前記例1の場合、セキュリティ脆弱性検証結果情報取得部100は、ファイル名に「SampleXSS.java」、行番号に「26」、不正関数引数情報に図5に示す情報を格納する。オリジナルソースファイル11が前記例2の場合、セキュリティ脆弱性検証結果情報取得部100は、ファイル名に「SampleSQL.java」、行番号に「22」、不正関数引数情報に図5に示す情報を格納する。   As shown in FIG. 5, the security vulnerability detailed information 1021 includes the file name where the security vulnerability exists, the line number of the location where the security vulnerability exists in the file, and invalid function argument information. . When the original source file 11 is in Example 1, the security vulnerability verification result information acquisition unit 100 stores “SampleXSS.java” as the file name, “26” as the line number, and information shown in FIG. 5 as the invalid function argument information. To do. When the original source file 11 is Example 2, the security vulnerability verification result information acquisition unit 100 stores “SampleSQL.java” as the file name, “22” as the line number, and information shown in FIG. 5 as the invalid function argument information. To do.

セキュリティ脆弱性検証結果情報格納部102は、セキュリティ脆弱性種別情報1020とセキュリティ脆弱性詳細情報1021を、セキュリティ脆弱性修正候補提示部103に出力する。   The security vulnerability verification result information storage unit 102 outputs the security vulnerability type information 1020 and the security vulnerability detailed information 1021 to the security vulnerability correction candidate presentation unit 103.

セキュリティ脆弱性修正ルール格納部101は、セキュリティ脆弱性種別情報1010とセキュリティ脆弱性修正情報1011とを格納している。セキュリティ脆弱性種別情報1010とセキュリティ脆弱性修正情報1011は、ソフトウェア開発者がユーザコンソール15からセキュリティ脆弱性修正ルールとして登録したものである。セキュリティ脆弱性種別情報1010は、図6に記載の通り、セキュリティ脆弱性のカテゴリと不正関数名の情報とを包含している。セキュリティ脆弱性修正情報1011は、修正処理区分と修正汎用コードの情報とを包含している。修正汎用コードは、汎用的に表記された引数の記述を包含している。   The security vulnerability correction rule storage unit 101 stores security vulnerability type information 1010 and security vulnerability correction information 1011. The security vulnerability type information 1010 and the security vulnerability correction information 1011 are registered as security vulnerability correction rules from the user console 15 by the software developer. As shown in FIG. 6, the security vulnerability type information 1010 includes a security vulnerability category and illegal function name information. The security vulnerability correction information 1011 includes the correction process classification and the correction general-purpose code information. The modified generic code includes a generic description of the argument.

ソフトウェア開発者は、図6に記載の通り、クロスサイトスクリプティングの脆弱性に対する脆弱性修正ルールとして、カテゴリに「Cross Site Scripting」、不正関数名に「sendError」、修正処理区分に「Insert」、修正汎用コードに図6に示すコード文を登録する。ソフトウェア開発者は、SQLインジェクションの脆弱性に対する脆弱性修正ルールとして、カテゴリに「SQL Injection」、不正関数名に「prepareStatement」、修正処理区分に「Insert」、修正汎用コードに図6に示すコード文を登録する。クロスサイトスクリプティングやSQLインジェクションのカテゴリのセキュリティ脆弱性の場合、不正関数名として登録するのは各カテゴリに1つであり、各々の不正関数に対する修正汎用コードも1つあればよい。   As shown in FIG. 6, the software developer, as described in FIG. 6, as a vulnerability correction rule for the cross-site scripting vulnerability, the category is “Cross Site Scripting”, the illegal function name is “sendError”, and the correction processing category is “Insert”, correction The code sentence shown in FIG. 6 is registered in the general-purpose code. As a vulnerability correction rule for the SQL injection vulnerability, the software developer sets the category “SQL Injection”, the illegal function name “prepareStatement”, the correction processing classification “Insert”, and the correction general-purpose code shown in FIG. Register. In the case of security vulnerabilities in the categories of cross-site scripting and SQL injection, one is registered as an invalid function name for each category, and only one modified general-purpose code for each illegal function is required.

バッファオーバーフローの脆弱性に対する脆弱性修正ルールの場合は、図6に記載の通り、不正関数名として、「strcpy」と「gets」の2つが存在し、「strcpy」の場合は、さらに修正汎用コードとして2つのものを登録する必要がある。   In the case of the vulnerability correction rule for the buffer overflow vulnerability, as shown in FIG. 6, there are two illegal function names “strcpy” and “gets”. It is necessary to register two things as

セキュリティ脆弱性修正ルール格納部101は、セキュリティ脆弱性種別情報1010とセキュリティ脆弱性修正情報1011を、セキュリティ脆弱性修正候補提示部103に出力する。   The security vulnerability correction rule storage unit 101 outputs the security vulnerability type information 1010 and the security vulnerability correction information 1011 to the security vulnerability correction candidate presentation unit 103.

セキュリティ脆弱性修正候補提示部103は、セキュリティ脆弱性種別情報1020とセキュリティ脆弱性種別情報1010が一致するレコードをサーチする。サーチの結果一致するものがある場合、セキュリティ脆弱性修正候補提示部103は、一致したレコードについて、セキュリティ脆弱性詳細情報1011における修正汎用コードの中の引数の記述を、セキュリティ脆弱性詳細情報1021における不正関数引数情報の記述に置換して修正実コードを生成し、セキュリティ脆弱性修正コード104として出力する。セキュリティ脆弱性修正コード104は、対応するレコードのセキュリティ脆弱性修正情報1011における修正処理区分の情報も包含している。   The security vulnerability correction candidate presentation unit 103 searches for a record in which the security vulnerability type information 1020 and the security vulnerability type information 1010 match. If there is a match as a result of the search, the security vulnerability correction candidate presentation unit 103 describes the description of the argument in the correction general-purpose code in the security vulnerability detailed information 1011 for the matched record in the security vulnerability detailed information 1021. A modified actual code is generated by replacing with the description of the illegal function argument information, and is output as the security vulnerability modified code 104. The security vulnerability correction code 104 also includes correction processing classification information in the security vulnerability correction information 1011 of the corresponding record.

セキュリティ脆弱性修正候補提示部103は、前記の一致したレコードについて、セキュリティ脆弱性詳細情報1021のファイル名と行番号の情報を、セキュリティ脆弱性修正箇所105として出力する。   The security vulnerability correction candidate presentation unit 103 outputs the file name and line number information of the security vulnerability detailed information 1021 as the security vulnerability correction location 105 for the matched record.

セキュリティ脆弱性修正候補提示部103の前記動作をオリジナルソースファイル11が例1の場合で説明する。セキュリティ脆弱性種別情報1020とセキュリティ脆弱性種別情報1010は、カテゴリが「Cross Site Scripting」、不正関数名が「sendError」のレコードで一致する。セキュリティ脆弱性修正候補提示部103は、このレコードの不正関数引数情報の「TaintArg=name」から、修正汎用コードにおける「%TaintArg%」の表記を「name」で置換して、「Sanitizer.sanitizeHTML(name);」の修正実コードを生成し、セキュリティ脆弱性修正コード104として出力する。セキュリティ脆弱性修正コード104は、このレコードの修正処理区分の「Insert」の情報も包含している。   The operation of the security vulnerability correction candidate presentation unit 103 will be described in the case where the original source file 11 is Example 1. The security vulnerability type information 1020 and the security vulnerability type information 1010 match in a record whose category is “Cross Site Scripting” and whose illegal function name is “sendError”. The security vulnerability correction candidate presentation unit 103 replaces the notation of “% TaintArg%” in the modified general-purpose code with “name” from “TaintArg = name” of the invalid function argument information of this record, and “Sanizer.sanitizeHTML ( name); ”is generated and output as the security vulnerability correction code 104. The security vulnerability correction code 104 also includes information of “Insert” of the correction processing classification of this record.

セキュリティ脆弱性修正候補提示部103は、前記レコードのファイル名の「SampleXSS.java」と、行番号の「26」の情報を、セキュリティ脆弱性修正箇所105として出力する。   The security vulnerability correction candidate presentation unit 103 outputs the information of the file name “SampleXSS.java” and the line number “26” of the record as the security vulnerability correction portion 105.

オリジナルソースファイル11が例2の場合のセキュリティ脆弱性修正候補提示部103の動作も、例1の場合と同様である。例2の場合、セキュリティ脆弱性種別情報1020とセキュリティ脆弱性種別情報1010は、カテゴリが「SQL Injection」、不正関数名が「prepareStatement」のレコードで一致し、「Sanitizer.sanitizeSQL(str);」の修正実コードを生成し、修正処理区分の「Insert」の情報も包含させて、セキュリティ脆弱性修正コード104として出力する。あわせて、前記レコードのファイル名の「SampleSQL.java」と、行番号の「22」の情報を、セキュリティ脆弱性修正箇所105として出力する。   The operation of the security vulnerability correction candidate presentation unit 103 when the original source file 11 is Example 2 is the same as that of Example 1. In the case of Example 2, the security vulnerability type information 1020 and the security vulnerability type information 1010 match in a record having a category “SQL Injection” and an illegal function name “prepareStatement”, and “Sanizer.sanitizeSQL (str);” A correction actual code is generated, and the information of “Insert” of the correction process classification is included and output as the security vulnerability correction code 104. At the same time, the file name “SampleSQL.java” of the record and the information of the line number “22” are output as the security vulnerability correction portion 105.

セキュリティ脆弱性修正内容反映部106は、オリジナルソースファイル11に対する修正内容の候補として、セキュリティ脆弱性修正コード104とセキュリティ脆弱性修正箇所105の情報をユーザコンソール15の画面に表示する。   The security vulnerability correction content reflection unit 106 displays information on the security vulnerability correction code 104 and the security vulnerability correction portion 105 on the screen of the user console 15 as candidates for correction content for the original source file 11.

図7は、オリジナルソースファイル11が例1の時のユーザコンソール15の画面である。セキュリティ脆弱性修正内容反映部106は、セキュリティ脆弱性修正箇所105におけるファイル名の情報から、画面右上にオリジナルソースファイル11のファイル名を表示し、その下にオリジナルソースファイル11のソースコードを表示する。   FIG. 7 is a screen of the user console 15 when the original source file 11 is Example 1. The security vulnerability correction content reflection unit 106 displays the file name of the original source file 11 at the upper right of the screen from the information of the file name at the security vulnerability correction location 105, and displays the source code of the original source file 11 below it. .

セキュリティ脆弱性修正内容反映部106は、セキュリティ脆弱性修正箇所105における行番号の情報から、セキュリティ脆弱性が存在する26行目を、その他の行とは別の文字色で表示させる。ソフトウェア開発者が、マウスカーソルを26行目の上に移動させると、セキュリティ脆弱性修正内容反映部106は、画面左側のModification欄に修正処理区分の「Insert」と、修正実コードの「Sanitizer.sanitizeHTML(name);」を表示させる。   The security vulnerability correction content reflection unit 106 displays the 26th line in which the security vulnerability exists from the line number information in the security vulnerability correction location 105 in a character color different from the other lines. When the software developer moves the mouse cursor above the 26th line, the security vulnerability correction content reflection unit 106 displays “Insert” of the correction processing classification in the Modification column on the left side of the screen and “Sanizer. sanitizeHTML (name); "is displayed.

ソフトウェア開発者は、表示された修正内容を確認し、マウスカーソルを修正実コードの表示部付近に移動させて、ダブルクリックする。セキュリティ脆弱性修正内容反映部106は、ダブルクリックを受けて、修正内容をオリジナルソースファイル11に反映し、修正後ソースファイル14を生成する。   The software developer checks the displayed correction contents, moves the mouse cursor to the vicinity of the display section of the corrected actual code, and double-clicks. Upon receiving a double click, the security vulnerability correction content reflecting unit 106 reflects the correction content in the original source file 11 and generates a corrected source file 14.

オリジナルソースファイル11が例1あるいは例2の場合は、図6に記載の通り修正内容の候補は1つとなるが、オリジナルソースファイル11のセキュリティ脆弱性カテゴリが「Buffer Overflow」で不正関数名が「strcpy」の場合は、修正候補は2つ存在する。この場合、セキュリティ脆弱性修正内容反映部106は、2つの修正候補を画面に表示し、ソフトウェア開発者がいずれかの修正候補を選択し、選択した方の修正実コードの表示部付近にマウスカーソルを移動させてダブルクリックする。セキュリティ脆弱性修正内容反映部106は、ソフトウェア開発者が選択した方の修正内容をオリジナルソースファイル11に反映させる。   When the original source file 11 is Example 1 or Example 2, there is only one candidate for the correction contents as shown in FIG. 6, but the security vulnerability category of the original source file 11 is “Buffer Overflow” and the invalid function name is “ In the case of “strcpy”, there are two correction candidates. In this case, the security vulnerability correction content reflection unit 106 displays two correction candidates on the screen, the software developer selects one of the correction candidates, and a mouse cursor near the selected correction actual code display unit. Move and double-click. The security vulnerability correction content reflecting unit 106 reflects the correction content selected by the software developer in the original source file 11.

次に図2のフローチャートを参照して、本実施形態の動作について詳細に説明する。   Next, the operation of this embodiment will be described in detail with reference to the flowchart of FIG.

セキュリティ脆弱性検証ツール12は、オリジナルソースファイル11のセキュリティ脆弱性を解析し、検証ツール検証結果13を出力する(S101)。検証ツール検証結果13で、セキュリティ脆弱性が存在しない場合(S102でNo)、全体の処理は終了する。   The security vulnerability verification tool 12 analyzes the security vulnerability of the original source file 11 and outputs a verification tool verification result 13 (S101). If no security vulnerability exists in the verification tool verification result 13 (No in S102), the entire process ends.

検証ツール検証結果13で、セキュリティ脆弱性が存在する場合(S102でYes)、検証結果情報取得部100は、検証ツール検証結果13からセキュリティ脆弱性種別情報1020とセキュリティ脆弱性詳細情報1021を取り出し、セキュリティ脆弱性検証結果情報格納部102に格納する(S103)。   If the security vulnerability exists in the verification tool verification result 13 (Yes in S102), the verification result information acquisition unit 100 extracts the security vulnerability type information 1020 and the security vulnerability detailed information 1021 from the verification tool verification result 13, It is stored in the security vulnerability verification result information storage unit 102 (S103).

セキュリティ脆弱性修正候補提示部103は、セキュリティ脆弱性種別情報1020とセキュリティ脆弱性種別情報1010のレコードで一致するものをサーチする(S104)。一致したレコードが存在しない場合(S105でNo)、セキュリティ脆弱性修正候補提示部103は、ユーザコンソール15の画面に「セキュリティ脆弱性修正情報が定義されていません」のメッセージを表示し(S107)、全体の処理は終了する。   The security vulnerability correction candidate presentation unit 103 searches for a match between the security vulnerability type information 1020 and the security vulnerability type information 1010 (S104). If there is no matching record (No in S105), the security vulnerability correction candidate presenting unit 103 displays a message “security vulnerability correction information is not defined” on the screen of the user console 15 (S107). The entire process ends.

サーチ結果で一致したレコードが存在する場合(S105でYes)、セキュリティ脆弱性修正候補提示部103は、セキュリティ脆弱性修正情報1011の修正汎用コードの引数名を、セキュリティ脆弱性詳細情報1021の不正関数引数情報に置換して修正実コードを生成し、セキュリティ脆弱性修正情報1011における修正処理区分を添付して、セキュリティ脆弱性修正コード104を生成する。同時にセキュリティ脆弱性修正候補提示部103は、セキュリティ脆弱性詳細情報1021のファイル名と行番号のデータから、セキュリティ脆弱性修正箇所105を生成する(S106)。   If there is a matched record in the search result (Yes in S105), the security vulnerability correction candidate presenting unit 103 uses the argument name of the correction general-purpose code of the security vulnerability correction information 1011 as an illegal function of the security vulnerability detailed information 1021. A correction actual code is generated by substituting the argument information, and the security vulnerability correction code 104 is generated by attaching the correction processing classification in the security vulnerability correction information 1011. At the same time, the security vulnerability correction candidate presentation unit 103 generates a security vulnerability correction portion 105 from the file name and line number data of the security vulnerability detailed information 1021 (S106).

セキュリティ脆弱性修正内容反映部106は、セキュリティ脆弱性修正コード104とセキュリティ脆弱性修正箇所105をユーザコンソール15の画面に出力し、ソフトウェア開発者が、最適な修正コードを画面上で選択する(S108)。   The security vulnerability correction content reflection unit 106 outputs the security vulnerability correction code 104 and the security vulnerability correction portion 105 to the screen of the user console 15, and the software developer selects an optimal correction code on the screen (S108). ).

セキュリティ脆弱性修正内容反映部106は、ソフトウェア開発者が選択した修正コードをオリジナルソースファイル11に反映し、修正後ソースファイル14を出力する(S109)。   The security vulnerability correction content reflection unit 106 reflects the correction code selected by the software developer in the original source file 11 and outputs the corrected source file 14 (S109).

尚、セキュリティ脆弱性修正コード104が1つの場合は、S108の処理は必須ではなく、セキュリティ脆弱性修正内容反映部106が、ユーザコンソール15の画面に出力せずに、セキュリティ脆弱性修正コード104とセキュリティ脆弱性修正箇所105をオリジナルソースファイル11に反映させる方式でもよい。   If there is only one security vulnerability correction code 104, the processing of S108 is not essential, and the security vulnerability correction content reflection unit 106 does not output it to the screen of the user console 15, and the security vulnerability correction code 104 and A method of reflecting the security vulnerability correction portion 105 in the original source file 11 may be used.

本実施形態には、セキュリティ脆弱性が存在するソフトウェアの問題を解消する修正コードの候補を自動生成するという効果がある。なぜなら、セキュリティ脆弱性修正候補提示部103が、セキュリティ脆弱性検証結果情報格納部102に格納されたセキュリティ脆弱性解析結果とセキュリティ脆弱性修正ルール格納部101に格納された修正ルールを基にして、ソフトウェアソースファイルに対する修正箇所と修正コードを生成して提示するからである。   This embodiment has an effect of automatically generating correction code candidates that solve a software problem in which a security vulnerability exists. This is because the security vulnerability correction candidate presentation unit 103 is based on the security vulnerability analysis result stored in the security vulnerability verification result information storage unit 102 and the correction rule stored in the security vulnerability correction rule storage unit 101. This is because a correction part and a correction code for the software source file are generated and presented.

修正コードの候補を自動生成することで、セキュリティ領域に精通していないソフトウェア開発者でも、セキュリティ脆弱性に関するソースコードの修正を短時間で行うことが可能となる。
<第二の実施形態>
次に、本願発明の第二の実施形態について図面を参照して詳細に説明する。
By automatically generating correction code candidates, even software developers who are not familiar with the security domain can quickly correct source codes related to security vulnerabilities.
<Second Embodiment>
Next, a second embodiment of the present invention will be described in detail with reference to the drawings.

図10は本実施形態のソフトウェア修正装置20の構成を示すブロック図である。   FIG. 10 is a block diagram showing the configuration of the software correction device 20 of this embodiment.

修正情報格納部201は、1つ以上のレコードを包含する問題種別情報2010と、問題種別情報2010の各レコードに対応付けられた修正レコード2011を格納している。問題種別情報2010の各レコードは、不正関数の情報を包含している。修正レコード2011の各レコードは、引数名を含む修正汎用コードの情報を包含している。問題種別情報2010と修正レコード2011は、ソフトウェア開発者がソフトウェアの修正ルールとして入力したものである。   The correction information storage unit 201 stores problem type information 2010 including one or more records, and a correction record 2011 associated with each record of the problem type information 2010. Each record of the problem type information 2010 includes information on illegal functions. Each record of the correction record 2011 includes information on the correction general-purpose code including the argument name. The problem type information 2010 and the correction record 2011 are input as a software correction rule by the software developer.

修正問題情報格納部202は、1つ以上のレコードを包含する問題種別情報2020と、問題種別情報2020の各レコードに対応づけられた問題情報レコード2021を格納している。問題種別情報2020の各レコードは不正関数の情報を包含している。問題情報レコード2021の各レコードは、不正関数引数の情報を包含している。本実施形態では、ソフトウェア開発者が修正箇所の検討を行うため、問題情報レコード2021は第一の実施形態で記載したファイル名と行番号の情報を包含しなくてもよい。問題種別情報2020と問題情報レコード2021は、ソフトウェア問題解析ツールの出力を編集したものでもよいし、ソフトウェア開発者のソフトウェア解析結果を入力したものでもよい。   The corrected problem information storage unit 202 stores problem type information 2020 including one or more records, and a problem information record 2021 associated with each record of the problem type information 2020. Each record of the problem type information 2020 includes information on illegal functions. Each record of the problem information record 2021 includes information on illegal function arguments. In this embodiment, since the software developer examines the correction part, the problem information record 2021 does not have to include the file name and line number information described in the first embodiment. The problem type information 2020 and the problem information record 2021 may be those obtained by editing the output of the software problem analysis tool, or may be the result of inputting the software analysis result of the software developer.

修正候補生成部203は、問題種別情報2020と問題種別情報2010が一致するレコードをサーチする。一致するものがある場合、修正候補生成部203は、一致したレコードについて、修正レコード2011における汎用修正コードの引数名を、問題情報レコード2021における不正関数引数に置き換えて修正実コード204を生成する。修正実コード204は、ソフトウェア開発者がソースファイルへ適用する。   The correction candidate generation unit 203 searches for a record in which the problem type information 2020 and the problem type information 2010 match. If there is a match, the correction candidate generation unit 203 generates a correction actual code 204 by replacing the argument name of the general correction code in the correction record 2011 with the invalid function argument in the problem information record 2021 for the matched record. The modified actual code 204 is applied to the source file by the software developer.

次に図11のフローチャートを参照して、本実施形態の動作について詳細に説明する。   Next, the operation of this embodiment will be described in detail with reference to the flowchart of FIG.

修正候補生成部203は、問題種別情報2020と問題別情報2010が一致するレコードをサーチする(S201)。一致したレコードが存在しない場合(S202でNo)、全体の処理は終了する。一致したレコードが存在する場合(S202でYes)、修正候補生成部203は、修正レコード2011の修正汎用コードの引数名を、問題情報レコード2021の不正関数引数情報に置換して修正実コード204を生成する(S203)。   The correction candidate generation unit 203 searches for a record in which the problem type information 2020 and the problem-specific information 2010 match (S201). If there is no matching record (No in S202), the entire process ends. If there is a matching record (Yes in S202), the correction candidate generation unit 203 replaces the argument name of the correction general-purpose code in the correction record 2011 with the invalid function argument information in the problem information record 2021, and the correction actual code 204 is displayed. Generate (S203).

本実施形態には、第一の実施形態と同様に、ソフトウェアの問題を解消する修正コードの候補を自動生成するという効果がある。なぜなら、修正候補生成部203が、修正問題情報格納部202に格納された問題解析情報と修正情報格納部201に格納された修正ルールを基にして、ソフトウェアソースファイルにおける修正コードを生成して提示するからである。   As in the first embodiment, this embodiment has an effect of automatically generating correction code candidates that solve a software problem. This is because the correction candidate generation unit 203 generates and presents a correction code in the software source file based on the problem analysis information stored in the correction problem information storage unit 202 and the correction rules stored in the correction information storage unit 201. Because it does.

以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されたものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。   While the present invention has been described with reference to the embodiments, the present invention is not limited to the above embodiments. Various changes that can be understood by those skilled in the art can be made to the configuration and details of the present invention within the scope of the present invention.

10 セキュリティ脆弱性修正装置
100 セキュリティ脆弱性検証結果情報取得部
101 セキュリティ脆弱性修正ルール格納部
1010 セキュリティ脆弱性種別情報
1011 セキュリティ脆弱性修正情報
102 セキュリティ脆弱性検証結果情報格納部
1020 セキュリティ脆弱性種別情報
1021 セキュリティ脆弱性詳細情報
103 セキュリティ脆弱性修正候補提示部
104 セキュリティ脆弱性修正コード
105 セキュリティ脆弱性修正箇所
106 セキュリティ脆弱性修正内容反映部
11 オリジナルソースファイル
12 セキュリティ脆弱性検証ツール
13 検証ツール検証結果
14 修正後ソースファイル
15 ユーザコンソール
20 ソフトウェア修正装置
201 修正情報格納部
2010 問題種別情報
2011 修正レコード
202 問題情報格納部
2020 問題種別情報
2021 問題情報レコード
203 修正候補生成部
204 修正実コード
DESCRIPTION OF SYMBOLS 10 Security vulnerability correction apparatus 100 Security vulnerability verification result information acquisition part 101 Security vulnerability correction rule storage part 1010 Security vulnerability classification information 1011 Security vulnerability correction information 102 Security vulnerability verification result information storage part 1020 Security vulnerability classification information 1021 Detailed information on security vulnerabilities 103 Security vulnerability correction candidate presentation unit 104 Security vulnerability correction code 105 Security vulnerability correction location 106 Security vulnerability correction content reflection unit 11 Original source file 12 Security vulnerability verification tool 13 Verification result of verification tool 14 Source file after correction 15 User console 20 Software correction device 201 Correction information storage unit 2010 Problem type information 2011 Correction record De 202 issues information storage unit 2020 issues type information 2021 issue information record 203 fixes candidate generating unit 204 fixes the actual code

Claims (9)

ソフトウェアのソースコードに含まれる問題が存在する不正関数の名称を含む問題種別と、前記問題に関連する前記不正関数の引数名を含む問題情報レコードを格納する問題情報格納手段と、
前記問題種別と、前記問題を修正するための、引数名を含む修正汎用コードを対応付けた修正レコードと、を格納する修正情報格納手段と、
前記問題情報レコードと前記問題種別が一致する、前記修正情報レコードを検索して、検索された前記修正レコード内の前記修正汎用コード内の前記引数名を、検索された前記問題情報レコード内の前記引数名で置換して修正実コードを生成する修正候補生成手段と、
を備えるソフトウェア修正装置。
Problem information storage means for storing a problem type including a name of an illegal function having a problem included in a software source code, and a problem information record including an argument name of the incorrect function related to the problem;
Correction information storage means for storing the problem type and a correction record that correlates a correction general-purpose code including an argument name for correcting the problem;
The problem information record and the problem type match are searched for the correction information record, and the argument name in the correction general-purpose code in the searched correction record is changed to the argument name in the searched problem information record. Correction candidate generation means for generating a correction actual code by replacing with an argument name;
A software correction device comprising:
前記問題情報レコードは、さらに、前記不正関数の前記ソースコードにおける位置を示す不正関数位置情報を包含し、
前記修正情報レコードは、さらに、置換または挿入の区別を示す修正処理情報を包含し、
検索された前記問題情報レコード内の前記不正関数位置情報と、検索された前記修正情報レコードに包含される前記修正処理情報に基づいて、前記ソースコードの前記不正関数を前記修正実コードで置換、または前記ソースコードの前記不正関数の前に前記修正実コードを挿入する修正反映手段を、
さらに備える、請求項1のソフトウェア修正装置。
The problem information record further includes illegal function position information indicating the position of the illegal function in the source code,
The correction information record further includes correction processing information indicating the distinction of replacement or insertion,
Based on the incorrect function position information in the searched problem information record and the correction processing information included in the searched correction information record, the incorrect function of the source code is replaced with the corrected actual code, Or a correction reflecting means for inserting the corrected actual code before the illegal function of the source code,
The software correction device according to claim 1, further comprising:
前記問題種別は、前記不正関数の名称に加えて、ソフトウェア問題カテゴリを包含する、
請求項1乃至2の何れかのソフトウェア修正装置。
The problem type includes a software problem category in addition to the name of the unauthorized function.
The software correction apparatus according to claim 1.
前記修正情報格納手段は、前記問題種別が同一であって、前記修正汎用コードが異なる複数の前記修正情報レコードを包含し、
前記修正候補生成手段は、前記問題情報レコードと前記問題種別が一致する、前記複数の前記修正情報レコードを検索して、前記複数の前記修正実コードを生成して、表示装置に出力する、
請求項1乃至3の何れかのソフトウェア修正装置。
The correction information storage means includes a plurality of the correction information records having the same problem type and different correction general codes,
The correction candidate generation means searches the plurality of correction information records in which the problem type matches the problem type, generates the plurality of correction actual codes, and outputs them to a display device.
The software correction apparatus according to claim 1.
請求項1から4に記載のソフトウェア修正装置と、ソフトウェア問題解析ツールとを包含するソフトウェア修正システム。   A software correction system including the software correction device according to claim 1 and a software problem analysis tool. ソフトウェアのソースコードに含まれる問題が存在する不正関数の名称を含む問題種別と、前記問題に関連する前記不正関数の引数名を含む問題情報レコードを記憶域に格納し、
前記問題種別と、前記問題を修正するための、引数名を含む修正汎用コードを対応付けた修正レコードと、を記憶域に格納し、
前記問題情報レコードと前記問題種別が一致する、前記修正情報レコードを検索して、検索された前記修正レコード内の前記修正汎用コード内の前記引数名を、検索された前記問題情報レコード内の前記引数名で置換して修正実コードを生成する、
ソフトウェア修正方法。
A problem type record including the name of an illegal function in which the problem included in the software source code exists, and a problem information record including an argument name of the incorrect function related to the problem are stored in a storage area;
Storing the problem type and a correction record in which a correction general-purpose code including an argument name for correcting the problem is associated;
The problem information record and the problem type match are searched for the correction information record, and the argument name in the correction general-purpose code in the searched correction record is changed to the argument name in the searched problem information record. Replace with argument name to generate modified actual code,
Software correction method.
前記問題情報レコードは、さらに、前記不正関数の前記ソースコードにおける位置を示す不正関数位置情報を包含し、
前記修正情報レコードは、さらに、置換または挿入の区別を示す修正処理情報を包含し、
検索された前記問題情報レコード内の前記不正関数位置情報と、検索された前記修正情報レコードに包含される前記修正処理情報に基づいて、前記ソースコードの前記不正関数を前記修正実コードで置換、または前記ソースコードの前記不正関数の前に前記修正実コードを挿入する、
請求項6のソフトウェア修正方法。
The problem information record further includes illegal function position information indicating the position of the illegal function in the source code,
The correction information record further includes correction processing information indicating the distinction of replacement or insertion,
Based on the incorrect function position information in the searched problem information record and the correction processing information included in the searched correction information record, the incorrect function of the source code is replaced with the corrected actual code, Or the modified actual code is inserted before the illegal function in the source code,
The software correction method according to claim 6.
ソフトウェアのソースコードに含まれる問題が存在する不正関数の名称を含む問題種別と、前記問題に関連する前記不正関数の引数名を含む問題情報レコードを記憶域に格納する問題情報格納処理と、
前記問題種別と、前記問題を修正するための、引数名を含む修正汎用コードを対応付けた修正レコードと、を記憶域に格納する修正情報格納処理と、
前記問題情報レコードと前記問題種別が一致する、前記修正情報レコードを検索して、検索された前記修正レコード内の前記修正汎用コード内の前記引数名を、検索された前記問題情報レコード内の前記引数名で置換して修正実コードを生成する修正候補生成処理と、
をコンピュータに実行させるソフトウェア修正プログラム。
A problem type including a name of an illegal function in which a problem included in a software source code exists, and a problem information storage process for storing a problem information record including an argument name of the incorrect function related to the problem in a storage area;
Correction information storage processing for storing the problem type and a correction record in which a correction general-purpose code including an argument name for correcting the problem is associated in a storage area;
The problem information record and the problem type match are searched for the correction information record, and the argument name in the correction general-purpose code in the searched correction record is changed to the argument name in the searched problem information record. Correction candidate generation processing for generating a correction actual code by replacing with an argument name,
Software modification program that causes a computer to execute.
前記問題情報レコードは、さらに、前記不正関数の前記ソースコードにおける位置を示す不正関数位置情報を包含し、
前記修正情報レコードは、さらに、置換または挿入の区別を示す修正処理情報を包含し、
検索された前記問題情報レコード内の前記不正関数位置情報と、検索された前記修正情報レコードに包含される前記修正処理情報に基づいて、前記ソースコードの前記不正関数を前記修正実コードで置換、または前記ソースコードの前記不正関数の前に前記修正実コードを挿入する修正反映処理を、
さらにコンピュータに実行させる、請求項8のソフトウェア修正プログラム。
The problem information record further includes illegal function position information indicating the position of the illegal function in the source code,
The correction information record further includes correction processing information indicating the distinction of replacement or insertion,
Based on the incorrect function position information in the searched problem information record and the correction processing information included in the searched correction information record, the incorrect function of the source code is replaced with the corrected actual code, Alternatively, a modification reflection process for inserting the modified actual code before the illegal function of the source code,
The software correction program according to claim 8, further executed by a computer.
JP2011283716A 2011-12-26 2011-12-26 Software correction apparatus, software correction system, software correction method, and software correction program Active JP5845888B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011283716A JP5845888B2 (en) 2011-12-26 2011-12-26 Software correction apparatus, software correction system, software correction method, and software correction program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011283716A JP5845888B2 (en) 2011-12-26 2011-12-26 Software correction apparatus, software correction system, software correction method, and software correction program

Publications (2)

Publication Number Publication Date
JP2013134573A true JP2013134573A (en) 2013-07-08
JP5845888B2 JP5845888B2 (en) 2016-01-20

Family

ID=48911234

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011283716A Active JP5845888B2 (en) 2011-12-26 2011-12-26 Software correction apparatus, software correction system, software correction method, and software correction program

Country Status (1)

Country Link
JP (1) JP5845888B2 (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019142469A1 (en) * 2018-01-17 2019-07-25 三菱電機株式会社 Security design apparatus, security design method, and security design program
KR20200134084A (en) * 2019-05-21 2020-12-01 국방과학연구소 Apparatus and method for generating patch
JP2021108189A (en) * 2020-05-14 2021-07-29 ベイジン バイドゥ ネットコム サイエンス テクノロジー カンパニー リミテッドBeijing Baidu Netcom Science Technology Co., Ltd. Method for acquiring vulnerability feature, device, and electronic apparatus
JP2021533476A (en) * 2018-08-03 2021-12-02 コンティネンタル・テーベス・アクチエンゲゼルシヤフト・ウント・コンパニー・オッフェネ・ハンデルスゲゼルシヤフト How to parse source text
JP2022535785A (en) * 2019-06-12 2022-08-10 エヌイーシー ラボラトリーズ ヨーロッパ ゲーエムベーハー Methods and Contract Rewriting Framework Systems for Supporting Smart Contracts in Blockchain Networks
JP7456843B2 (en) 2020-05-08 2024-03-27 株式会社日立製作所 Program modification device, program modification method, and program modification program

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7367338B2 (en) 2019-05-17 2023-10-24 株式会社ジェイテクト Workpiece gripping device

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060259973A1 (en) * 2005-05-16 2006-11-16 S.P.I. Dynamics Incorporated Secure web application development environment
US20110191855A1 (en) * 2010-01-29 2011-08-04 International Business Machines Corporation In-development vulnerability response management
JP2011150716A (en) * 2011-03-07 2011-08-04 Fujitsu Ltd Program, apparatus and method for auditing vulnerability
US20110302566A1 (en) * 2010-06-03 2011-12-08 International Business Machines Corporation Fixing security vulnerability in a source code

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060259973A1 (en) * 2005-05-16 2006-11-16 S.P.I. Dynamics Incorporated Secure web application development environment
US20110191855A1 (en) * 2010-01-29 2011-08-04 International Business Machines Corporation In-development vulnerability response management
US20110302566A1 (en) * 2010-06-03 2011-12-08 International Business Machines Corporation Fixing security vulnerability in a source code
JP2011150716A (en) * 2011-03-07 2011-08-04 Fujitsu Ltd Program, apparatus and method for auditing vulnerability

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019142469A1 (en) * 2018-01-17 2019-07-25 三菱電機株式会社 Security design apparatus, security design method, and security design program
WO2019142267A1 (en) * 2018-01-17 2019-07-25 三菱電機株式会社 Security design apparatus, security design method, and security design program
JP2021533476A (en) * 2018-08-03 2021-12-02 コンティネンタル・テーベス・アクチエンゲゼルシヤフト・ウント・コンパニー・オッフェネ・ハンデルスゲゼルシヤフト How to parse source text
KR20200134084A (en) * 2019-05-21 2020-12-01 국방과학연구소 Apparatus and method for generating patch
KR102195748B1 (en) * 2019-05-21 2020-12-28 국방과학연구소 Apparatus and method for generating patch
JP2022535785A (en) * 2019-06-12 2022-08-10 エヌイーシー ラボラトリーズ ヨーロッパ ゲーエムベーハー Methods and Contract Rewriting Framework Systems for Supporting Smart Contracts in Blockchain Networks
JP7250178B2 (en) 2019-06-12 2023-03-31 エヌイーシー ラボラトリーズ ヨーロッパ ゲーエムベーハー Methods and Contract Rewriting Framework Systems for Supporting Smart Contracts in Blockchain Networks
JP7456843B2 (en) 2020-05-08 2024-03-27 株式会社日立製作所 Program modification device, program modification method, and program modification program
JP2021108189A (en) * 2020-05-14 2021-07-29 ベイジン バイドゥ ネットコム サイエンス テクノロジー カンパニー リミテッドBeijing Baidu Netcom Science Technology Co., Ltd. Method for acquiring vulnerability feature, device, and electronic apparatus
JP7231664B2 (en) 2020-05-14 2023-03-01 阿波▲羅▼智▲聯▼(北京)科技有限公司 Vulnerability feature acquisition method, device and electronic device

Also Published As

Publication number Publication date
JP5845888B2 (en) 2016-01-20

Similar Documents

Publication Publication Date Title
JP5845888B2 (en) Software correction apparatus, software correction system, software correction method, and software correction program
JP4976991B2 (en) Information processing apparatus, program verification method, and program
US20080263525A1 (en) Method and system for detecting vulnerabilities in source code
Alameer et al. Detecting and localizing internationalization presentation failures in web applications
US11775414B2 (en) Automated bug fixing using deep learning
US20120023486A1 (en) Verification of Information-Flow Downgraders
US10261884B2 (en) Method for correcting violation of source code and computer readable recording medium having program performing the same
JPWO2006087780A1 (en) Vulnerability audit program, vulnerability audit device, vulnerability audit method
JP2008191963A (en) Source code verification system, source code verification method and source code verification program
CA2815527A1 (en) Bidirectional text checker
Dong et al. Orplocator: Identifying read points of configuration options via static analysis
JP5176478B2 (en) Data flow analysis device, data flow analysis method, and data flow analysis program
WO2007124178A2 (en) Methods for processing formatted data
JP2008299723A (en) Program verification method and device
US9557965B2 (en) Method for programming language dependent merging of program codes
AU2012203538A1 (en) Systems and methods for inter-object pattern matching
WO2014050424A1 (en) Signature verification device, signature verification method, and program
JP5077455B2 (en) Vulnerability audit program, vulnerability audit device, vulnerability audit method
JP5369565B2 (en) Program error information output device, error information output method, and error information output program
Chahar et al. Code analysis for software and system security using open source tools
US20170329697A1 (en) Detecting mistyped identifiers and suggesting corrections using other program identifiers
JP5758311B2 (en) Test code generation device, test code generation method, test code generation program
CN110989991A (en) Method and system for detecting source code clone open source software in application program
JP2016057715A (en) Graphic type program analyzer
CN105912893A (en) Strengthening method based on Android system microinstruction just-in-time compilation

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20141117

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150708

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150804

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151001

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: 20151027

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151109

R150 Certificate of patent or registration of utility model

Ref document number: 5845888

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150