JP7430625B2 - バージョン検証装置、バージョン検証システム及びバージョン検証方法 - Google Patents

バージョン検証装置、バージョン検証システム及びバージョン検証方法 Download PDF

Info

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
Application number
JP2020202414A
Other languages
English (en)
Other versions
JP2022090187A (ja
Inventor
アショクマール チェッティマニ
恒太 井手口
修吾 三上
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2020202414A priority Critical patent/JP7430625B2/ja
Priority to US17/457,277 priority patent/US20220179637A1/en
Publication of JP2022090187A publication Critical patent/JP2022090187A/ja
Application granted granted Critical
Publication of JP7430625B2 publication Critical patent/JP7430625B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version 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

本開示は、バージョン検証装置、バージョン検証システム及びバージョン検証方法に関する。
近年、IT化の進展に伴い、ソフトウェア製品は、パソコンに加えて、医療機器、自動車、家電等、様々な業界の装置上に利用されている。これらのソフトウェア製品は、最初の出荷時の製品に含まれていた不具合を取り除いたり、出荷後に発見された脆弱性を解決したり、新たな機能を追加したり、既にある機能を改良したりするために、バージョンが更新されることがある。
特にソフトウェア製品において脆弱性が発見された場合、当該脆弱性を解消し、データの安全性を保証するためには、ソフトウェア製品を最新のバージョンに更新することが重要である。このため、ソフトウェア製品において脆弱性が発見された場合、当該脆弱性の影響を受けるソフトウェア製品バージョンを識別する必要がある。
しかし、ソフトウェア製品のバージョンを示すバージョン情報は、共通のバージョン名の形式が存在せず、ソフトウェア製品を提供するベンダー、製品の種類等によって表記が異なるため、脆弱性の影響を受けるソフトウェア製品バージョンの識別が困難となる場合がある。
従来、特定の脆弱性の影響を受けるソフトウェア製品を識別するいくつかの提案がなされている。
例えば、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の欠点によりエラーが発生しやすいため、本論文による方法が実際に必要であることが示されている」技術が記載されている。
Luis Alberto Benthin Sanguino and Rafael Uetz. 2017. "Software Vulnerability Analysis Using CPE and CVE". ArXiv Preprint、ArXiv:1705.05347 (2017)。
非特許文献1には、いわゆる文字列探索の手法を用いることで特定の脆弱性の影響を受けるソフトウェア製品を識別する方法が記載されている。
しかし、非特許文献1に記載の方法は、アルファベットと数値だけで構成されているバージョン情報に関する識別方法であり、括弧やアンダーバー等の特殊文字を含むバージョン情報は想定されていない。
そこで、本開示は、任意の特殊文字を含むバージョン情報の場合であっても、対象のソフトウェアバージョン情報を検証し、対象のソフトウェアバージョン情報の、例えば脆弱性を含むと判明している参照用のバージョン情報に対する類似度を示す検証結果を生成することで、バージョンの更新が必要なソフトウェア製品を容易に識別するバージョン検証手段を提供することを目的とする。
上記の課題を解決するために、代表的な本開示のバージョン検証装置の一つは、バージョン検証の対象となる対象ソフトウェアのソフトウェアバージョンを示す対象ソフトウェアバージョン情報を前記対象ソフトウェアから抽出する抽出部と、前記対象ソフトウェアバージョン情報における所定の文字の有無に基づいて文字列の細分化を規定する構造化ルールを用いて、前記対象ソフトウェアバージョン情報を所定の構造形式に変換した対象ソフトウェアバージョン構造化情報を生成する構造化部と、前記対象ソフトウェアバージョン構造化情報を、参照用のソフトウェアバージョンを前記構造形式で示す参照用ソフトウェアバージョン構造化情報に比較することにより、前記対象ソフトウェアバージョン構造化情報の前記参照用ソフトウェアバージョン構造化情報に対する類似度を判定する検証部と、前記対象ソフトウェアバージョン構造化情報の前記参照用ソフトウェアバージョン構造化情報に対する類似度を示す検証結果を出力する通信部とを含む。
本開示によれば、任意の特殊文字を含むバージョン情報の場合であっても、対象のソフトウェアバージョン情報を検証し、対象のソフトウェアバージョン情報の、例えば脆弱性を含むと判明している参照用のバージョン情報に対する類似度を示す検証結果を生成することで、バージョンの更新が必要なソフトウェア製品を容易に識別するバージョン検証手段を提供することができる。
上記以外の課題、構成及び効果は、以下の発明を実施するための形態における説明により明らかにされる。
図1は、本開示の実施形態を実施するためのコンピューターシステムのハードウェア構成の一例を示す図である。 図2は、本開示の実施形態に係るバージョン情報の形式の種類を示すバージョン情報テーブルを示す図である。 図3は、本開示の実施形態に係るバージョン検証システムの構成の一例を示す図である。 図4は、本開示の実施形態に係るバージョン検証装置の論理構成の一例を示す図である 図5は、本開示の実施形態に係る構造化処理の流れの一例を示す図である。 図6は、本開示の実施形態に係る構造化処理をソフトウェアバージョン情報に適用し、ソフトウェアバージョン構造化情報を生成する一例を示す図である。 図7は、本開示の実施形態に係るソフトウェアバージョンを検証するためのバージョン検証処理の流れの一例を示す図である。 図8は、本開示の実施形態に係るバージョン検証処理において、特定の文字が文字列に存在する場合の対処法を示す特定文字対処テーブルを示す図である。 図9は、本開示の実施形態に係るバージョン検証処理におけるソフトウェアバージョン比較の具体例を示す図である。
以下、図面を参照して、本発明の実施形態について説明する。なお、この実施形態により本発明が限定されるものではない。また、図面の記載において、同一部分には同一の符号を付して示している。
上述したように、ソフトウェア製品における脆弱性が発見された場合、当該脆弱性を解消し、データの安全性を保証するためには、ソフトウェア製品を最新のバージョンに更新することが重要である。このため、ソフトウェア製品における脆弱性が発見された場合、当該脆弱性の影響を受けるソフトウェア製品バージョンを識別する必要がある。
しかし、ソフトウェア製品のバージョンを示すバージョン情報は、共通のバージョン名形式が存在せず、ソフトウェア製品を提供するベンダー、製品の種類等によって表記が異なるため、脆弱性の影響を受けるソフトウェア製品バージョンの識別が困難となる場合がある。
従来では、特定の脆弱性の影響を受けるソフトウェア製品を識別するいくつかの提案がなされているが、従来の提案はいずれも、括弧やアンダーバー等の特殊文字を含むバージョン情報を想定しておらず、応用範囲が限定的である。
例えば、従来では、2つの文字列が一致するか否かを判定する手法として、いわゆる文字列比較が知られている。この文字列比較では、特定の文字列が、他の文字列に完全に一致するか(つまり、全ての文字が一致するか)否かを判定することができ、特に数値のみによって構成されている文字列や、アルファベットのみによって構成されている文字列については高精度の比較結果が得られる。
ただし、ソフトウェアバージョンを示すバージョン情報の場合、アルファベットや数値のみならず、括弧やアンダーバー等の特殊文字が含まれていることが多い。更に、脆弱性を含むと判明しているバージョン情報は、範囲で指定される場合があるため、特定のバージョン情報が当該脆弱性の影響を受けるか否かを判定するためには、ある文字列が指定されている範囲に収まるか否かを判断する必要がある。
しかし、文字列比較のような既存の手法は、アルファベット、数値、特殊文字等が混在している場合や、範囲の内外判定が求められる場合に対応しておらず、ソフトウェアバージョンの比較・検証が困難であり、ソフトウェアバージョンに適した検証手段が望まれている。
そこで、本開示は、検証対象のソフトウェアバージョン情報を、共通の構造形式に変換した上で脆弱性を含むと判明している参照用のバージョン情報に比較することにより、任意の特殊文字を含むバージョン情報の場合であっても、バージョンの更新が必要なソフトウェア製品を識別することができる。
本開示の実施形態に係るソフトウェア製品とは、パソコン、医療機器、自動車、家電等、任意のコンピューティングデバイスで稼働し、所定の作業や業務を目的としたアプリケーションソフトウェアを意味し、本開示では特に限定されない。
本開示の実施形態に係る共通の構造形式とは、対象ソフトウェアバージョン情報と、参照用ソフトウェアバージョン情報を比較するための共通の形式である。この構造形式では、ソフトウェアバージョン情報となる文字列は、当該文字列を構成する文字要素毎に細分化される。
検証対象のソフトウェアバージョン情報と、脆弱性を含むと判明している参照用のバージョン情報とが文字要素毎に細分化され、構造形式に変換された後、これらの対象ソフトウェアバージョン情報と、参照用ソフトウェアバージョン情報とを文字要素毎に比較することで、対象ソフトウェアバージョン情報の、参照用ソフトウェアバージョン情報に対する類似度を判定することができる。対象ソフトウェアバージョン情報の、参照用ソフトウェアバージョン情報に対する類似度が所定の基準を満たす場合(例えば、一致する場合)に、対象ソフトウェアバージョン情報は、参照用のバージョン情報と同様の、脆弱性を含む可能性が高いため、更新する必要がある。
このように、本開示の実施形態に係るバージョン検証によれば、バージョンの更新が必要なソフトウェア製品を容易に識別することができる。
まず、図1を参照して、本開示の実施形態を実施するためのコンピューターシステム300について説明する。本明細書で開示される様々な実施形態の機構及び装置は、任意の適切なコンピューティングシステムに適用されてもよい。コンピューターシステム300の主要コンポーネントは、1つ以上のプロセッサ302、メモリ304、端末インターフェース312、ストレージインタフェース314、I/O(入出力)デバイスインタフェース316、及びネットワークインターフェース318を含む。これらのコンポーネントは、メモリバス306、I/Oバス308、バスインターフェースユニット309、及びI/Oバスインターフェースユニット310を介して、相互的に接続されてもよい。
コンピューターシステム300は、プロセッサ302と総称される1つ又は複数の汎用プログラマブル中央処理装置(CPU)302A及び302Bを含んでもよい。ある実施形態では、コンピューターシステム300は複数のプロセッサを備えてもよく、また別の実施形態では、コンピューターシステム300は単一のCPUシステムであってもよい。各プロセッサ302は、メモリ304に格納された命令を実行し、オンボードキャッシュを含んでもよい。
ある実施形態では、メモリ304は、データ及びプログラムを記憶するためのランダムアクセス半導体メモリ、記憶装置、又は記憶媒体(揮発性又は不揮発性のいずれか)を含んでもよい。メモリ304は、本明細書で説明する機能を実施するプログラム、モジュール、及びデータ構造のすべて又は一部を格納してもよい。例えば、メモリ304は、バージョン検証アプリケーション350を格納していてもよい。ある実施形態では、バージョン検証アプリケーション350は、後述する機能をプロセッサ302上で実行する命令又は記述を含んでもよい。
ある実施形態では、バージョン検証アプリケーション350は、プロセッサベースのシステムの代わりに、またはプロセッサベースのシステムに加えて、半導体デバイス、チップ、論理ゲート、回路、回路カード、および/または他の物理ハードウェアデバイスを介してハードウェアで実施されてもよい。ある実施形態では、バージョン検証アプリケーション350は、命令又は記述以外のデータを含んでもよい。ある実施形態では、カメラ、センサ、または他のデータ入力デバイス(図示せず)が、バスインターフェースユニット309、プロセッサ302、またはコンピューターシステム300の他のハードウェアと直接通信するように提供されてもよい。
コンピューターシステム300は、プロセッサ302、メモリ304、表示システム324、及びI/Oバスインターフェースユニット310間の通信を行うバスインターフェースユニット309を含んでもよい。I/Oバスインターフェースユニット310は、様々なI/Oユニットとの間でデータを転送するためのI/Oバス308と連結していてもよい。I/Oバスインターフェースユニット310は、I/Oバス308を介して、I/Oプロセッサ(IOP)又はI/Oアダプタ(IOA)としても知られる複数のI/Oインタフェースユニット312,314,316、及び318と通信してもよい。
表示システム324は、表示コントローラ、表示メモリ、又はその両方を含んでもよい。表示コントローラは、ビデオ、オーディオ、又はその両方のデータを表示装置326に提供することができる。また、コンピューターシステム300は、データを収集し、プロセッサ302に当該データを提供するように構成された1つまたは複数のセンサ等のデバイスを含んでもよい。
例えば、コンピューターシステム300は、心拍数データやストレスレベルデータ等を収集するバイオメトリックセンサ、湿度データ、温度データ、圧力データ等を収集する環境センサ、及び加速度データ、運動データ等を収集するモーションセンサ等を含んでもよい。これ以外のタイプのセンサも使用可能である。表示システム324は、単独のディスプレイ画面、テレビ、タブレット、又は携帯型デバイスなどの表示装置326に接続されてもよい。
I/Oインタフェースユニットは、様々なストレージ又はI/Oデバイスと通信する機能を備える。例えば、端末インタフェースユニット312は、ビデオ表示装置、スピーカテレビ等のユーザ出力デバイスや、キーボード、マウス、キーパッド、タッチパッド、トラックボール、ボタン、ライトペン、又は他のポインティングデバイス等のユーザ入力デバイスのようなユーザI/Oデバイス320の取り付けが可能である。ユーザは、ユーザインターフェースを使用して、ユーザ入力デバイスを操作することで、ユーザI/Oデバイス320及びコンピューターシステム300に対して入力データや指示を入力し、コンピューターシステム300からの出力データを受け取ってもよい。ユーザインターフェースは例えば、ユーザI/Oデバイス320を介して、表示装置に表示されたり、スピーカによって再生されたり、プリンタを介して印刷されたりしてもよい。
ストレージインタフェース314は、1つ又は複数のディスクドライブや直接アクセスストレージ装置322(通常は磁気ディスクドライブストレージ装置であるが、単一のディスクドライブとして見えるように構成されたディスクドライブのアレイ又は他のストレージ装置であってもよい)の取り付けが可能である。ある実施形態では、ストレージ装置322は、任意の二次記憶装置として実装されてもよい。メモリ304の内容は、ストレージ装置322に記憶され、必要に応じてストレージ装置322から読み出されてもよい。I/Oデバイスインタフェース316は、プリンタ、ファックスマシン等の他のI/Oデバイスに対するインターフェースを提供してもよい。ネットワークインターフェース318は、コンピューターシステム300と他のデバイスが相互的に通信できるように、通信経路を提供してもよい。この通信経路は、例えば、ネットワーク330であってもよい。
ある実施形態では、コンピューターシステム300は、マルチユーザメインフレームコンピュータシステム、シングルユーザシステム、又はサーバコンピュータ等の、直接的ユーザインターフェースを有しない、他のコンピューターシステム(クライアント)からの要求を受信するデバイスであってもよい。他の実施形態では、コンピューターシステム300は、デスクトップコンピュータ、携帯型コンピュータ、ノートパソコン、タブレットコンピュータ、ポケットコンピュータ、電話、スマートフォン、又は任意の他の適切な電子機器であってもよい。
次に、図2を参照して、本開示の実施形態に係るバージョン情報の種類について説明する。
図2は、本開示の実施形態に係るバージョン情報の形式の種類を示すバージョン情報テーブル200を示す図である。上述したように、ソフトウェア製品のバージョン情報を示すための共通のバージョン名形式が存在せず、ソフトウェア製品を提供するベンダー、製品の種類等によってソフトウェアバージョン情報の表記が異なる。以下では、バージョン情報テーブル200を参照して、ソフトウェア情報として用いられているいくつかの形式のバージョン情報について説明する。
バージョン情報テーブル200は、各バージョン情報の形式の種類について、当該形式の名称を示す形式名201、当該形式の簡潔な説明を示す説明202、当該形式の具体例を示す例203、当該形式の正規表現を示す正規表現204、当該形式が公式CPE辞書に含まれる確率を示す公式CPE辞書205、及び当該形式がNVDCVEフィードに含まれる確率を示すNVDCVEフィード206を含む。
バージョン情報テーブル200に示すように、「1.2」や「2.0」等の数値とピリオドのみによって構成されているバージョン情報や、「0044_update_05032019-482」等の数値、アルファベット、及び特殊文字によって構成されているバージョン情報等、様々な形式が存在する。このため、形式が異なるバージョン情報の直接比較が難しく、仮に脆弱性や不具合を含むソフトウェアバージョンが発見されても、当該ソフトウェアバージョンに一致する、すなわち、当該脆弱性の影響を受けるソフトウェアバージョンを識別することが困難となる場合がある。
従って、上述したように、本開示では、検証対象のソフトウェアバージョン情報を、所定の構造化ルールに基づいて共通の構造形式に変換した上で脆弱性を含むと判明している参照用のバージョン情報に比較することにより、任意の特殊文字を含むバージョン情報の場合であっても、バージョンの更新が必要なソフトウェアバージョンを識別することができる。
次に、図3を参照して、本開示の実施形態に係るバージョン検証システムの構成について説明する。
図3は、本開示の実施形態に係るバージョン検証システム360の構成の一例を示す図である。図3に示すように、本開示の実施形態に係るバージョン検証システム360は、対象ソフトウェア格納部365と、バージョン検証装置370とを主に含む。対象ソフトウェア格納部365及びバージョン検証装置370は、同じネットワークに含まれてもよく、LANやインターネット等の通信ネットワークを介して接続されてもよく、同一のハードウェアデバイスに格納されてもよい。
対象ソフトウェア格納部365は、バージョン検証の対象となるソフトウェア製品を格納するためのストレージ部である。対象ソフトウェア格納部365は、装置に搭載されているハードディスクドライブやソリッドステートドライブ等のストレージ装置であってもよく、クラウドサーバ等の分散型ストレージプラットフォームであってもよく、本開示では特に限定されない。
対象ソフトウェア格納部365に格納されているソフトウェア製品は、パソコン、医療機器、車載機器、家電等、任意のコンピューティングデバイス上で稼働するように構成されたソフトウェアプリケーションであってもよい。また、このソフトウェア製品は、ソフトウェアのバージョンを示す対象ソフトウェアバージョン情報を含む。一例として、ソフトウェア製品は、「1.3」のような数値及びピリオドから構成されている文字列や、「1105c_v2」のような数値、アルファベット、及び特殊文字(アンダーバー)から構成されている文字列等を対象ソフトウェアバージョン情報として含んでもよい。
後述するように、この対象ソフトウェアバージョン情報を所定の構造形式に変換し、参照用ソフトウェアバージョン構造化情報に対する類似度を判定することで、当該対象ソフトウェアは、バージョンの更新が必要か否かを容易に判定することができる。
なお、ここでの類似度とは、対象ソフトウェアバージョン情報と参照用ソフトウェアバージョン情報とが互いに一致する度合いを示す尺度であってもよく、対象ソフトウェアバージョン情報と参照用ソフトウェアバージョン情報との大小関係を示してもよい。
バージョン検証装置370は、所定のソフトウェアバージョン情報に対するバージョン検証処理を行うための装置である。図3に示すように、バージョン検証装置370は、抽出部372、構造化部374、検証部376、通信部378、構造化ルール格納部380、更新部379、参照用ソフトウェアバージョン構造化情報格納部382、検証結果格納部384、及び対象ソフトウェアバージョン構造化情報格納部386を含む。
抽出部372は、バージョン検証の対象となる対象ソフトウェアのソフトウェアバージョンを示す対象ソフトウェアバージョン情報を対象ソフトウェアから抽出するための機能部である。抽出部372は、例えば、対象ソフトウェア格納部365に格納されているソフトウェア製品から、当該ソフトウェア製品のソフトウェアバージョンを示す対象ソフトウェアバージョン情報を抽出してもよい。
構造化部374は、ソフトウェアバージョン情報における所定の文字の有無に基づいて文字列の細分化を規定する構造化ルールを用いて、ソフトウェアバージョン情報を所定の構造形式に変換したソフトウェアバージョン構造化情報を生成するための機能部である。ここでの所定の文字とは、例えば、括弧、ピリオド、アンダーバー、アルファベット、及び数値を含んでもよいが、特に限定されず、任意の文字を含んでもよい。後述するように、この構造形式は、対象ソフトウェアバージョン情報と、参照用ソフトウェアバージョン情報を比較するための共通形式である。また、対象ソフトウェアバージョン情報を構造形式に変換するための構造化ルールは、図3に示す構造化ルール格納部380に格納されている。
なお、対象ソフトウェアバージョン情報を構造形式に変換するための処理の詳細については図5を参照して説明するため、ここではその説明を省略する。
検証部376は、対象ソフトウェアバージョン構造化情報を、参照用のソフトウェアバージョンを構造形式で示す参照用ソフトウェアバージョン構造化情報に比較することにより、対象ソフトウェアバージョン構造化情報の参照用ソフトウェアバージョン構造化情報に対する類似度を判定するための機能部である。検証部376は、対象ソフトウェアバージョン構造化情報の参照用ソフトウェアバージョン構造化情報に対する類似度を示す検証結果を生成し、この検証結果を検証結果格納部384に保存してもよい。
この検証結果は、対象ソフトウェアバージョン構造化情報が参照用ソフトウェアバージョン構造化情報に一致するか、対象ソフトウェアバージョン構造化情報が参照用ソフトウェアバージョン構造化情報より古いか、対象ソフトウェアバージョン構造化情報が参照用ソフトウェアバージョン構造化情報より新しいかを示してもよい。この検証結果に基づいて、対象ソフトウェアのソフトウェアバージョンの更新要否を判定することができる。
通信部378は、対象ソフトウェアバージョン構造化情報の参照用ソフトウェアバージョン構造化情報に対する類似度を示す検証結果を出力するための機能部である。通信部378は、例えば、検証結果を、対象ソフトウェアが稼働しているコンピューティングデバイスの所有者等、任意の通知先に送信してもよい。ある実施形態では、通信部378は、対象ソフトウェアバージョン構造化情報が参照用ソフトウェアバージョン構造化情報に一致する、又は、対象ソフトウェアバージョン構造化情報が参照用ソフトウェアバージョン構造化情報より古いと判定された場合、対象ソフトウェアのソフトウェアバージョンを更新する更新指令を更新部379に送信してもよい。
更新部379は、対象ソフトウェアのソフトウェアバージョンを更新するための機能部である。ある実施形態では、更新部379は、対象ソフトウェアバージョン構造化情報が前記参照用ソフトウェアバージョン構造化情報に一致する、又は、対象ソフトウェアバージョン構造化情報が参照用ソフトウェアバージョン構造化情報より古い場合には、対象ソフトウェアのソフトウェアバージョンを更新してもよい。ある実施形態では、更新部379は、通信部378から受信した更新指令に基づいて対象ソフトウェアのソフトウェアバージョンを更新してもよい。
このように、検証結果に基づいて対象ソフトウェアのソフトウェアバージョンを自動的に更新する更新部379を備えることにより、対象ソフトウェアを手動で更新する手間を抑えることができる。
構造化ルール格納部380は、対象ソフトウェアバージョン情報を構造形式に変換するための構造化ルールを格納するためのストレージ部である。上述したように、これらの構造化ルールは、所定の文字の有無に基づいて文字列の細分化を規定するルールである。
なお、構造化ルールの詳細については、図7を参照して説明するため、ここではその説明を省略する。
参照用ソフトウェアバージョン構造化情報格納部382は、参照用のソフトウェアバージョンを構造形式で示す参照用ソフトウェアバージョン構造化情報を格納するためのストレージ部である。この参照用ソフトウェアバージョン構造化情報は、例えば、脆弱性を有すると判明しているソフトウェアバージョンを構造形式で示す情報であり、後述するように、対象ソフトウェアバージョン構造化情報と比較される情報となる。
検証結果格納部384は、対象ソフトウェアバージョン構造化情報を、参照用ソフトウェアバージョン構造化情報に比較することによって得られる検証結果を格納するためのストレージ部である。上述したように、この検証結果格納部384に格納される検証結果は、通信部378によって所定の通知先に送信されてもよく、更新部379によるソフトウェアバージョンの更新要否を判定するために用いられてもよい。
対象ソフトウェアバージョン構造化情報格納部386は、抽出部372が、対象ソフトウェア格納部365に格納されているソフトウェアから抽出した対象ソフトウェアバージョン情報を構造形式に変換した対象ソフトウェアバージョン構造化情報を格納するためのストレージ部である。
以上説明したように構成したバージョン検証システム360によれば、対象のソフトウェアバージョン情報を検証し、対象のソフトウェアバージョン情報の、例えば脆弱性を含む判明している参照用のバージョン情報に対する類似度を示す検証結果を生成することで、バージョンの更新が必要なソフトウェア製品を容易に識別することができる。
次に、図4を参照して、本開示の実施形態に係るバージョン検証装置の論理構成について説明する。
図4は、本開示の実施形態に係るバージョン検証装置370の論理構成400の一例を示す図である。
上述したように、本開示では、検証対象のソフトウェアのソフトウェアバージョンを示す対象ソフトウェアバージョン情報を所定の構造形式に変換し、例えば脆弱性を含むと判明している参照用ソフトウェアのソフトウェアバージョンを構造形式で示した参照用ソフトウェアバージョン構造化情報と比較することで、対象ソフトウェアバージョンの参照用ソフトウェアバージョンに対する類似度を判定することができる。そして、この類似度に基づいて、対象ソフトウェアの更新要否を判定することができる。
例えば、検証の結果、対象ソフトウェアのソフトウェアバージョンが、脆弱性を含むと判明している参照用ソフトウェアのソフトウェアバージョンに一致する場合、又は、対象ソフトウェアバージョン構造化情報が参照用ソフトウェアバージョン構造化情報より古い場合には、当該脆弱性を解消するために、対象ソフトウェアのソフトウェアバージョンを最新のバージョンに更新することが望ましい。
以下では、図4に示すバージョン検証装置370の論理構成400一例を参照して、本開示の全体の流れについて説明する。
まず、図4に示すように、バージョン検証装置370は、対象ソフトウェアのソフトウェアバージョンを示す対象ソフトウェアバージョン情報402と、参照用ソフトウェア(例えば、脆弱性や不具合を含むと判明しているソフトウェア)のソフトウェアバージョンを示す参照用ソフトウェアバージョン情報404を入力する。より具体的には、バージョン検証装置370は、上述した抽出部(例えば図3に示す抽出部372)を用いて対象ソフトウェアバージョン情報402を対象ソフトウェアから抽出し、参照用ソフトウェアバージョン情報404を、CVE等の、脆弱性を含むと判明しているソフトウェアバージョンの情報を格納する第三者データベースから取得してもよい。
次に、バージョン検証装置370における構造化部374は、入力した対象ソフトウェアバージョン情報402と参照用ソフトウェアバージョン情報404とのそれぞれに対して、構造化ルール格納部(例えば図3に示す構造化ルール格納部380)に格納されている構造化ルールを適用することで、構造形式に変換する。
例えば、図4に示すように、具体的には、構造化部374は、対象ソフトウェアバージョン情報402及び参照用ソフトウェアバージョン情報404のそれぞれを、構造化ルール格納に従って細分化することで、構造形式に変換する。この処理により、対象ソフトウェアバージョン情報402を構造形式に変換した対象ソフトウェアバージョン構造化情報と、参照用ソフトウェアバージョン情報404を構造形式に変換した参照用ソフトウェアバージョン構造化情報とが生成される。
次に、検証部376は、対象ソフトウェアバージョン構造化情報と、参照用ソフトウェアバージョン構造化情報とを比較することで、対象ソフトウェアバージョン構造化情報の参照用ソフトウェアバージョン構造化情報に対する類似度を判定し、この類似度を示す検証結果410を生成する。上述したように、この検証結果は、例えば、対象ソフトウェアバージョン構造化情報が参照用ソフトウェアバージョン構造化情報に一致するか、対象ソフトウェアバージョン構造化情報が参照用ソフトウェアバージョン構造化情報より古いか否か、対象ソフトウェアバージョン構造化情報が参照用ソフトウェアバージョン構造化情報より新しいか否かを示してもよい。この検証結果に基づいて、対象ソフトウェアのソフトウェアバージョンの更新要否を判定することができる。
次に、図5及び図6を参照し、本開示の実施形態に係る構造化処理について説明する。
図5は、本開示の実施形態に係る構造化処理500の流れの一例を示す図である。図5に示す構造化処理500は、ソフトウェアバージョン情報における所定の文字の有無に基づいて文字列の細分化を規定する構造化ルールを用いて、ソフトウェアバージョン情報を構造形式に変換し、ソフトウェアバージョン構造化情報を生成するための処理である。図5に示す構造化処理500は、上述した対象ソフトウェアバージョン情報を対象ソフトウェアバージョン構造化情報に変換すると共に、上述した参照用ソフトウェアバージョン情報をソフトウェアバージョン構造化情報に変換する。
図5に示す構造化処理500は、例えば図3及び図4に示す構造化部(例えば、構造化部374)によって行われてもよい。構造化部は、例えば図3に示す構造化ルール格納部(図3に示す構造化ルール格納部380)に格納されている構造化ルールを取得し、対象ソフトウェアバージョン情報に対して適用することで構造化処理500を実行してもよい。
図5に示す構造化処理500におけるステップS502~S504、ステップS506~S508、ステップS510~S512、及びステップS514~S516のそれぞれは、構造化ルール格納部に格納されている異なる構造化ルールに対応する。
なお、本開示では、「細分化」との表現は、ソフトウェアバージョン情報である文字列を複数の細かなグループ(ユニット、サブユニット、文字要素)に分割することを意味する。
図6は、本開示の実施形態に係る構造化処理500をソフトウェアバージョン情報606に適用し、ソフトウェアバージョン構造化情報を生成する一例を示す図である。
構造化処理500を適用する前に、図6に示すソフトウェアバージョン情報606である文字列が1つのユニットとして扱われる。ここでのユニットとは、上述した構造化ルールを適用するデータ単位である。1つのユニットは、1つ又は複数のサブユニットから構成されてもよい。構造化ルールは、文字列を構成するユニットおよびサブユニット毎に適用される。更に、1つのサブユニットは、1つ又は複数の他のサブユニット、若しくは1つ又は複数の文字要素から構成されてもよい。ここでの文字要素とは、文字列の中で、同一の文字タイプ(数値、アルファベットなど)の文字のみによって構成されるデータ単位である。
以下、図6に示すソフトウェアバージョン情報606の細分化の一例を参照しながら、図5に示す構造化処理500を説明する。
まず、ステップS502では、構造化部は、所定のソフトウェアバージョン情報(例えば、上述した抽出部によって抽出された対象ソフトウェアバージョン情報や、脆弱性を含むと判明している参照用ソフトウェアバージョン情報)において、括弧が含まれているか否かを判定する。例えば、図6に示すように、ソフトウェアバージョン情報606が「20v1.r1_3(a1)」の場合には、構造化部は、ソフトウェアバージョン情報において、括弧が含まれていると判定する。
括弧がソフトウェアバージョン情報に含まれている場合、本処理はステップS504へ進み、括弧が対象ソフトウェアバージョン情報に含まれていない場合、本処理はステップS506へ進む。
次に、ステップS504では、ソフトウェアバージョン情報において、括弧が含まれていると判定された場合には、構造化部は、括弧内の文字をソフトウェアバージョン情報から抽出し、別のサブユニットとする。例えば、図6に示すように、ソフトウェアバージョン情報606が「20v1.r1_3(a1)」の場合には、構造化部は、括弧内の「a1」をソフトウェアバージョン情報から抽出することで、ソフトウェアバージョン情報をユニット607と、サブユニット608との2つのユニットに細分化する。ステップS504の終了後、本処理はステップS506へ進む。
次に、ステップS506では、構造化部は、ソフトウェアバージョン情報において、ピリオドが含まれているか否かを判定する。例えば、図6に示すように、ソフトウェアバージョン情報606が「20v1.r1_3(a1)」の場合には、構造化部は、ソフトウェアバージョン情報において、ピリオドが含まれていると判定する。
ピリオドがソフトウェアバージョン情報に含まれている場合、本処理はステップ508へ進み、ピリオドがソフトウェアバージョン情報に含まれていない場合、本処理はステップS510へ進む。
次に、ステップS508では、ソフトウェアバージョン情報において、ピリオドが含まれていると判定された場合には、構造化部は、ソフトウェアバージョン情報を当該ピリオドで分割する。例えば、図6に示すように、ソフトウェアバージョン情報606が「20v1.r1_3(a1)」の場合には、構造化部は、ソフトウェアバージョン情報606を当該ピリオドで分割し、「20v1」、「r1_3(a1)」とする。この結果、ソフトウェアバージョン情報606は、「20v1」を含むユニット610と、「r1_3(a1)を含むユニット611とに細分化される。また、図6に示すように、ユニット611は、ステップS504で抽出されたサブユニット608を含む。
ステップS508の終了後、本処理はステップS510へ進む。
次に、ステップ510では、構造化部は、ソフトウェアバージョン情報において、アンダーバーが含まれているか否かを判定する。例えば、図6に示すように、ソフトウェアバージョン情報606が「20v1.r1_3(a1)」の場合には、構造化部は、ソフトウェアバージョン情報において、アンダーバーが含まれていると判定する。
アンダーバーがソフトウェアバージョン情報に含まれている場合、本処理はステップ514へ進み、アンダーバーがソフトウェアバージョン情報に含まれていない場合、本処理はステップS512へ進む。
次に、ステップS512では、ソフトウェアバージョン情報において、アンダーバーが含まれていると判定された場合には、構造化部は、ソフトウェアバージョン情報を当該アンダーバーで分割する。例えば、図6に示すように、ソフトウェアバージョン情報606が「20v1」、「r1_3(a1)」の場合には、構造化部は、ソフトウェアバージョン情報606を当該アンダーバーで分割し、「20v1」、「r1」、「3(a1)」とする。この結果、図6に示すソフトウェアバージョン情報606は、「20v1」を含むユニット610及び、「r1」を含むサブユニット613と、「3(a1)」を含むサブユニット614とを含むユニット611とに細分化される。また、図6に示すように、このサブユニット614は、ステップS504で抽出されたサブユニット608を含む。
ステップS512の終了後、本処理はステップS514へ進む。
次に、ステップS514では、構造化部は、ソフトウェアバージョン情報において、数値及びアルファベットが混在しているか否かを判定する。例えば、図6に示すように、ソフトウェアバージョン情報606が「20v1.r1_3(a1)」の場合には、構造化部は、対象ソフトウェアバージョン情報において、数値及びアルファベットが混在していると判定する。
数値及びアルファベットが混在している場合、本処理はステップS516へ進み、数値及びアルファベットが混在していない場合、本処理は終了し、現時点の文字列を構造化データとして出力する。
次に、ステップS516では、対象ソフトウェアバージョン情報において、数値及びアルファベットが混在している場合には、構造化部は、ソフトウェアバージョン情報を、数値及びアルファベットの間で分割する。例えば、図6に示すように、ソフトウェアバージョン情報606が「20v1」、「r1」、「3(a1)」の場合には、構造化部は、ソフトウェアバージョン情報606を数値及びアルファベットの間で分割し、「20」、「v」、「1」、「r」、「1」、「3」、「a」、「1」とし、このように細分化したソフトウェアバージョン情報をソフトウェアバージョン構造化情報630として生成する。この結果、ソフトウェアバージョン情報606は、「20」、「v」、「1」の文字要素から構成されるサブユニット615を含むユニット610及び、「r」、「1」の文字要素から構成されるサブユニット618と、「3」、「a」、「1」の文字要素から構成されるサブユニット620を含むユニット611とに分割される。
以上説明した構造化処理500によれば、対象ソフトウェアバージョン情報を上述した構造化ルールに従って細分化することで、対象ソフトウェアのソフトウェアバージョンを検証するための構造形式に変換した対象ソフトウェアバージョン構造化情報を生成することができると共に、ソフトウェアバージョン構造化情報を文字要素毎に比較することが可能となる。
なお、以上説明した構造化処理500では、括弧、ピリオド、アンダーバー、アルファベット、及び数値に基づいて細分化を行う構造化ルールを一例として説明したが、本開示はこれに限定されず、任意の文字の有無に基づいて細分化を行ってもよい。例えば、ある実施形態では、所定の文字や、構造化ルールは、ユーザの入力に基づいて規定されてもよい。
次に、図7を参照して、本開示の実施形態に係るソフトウェアバージョンを検証するためのバージョン検証処理について説明する。
図7は、本開示の実施形態に係るソフトウェアバージョンを検証するためのバージョン検証処理700の一例を示す図である。図7に示すバージョン検証処理700は、対象ソフトウェアバージョン構造化情報と、参照用ソフトウェアバージョン構造化情報とを比較
することで対象ソフトウェアバージョン構造化情報を検証し、対象ソフトウェアバージョン構造化情報の参照用ソフトウェアバージョン構造化情報に対する類似度を判定するための処理である。
図7に示すバージョン検証処理700は、本開示の実施形態に係る検証部(例えば、図3に示す検証部376)によって行われる。
まず、ステップS702及びS704では、検証部は、対象ソフトウェアバージョン構造化情報と、参照用ソフトウェアバージョン構造化情報とを入力する。例えば、ここでは、検証部は、対象ソフトウェアバージョン構造化情報格納部(例えば図3に示す対象ソフトウェアバージョン構造化情報格納部386)から対象ソフトウェアバージョン構造化情報を取得し、参照用ソフトウェアバージョン構造化情報格納部(例えば、図3に示す参照用ソフトウェアバージョン構造化情報格納部382)から参照用ソフトウェアバージョン構造化情報を取得してもよい。
次に、ステップS706では、検証部は、対象ソフトウェアバージョン構造化情報と、参照用ソフトウェアバージョン構造化情報とを格納するための格納配列A、Bを初期化する。ここでの格納配列とは、同一の型のデータを(メモリ上に)一列に並べたデータ構造である。例えば、ここでは、検証部は、バージョン検証装置のメモリ上に、検証部用に区分されているメモリにおいて、各要素がNULLデータ(つまり、「0」)の格納配列A、Bを作成してもよい。
次に、ステップS708では、検証部は、対象ソフトウェアバージョン構造化情報を格納配列Aに追加し、参照用ソフトウェアバージョン構造化情報を格納配列Bに追加する。これにより、格納配列A、BにおけるNULLデータが、対象ソフトウェアバージョン構造化情報及び参照用ソフトウェアバージョン構造化情報に上書きされる。
次に、ステップS710では、検証部は、格納配列Aから、最も左側のサブユニットである左端サブユニットを比較対象aとして抽出すると共に、格納配列Bから、最も右側のサブユニットである右端サブユニットを比較対象bとして抽出する。その後、検証部は、左端サブユニットを格納配列Aから削除し、右端サブユニットを格納配列Bから削除する。
例えば、一例としては、構造化情報が「20v1.r1_3(a1)」の場合には、「20v1」が左端サブユニットであるため、「20v1」を比較対象aとして抽出する(図6に示すソフトウェアバージョン構造化情報630における左端のサブユニットであるサブユニット615)。
次に、ステップS712では、検証部は、比較対象a又は比較対象bのいずれか一方において、複数の文字タイプ(数値、アルファベット、特殊文字)が含まれている(つまり、文字要素である)か否かを判定する。例えば、比較対象aが「20v1」の場合には、数値と、アルファベットとの2つの文字タイプが含まれているため、複数の文字タイプが存在すると判定する。一方、比較対象が「31」の場合には、数値との1つの文字タイプのみが含まれているため、複数の文字タイプが存在しないと判定される。
比較対象a又は比較対象bのいずれか一方において、複数の文字タイプが含まれていると判定された場合には、本処理はステップS714へ進む。一方、比較対象a又は比較対象bのいずれか一方において、複数の文字タイプが含まれていないと判定された場合には、本処理はステップS716へ進む
次に、ステップS714では、比較対象a又は比較対象bのいずれか一方において、複数の文字タイプ(数値、アルファベット、特殊文字)が含まれていると判定された場合、検証部は、当該比較対象であるサブユニットにおいて、最も左側の文字要素のみを比較対象とし、残りの文字要素を削除する。その後、削除された文字要素は、元の格納配列A、Bに改めて追加される。ステップS714の処理の結果、比較対象が複数の文字タイプを含まなくなった場合、検証部は、元の格納配列A又はBにNullデータを追加する。ステップS714の終了後、本処理はステップS712へ戻る。
一例として、比較対象aが「20v1」の場合には、最も左側の文字要素である「20」が比較対象aとなり、「v」及び「1」の文字要素が格納配列Aに改めて追加される。
このように、比較対象を文字要素とすることができるため、ソフトウェアバージョン構造化情報を文字要素毎に比較することが可能となる。
次に、ステップS716では、検証部は、比較対象a及び比較対象bを比較し、比較対象aと比較対象bとが等しい(a=b)か否かを判定する。比較対象aと比較対象bとが等しい場合には、本処理はステップS718へ進み、比較対象aと比較対象bとが等しくない場合には、本処理はステップS724へ戻る。
次に、ステップS718では、検証部は、格納配列A及び格納配列Bは共にNULLデータか否かを判定する。格納配列A及び格納配列Bは共にNULLデータデータ(つまり、NULLデータ以外の構造化情報がない)場合には、本処理はステップS722へ進み、格納配列A及び格納配列Bは共にNULLデータでない場合には、本処理はステップS710へ戻る。
次に、ステップS720では、検証部は、検証結果として、比較対象aと比較対象bとが等しい(a=b)ことを示す情報を出力する。比較対象aと比較対象bとが等しい(a=b)ことを示す検証結果は、対象ソフトウェアバージョン情報が参照用ソフトウェアバージョン情報に一致することを意味する。この場合、参照用ソフトウェアバージョンは、脆弱性を含むと知られていれば、この参照用ソフトウェアバージョンに一致する対象ソフトウェアバージョンも、同じ脆弱性を含む可能性が高い。従って、当該脆弱性を解消するために、対象ソフトウェアのソフトウェアバージョンを更新することが望ましい。
比較対象aと比較対象bとが等しい(a=b)ことを示す検証結果が出力される場合、本開示の実施形態に係る更新部(例えば、更新部379)は、対象ソフトウェアのソフトウェアバージョンを自動的に最新のソフトウェアバージョンに更新してもよい。
ステップS724では、検証部は、比較対象a及び比較対象bを比較し、比較対象aが比較対象bより小さい(a<b)か否かを判定する。ここで比較対象a及び比較対象bを比較する際、アルファベットは数値より大きいと判定される。
比較対象aが比較対象bより小さいと判定された場合には、本処理はステップS726へ進み、比較対象aが比較対象bより小さいと判定されない場合には、本処理はステップS728へ進む。
次に、ステップS726では、検証部は、検証結果として、比較対象aが比較対象bより小さい(a<b)ことを示す情報を出力する。比較対象aが比較対象bより小さい(a<b)ことを示す検証結果は、対象ソフトウェアバージョン情報が参照用ソフトウェアバージョン情報より古いことを意味する。この場合、参照用ソフトウェアバージョンは、脆弱性を含むと知られていれば、この参照用ソフトウェアバージョンより古い対象ソフトウェアバージョンも、同じ脆弱性を含む可能性が高い。従って、当該脆弱性を解消するために、対象ソフトウェアのソフトウェアバージョンを更新することが望ましい。
比較対象aが比較対象bより小さい(a<b)ことを示す検証結果が出力される場合、本開示の実施形態に係る更新部(例えば、更新部379)は、対象ソフトウェアのソフトウェアバージョンを自動的に最新のソフトウェアバージョンに更新してもよい。
ステップS728では、検証部は、比較対象a及び比較対象bを比較し、比較対象aが比較対象bより大きい(a>b)か否かを判定する。上述したように、ここで比較対象a及び比較対象bを比較する際、アルファベットは数値より大きいと判定される。
比較対象aが比較対象bより大きいと判定された場合には、本処理はステップS730へ進む。
ステップS730では、検証部は、検証結果として、比較対象aが比較対象bより大きい(a>b)ことを示す情報を出力する。比較対象aが比較対象bより大きい(a>b)ことを示す検証結果は、対象ソフトウェアバージョン情報が参照用ソフトウェアバージョン情報より新しいことを意味する。この場合、参照用ソフトウェアバージョンは、脆弱性を含むと判明しているとしても、対象ソフトウェアバージョンが参照用ソフトウェアバージョンより新しいため、当該脆弱性が既に解消されている可能性がある。従って、当該脆弱性を解消するための更新が必要とは限らず、対象ソフトウェアのソフトウェアバージョンの更新が自動的に実行されない。ある実施形態では、ここでは、対象ソフトウェアのソフトウェアバージョンが脆弱性を含むか否かを判定するための更なる検証が行われてもよい。
以下、バージョン検証処理700の具体例について説明する。
まず、対象ソフトウェアバージョン情報が「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より小さい(つまり、対象ソフトウェアバージョン情報が参照用ソフトウェアバージョン情報より古い)ことを示す情報が出力される。また、この検証結果に基づいて、対象ソフトウェアのソフトウェアバージョンは更新部によって更新されてもよい。
次に、対象ソフトウェアバージョン情報が「1.3.2f」であり、参照用ソフトウェアバージョン情報が「1.3.2」である場合を検討する。
まず、対象ソフトウェアバージョン情報及び参照用ソフトウェアバージョン情報のそれぞれが図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より大きい(つまり、対象ソフトウェアバージョン情報が参照用ソフトウェアバージョン情報より新しい)ことを示す情報が出力される。また、この検証結果に基づいて、対象ソフトウェアのソフトウェアバージョンは、更新が不要であると判定される。
以上説明したバージョン検証処理700によれば、数値やアルファベットから構成されるバージョン情報のみならず、括弧やアンダーバー等の特殊文字を含むソフトウェアバージョン情報に対応することが可能となり、柔軟性の高いバージョン検証を行うことができる。
次に、図8を参照して、本開示の実施形態に係るバージョン検証処理において、特定の文字が文字列に存在する場合の対処法について説明する。
図8は、本開示の実施形態に係るバージョン検証処理において、特定の文字が文字列に存在する場合の対処法を示す特定文字対処テーブル800を示す図である。
上述したように、図7を参照して説明したバージョン検証処理では、対象ソフトウェアバージョン構造化情報と、参照用ソフトウェアバージョン構造化情報とは、文字要素毎に比較される。この文字要素毎の比較の際、それぞれの文字要素が数値又はアルファベットの場合には、大小比較を行うことが容易にできるが、比較されている文字要素が数値又はアルファベット以外の文字の場合には、当該比較を行うためには、文字要素を解釈する必要がある。従って、特定文字対処テーブル800は、比較されている文字要素が数値又はアルファベット以外の特定文字の場合の対処法を示す。
図8に示すように、特定文字対処テーブル800は、比較の対象となる文字要素を示す文字要素810、当該文字要素があった場合の動作を指定する動作820と、当該動作による結果830を示す。対象ソフトウェアバージョン構造化情報と、参照用ソフトウェアバージョン構造化情報との比較を行う検証部(例えば、図3に示す検証部376)は、比較の対象となる文字要素の一方が、特定文字対処テーブル800の文字要素810に記載されている文字要素に対応すると判定した場合、当該文字要素に対応する動作820を実行することによって、当該動作820に対応する結果830を得ることができる。
なお、図8に示す特定文字対処テーブル800には、文字要素がアスタリスクや範囲等の場合の動作及び結果を一例として示しているが、本開示は図8に示す文字要素に限定されず、任意の特殊文字に対応してもよい。例えば、バージョン検証装置の管理者は、特定文字対処テーブル800を編集し、新たな文字要素と、当該文字要素に対応する動作を登録することにより、任意の特殊文字に対応可能な検証を実現することができる。
このように、検証部は、特定文字対処テーブル800を用いて対象ソフトウェアバージョン構造化情報と、参照用ソフトウェアバージョン構造化情報との比較を行うことで、数値やアルファベットから構成されるバージョン情報のみならず、アスタリスクやハイフン等の特殊文字、所定のバージョン範囲内を指定する文字、「X以上」や「X未満」等を指定する文字等、柔軟性の高いバージョン検証を行うことができる。
次に、図9を参照して、本開示の実施形態に係るバージョン検証処理におけるソフトウェアバージョン比較の具体例について説明する。
図9は、本開示の実施形態に係るバージョン検証処理におけるソフトウェアバージョン比較の具体例を示す図である。
上述したように、本開示の実施形態に係る構造化部(例えば、図3に示す構造化部374)は、入力した対象ソフトウェアバージョン情報と参照用ソフトウェアバージョン情報とのそれぞれに対して、構造化ルール格納部に格納されている構造化ルールを適用することで、構造形式に変換する。その後、検証部(例えば、図3に示す検証部376)は、構造化部によって生成された対象ソフトウェアバージョン構造化情報及び参照用ソフトウェアバージョン構造化情報を比較することで、対象ソフトウェアバージョン構造化情報の参照用ソフトウェアバージョン構造化情報に対する類似度を判定し、この類似度を示す検証結果を生成する。
例えば、図9に示す具体例1では、「4.1.6」との対象ソフトウェアバージョン情報と、「4.1.7」との参照用ソフトウェアバージョン情報とのそれぞれに対して、構造化ルール格納部に格納されている構造化ルールを適用することで、「4」、「1」、「6」との対象ソフトウェアバージョン構造化情報と、「4」、「1」、「7」との参照用ソフトウェアバージョン構造化情報とを生成する。その後、図7に示す検証所為を用いて対象ソフトウェアバージョン構造化情報と参照用ソフトウェアバージョン構造化情報と比較した場合、左から比較した最初の2つの文字要素(つまり、「4」及び「1」)が一致するため、検証の結果が最後の文字要素(つまり、「6」及び「7」)によって決まる。そこで、「6」が「7」より小さいため、対象ソフトウェアバージョン情報が参照用ソフトウェアバージョン情報より小さい、すなわち、より古いことを示す検証結果が生成される。
また、図9に示す具体例2では、「4.1.6g」との対象ソフトウェアバージョン情報と、「4.1.6」との参照用ソフトウェアバージョン情報とのそれぞれに対して、構造化ルール格納部に格納されている構造化ルールを適用することで、「4」、「1」、「6、g」との対象ソフトウェアバージョン構造化情報と、「4」、「1」、「6」との参照用ソフトウェアバージョン構造化情報とを生成する。その後、この対象ソフトウェアバージョン構造化情報と参照用ソフトウェアバージョン構造化情報と比較すると、左から比較した最初の3つの文字要素(つまり、「4」、「1」、「6」)が一致するため、検証の結果が最後の文字要素によって決まる。上述したように、この場合、対象ソフトウェアバージョン情報の最後の文字要素が「g」であるが、参照用ソフトウェアバージョン情報は「NULL」となる。
そこで、「g」が「NULL」より大きいため、対象ソフトウェアバージョン情報が参照用ソフトウェアバージョン情報より大きい、すなわち、より新しいことを示す検証結果が生成される。
更に、図9に示す具体例3では、「20v1.r1_330」との対象ソフトウェアバージョン情報と、「20v2.r1_330」との参照用ソフトウェアバージョン情報とのそれぞれに対して、構造化ルール格納部に格納されている構造化ルールを適用することで、「20」、「v」、「1」、「r」、「1」、「3」、「330」との対象ソフトウェアバージョン構造化情報と、「20」、「v」、「2」、「r」、「1」、「3」、「330」との参照用ソフトウェアバージョン構造化情報とを生成する。その後、この対象ソフトウェアバージョン構造化情報と参照用ソフトウェアバージョン構造化情報とを比較すると、最初の2つの文字要素(つまり、「20」及び「v」)が一致するため、検証の結果が左から3番目の文字要素(つまり、「1」及び「2」)で決まる。そこで、「1」が「2」より小さいため、対象ソフトウェアバージョン情報が参照用ソフトウェアバージョン情報より小さい、すなわち、より古いことを示す検証結果が生成される。
このように、対象ソフトウェアバージョン情報と参照用ソフトウェアバージョン情報とを構造形式に変換した後、本開示の実施形態に係る検証処理を行うことにより、バージョンの更新が必要なソフトウェア製品を容易に識別することができる。
以上、本開示の実施形態に係るバージョン検証を実施するための装置、システム、及び方法について説明したが、本開示はこれに限定されず、例えばコンピュータープログラムとして実施されてもよい。この場合、本開示の実施形態に係るコンピュータープログラムは、例えば外部装置の記憶媒体からネットワーク経由で導入されてもよく、可搬型記憶媒体経由で導入されてもよい。
例えば、ある実施形態では、本開示の実施形態に係るバージョン検証手段は、ソフトウェアバージョンを検証するためのバージョン検証コンピュータープログラムであって、バージョン検証の対象となる対象ソフトウェアのソフトウェアバージョンを示す対象ソフトウェアバージョン情報を前記対象ソフトウェアから抽出する工程と、前記対象ソフトウェアバージョン情報における所定の文字の有無に基づいて文字列の細分化を規定する構造化ルールを用いて、前記対象ソフトウェアバージョン情報を所定の構造形式に変換した対象ソフトウェアバージョン構造化情報を生成する工程と、前記対象ソフトウェアバージョン構造化情報を、参照用のソフトウェアバージョンを前記構造形式で示す参照用ソフトウェアバージョン構造化情報に比較することにより、前記対象ソフトウェアバージョン構造化情報の前記参照用ソフトウェアバージョン構造化情報に対する類似度を判定する工程と、
前記対象ソフトウェアバージョン構造化情報の前記参照用ソフトウェアバージョン構造化情報に対する類似度を示す検証結果を出力する工程と、をコンピューティングデバイスに実行させるためのプログラム命令を含む。
以上、本発明の実施の形態について説明したが、本発明は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
360 バージョン検証システム
365 対象ソフトウェア格納部
370 バージョン検証装置
372 抽出部
374 構造化部
376 検証部
378 通信部
379 更新部
380 構造化ルール格納部
382 参照用ソフトウェアバージョン構造化情報格納部
384 検証結果格納部
386 対象ソフトウェアバージョン構造化情報格納部

Claims (11)

  1. ソフトウェアバージョンを検証するためのバージョン検証装置であって、
    バージョン検証の対象となる対象ソフトウェアのソフトウェアバージョンを示し、アルファベット、数値及び特殊文字の文字タイプの内、複数の異なる文字タイプを含む対象ソフトウェアバージョン情報を前記対象ソフトウェアから抽出する抽出部と、
    前記対象ソフトウェアバージョン情報における所定の文字の有無に基づいて文字列の細分化を規定する構造化ルールを用いて、前記対象ソフトウェアバージョン情報を、同一の文字タイプの文字のみによって構成されている文字要素を含む1つ以上のサブユニットからなる構造形式に変換した対象ソフトウェアバージョン構造化情報を生成する構造化部と、
    前記対象ソフトウェアバージョン構造化情報を、参照用のソフトウェアバージョンを前記構造形式で示す参照用ソフトウェアバージョン構造化情報と比較することにより、前記対象ソフトウェアバージョン構造化情報の前記参照用ソフトウェアバージョン構造化情報に対する類似度を判定する検証部と、
    前記対象ソフトウェアバージョン構造化情報の前記参照用ソフトウェアバージョン構造化情報に対する類似度を示す検証結果を出力する通信部と、
    含み、
    前記検証部は、
    前記対象ソフトウェアバージョン構造化情報を前記参照用ソフトウェアバージョン構造化情報と比較する際、数値又はアルファベット以外の特定文字に対して実行する動作を示す、ユーザによって編集可能な特定文字対処テーブルを格納し、
    前記対象ソフトウェアバージョン構造化情報を前記参照用ソフトウェアバージョン構造化情報と比較する際、前記参照用ソフトウェアバージョン構造化情報において、文字要素の範囲が指定されていると判定した場合、前記特定文字対処テーブルに示される前記動作に基づいて、前記範囲内に含まれる文字要素毎に、前記対象ソフトウェアバージョン構造化情報と前記参照用ソフトウェアバージョン構造化情報とを繰り返して比較することで、前記対象ソフトウェアバージョン構造化情報が前記参照用ソフトウェアバージョン構造化情報の範囲に収まるか否かを判定する、
    ことを特徴とするバージョン検証装置。
  2. 前記検証結果は、
    前記対象ソフトウェアバージョン構造化情報が前記参照用ソフトウェアバージョン構造化情報に一致するか、前記対象ソフトウェアバージョン構造化情報が前記参照用ソフトウェアバージョン構造化情報より古いか、前記対象ソフトウェアバージョン構造化情報が前記参照用ソフトウェアバージョン構造化情報より新しいかを示す、
    ことを特徴とする、請求項1に記載のバージョン検証装置。
  3. 前記バージョン検証装置は、
    前記対象ソフトウェアバージョン構造化情報が前記参照用ソフトウェアバージョン構造化情報に一致する、又は、前記対象ソフトウェアバージョン構造化情報が前記参照用ソフトウェアバージョン構造化情報より古い場合には、前記対象ソフトウェアのソフトウェアバージョンを更新する更新部を更に含む、
    ことを特徴とする、請求項2に記載のバージョン検証装置。
  4. 前記所定の文字は、
    括弧、ピリオド、アンダーバー、アルファベット、及び数値を含む、
    ことを特徴とする、請求項1に記載のバージョン検証装置。
  5. 前記構造化部は、
    前記構造化ルールとして、
    前記対象ソフトウェアバージョン情報において、括弧が存在する場合、
    前記括弧内の文字を前記対象ソフトウェアバージョン情報から抽出し、異なるサブユニットとする、
    ことを特徴とする、請求項4に記載のバージョン検証装置。
  6. 前記構造化部は、
    前記構造化ルールとして、
    前記対象ソフトウェアバージョン情報において、ピリオドが存在する場合、
    前記対象ソフトウェアバージョン情報を前記ピリオドで分割する、
    ことを特徴とする、請求項5に記載のバージョン検証装置。
  7. 前記構造化部は、
    前記構造化ルールとして、
    前記対象ソフトウェアバージョン情報において、アンダーバーが存在する場合、
    前記対象ソフトウェアバージョン情報を前記アンダーバーで分割する、
    ことを特徴とする、請求項6に記載のバージョン検証装置。
  8. 前記構造化部は、
    前記構造化ルールとして、
    前記対象ソフトウェアバージョン情報において、アルファベットと数値が連続する場合、
    前記対象ソフトウェアバージョン情報を前記アルファベットと前記数値の間で分割する、
    ことを特徴とする、請求項7に記載のバージョン検証装置。
  9. 前記検証部は、
    前記対象ソフトウェアバージョン構造化情報と、前記参照用ソフトウェアバージョン構造化情報とを、それぞれを構成する文字要素毎に比較する、
    ことを特徴とする、請求項1に記載のバージョン検証装置。
  10. ソフトウェアバージョンを検証するためのバージョン検証システムであって、
    前記バージョン検証システムは、バージョン検証の対象となる対象ソフトウェアを格納する対象ソフトウェア格納部と、
    バージョン検証処理を実行するためのバージョン検証装置とを含み、
    前記バージョン検証装置は、
    前記対象ソフトウェアのソフトウェアバージョンを示し、アルファベット、数値及び特殊文字の文字タイプの内、複数の異なる文字タイプを含む対象ソフトウェアバージョン情報を前記対象ソフトウェア格納部に格納されている前記対象ソフトウェアから抽出する抽出部と、
    前記対象ソフトウェアバージョン情報における所定の文字の有無に基づいて文字列の細分化を規定する構造化ルールを用いて、前記対象ソフトウェアバージョン情報を所定の構造形式に変換した対象ソフトウェアバージョン構造化情報を生成する構造化部と、
    前記対象ソフトウェアバージョン構造化情報を、参照用のソフトウェアバージョンを前記構造形式で示す参照用ソフトウェアバージョン構造化情報と比較することにより、前記対象ソフトウェアバージョン構造化情報の前記参照用ソフトウェアバージョン構造化情報に対する類似度を判定する検証部と、
    前記対象ソフトウェアバージョン構造化情報の前記参照用ソフトウェアバージョン構造化情報に対する類似度を示す検証結果を出力する通信部と、
    を含み、
    前記検証部は、
    前記対象ソフトウェアバージョン構造化情報を前記参照用ソフトウェアバージョン構造化情報と比較する際、数値又はアルファベット以外の特定文字に対して実行する動作を示す、ユーザによって編集可能な特定文字対処テーブルを格納し、
    前記対象ソフトウェアバージョン構造化情報を前記参照用ソフトウェアバージョン構造化情報と比較する際、前記参照用ソフトウェアバージョン構造化情報において、文字要素の範囲が指定されていると判定した場合、前記特定文字対処テーブルに示される前記動作に基づいて、前記範囲内に含まれる文字要素毎に、前記対象ソフトウェアバージョン構造化情報と前記参照用ソフトウェアバージョン構造化情報とを繰り返して比較することで、前記対象ソフトウェアバージョン構造化情報が前記参照用ソフトウェアバージョン構造化情報の範囲に収まるか否かを判定する、
    ことを特徴とするバージョン検証システム。
  11. ソフトウェアバージョンを検証するためのバージョン検証装置においてコンピュータソフトウエアによって実施されるバージョン検証方法であって、
    前記バージョン検証装置は、
    メモリと、プロセッサとを含み、
    前記メモリは、
    バージョン検証の対象となる対象ソフトウェアのソフトウェアバージョンを示す対象ソフトウェアバージョン情報を前記対象ソフトウェアから抽出する工程と、
    前記対象ソフトウェアバージョン情報における所定の文字の有無に基づいて文字列の細分化を規定する構造化ルールを用いて、前記対象ソフトウェアバージョン情報を、同一の文字タイプの文字のみによって構成されている文字要素を含む1つ以上のサブユニットからなる構造形式に変換した対象ソフトウェアバージョン構造化情報を生成する工程と、
    前記対象ソフトウェアバージョン構造化情報を、参照用のソフトウェアバージョンを前記構造形式で示す参照用ソフトウェアバージョン構造化情報と比較することにより、前記対象ソフトウェアバージョン構造化情報の前記参照用ソフトウェアバージョン構造化情報に対する類似度を判定する工程と、
    前記対象ソフトウェアバージョン構造化情報の前記参照用ソフトウェアバージョン構造化情報に対する類似度を示す検証結果を出力する工程と、
    を含み、
    前記対象ソフトウェアバージョン情報における所定の文字の有無に基づいて文字列の細分化を規定する構造化ルールを用いて、前記対象ソフトウェアバージョン情報を所定の構造形式に変換した対象ソフトウェアバージョン構造化情報を生成する工程は、
    前記対象ソフトウェアバージョン情報において、括弧が存在する場合、
    前記括弧内の文字を前記対象ソフトウェアバージョン情報から抽出し、異なるサブユニットとする工程と、
    前記対象ソフトウェアバージョン情報において、ピリオドが存在する場合、
    前記対象ソフトウェアバージョン情報を前記ピリオドで分割する工程と、
    前記対象ソフトウェアバージョン情報において、アンダーバーが存在する場合、
    前記対象ソフトウェアバージョン情報を前記アンダーバーで分割する工程と、
    前記対象ソフトウェアバージョン情報において、アルファベットと数値が連続する場合、
    前記対象ソフトウェアバージョン情報を前記アルファベットと前記数値の間で分割する工程と、
    前記対象ソフトウェアバージョン構造化情報を前記参照用ソフトウェアバージョン構造化情報と比較する際、数値又はアルファベット以外の特定文字に対して実行する動作を示す特定文字対処テーブルを構成する工程と、
    前記対象ソフトウェアバージョン構造化情報を前記参照用ソフトウェアバージョン構造化情報と比較する際、前記参照用ソフトウェアバージョン構造化情報において、文字要素の範囲が指定されていると判定した場合、前記特定文字対処テーブルに示される前記動作に基づいて、前記範囲内に含まれる文字要素毎に、前記対象ソフトウェアバージョン構造化情報と前記参照用ソフトウェアバージョン構造化情報とを繰り返して比較することで、前記対象ソフトウェアバージョン構造化情報が前記参照用ソフトウェアバージョン構造化情報の範囲に収まるか否かを判定する工程と、
    を前記プロセッサに実行させる処理命令を含むことを特徴とする、バージョン検証方法。
JP2020202414A 2020-12-07 2020-12-07 バージョン検証装置、バージョン検証システム及びバージョン検証方法 Active JP7430625B2 (ja)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2023177482A (ja) 2022-06-02 2023-12-14 日本メクトロン株式会社 バッテリ監視モジュール及びフレキシブルプリント配線板

Citations (2)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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