JP7430625B2 - バージョン検証装置、バージョン検証システム及びバージョン検証方法 - Google Patents
バージョン検証装置、バージョン検証システム及びバージョン検証方法 Download PDFInfo
- Publication number
- JP7430625B2 JP7430625B2 JP2020202414A JP2020202414A JP7430625B2 JP 7430625 B2 JP7430625 B2 JP 7430625B2 JP 2020202414 A JP2020202414 A JP 2020202414A JP 2020202414 A JP2020202414 A JP 2020202414A JP 7430625 B2 JP7430625 B2 JP 7430625B2
- Authority
- JP
- Japan
- Prior art keywords
- software version
- information
- version
- target software
- structured information
- 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
- 238000012795 verification Methods 0.000 title claims description 167
- 238000000034 method Methods 0.000 title claims description 75
- 230000008569 process Effects 0.000 claims description 57
- 238000004891 communication Methods 0.000 claims description 13
- 238000000605 extraction Methods 0.000 claims description 11
- 239000000284 extract Substances 0.000 claims description 9
- 238000013500 data storage Methods 0.000 description 21
- 238000010586 diagram Methods 0.000 description 17
- 238000003491 array Methods 0.000 description 10
- 230000009471 action Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 230000007547 defect Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000008867 communication pathway Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- 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)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Description
しかし、ソフトウェア製品のバージョンを示すバージョン情報は、共通のバージョン名の形式が存在せず、ソフトウェア製品を提供するベンダー、製品の種類等によって表記が異なるため、脆弱性の影響を受けるソフトウェア製品バージョンの識別が困難となる場合がある。
例えば、Luis Alberto Benthin Sanguino and Rafael Uetz. 2017. “Software Vulnerability Analysis Using CPE and CVE”. ArXiv Preprint、ArXiv:1705.05347 (2017)(非特許文献1)には、「本論文では、Common Platform Enumeration(CPE)辞書とCommon Vulnerabilities and Exposures(CVE)フィードを分析する。これらのリポジトリは、ソフトウェア製品の既知の脆弱性をチェックするために、脆弱性管理システム(VMS)で広く使用されている。本論文の分析では、他の問題の中でもとりわけ、両方のデータセット間の同期の欠如が、それらのデータセットに依存するVMSによって出力される誤った結果につながる可能性があることを示す。これらの問題に対処するために、特定のソフトウェア製品のCPE識別子の優先リストをユーザに推奨する方法を開発した。次に、ユーザはソフトウェアに最適なCPE識別子を割り当てる(必要に応じて適応させる)ことができるため、定期的な(たとえば毎日の)チェックでCVEフィード内のこのソフトウェアの既知の脆弱性を見つけることができる。本論文では、完全に自動化されたCPE割り当てでは、CPEとCVEの欠点によりエラーが発生しやすいため、本論文による方法が実際に必要であることが示されている」技術が記載されている。
しかし、非特許文献1に記載の方法は、アルファベットと数値だけで構成されているバージョン情報に関する識別方法であり、括弧やアンダーバー等の特殊文字を含むバージョン情報は想定されていない。
上記以外の課題、構成及び効果は、以下の発明を実施するための形態における説明により明らかにされる。
しかし、ソフトウェア製品のバージョンを示すバージョン情報は、共通のバージョン名形式が存在せず、ソフトウェア製品を提供するベンダー、製品の種類等によって表記が異なるため、脆弱性の影響を受けるソフトウェア製品バージョンの識別が困難となる場合がある。
例えば、従来では、2つの文字列が一致するか否かを判定する手法として、いわゆる文字列比較が知られている。この文字列比較では、特定の文字列が、他の文字列に完全に一致するか(つまり、全ての文字が一致するか)否かを判定することができ、特に数値のみによって構成されている文字列や、アルファベットのみによって構成されている文字列については高精度の比較結果が得られる。
ただし、ソフトウェアバージョンを示すバージョン情報の場合、アルファベットや数値のみならず、括弧やアンダーバー等の特殊文字が含まれていることが多い。更に、脆弱性を含むと判明しているバージョン情報は、範囲で指定される場合があるため、特定のバージョン情報が当該脆弱性の影響を受けるか否かを判定するためには、ある文字列が指定されている範囲に収まるか否かを判断する必要がある。
しかし、文字列比較のような既存の手法は、アルファベット、数値、特殊文字等が混在している場合や、範囲の内外判定が求められる場合に対応しておらず、ソフトウェアバージョンの比較・検証が困難であり、ソフトウェアバージョンに適した検証手段が望まれている。
本開示の実施形態に係るソフトウェア製品とは、パソコン、医療機器、自動車、家電等、任意のコンピューティングデバイスで稼働し、所定の作業や業務を目的としたアプリケーションソフトウェアを意味し、本開示では特に限定されない。
検証対象のソフトウェアバージョン情報と、脆弱性を含むと判明している参照用のバージョン情報とが文字要素毎に細分化され、構造形式に変換された後、これらの対象ソフトウェアバージョン情報と、参照用ソフトウェアバージョン情報とを文字要素毎に比較することで、対象ソフトウェアバージョン情報の、参照用ソフトウェアバージョン情報に対する類似度を判定することができる。対象ソフトウェアバージョン情報の、参照用ソフトウェアバージョン情報に対する類似度が所定の基準を満たす場合(例えば、一致する場合)に、対象ソフトウェアバージョン情報は、参照用のバージョン情報と同様の、脆弱性を含む可能性が高いため、更新する必要がある。
このように、本開示の実施形態に係るバージョン検証によれば、バージョンの更新が必要なソフトウェア製品を容易に識別することができる。
対象ソフトウェア格納部365に格納されているソフトウェア製品は、パソコン、医療機器、車載機器、家電等、任意のコンピューティングデバイス上で稼働するように構成されたソフトウェアプリケーションであってもよい。また、このソフトウェア製品は、ソフトウェアのバージョンを示す対象ソフトウェアバージョン情報を含む。一例として、ソフトウェア製品は、「1.3」のような数値及びピリオドから構成されている文字列や、「1105c_v2」のような数値、アルファベット、及び特殊文字(アンダーバー)から構成されている文字列等を対象ソフトウェアバージョン情報として含んでもよい。
後述するように、この対象ソフトウェアバージョン情報を所定の構造形式に変換し、参照用ソフトウェアバージョン構造化情報に対する類似度を判定することで、当該対象ソフトウェアは、バージョンの更新が必要か否かを容易に判定することができる。
なお、ここでの類似度とは、対象ソフトウェアバージョン情報と参照用ソフトウェアバージョン情報とが互いに一致する度合いを示す尺度であってもよく、対象ソフトウェアバージョン情報と参照用ソフトウェアバージョン情報との大小関係を示してもよい。
なお、対象ソフトウェアバージョン情報を構造形式に変換するための処理の詳細については図5を参照して説明するため、ここではその説明を省略する。
この検証結果は、対象ソフトウェアバージョン構造化情報が参照用ソフトウェアバージョン構造化情報に一致するか、対象ソフトウェアバージョン構造化情報が参照用ソフトウェアバージョン構造化情報より古いか、対象ソフトウェアバージョン構造化情報が参照用ソフトウェアバージョン構造化情報より新しいかを示してもよい。この検証結果に基づいて、対象ソフトウェアのソフトウェアバージョンの更新要否を判定することができる。
このように、検証結果に基づいて対象ソフトウェアのソフトウェアバージョンを自動的に更新する更新部379を備えることにより、対象ソフトウェアを手動で更新する手間を抑えることができる。
なお、構造化ルールの詳細については、図7を参照して説明するため、ここではその説明を省略する。
例えば、検証の結果、対象ソフトウェアのソフトウェアバージョンが、脆弱性を含むと判明している参照用ソフトウェアのソフトウェアバージョンに一致する場合、又は、対象ソフトウェアバージョン構造化情報が参照用ソフトウェアバージョン構造化情報より古い場合には、当該脆弱性を解消するために、対象ソフトウェアのソフトウェアバージョンを最新のバージョンに更新することが望ましい。
以下では、図4に示すバージョン検証装置370の論理構成400一例を参照して、本開示の全体の流れについて説明する。
例えば、図4に示すように、具体的には、構造化部374は、対象ソフトウェアバージョン情報402及び参照用ソフトウェアバージョン情報404のそれぞれを、構造化ルール格納に従って細分化することで、構造形式に変換する。この処理により、対象ソフトウェアバージョン情報402を構造形式に変換した対象ソフトウェアバージョン構造化情報と、参照用ソフトウェアバージョン情報404を構造形式に変換した参照用ソフトウェアバージョン構造化情報とが生成される。
図5に示す構造化処理500は、例えば図3及び図4に示す構造化部(例えば、構造化部374)によって行われてもよい。構造化部は、例えば図3に示す構造化ルール格納部(図3に示す構造化ルール格納部380)に格納されている構造化ルールを取得し、対象ソフトウェアバージョン情報に対して適用することで構造化処理500を実行してもよい。
図5に示す構造化処理500におけるステップS502~S504、ステップS506~S508、ステップS510~S512、及びステップS514~S516のそれぞれは、構造化ルール格納部に格納されている異なる構造化ルールに対応する。
なお、本開示では、「細分化」との表現は、ソフトウェアバージョン情報である文字列を複数の細かなグループ(ユニット、サブユニット、文字要素)に分割することを意味する。
構造化処理500を適用する前に、図6に示すソフトウェアバージョン情報606である文字列が1つのユニットとして扱われる。ここでのユニットとは、上述した構造化ルールを適用するデータ単位である。1つのユニットは、1つ又は複数のサブユニットから構成されてもよい。構造化ルールは、文字列を構成するユニットおよびサブユニット毎に適用される。更に、1つのサブユニットは、1つ又は複数の他のサブユニット、若しくは1つ又は複数の文字要素から構成されてもよい。ここでの文字要素とは、文字列の中で、同一の文字タイプ(数値、アルファベットなど)の文字のみによって構成されるデータ単位である。
以下、図6に示すソフトウェアバージョン情報606の細分化の一例を参照しながら、図5に示す構造化処理500を説明する。
括弧がソフトウェアバージョン情報に含まれている場合、本処理はステップS504へ進み、括弧が対象ソフトウェアバージョン情報に含まれていない場合、本処理はステップS506へ進む。
ピリオドがソフトウェアバージョン情報に含まれている場合、本処理はステップ508へ進み、ピリオドがソフトウェアバージョン情報に含まれていない場合、本処理はステップS510へ進む。
ステップS508の終了後、本処理はステップS510へ進む。
アンダーバーがソフトウェアバージョン情報に含まれている場合、本処理はステップ514へ進み、アンダーバーがソフトウェアバージョン情報に含まれていない場合、本処理はステップS512へ進む。
ステップS512の終了後、本処理はステップS514へ進む。
数値及びアルファベットが混在している場合、本処理はステップS516へ進み、数値及びアルファベットが混在していない場合、本処理は終了し、現時点の文字列を構造化データとして出力する。
なお、以上説明した構造化処理500では、括弧、ピリオド、アンダーバー、アルファベット、及び数値に基づいて細分化を行う構造化ルールを一例として説明したが、本開示はこれに限定されず、任意の文字の有無に基づいて細分化を行ってもよい。例えば、ある実施形態では、所定の文字や、構造化ルールは、ユーザの入力に基づいて規定されてもよい。
することで対象ソフトウェアバージョン構造化情報を検証し、対象ソフトウェアバージョン構造化情報の参照用ソフトウェアバージョン構造化情報に対する類似度を判定するための処理である。
図7に示すバージョン検証処理700は、本開示の実施形態に係る検証部(例えば、図3に示す検証部376)によって行われる。
例えば、一例としては、構造化情報が「20v1.r1_3(a1)」の場合には、「20v1」が左端サブユニットであるため、「20v1」を比較対象aとして抽出する(図6に示すソフトウェアバージョン構造化情報630における左端のサブユニットであるサブユニット615)。
比較対象a又は比較対象bのいずれか一方において、複数の文字タイプが含まれていると判定された場合には、本処理はステップS714へ進む。一方、比較対象a又は比較対象bのいずれか一方において、複数の文字タイプが含まれていないと判定された場合には、本処理はステップS716へ進む
一例として、比較対象aが「20v1」の場合には、最も左側の文字要素である「20」が比較対象aとなり、「v」及び「1」の文字要素が格納配列Aに改めて追加される。
このように、比較対象を文字要素とすることができるため、ソフトウェアバージョン構造化情報を文字要素毎に比較することが可能となる。
比較対象aと比較対象bとが等しい(a=b)ことを示す検証結果が出力される場合、本開示の実施形態に係る更新部(例えば、更新部379)は、対象ソフトウェアのソフトウェアバージョンを自動的に最新のソフトウェアバージョンに更新してもよい。
比較対象aが比較対象bより小さいと判定された場合には、本処理はステップS726へ進み、比較対象aが比較対象bより小さいと判定されない場合には、本処理はステップS728へ進む。
比較対象aが比較対象bより小さい(a<b)ことを示す検証結果が出力される場合、本開示の実施形態に係る更新部(例えば、更新部379)は、対象ソフトウェアのソフトウェアバージョンを自動的に最新のソフトウェアバージョンに更新してもよい。
比較対象aが比較対象bより大きいと判定された場合には、本処理はステップS730へ進む。
まず、対象ソフトウェアバージョン情報が「1.3.2」であり、参照用ソフトウェアバージョン情報が「1.3.3」である場合を検討する。
まず、対象ソフトウェアバージョン情報及び参照用ソフトウェアバージョン情報のそれぞれが図5を参照して説明した構造化処理500を受け、対象ソフトウェアバージョン構造化情報(「1」、「3」、「2」)及び対象ソフトウェアバージョン構造化情報(「1」、「3」、「3」)に変換され、ステップS702及びステップS704で入力される。
次に、ステップS706では、データ格納配列A及びデータ格納配列Bが初期化される。
次に、ステップS708では、対象ソフトウェアバージョン構造化情報がデータ格納配列Aに追加され、参照用ソフトウェアバージョン情報がデータ格納配列Bに追加される。
次に、ステップS710では、データ格納配列Aに格納されている対象ソフトウェアバージョン構造化情報から、左端のサブユニットである「1」が比較対象aとして抽出され、データ格納配列Bに格納されている参照用ソフトウェアバージョン構造化情報から、左端のサブユニットである「1」が比較対象bとして抽出される。
次に、ステップS712では、比較対象a及び比較対象bが複数の文字タイプを含むか否かが判定される。比較対象a及び比較対象bは両方とも「1」であるため、複数の文字タイプを含まないと判定される。
次に、ステップS716では、「1」である比較対象a及び「1」である比較対象bが比較された結果、「1=1」であるため、処理はステップS718へ進む。
次に、ステップS718では、データ格納配列A及びBがNULLデータか否かが判定された結果、他のサブユニットが残っているため、データ格納配列A及びBがNULLデータでないと判定され、処理がステップS710へ戻る。
次に、ステップS710では、データ格納配列Aに格納されている対象ソフトウェアバージョン構造化情報から、次の左端のサブユニットである「3」が比較対象aとして抽出され、データ格納配列Bに格納されている参照用ソフトウェアバージョン構造化情報から、次の左端のサブユニットである「3」が比較対象bとして抽出される。その後、ステップS712からステップS716を繰り返した結果、3=3であるため、処理はステップS718へ進む。
次に、ステップS718では、データ格納配列A及びBがNULLデータか否かが判定された結果、他のサブユニットが残っているため、データ格納配列A及びBがNULLデータでないと判定され、処理がステップS710へ戻る。
次に、ステップS710では、データ格納配列Aに格納されている対象ソフトウェアバージョン構造化情報から、次の左端のサブユニットである「2」が比較対象aとして抽出され、データ格納配列Bに格納されている参照用ソフトウェアバージョン構造化情報から、次の左端のサブユニットである「3」が比較対象bとして抽出される。
その後、ステップS712~ステップS724を行った結果、「2」<「3」であるため、本処理はステップS726へ進み、検証結果として、比較対象aが比較対象bより小さい(つまり、対象ソフトウェアバージョン情報が参照用ソフトウェアバージョン情報より古い)ことを示す情報が出力される。また、この検証結果に基づいて、対象ソフトウェアのソフトウェアバージョンは更新部によって更新されてもよい。
まず、対象ソフトウェアバージョン情報及び参照用ソフトウェアバージョン情報のそれぞれが図5を参照して説明した構造化処理500を受け、対象ソフトウェアバージョン構造化情報(「1」、「3」、「2、f」)及び対象ソフトウェアバージョン構造化情報(「1」、「3」、「2」)に変換され、ステップS702及びステップS704で入力される。
なお、今回の場合、対象ソフトウェアバージョン情報及び参照用ソフトウェアバージョン情報は、最後のサブユニット(「2f」及び「2」)以外は互いに一致するため、最後のサブユニットを抽出するまでの処理が上述したのと同様である。そのため、この処理の説明を省略する。
対象ソフトウェアバージョン構造化情報及び参照用ソフトウェアバージョン構造化情報における「1」及び「3」のサブユニットの比較が終了した後、ステップS710では、データ格納配列Aに格納されている対象ソフトウェアバージョン構造化情報から、左端のサブユニットである「2f」が比較対象aとして抽出され、データ格納配列Bに格納されている参照用ソフトウェアバージョン構造化情報から、左端のサブユニットである「2」が比較対象bとして抽出される。
次に、ステップS712では、「2f」である比較対象aは、複数の文字タイプを含むと判定され、「2」である比較対象bは、複数の文字タイプを含むと判定されない。
次に、ステップS714では、比較対象aにおいて、複数の文字タイプ(数値及びアルファベット)が含まれていると判定されたため、比較対象aにおいて、最も左側の文字要素である「2」のみが比較対象aとされ、残りの文字要素である「f」が削除される。その後、削除された文字要素「f」は、元の格納配列Aに改めて追加される。
一方、比較対象bにおいて、複数の文字タイプが含まれていると判定されなかったため、格納配列BnihaNULLデータが追加される。その後、処理はステップS712へ戻る。
次に、ステップS712では、比較対象a及び比較対象bが複数の文字タイプを含むか否かが判定される。比較対象a及び比較対象bは両方とも「2」であるため、複数の文字タイプを含まないと判定される。
次に、ステップ716では、「2」である比較対象a及び「2」である比較対象bが比較された結果、「2=2」であるため、処理はステップS718へ進む。
次に、ステップS718では、データ格納配列A及びBがNULLデータか否かが判定された結果、データ格納配列Aには「f」のサブユニットが残っているため、データ格納配列A及びBがNULLデータでないと判定され、処理がステップS710へ戻る。
次に、ステップS710では、データ格納配列Aに格納されている対象ソフトウェアバージョン構造化情報から、左端のサブユニットである「f」が比較対象aとして抽出され、データ格納配列BがNULLデータとなっているため、「NULL」が比較対象bとして抽出される。その後、ステップS712からステップS716を繰り返した結果、f>NULLであるため、本処理はステップS730へ進み、検証結果として、比較対象aが比較対象bより大きい(つまり、対象ソフトウェアバージョン情報が参照用ソフトウェアバージョン情報より新しい)ことを示す情報が出力される。また、この検証結果に基づいて、対象ソフトウェアのソフトウェアバージョンは、更新が不要であると判定される。
なお、図8に示す特定文字対処テーブル800には、文字要素がアスタリスクや範囲等の場合の動作及び結果を一例として示しているが、本開示は図8に示す文字要素に限定されず、任意の特殊文字に対応してもよい。例えば、バージョン検証装置の管理者は、特定文字対処テーブル800を編集し、新たな文字要素と、当該文字要素に対応する動作を登録することにより、任意の特殊文字に対応可能な検証を実現することができる。
上述したように、本開示の実施形態に係る構造化部(例えば、図3に示す構造化部374)は、入力した対象ソフトウェアバージョン情報と参照用ソフトウェアバージョン情報とのそれぞれに対して、構造化ルール格納部に格納されている構造化ルールを適用することで、構造形式に変換する。その後、検証部(例えば、図3に示す検証部376)は、構造化部によって生成された対象ソフトウェアバージョン構造化情報及び参照用ソフトウェアバージョン構造化情報を比較することで、対象ソフトウェアバージョン構造化情報の参照用ソフトウェアバージョン構造化情報に対する類似度を判定し、この類似度を示す検証結果を生成する。
そこで、「g」が「NULL」より大きいため、対象ソフトウェアバージョン情報が参照用ソフトウェアバージョン情報より大きい、すなわち、より新しいことを示す検証結果が生成される。
前記対象ソフトウェアバージョン構造化情報の前記参照用ソフトウェアバージョン構造化情報に対する類似度を示す検証結果を出力する工程と、をコンピューティングデバイスに実行させるためのプログラム命令を含む。
365 対象ソフトウェア格納部
370 バージョン検証装置
372 抽出部
374 構造化部
376 検証部
378 通信部
379 更新部
380 構造化ルール格納部
382 参照用ソフトウェアバージョン構造化情報格納部
384 検証結果格納部
386 対象ソフトウェアバージョン構造化情報格納部
Claims (11)
- ソフトウェアバージョンを検証するためのバージョン検証装置であって、
バージョン検証の対象となる対象ソフトウェアのソフトウェアバージョンを示し、アルファベット、数値及び特殊文字の文字タイプの内、複数の異なる文字タイプを含む対象ソフトウェアバージョン情報を前記対象ソフトウェアから抽出する抽出部と、
前記対象ソフトウェアバージョン情報における所定の文字の有無に基づいて文字列の細分化を規定する構造化ルールを用いて、前記対象ソフトウェアバージョン情報を、同一の文字タイプの文字のみによって構成されている文字要素を含む1つ以上のサブユニットからなる構造形式に変換した対象ソフトウェアバージョン構造化情報を生成する構造化部と、
前記対象ソフトウェアバージョン構造化情報を、参照用のソフトウェアバージョンを前記構造形式で示す参照用ソフトウェアバージョン構造化情報と比較することにより、前記対象ソフトウェアバージョン構造化情報の前記参照用ソフトウェアバージョン構造化情報に対する類似度を判定する検証部と、
前記対象ソフトウェアバージョン構造化情報の前記参照用ソフトウェアバージョン構造化情報に対する類似度を示す検証結果を出力する通信部と、
を含み、
前記検証部は、
前記対象ソフトウェアバージョン構造化情報を前記参照用ソフトウェアバージョン構造化情報と比較する際、数値又はアルファベット以外の特定文字に対して実行する動作を示す、ユーザによって編集可能な特定文字対処テーブルを格納し、
前記対象ソフトウェアバージョン構造化情報を前記参照用ソフトウェアバージョン構造化情報と比較する際、前記参照用ソフトウェアバージョン構造化情報において、文字要素の範囲が指定されていると判定した場合、前記特定文字対処テーブルに示される前記動作に基づいて、前記範囲内に含まれる文字要素毎に、前記対象ソフトウェアバージョン構造化情報と前記参照用ソフトウェアバージョン構造化情報とを繰り返して比較することで、前記対象ソフトウェアバージョン構造化情報が前記参照用ソフトウェアバージョン構造化情報の範囲に収まるか否かを判定する、
ことを特徴とするバージョン検証装置。 - 前記検証結果は、
前記対象ソフトウェアバージョン構造化情報が前記参照用ソフトウェアバージョン構造化情報に一致するか、前記対象ソフトウェアバージョン構造化情報が前記参照用ソフトウェアバージョン構造化情報より古いか、前記対象ソフトウェアバージョン構造化情報が前記参照用ソフトウェアバージョン構造化情報より新しいかを示す、
ことを特徴とする、請求項1に記載のバージョン検証装置。 - 前記バージョン検証装置は、
前記対象ソフトウェアバージョン構造化情報が前記参照用ソフトウェアバージョン構造化情報に一致する、又は、前記対象ソフトウェアバージョン構造化情報が前記参照用ソフトウェアバージョン構造化情報より古い場合には、前記対象ソフトウェアのソフトウェアバージョンを更新する更新部を更に含む、
ことを特徴とする、請求項2に記載のバージョン検証装置。 - 前記所定の文字は、
括弧、ピリオド、アンダーバー、アルファベット、及び数値を含む、
ことを特徴とする、請求項1に記載のバージョン検証装置。 - 前記構造化部は、
前記構造化ルールとして、
前記対象ソフトウェアバージョン情報において、括弧が存在する場合、
前記括弧内の文字を前記対象ソフトウェアバージョン情報から抽出し、異なるサブユニットとする、
ことを特徴とする、請求項4に記載のバージョン検証装置。 - 前記構造化部は、
前記構造化ルールとして、
前記対象ソフトウェアバージョン情報において、ピリオドが存在する場合、
前記対象ソフトウェアバージョン情報を前記ピリオドで分割する、
ことを特徴とする、請求項5に記載のバージョン検証装置。 - 前記構造化部は、
前記構造化ルールとして、
前記対象ソフトウェアバージョン情報において、アンダーバーが存在する場合、
前記対象ソフトウェアバージョン情報を前記アンダーバーで分割する、
ことを特徴とする、請求項6に記載のバージョン検証装置。 - 前記構造化部は、
前記構造化ルールとして、
前記対象ソフトウェアバージョン情報において、アルファベットと数値が連続する場合、
前記対象ソフトウェアバージョン情報を前記アルファベットと前記数値の間で分割する、
ことを特徴とする、請求項7に記載のバージョン検証装置。 - 前記検証部は、
前記対象ソフトウェアバージョン構造化情報と、前記参照用ソフトウェアバージョン構造化情報とを、それぞれを構成する文字要素毎に比較する、
ことを特徴とする、請求項1に記載のバージョン検証装置。 - ソフトウェアバージョンを検証するためのバージョン検証システムであって、
前記バージョン検証システムは、バージョン検証の対象となる対象ソフトウェアを格納する対象ソフトウェア格納部と、
バージョン検証処理を実行するためのバージョン検証装置とを含み、
前記バージョン検証装置は、
前記対象ソフトウェアのソフトウェアバージョンを示し、アルファベット、数値及び特殊文字の文字タイプの内、複数の異なる文字タイプを含む対象ソフトウェアバージョン情報を前記対象ソフトウェア格納部に格納されている前記対象ソフトウェアから抽出する抽出部と、
前記対象ソフトウェアバージョン情報における所定の文字の有無に基づいて文字列の細分化を規定する構造化ルールを用いて、前記対象ソフトウェアバージョン情報を所定の構造形式に変換した対象ソフトウェアバージョン構造化情報を生成する構造化部と、
前記対象ソフトウェアバージョン構造化情報を、参照用のソフトウェアバージョンを前記構造形式で示す参照用ソフトウェアバージョン構造化情報と比較することにより、前記対象ソフトウェアバージョン構造化情報の前記参照用ソフトウェアバージョン構造化情報に対する類似度を判定する検証部と、
前記対象ソフトウェアバージョン構造化情報の前記参照用ソフトウェアバージョン構造化情報に対する類似度を示す検証結果を出力する通信部と、
を含み、
前記検証部は、
前記対象ソフトウェアバージョン構造化情報を前記参照用ソフトウェアバージョン構造化情報と比較する際、数値又はアルファベット以外の特定文字に対して実行する動作を示す、ユーザによって編集可能な特定文字対処テーブルを格納し、
前記対象ソフトウェアバージョン構造化情報を前記参照用ソフトウェアバージョン構造化情報と比較する際、前記参照用ソフトウェアバージョン構造化情報において、文字要素の範囲が指定されていると判定した場合、前記特定文字対処テーブルに示される前記動作に基づいて、前記範囲内に含まれる文字要素毎に、前記対象ソフトウェアバージョン構造化情報と前記参照用ソフトウェアバージョン構造化情報とを繰り返して比較することで、前記対象ソフトウェアバージョン構造化情報が前記参照用ソフトウェアバージョン構造化情報の範囲に収まるか否かを判定する、
ことを特徴とするバージョン検証システム。 - ソフトウェアバージョンを検証するためのバージョン検証装置においてコンピュータソフトウエアによって実施されるバージョン検証方法であって、
前記バージョン検証装置は、
メモリと、プロセッサとを含み、
前記メモリは、
バージョン検証の対象となる対象ソフトウェアのソフトウェアバージョンを示す対象ソフトウェアバージョン情報を前記対象ソフトウェアから抽出する工程と、
前記対象ソフトウェアバージョン情報における所定の文字の有無に基づいて文字列の細分化を規定する構造化ルールを用いて、前記対象ソフトウェアバージョン情報を、同一の文字タイプの文字のみによって構成されている文字要素を含む1つ以上のサブユニットからなる構造形式に変換した対象ソフトウェアバージョン構造化情報を生成する工程と、
前記対象ソフトウェアバージョン構造化情報を、参照用のソフトウェアバージョンを前記構造形式で示す参照用ソフトウェアバージョン構造化情報と比較することにより、前記対象ソフトウェアバージョン構造化情報の前記参照用ソフトウェアバージョン構造化情報に対する類似度を判定する工程と、
前記対象ソフトウェアバージョン構造化情報の前記参照用ソフトウェアバージョン構造化情報に対する類似度を示す検証結果を出力する工程と、
を含み、
前記対象ソフトウェアバージョン情報における所定の文字の有無に基づいて文字列の細分化を規定する構造化ルールを用いて、前記対象ソフトウェアバージョン情報を所定の構造形式に変換した対象ソフトウェアバージョン構造化情報を生成する工程は、
前記対象ソフトウェアバージョン情報において、括弧が存在する場合、
前記括弧内の文字を前記対象ソフトウェアバージョン情報から抽出し、異なるサブユニットとする工程と、
前記対象ソフトウェアバージョン情報において、ピリオドが存在する場合、
前記対象ソフトウェアバージョン情報を前記ピリオドで分割する工程と、
前記対象ソフトウェアバージョン情報において、アンダーバーが存在する場合、
前記対象ソフトウェアバージョン情報を前記アンダーバーで分割する工程と、
前記対象ソフトウェアバージョン情報において、アルファベットと数値が連続する場合、
前記対象ソフトウェアバージョン情報を前記アルファベットと前記数値の間で分割する工程と、
前記対象ソフトウェアバージョン構造化情報を前記参照用ソフトウェアバージョン構造化情報と比較する際、数値又はアルファベット以外の特定文字に対して実行する動作を示す特定文字対処テーブルを構成する工程と、
前記対象ソフトウェアバージョン構造化情報を前記参照用ソフトウェアバージョン構造化情報と比較する際、前記参照用ソフトウェアバージョン構造化情報において、文字要素の範囲が指定されていると判定した場合、前記特定文字対処テーブルに示される前記動作に基づいて、前記範囲内に含まれる文字要素毎に、前記対象ソフトウェアバージョン構造化情報と前記参照用ソフトウェアバージョン構造化情報とを繰り返して比較することで、前記対象ソフトウェアバージョン構造化情報が前記参照用ソフトウェアバージョン構造化情報の範囲に収まるか否かを判定する工程と、
を前記プロセッサに実行させる処理命令を含むことを特徴とする、バージョン検証方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020202414A JP7430625B2 (ja) | 2020-12-07 | 2020-12-07 | バージョン検証装置、バージョン検証システム及びバージョン検証方法 |
US17/457,277 US20220179637A1 (en) | 2020-12-07 | 2021-12-02 | Version Checking Apparatus, Version Checking System, and Version Checking Method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020202414A JP7430625B2 (ja) | 2020-12-07 | 2020-12-07 | バージョン検証装置、バージョン検証システム及びバージョン検証方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2022090187A JP2022090187A (ja) | 2022-06-17 |
JP7430625B2 true JP7430625B2 (ja) | 2024-02-13 |
Family
ID=81849011
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020202414A Active JP7430625B2 (ja) | 2020-12-07 | 2020-12-07 | バージョン検証装置、バージョン検証システム及びバージョン検証方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20220179637A1 (ja) |
JP (1) | JP7430625B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2023177482A (ja) | 2022-06-02 | 2023-12-14 | 日本メクトロン株式会社 | バッテリ監視モジュール及びフレキシブルプリント配線板 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040024781A1 (en) | 2002-08-01 | 2004-02-05 | The Regents Of The University Of California | Method of comparing version strings |
JP2020173535A (ja) | 2019-04-09 | 2020-10-22 | 住友電気工業株式会社 | 管理装置、通信システム、車両通信管理方法および車両通信管理プログラム |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7506336B1 (en) * | 2005-06-29 | 2009-03-17 | Emc Corporation | System and methods for version compatibility checking |
US8151257B2 (en) * | 2007-05-29 | 2012-04-03 | Sap Ag | Managing different versions of server components regarding compatibility with collaborating servers |
US8276121B2 (en) * | 2007-06-19 | 2012-09-25 | Microsoft Corporation | Selection of versioned resource among multiple compatible versions |
US9417865B2 (en) * | 2010-05-28 | 2016-08-16 | Red Hat, Inc. | Determining when to update a package manager software |
US8689208B2 (en) * | 2010-06-24 | 2014-04-01 | Microsoft Corporation | Upgrade management of application components |
US11294665B1 (en) * | 2014-04-23 | 2022-04-05 | William Knight Foster | Computerized software version control with a software database and a human database |
JP6884128B2 (ja) * | 2018-09-20 | 2021-06-09 | 株式会社日立製作所 | データ重複排除装置、データ重複排除方法、及びデータ重複排除プログラム |
US10762214B1 (en) * | 2018-11-05 | 2020-09-01 | Harbor Labs Llc | System and method for extracting information from binary files for vulnerability database queries |
US11237895B2 (en) * | 2020-02-26 | 2022-02-01 | Capital One Services, Llc | System and method for managing software error resolution |
-
2020
- 2020-12-07 JP JP2020202414A patent/JP7430625B2/ja active Active
-
2021
- 2021-12-02 US US17/457,277 patent/US20220179637A1/en active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040024781A1 (en) | 2002-08-01 | 2004-02-05 | The Regents Of The University Of California | Method of comparing version strings |
JP2020173535A (ja) | 2019-04-09 | 2020-10-22 | 住友電気工業株式会社 | 管理装置、通信システム、車両通信管理方法および車両通信管理プログラム |
Non-Patent Citations (1)
Title |
---|
PHP version_compare - Manual,2003年08月22日,https://web.archive.org/web/20031014144035/http://www.php.net:80/manual/ja/function.version-compare.php |
Also Published As
Publication number | Publication date |
---|---|
US20220179637A1 (en) | 2022-06-09 |
JP2022090187A (ja) | 2022-06-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11157693B2 (en) | Stylistic text rewriting for a target author | |
US10095610B2 (en) | Testing applications with a defined input format | |
JP5751251B2 (ja) | 意味抽出装置、意味抽出方法、および、プログラム | |
CN108536745B (zh) | 基于Shell的数据表提取方法、终端、设备及存储介质 | |
US20210326524A1 (en) | Method, apparatus and device for quality control and storage medium | |
WO2021208727A1 (zh) | 基于人工智能的文本错误检测方法、装置、计算机设备 | |
CN112384909A (zh) | 利用无监督学习来改进文本到内容建议的方法和系统 | |
CN112400165A (zh) | 利用无监督学习来改进文本到内容建议的方法和系统 | |
JP7430625B2 (ja) | バージョン検証装置、バージョン検証システム及びバージョン検証方法 | |
CN111581344A (zh) | 一种接口信息审核方法、装置、计算机设备及存储介质 | |
WO2022230226A1 (en) | A meta-learning data augmentation framework | |
US11461411B2 (en) | System and method for parsing visual information to extract data elements from randomly formatted digital documents | |
US20220391505A1 (en) | Rule generating device and rule generating program | |
CN113111065A (zh) | 数据库创建方法、装置、计算机设备及存储介质 | |
JP6972788B2 (ja) | 特定プログラム、特定方法および情報処理装置 | |
WO2018193707A1 (ja) | 情報処理装置、プログラム、情報処理方法及びデータ構造 | |
US11875141B2 (en) | System and method for training a neural machine translation model | |
US11615260B2 (en) | Systems and methods for enforcing constraints in character recognition | |
US11995400B2 (en) | Rapid language detection for characters in images of documents | |
CN112035501B (zh) | 用户标识的更新方法、装置和设备 | |
US20230153609A1 (en) | Method and system for refining column mappings using byte level attention based neural model | |
US20230306196A1 (en) | System and method for spelling correction | |
US20220101162A1 (en) | Systems and methods for enforcing constraints to predictions | |
CA2862955C (en) | Kernel based string descriptors | |
CN116955934A (zh) | 一种网络传输数据降噪方法、装置、计算设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20230207 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20231017 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20231107 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20231211 |
|
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: 20240109 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20240131 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7430625 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |