(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-06-25
(45)【発行日】2024-07-03
(54)【発明の名称】オペレーティングシステム特定装置、オペレーティングシステム特定方法、及びオペレーティングシステム特定プログラム
(51)【国際特許分類】
G06F 11/34 20060101AFI20240626BHJP
G06F 9/455 20180101ALI20240626BHJP
【FI】
G06F11/34 152
G06F11/34 176
G06F9/455 150
(21)【出願番号】P 2020142691
(22)【出願日】2020-08-26
【審査請求日】2023-05-11
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】100087480
【氏名又は名称】片山 修平
(72)【発明者】
【氏名】藤田 卓
(72)【発明者】
【氏名】藤本 保彦
【審査官】松平 英
(56)【参考文献】
【文献】特開2014-2798(JP,A)
【文献】特表2019-503539(JP,A)
【文献】特開2020-21309(JP,A)
【文献】特開2015-103094(JP,A)
【文献】特開2002-333990(JP,A)
【文献】米国特許出願公開第2017/0139731(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/455-9/54
11/07
11/28-11/36
21/12-21/16
21/50-21/57
(57)【特許請求の範囲】
【請求項1】
ブート期間中の仮想マシンが使用している複数のリソースの各々の使用状況を示す複数のパラメータを取得する取得部と、
取得した複数の前記パラメータに基づいて、前記仮想マシンのオペレーティングシステムを特定する特定部と、
を有することを特徴とするオペレーティングシステム特定装置。
【請求項2】
前記特定部は、
複数の前記パラメータを利用する第1のロジックに基づいて、前記オペレーティングシステムが第1のオペレーティングシステムである第1の可能性の高さを示す第1の重みを特定し、
複数の前記パラメータを利用する第2のロジックに基づいて、前記オペレーティングシステムが第2のオペレーティングシステムである第2の可能性の高さを示す第2の重みを特定し、
前記第1の重みが前記第2の重みよりも大きい場合に、前記オペレーティングシステムが前記第1のオペレーティングシステムであると特定することを特徴とする請求項1に記載のオペレーティングシステム特定装置。
【請求項3】
特定した前記オペレーティングシステムに脆弱性があるかを判定する判定部を更に有することを特徴とする請求項1に記載のオペレーティングシステム特定装置。
【請求項4】
ブート期間中の仮想マシンが使用している複数のリソースの各々の使用状況を示す複数のパラメータを取得し、
取得した複数の前記パラメータに基づいて、前記仮想マシンのオペレーティングシステムを特定する、
処理をコンピュータに実行させるためのオペレーティングシステム特定プログラム。
【請求項5】
コンピュータが、
ブート期間中の仮想マシンが使用している複数のリソースの各々の使用状況を示す複数のパラメータを取得し、
取得した複数の前記パラメータに基づいて、前記仮想マシンのオペレーティングシステムを特定する、
処理を実行することを特徴とするオペレーティングシステム特定方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、オペレーティングシステム特定装置、オペレーティングシステム特定方法、及びオペレーティングシステム特定プログラムに関する。
【背景技術】
【0002】
仮想化技術の発展に伴い、データセンタ内で起動している仮想マシンを利用者に貸し出すクラウドサービスが普及しつつある。そのクラウドサービスでは、例えば利用者が仮想マシンのオペレーティングシステム(OS)を自ら選択し、その仮想マシンを用いて利用者がシステムを構築する。
【0003】
利用者が利用している仮想マシンのOSをクラウドサービスの提供者が特定できれば、利用者に対してOSの更新やセキュリティパッチの適用を促す等の新たなサービスを提供者が提供できる。
【0004】
クラウドサービスの提供者が仮想マシンのOSを特定する方法として、実際に提供者が仮想マシンにログインする方法がある。しかし、これを実現するには、利用者がサービスの提供者に自らの仮想マシンへのログインを許す必要があり、利用者側のセキュリティに問題が生じる。
【先行技術文献】
【特許文献】
【0005】
【文献】特開2012-003651号公報
【文献】特開2012-079242号公報
【文献】国際公開第2014/188478号
【発明の概要】
【発明が解決しようとする課題】
【0006】
一側面によれば、仮想マシンにログインせずに、仮想マシンのOSを特定することを目的とする。
【課題を解決するための手段】
【0007】
一側面によれば、ブート期間中の仮想マシンが使用している複数のリソースの各々の使用状況を示す複数のパラメータを取得する取得部と、取得した複数の前記パラメータに基づいて、前記仮想マシンのオペレーティングシステムを特定する特定部とを有するオペレーティングシステム特定装置が提供される。
【発明の効果】
【0008】
一側面によれば、仮想マシンにログインせずに、仮想マシンのOSを特定することができる。
【図面の簡単な説明】
【0009】
【
図1】
図1は、本実施形態に係る物理サーバの構成を模式的に示す図である。
【
図2】
図2は、Windows Server 2012 R2を実行する仮想マシンに割り当てられたリソースの使用状況を示す模式図である。
【
図3】
図3は、Windows 8.1を実行する仮想マシンに割り当てられたリソースの使用状況を示す模式図である。
【
図4】
図4は、Windows Server 2008 R2を実行する仮想マシンに割り当てられたリソースの使用状況を示す模式図である。
【
図5】
図5は、本実施形態に係るシステムの構成図である。
【
図6】
図6は、本実施形態に係る制御サーバの機能構成図である。
【
図7】
図7は、制御サーバの性能ログの模式図である。
【
図8】
図8は、本実施形態に係るオペレーティングシステム特定装置の機能構成図である。
【
図9】
図9は、オペレーティングシステム特定装置の性能ログの模式図である。
【
図12】
図12は、本実施形態に係るオペレーティングシステム特定装置の取得部が実行する処理について示すフローチャートである。
【
図13】
図13は、本実施形態に係るオペレーティングシステム特定装置のブート期間特定部が実行する処理について示すフローチャートである。
【
図14】
図14は、本実施形態に係るオペレーティングシステム特定装置のOS特定部が実行する処理について示すフローチャート(その1)である。
【
図15】
図15は、本実施形態に係るオペレーティングシステム特定装置のOS特定部が実行する処理について示すフローチャート(その2)である。
【
図17】
図17は、本実施形態に係るオペレーティングシステム特定装置の脆弱性判定部が実行する処理について示すフローチャートである。
【
図18】
図18は、本実施形態に係るオペレーティングシステム特定装置のハードウェア構成図である。
【
図19】
図19は、本実施形態に係る制御サーバのハードウェア構成図である。
【発明を実施するための形態】
【0010】
本実施形態の説明に先立ち、本願発明者が検討した事項について説明する。
【0011】
利用者に仮想マシンを貸し出すクラウドサービスでは、クラウドサービスの提供者が仮想マシンのOSを特定することにより、新たなサービスや管理を実現できる。例えば、利用者が使用しているOSのライセンスをカウントしたり、サポート期限切れのOSがあるか等を提供者が管理できる。更に、OSにセキュリティパッチが適用されていない場合には、セキュリティパッチを適用するように利用者に対して促すサービスも実現できる。
【0012】
クラウドサービスの提供者が仮想マシンのOSを特定する方法としていくつかの方法が考えられるが、以下のようにいずれの方法にも問題がある。
【0013】
例えば、提供者が利用者に対してメールや電話等で仮想マシンのOSを聞き出す方法があるが、これでは莫大な人手と工数がかかってしまい現実的ではない。
【0014】
また、クラウドサービスの提供者が、利用者が使用している仮想マシンにログインし、OSを特定するためのコマンドを実行することにより当該OSを特定する方法がある。しかし、この方法では、利用者が提供者に対して仮想マシンへのログインを許す必要があり、利用者側のセキュリティに問題が生じる。しかも、コマンドを実行することにより仮想マシンに負荷がかかり、当該仮想マシンを用いて利用者が構築したシステムのレスポンスタイムが劣化する等の問題もある。
【0015】
更に、仮想マシンのOSに組み込まれているSNMP(Simple Network Management Protocol)のエージェントプログラムを利用して提供者がOSを特定する方法もある。しかし、仮想マシンの利用者がSNMPの機能を抑止している場合には、提供者がSNMPを利用してOSを特定することができない。
【0016】
また、クラウドサービスの提供者が、利用者に仮想マシンを貸し出すときに、仮想マシンの構成情報を収集するためのエージェントプログラムを仮想マシンにインストールすることも考えられる。このエージェントプログラムが収集する構成情報は、仮想マシンのホスト名やIP(Internet Protocol)に限られてしまい、構成情報のみでOSを特定するのは難しい。
【0017】
その他に、Windows Server Update Service(WSUS)や、Linux(登録商標)のローカルyumリポジトリを用いて仮想マシンのOSを特定する方法もある。この方法では、WSUSやローカルyumリポジトリを実現するためのサーバからOSの更新プログラムを仮想マシンが取得することを利用して、当該仮想マシンのOSを特定する。しかし、そもそもサーバにアクセスしない仮想マシンのOSをこの方法では特定することができない。
【0018】
以下に、仮想マシンのOSを特定することができる本実施形態について説明する。
【0019】
(本実施形態)
図1は、仮想マシンを起動する本実施形態に係る物理サーバの構成を模式的に示す図である。
【0020】
図1に示すように、物理サーバ1は、NIC(Network Interface Card)2、ストレージ3、メモリ4、及びCPU(Central Processing Unit)5等の物理的なリソース6を有する。このうち、ストレージ3は、HDD(Hard Disk Drive)やSSD(Solid State Drive)等の不揮発性の記憶デバイスである。また、メモリ4は、DRAM(Dynamic Random Access Memory)等の揮発性の記憶デバイスである。
【0021】
また、物理サーバ1は、このリソース6の上でホストOS7とハイパーバイザ8とを実行する。ハイパーバイザ8は、ホストOS7の上で実行される仮想化プログラムである。そして、物理サーバ1がハイパーバイザ8を実行することにより複数の仮想マシン10が起動する。ここでは、複数の仮想マシン10の各々を「VM_1」、「VM_2」、及び「VM_3」等のIDで一意に識別する。
【0022】
各々の仮想マシン10は、NIC2、ストレージ3、メモリ4、及びCPU5の各々の一部が割り当てられた仮想的な計算機であって、ゲストOS11を実行する。ゲストOS11としては、例えばWindows(登録商標)やLinux(登録商標)等がある。
【0023】
本実施形態では、仮想マシン10にログインすることなしに、各仮想マシン10に割り当てられたリソース6の使用状況に基づいて以下のようにして各仮想マシン10のゲストOS11を特定する。
【0024】
Windows(登録商標)やLinux(登録商標)等の異なるゲストOS11においてはブート期間中のカーネルの起動手順が異なるため、ブート期間中のリソース6の使用状況も異なる。そのため、ブート期間におけるリソース6の使用状況を示すパラメータを取得することにより、そのパラメータに基づいてゲストOS11を特定できる。なお、以下では、仮想マシン10に電源を投入してから仮想マシン10でアプリケーションプログラムを実行できる状態になるまでの期間をブート期間と呼ぶ。
【0025】
例えば、ブート期間におけるCPU5の使用状況を示すパラメータとしては、CPU使用率「CPU%」がある。また、メモリ4の使用状況を示すパラメータとしては、メモリ使用率「MEM%」、メモリアタッチ率「MEM_ALLOC%」、及びメモリデタッチ率「MEM_FREE%」がある。なお、メモリアタッチ率「MEM_ALLOC%」は、ゲストOS11が単位時間あたりにメモリ4の記憶領域を取得した回数である。また、メモリデタッチ率「MEM_FREE%」は、ゲストOS11が単位時間当たりにメモリ4の記憶領域を解放した回数である。
【0026】
一方、ストレージ3の使用状況を示すパラメータとしては、ストレージ3のビジー率「BUSY%」がある。また、ストレージ3にデータを書き込むコマンドをゲストOS11が単位時間当たりに発行する発行数「DISK_W」も、ストレージ3の使用状況を示すパラメータの一例である。更に、ストレージ3からデータを読み込むコマンドをゲストOS11が単位時間当たりに発行する発行数「DISK_R」も、ストレージ3の使用状況を示すパラメータの一例である。
【0027】
そして、NIC2の使用状況を示すパラメータとしては、送信パケット数「NET_S」と受信パケット数「NET_R」がある。
【0028】
これらのパラメータはハイパーバイザ8が管理しているため、仮想マシン10にログインしなくても、ハイパーバイザ8を介して取得することができる。
【0029】
以下に、これらのパラメータを組み合わせることによりゲストOS11を特定する方法について説明する。
【0030】
図2は、ゲストOS11としてWindows Server 2012 R2を実行する仮想マシン10に割り当てられたリソース6の使用状況を示す模式図である。
【0031】
図2の横軸は、仮想マシン10のブート期間が開始してからの経過時間を示す。また、縦軸は、その仮想マシン10に割り当てられたリソース6の使用状況を示すパラメータの値を示す。そのパラメータとして、ここではCPU使用率「CPU%」と、前述の発行数「DISK_R」、「DISK_W」とを用いる。
【0032】
図2に示すように、Windows Server 2012 R2では、ブートが開始してからCPU使用率「CPU%」が急激に増加した後、ブート期間内の時刻t
0においてCPU使用率「CPU%」の時間変化が鈍化する。一方、発行数「DISK_R」の時間変化は、ブートが開始してから時刻t
0よりも後の時刻t
1に至る期間T内で鈍化しない。よって、時刻t
0においてCPU使用率「CPU%」の時間変化が鈍化し、かつブート期間が開始してから時刻t
1に至る期間T内で発行数「DISK_R」の時間変化が鈍化していない場合に、ゲストOS11がWindows server 2012 R2であると特定することができる。
【0033】
図3は、ゲストOS11としてWindows 8.1を実行する仮想マシン10に割り当てられたリソース6の使用状況を示す模式図である。
図3の横軸と縦軸の意味は
図2におけるのと同じなのでその説明は省略する。
【0034】
図3に示すように、Windows 8.1においては、時刻t
2を境にしてCPU使用率「CPU%」が増加から減少に転じている。そして、時刻t
2を過ぎた後に、発行数「DISK_R」が100回を超える事象Xが複数回発生している。よって、例えば発行数「DISK_R」の閾値を100回に設定し、時刻t
2の後に事象Xが所定回数(例えば3回)発生した場合には、ゲストOS11がWindows8.1であると特定することができる。
【0035】
図4は、ゲストOS11としてWindows Server 2008 R2を実行する仮想マシン10に割り当てられたリソース6の使用状況を示す模式図である。
【0036】
図4の横軸と縦軸の意味は
図2におけるのと同じなのでその説明は省略する。
【0037】
図4に示すように、Windows Server 2008 R2においては、時刻t
4における発行数「DISK_W」が、時刻t
4よりも前の時刻t
3における発行数「DISK_W」よりも大きい。そして、時刻t
4において発行数「DISK_W」が発行数「DISK_R」よりも大きい。よって、時刻t
4における発行数「DISK_W」が時刻t
3における発行数「DISK_W」よりも大きく、かつ、時刻t
4において発行数「DISK_W」が発行数「DISK_R」よりも大きい場合には、ゲストOS11がWindows Server 2008 R2であると特定することができる。
【0038】
図2~
図4に示したように、ブート期間におけるリソース6の使用状況を示すパラメータを利用することにより、各仮想マシン10のゲストOS11を特定することができる。
【0039】
図5は、本実施形態に係るシステムの構成図である。
このシステム20は、物理サーバ1で起動している仮想マシン10のゲストOS11を特定するシステムであって、物理サーバ1、制御サーバ21、及びオペレーティングシステム特定装置22を有する。これらの各装置はLAN(Local Area Network)やインターネット等のネットワーク23によって相互に接続される。
【0040】
このうち、制御サーバ21は、物理サーバ1のハイパーバイザ8を制御する物理サーバである。また、オペレーティングシステム特定装置22は、仮想マシン10のゲストOS11を特定する物理サーバやPC(Personal Computer)等の計算機である。
【0041】
この例では、クラウドサービスの提供者が物理サーバ1に起動している仮想マシン10を利用者に提供し、当該提供者がオペレーティングシステム特定装置22と制御サーバ21とを用いて仮想マシン10のゲストOS11を特定する。
【0042】
図6は、制御サーバ21の機能構成図である。
図6に示すように、制御サーバ21は、通信部24、制御部25、及び記憶部26を有する。
【0043】
このうち、通信部24は、ネットワーク23(
図5参照)に制御サーバ21を接続する処理部である。
【0044】
制御部25は、物理サーバ1のハイパーバイザ8を制御するハイパーバイザ制御プログラムによって実現される処理部である。一例として、制御部25は、各仮想マシン10に割り当てられたリソース6の使用状況を示すパラメータをハイパーバイザ8を介して定期的に取得する。
【0045】
前述のように各パラメータはハイパーバイザ8が管理しているため、制御部25は仮想マシン10にログインしなくてもこれらのパラメータを取得することができる。
【0046】
記憶部26は、制御部25が取得したパラメータを性能ログ27として記憶する。
【0047】
図7は、性能ログ27の模式図である。
図7に示すように、性能ログ27は、「取得時刻」、「仮想マシンID」、「パラメータ種類」、及び「値」の各々を対応付けた情報である。このうち、「取得時刻」は、ハイパーバイザ8が各パラメータを取得した時刻である。また、「仮想マシンID」は仮想マシン10を識別するIDである。そして、「パラメータ種類」は、リソース6の使用状況を示すパラメータの種類であり、「値」は当該「パラメータ」の値である。
【0048】
図8は、オペレーティングシステム特定装置22の機能構成図である。
図8に示すように、オペレーティングシステム特定装置22は、通信部31、入力部32、表示部33、記憶部34、及び制御部35を有する。
【0049】
このうち、通信部31は、ネットワーク23(
図5参照)を介して制御サーバ21との間で通信を行う処理部である。
【0050】
また、入力部32は、クラウドサービスの提供者がオペレーティングシステム特定装置22に対して各種情報の入力を行う処理部であって、例えばキーボードやマウス等の入力デバイスによって実現される。
【0051】
そして、表示部33は、オペレーティングシステム特定装置22が特定したゲストOS11の名前等を含む表示情報を表示する処理部である。一例として、液晶ディスプレイ等の表示デバイスにより表示部33を実現できる。
【0052】
記憶部34は、判定プログラム36、性能ログ37、解析DB38、構成管理DB39、及びセキュリティ情報40の各々を記憶する。
【0053】
判定プログラム36は、仮想マシン10のゲストOS11が、当該判定プログラム36が判定の対象とするオペレーティングシステムである可能性の高さを判定するプログラムである。その判定を行うロジックとしては
図2~
図4に示したロジックがある。
図2~
図4のロジックは、それぞれゲストOS11が「Windows 2012 R2」、「Windows 8.1」、及び「Windows Server 2008 R2」である可能性の高さを判定するロジックである。本実施形態では、判定対象のOSごとに判定プログラム36を用意し、それらを予め記憶部34に記憶させる。この例では判定対象のOSが「Windows 2012 R2」(
図2)、「Windows 8.1」(
図3)、及び「Windows Server 2008 R2」(
図4)であるため、これらの各々に対応した三つの判定プログラム36を記憶部34が記憶する。
【0054】
図9は、性能ログ37の模式図である。
性能ログ37は、オペレーティングシステム特定装置22が制御サーバ21から取得した性能ログ27(
図7参照)を長期保存するためのログであり、その内容は性能ログ27の内容と同一である。但し、性能ログ27は取得してから一定の期間が経過した後に削除されるのに対し、性能ログ37の内容は外部からの指示がない限り削除されずに長期間保持される。
【0055】
図10は、解析DB38の模式図である。
図10に示すように、解析DB38は、「関係定義ID」、「OS」、「ロジック名」、及び「重み」の各々を対応付けたデータベースである。
【0056】
このうち、「関係定義ID」は、解析DBの各レコードを一意に識別するIDである。
【0057】
「OS」は、オペレーティングシステム特定装置22が特定するゲストOS11である。ここでは、オペレーティングシステム特定装置22は、「名前」、「バージョン」、「命令セット」、及び「適用パッチ」の各々の組み合わせで一つの「OS」を特定する。
【0058】
「名前」はゲストOS11の名前である。例えば、「Windows Server」、「REDHAT(登録商標)」、及び「UBUNTU(登録商標)」等が「名前」の一例である。
【0059】
「バージョン」はゲストOS11のバージョンである。適用パッチは、ゲストOS11に適用されている修正プログラムの名前である。Windows(登録商標)系のOSの場合は「SP2」等が適用パッチの一例となる。
【0060】
「ロジック名」は、複数の判定プログラム36(
図8参照)の各々を一意に識別する名前である。
【0061】
ここでは、
図2で説明したロジックでゲストOS11が「Windows 2012 R2」である可能性の高さを判定する判定プログラム36の名前を「Logic_ptn1」とする。また、
図3で説明したロジックでゲストOS11が「Windows 8.1」である可能性の高さを判定する判定プログラム36の名前を「Logic_ptn2」とする。そして、
図4で説明したロジックでゲストOS11が「Windows Server 2008 R2」である可能性の高さを判定する判定プログラム36の名前を「Logic_ptn3」とする。
【0062】
なお、解析DB38における複数の判定プログラム36の各々が判定の対象とするOSが同一であってもよい。この例では、「Logic_ptn1」と「Logic_ptn4」の各判定プログラムの判定対象のOSが同一である。また、「Logic_ptn6」と「Logic_ptn7」の各判定プログラムの判定対象のOSも同一である。
【0063】
また、「重み」は、ゲストOS11が判定対象のOSである可能性の高さを示す数値である。その「重み」が大きいほど、ゲストOS11が、各ロジックの判定対象のOSである可能性が高いということになる。
【0064】
例えば、ロジック名が「Logic_ptn1」の判定プログラム36について考える。「Logic_ptn1」の判定プログラム36を実行すると、ゲストOS11が「Windows Server 2012 R2 (命令セット:X86_64、適用パッチ:SP2)」である可能性の高さが判定され、その重みは「2」となる。
【0065】
ロジック名が「Logic_ptn4」の判定プログラム36もこれと同じOSを判定するが、その重みは「1」である。よって、「Logic_ptn1」の判定プログラム36は、「Logic_ptn4」の判定プログラム36よりも高い確度でゲストOS11が「Windows Server 2012 R2 (命令セット:X86_64、適用パッチ:SP2)」であると判定できることになる。
【0066】
なお、重みは、各々のロジックを開発した開発者が設定し得る。
【0067】
図11は、構成管理DB39の模式図である。
構成管理DB39は、オペレーティングシステム特定装置22が特定したゲストOS11についての情報を格納するためのデータベースである。この例では、構成管理DB39は、「仮想マシンID」、「重み」、「及びブート日時」の各々を「OS」と対応付けたデータベースである。
【0068】
「OS」は、ゲストOS11である可能性が高いと判定プログラム36が判定したOSである。また、「重み」は、ゲストOS11を特定するのに使用した判定プログラム36の重み(
図10参照)である。そして、「ブート日時」は、仮想マシン10がブートした日時である。
【0069】
オペレーティングシステム特定装置22は、構成管理DB39の各レコードのうち、同一の「仮想マシンID」に係る複数のレコードを特定する。そして、これらのレコードのうちで、「重み」が最も大きいレコードに係る「OS」がゲストOS11であると特定する。
【0070】
図11の例では、「仮想マシンID」が「VM_1」で同一の二つのレコードのうち、「名前」が「Windows Server」のレコードにおける「重み」が、「名前」が「REDHAT」のレコードにおける「重み」よりも大きい。この場合は、オペレーティングシステム特定装置22は、「仮想マシンID」が「VM_1」の仮想マシン10のゲストOS11が「Windows Server 2012 R2 (命令セット:X86_64、適用パッチ:SP2)」であると特定する。なお、この例における「Windows Server 2012 R2 (命令セット:X86_64、適用パッチ:SP2)」は、第1のオペレーティングシステムの一例である。そして、「REDHAT 7 (命令セット:X86_64)」は、第2のオペレーティングシステムの一例である。
【0071】
再び
図8を参照する。
セキュリティ情報40は、ゲストOS11にセキュリティ上の脆弱性があるかを判断するための情報である。例えば、セキュリティ情報40は、ゲストOS11と、そのゲストOS11に適用すべきパッチプログラムの種類とを対応付けた情報である。また、ゲストOS11と、その最新のバージョンとを対応付けた情報をセキュリティ情報40としてもよい。
【0072】
制御部35は、オペレーティングシステム特定装置22の各部を制御する処理部であって、取得部41、ブート期間特定部42、OS特定部43、及び脆弱性判定部44を有する。
【0073】
このうち、取得部41は、通信部31を介して性能ログ27を制御サーバ21から取得することにより、各々の仮想マシン10のブート期間における複数のパラメータを取得する処理部である。そのようなパラメータとしては、前述のCPU使用率「CPU%」、メモリ使用率「MEM%」、メモリアタッチ率「MEM_ALLOC%」、メモリデタッチ率「MEM_FREE%」、及びストレージ3のビジー率「BUSY%」がある。また、ストレージ3へのデータの書き込みと読み込みを行うコマンドの発行数「DISK_W」及び「DISK_R」と、送信パケット数「NET_S」と受信パケット数「NET_R」もパラメータの一例である。
【0074】
ブート期間特定部42は、仮想マシン10のブート期間を特定する処理部である。例えば、ブート期間特定部42は、取得部41が取得したCPU使用率「CPU%」が負の値からゼロになった時刻をブート期間の開始時刻として特定する。更に、ブート期間特定部42は、当該開始時刻から所定の時間が経過した時点をブート期間の終了時刻として特定する。その所定の時間は特に限定されないが、ここでは5分とする。
【0075】
OS特定部43は、オペレーティングシステム特定装置22が各判定プログラム36を実行することにより実現される処理部であって、取得部41が取得した複数のパラメータに基づいて各仮想マシン10のゲストOS11を特定する。また、
図10を参照して説明したように、OS特定部43は、「名前」、「バージョン」、「命令セット」、及び「適用パッチ」の各々の組み合わせで一つの「OS」を特定する。
【0076】
脆弱性判定部44は、セキュリティ情報40に基づいて、OS特定部43が特定したゲストOSにセキュリティ上の脆弱性があるかを判定する処理部である。
【0077】
次に、本実施形態に係るオペレーティングシステム特定方法について説明する。
図12は、オペレーティングシステム特定装置22の取得部41が実行する処理について示すフローチャートである。
【0078】
まず、オペレーティングシステム特定装置22のOSが取得部41を起動する(ステップS11)。起動するタイミングは、例えば1日に1回である。
【0079】
次いで、取得部41が、制御サーバ21の性能ログ27を1レコードずつ取得する(ステップS12)。一例として、取得部41は、制御サーバ21の制御部25を実現するハイパーバイザ制御プログラムのAPI(Application Programing Interface)やコマンドを利用して性能ログ27の各レコードを取得する。
図7に示したように、その性能ログ27には、各仮想マシン10のブート期間中のパラメータ「CPU%」、「DISK_R」、「DISK_W」、「NET_S」、及び「NET_R」が含まれる。
【0080】
次に、取得部41が、性能ログ27の各レコードを性能ログ37に格納する(ステップS13)。なお、既に性能ログ37に格納済のレコードがある場合は、当該レコードを性能ログ37に格納する必要はない。この後は再びステップS11に戻る。
【0081】
以上により、取得部41が実行する基本的な処理を終える。
【0082】
次に、オペレーティングシステム特定装置22のブート期間特定部42が実行する処理について説明する。
【0083】
図13は、ブート期間特定部42が実行する処理について示すフローチャートである。
【0084】
この例では、ブート期間特定部42が性能ログ37(
図9参照)の「仮想マシンID」ごとに以下のステップS21~S28を繰り返す。
【0085】
まず、ブート期間特定部42が、性能ログ37の複数のレコードのうち、該当の「仮想マシンID」に対応した全てのレコードを読み込む(ステップS21)。
【0086】
次いで、ブート期間特定部42が、読み込んだ各レコードに基づいて、該当の仮想マシン10のブート期間の開始時刻tiを特定する(ステップS22)。一例として、ブート期間特定部42は、レコードに格納されているCPU使用率「CPU%」が負の値からゼロになった時刻を開始時刻tiとして特定する。
【0087】
続いて、ブート期間特定部42が、ブート期間の終了時刻tfを特定する(ステップS23)。例えば、ブート期間特定部42は、ステップS22で特定した開始時刻tiから5分後の時刻を終了時刻tfとして特定する。
【0088】
次に、ブート期間特定部42が、レコードに格納されているブート期間内の各時刻でのCPU使用率「CPU%」を所定の変数に格納する(ステップS24)。
【0089】
次いで、ブート期間特定部42が、レコードに格納されているブート期間内の各時刻でのCPU使用率「CPU%」以外のパラメータを所定の変数に格納する(ステップS25)。そのようなパラメータとしては、前述の「MEM%」、「MEM_ALLOC%」、「MEM_FREE%」、「BUSY%」、「DISK_W」、「DISK_R」、「NET_S」、及び「NET_R」がある。
【0090】
次いで、ブート期間特定部42が解析DB38を1レコードずつ読み込み、解析DB38にある全ての「ロジック名」を取得する(ステップS26)。
【0091】
続いて、ブート期間特定部42が、取得した「ロジック名」の判定プログラム36を起動する(ステップS27)。
【0092】
なお、一つの仮想マシン10が複数回ブートすることがある。そのため、ブート期間特定部42は、終了時刻tf以降の時刻についてもステップS22~S27を繰り返す(ステップS28)。これにより、仮想マシン10が複数回ブートした場合であっても、各々のブート時のパラメータを利用して該仮想マシン10のゲストOS11を特定できる。
【0093】
この後は、性能ログ37(
図9参照)における「仮想マシンID」ごとに上記のステップS21~S28を繰り返す。
【0094】
以上により、ブート期間特定部42が実行する基本的な処理を終える。
【0095】
次に、OS特定部43が実行する処理について説明する。
前述のように、OS特定部43は、各判定プログラム36を実行することにより実現される。以下では、複数の判定プログラム36のうち、ゲストOS11が「Windows 2012 R2」であるかを判定する
図2の「Logic_ptn1」の判定プログラム36を実行した場合のOS特定部43の処理について説明する。
【0096】
図14は、OS特定部43が実行する処理について示すフローチャート(その1)である。
【0097】
まず、OS特定部43は、ブート期間の開始時刻tiから終了時刻tfまでの間の各時刻tにおけるCPU使用率「CPU%」の時間変化Δ(t, cpu)を算出する(ステップS31)。時間変化Δ(t, cpu)の算出に際し、OS特定部43は、ステップS24で変数に格納したCPU使用率「CPU%」を利用する。例えば、OS特定部43は、開始時刻tiから終了時刻tfまでの期間を幅が1秒の区間に区切り、各区間内の時刻tにおけるCPU使用率「CPU%」の時間変化Δ(t, cpu)を算出する。この場合、開始時刻tiにおける時間変化Δ(ti, cpu)は、{(ti+1秒でのCPU%)-(tiでのCPU%)}/{(ti+1秒)-ti}となる。
【0098】
次に、OS特定部43は、時間変化Δ(t, cpu)が鈍化する時刻t
0と、その後の時刻t
1(
図2参照)とを特定する(ステップS32)。例えば、OS特定部43は、時間変化Δ(t+1, cpu)が時間変化Δ(t, cpu)よりも小さくなる最初の時刻tを時刻t
0として特定し、t+1を時刻t
1として特定する。一例として、時間変化Δ(t
i+5, cpu)が「12」であり、時間変化Δ(t
i+6, cpu)が「10」である場合は、時刻t
0はt
i+5秒となり、時刻t
1はt
i+6秒となる。
【0099】
次に、OS特定部43は、ブート期間の開始時刻tiから終了時刻tfまでの間の各時刻tにおける発行数「DISK_R」の時間変化Δ(t, diskR)を算出する(ステップS33)。時間変化Δ(t, diskR)の算出に際し、OS特定部43は、ステップS25で変数に格納した発行数「DISK_R」を利用する。例えば、OS特定部43は、開始時刻tiから終了時刻tfまでの期間を幅が1秒の区間に区切り、各区間内の時刻tにおける発行数「DISK_R」の時間変化Δ(t, diskR)を算出する。この場合、開始時刻tiにおける時間変化Δ(ti, diskR)は、{(ti+1秒でのDISK_R)-(tiでのDISK_R)}/{(ti+1秒)-ti}となる。
【0100】
次いで、OS特定部43は、開始時刻t
iから時刻t
1に至る期間T(
図2参照)内で時間変化Δ(t, diskR)が鈍化していないかを判定する(ステップ34)。一例として、OS特定部43は、開始時刻t
iから時刻t
1に至る期間Tを幅が1秒の区間に区切り、各区間内の時刻tについて不等式Δ(t, diskR) - Δ(t-1, diskR) < 0が成立するかを判定する。そして、期間T内の全ての時刻tについてこの不等式が成立しない場合、OS特定部43は、開始時刻t
iから時刻t
1に至る期間T内で時間変化Δ(t, diskR)が鈍化していないと判定する。
【0101】
ここで、鈍化している場合(ステップS34:否定)には、OS特定部43はゲストOS11が「Windows 2012 R2」ではないと判定し、処理を終える。
【0102】
一方、鈍化していない場合(ステップS34:肯定)にはステップS35に移る。
【0103】
ステップS35においては、OS特定部43が、ゲストOS11が「Windows 2012 R2」である可能性が高いと判定し、構成管理DB39を更新する。例えば、OS特定部43は、解析DB38においてロジック名が「Logic_ptn1」のレコードを参照し、当該レコードにおける「OS」と「重み」とを「仮想マシンID」に対応付けて構成管理DB39のレコードに追加する。更に、OS特定部43は、ブート期間特定部42が特定したブート期間の開始時刻tiを構成管理DB39のレコードに追加する。
【0104】
なお、
図10の例では、ロジック名がそれぞれ「Logic_ptn1」と「Logic_ptn4」の判定プログラム36の判定対象のOSが「Windows Server 2012 R2 (命令セット:X86_64、適用パッチ:SP2)」で同一である。よって、これらの判定プログラム36の両方においてゲストOS11が「Windows Server 2012 R2 (命令セット:X86_64、適用パッチ:SP2)」である可能性(第1の可能性)が高いと判定される場合がある。この場合は、OS特定部43が、解析DB38におけるロジック名が「Logic_ptn1」と「Logic_ptn4」のそれぞれの「重み」の総和3(=2+1)を構成管理DB39の「重み」(第1の重み)に格納する。
【0105】
同様に、
図10においてロジック名がそれぞれ「Logic_ptn6」と「Logic_ptn7」の判定プログラム36の判定対象のOSは「UBUNTU (命令セット:X86_64)」で同一である。そのため、これらの判定プログラム36の両方においてゲストOS11が「UBUNTU (命令セット:X86_64)」である可能性(第2の可能性)が高いと判定される場合がある。この場合も、OS特定部43が、解析DB38においてロジック名が「Logic_ptn5」と「Logic_ptn6」のそれぞれの「重み」の総和4(=2+2)を構成管理DB39の「重み」(第2の重み)に格納する。
【0106】
また、例えば
図10のロジック名「Logic_ptn2」の判定プログラム36のように、「Windows 2012 R2」とは異なる「Windows 8.1」を判定対象のOSとしている判定プログラム36もある。この場合は、「Windows 2012 R2」とは異なるレコードをOS特定部43が構成管理DB36に作成し、OS特定部43が当該レコードに「重み」を格納する。
【0107】
以上により、OS特定部43が実行する基本的な処理を終える。
【0108】
上記のようにして構成管理DB39を更新した後、OS特定部43は、ゲストOS11を次のようにして特定する。
【0109】
図15は、OS特定部43が実行する処理について示すフローチャート(その2)である。
【0110】
まず、OS特定部43が、クラウドサービスの提供者が入力部32に入力した「仮想マシンID」の入力を受け付ける(ステップS41)。
【0111】
次に、OS特定部43が、構成管理DB39の複数のレコードのうち、ステップS41の「仮想マシンID」に該当する各レコードを特定する(ステップS42)。
【0112】
次に、OS特定部43が、特定したレコードの各々の「重み」を特定する(ステップS43)。
【0113】
次いで、OS特定部43が、「重み」が最も大きいレコードに対応した「OS」を特定し、当該「OS」が「仮想マシンID」に対応した仮想マシン10のゲストOS11であると特定する(ステップS44)。
【0114】
前述の
図11の例では、「名前」が「Windows Server」のレコードにおける「重み」が「3」であり、「名前」が「REDHAT」のレコードにおける「重み」の「1」よりも大きい。よって、OS特定部43は、ゲストOS11が「Windows Server 2012 R2 (命令セット:X86_64、適用パッチ:SP2)」であると特定する。
【0115】
続いて、OS特定部43が、ステップS43で特定したゲストOS11に係る表示情報を表示部33に表示させる(ステップS45)。
【0116】
図16は、その表示情報50の模式図である。
表示情報50は、ステップS41の「仮想マシンID」と、ステップS44で特定した「OS」とを対応付けた情報である。例えば、表示部33は、この表示情報50を液晶ディスプレイの画面に表示する。これに代えて、プリンタ等の出力装置が紙に表示情報50を印刷してもよい。
【0117】
以上により、OS特定部43が実行する基本的な処理を終える。
【0118】
上記したオペレーティングシステム特定方法によれば、取得部41が、ブート期間中に仮想マシン10が使用しているCPU5とストレージ3の各々の使用状況を示すパラメータ「CPU%」と「DISK_R」とを取得する(ステップS12)。そして、OS特定部43が、取得したこれらのパラメータに基づいて、仮想マシン10のゲストOS11を特定する(ステップS44)。
【0119】
これらのパラメータは、取得部41が仮想マシン10にログインすることなしに制御サーバ21から取得できる。そのため、本実施形態では仮想マシン10にログインせずにゲストOS11を特定できる。
【0120】
特に、相異なるゲストOS11においてはブート時のカーネルの起動手順が相違するため、その相違がパラメータにも反映される。よって、OS特定部43がブート期間中におけるパラメータに基づいてゲストOS11を特定することにより、OS特定部43が高い確度でゲストOS11を特定できる。
【0121】
また、この方法は、オペレーティングシステム特定装置22がゲストOS11にログインしなくても、Windows(登録商標)系のOSとLinux(登録商標)系のOSの別を問わずにゲストOS11を特定できる。
【0122】
更に、ステップS44においては、OS特定部43が、構成管理DB39(
図11参照)において同一の「仮想マシンID」に係る複数のレコードのうち、「重み」が最も大きいレコードにおけるOSをゲストOS11であると特定する。「重み」は、ゲストOS11が、判定プログラム36が判定対象としているOSである可能性の高さを示す。よって、このように「重み」を利用してゲストOS11を特定することで、各判定プログラム36の判定の確度を考慮してゲストOS11を特定できる。
【0123】
特に、
図10のように判断対象のOSが同一の複数のロジック名「Logic_ptn1」、「Logic_ptn4」がある場合は、OS特定部43がこれらの重みの総和を算出してそれを構成管理DB39の「重み」に格納する。これにより、判断対象のOSが同一の複数のロジックの各々の判定結果を勘案してOS特定部43がゲストOS11を特定することができる。
【0124】
次に、脆弱性判定部44が実行する処理について説明する。
【0125】
図17は、脆弱性判定部44が実行する処理について示すフローチャートである。
【0126】
まず、脆弱性判定部44は、セキュリティ情報40を参照することにより、OS特定部43が特定したゲストOS11にセキュリティ上の脆弱性があるかを判定する(ステップS51)。
【0127】
例えば、OS特定部43が特定したゲストOS11が「Windows Server 2012 R2 (命令セット:X86_64、適用パッチ:なし)」である場合を考える。この場合、脆弱性判定部44は、セキュリティ情報40を参照することにより、「Windows Server 2012」に対応するパッチプログラムが「SP2」であることを特定する。そして、脆弱性判定部44は、ゲストOS11に「SP2」のパッチプログラムが適用されていないという脆弱性があると判定する。
【0128】
また、OS特定部43は、セキュリティ情報40を参照することにより、OS特定部43が特定したゲストOS11の最新のバージョンを特定してもよい。そして、OS特定部43が特定したゲストOS11のバージョンが最新ではない場合に、脆弱性判定部44は、ゲストOS11が最新ではないという脆弱性があると判定する。
【0129】
次に、脆弱性判定部44は、ステップS51で判定した脆弱性の内容を表示部33に表示させる(ステップS52)。これにより、例えばクラウドの提供者が仮想マシン10の利用者に対してゲストOS11を更新した方がよいとの情報を提供することができる。
【0130】
以上により、脆弱性判定部44が実行する基本的な処理を終える。
【0131】
(ハードウェア構成)
次に、本実施形態に係るオペレーティングシステム特定装置22のハードウェア構成について説明する。
【0132】
図18は、オペレーティングシステム特定装置22のハードウェア構成図である。
図18に示すように、オペレーティングシステム特定装置22は、記憶装置22a、メモリ22b、プロセッサ22c、通信インターフェース22d、表示装置22e、入力装置22f、及び媒体読取装置22gを有する。これらの各部は、バス22iにより相互に接続される。
【0133】
このうち、記憶装置22aは、HDDやSSD等の不揮発性のストレージであって、本実施形態に係るオペレーティングシステム特定プログラム100を記憶する。オペレーティングシステム特定プログラム100は、前述の複数の判定プログラム36、取得プログラム101、ブート期間特定プログラム102、及び出力プログラム103を有する。
【0134】
なお、オペレーティングシステム特定プログラム100をコンピュータが読み取り可能な記録媒体22hに記録し、媒体読取装置22gを介してプロセッサ22cにそのオペレーティングシステム特定プログラム100を読み取らせるようにしてもよい。
【0135】
そのような記録媒体22hとしては、例えばCD-ROM (Compact Disc - Read Only Memory)、DVD (Digital Versatile Disc)、及びUSB (Universal Serial Bus)メモリ等の物理的な可搬型記録媒体がある。また、フラッシュメモリ等の半導体メモリやハードディスクドライブを記録媒体22hとして使用してもよい。これらの記録媒体22hは、物理的な形態を持たない搬送波のような一時的な媒体ではない。
【0136】
更に、公衆回線、インターネット、及びLAN等に接続された装置にオペレーティングシステム特定プログラム100を記憶させてもよい。その場合は、プロセッサ22cがそのオペレーティングシステム特定プログラム100を読み出して実行すればよい。
【0137】
一方、メモリ22bは、DRAM等のようにデータを一時的に記憶するハードウェアであって、その上にオペレーティングシステム特定プログラム100が展開される。
【0138】
プロセッサ22cは、オペレーティングシステム特定装置22の各部を制御するCPUやGPU(Graphical Processing Unit)等のハードウェアである。また、プロセッサ22cは、メモリ22bと協働してオペレーティングシステム特定プログラム100を実行する。
【0139】
このようにメモリ22bとプロセッサ22cとが協働してオペレーティングシステム特定プログラム100を実行することにより、オペレーティングシステム特定装置22の制御部35(
図8参照)が実現される。その制御部35のうち、取得部41は取得プログラム101により実現され、ブート期間特定部42はブート期間特定プログラム102により実現される。そして、制御部35のOS特定部43は、複数の判定プログラム36と出力プログラム103により実現される。
【0140】
また、記憶部34(
図8参照)は、記憶装置22aとメモリ22bによって実現される。
【0141】
更に、通信インターフェース22dは、オペレーティングシステム特定装置22をネットワーク23(
図5参照)に接続するためのNIC等のハードウェアである。その通信インターフェース22dにより通信部31(
図8参照)が実現される。
【0142】
そして、表示装置22eは、表示情報50(
図16参照)を表示するための液晶ディスプレイやタッチパネル等のハードウェアである。その表示装置22eにより表示部33(
図8参照)が実現される。
【0143】
また、入力装置22fは、ユーザがオペレーティングシステム特定装置22に各種のデータを入力するためのキーボードやマウス等のハードウェアである。その入力装置22fにより入力部32(
図8参照)が実現される。
【0144】
媒体読取装置22gは、記録媒体22hを読み取るためのCDドライブ、DVDドライブ、及びUSBインターフェース等のハードウェアである。
【0145】
次に、制御サーバ21のハードウェア構成について説明する。
【0146】
図19は、制御サーバ21のハードウェア構成図である。
図19に示すように、制御サーバ21は、記憶装置21a、メモリ21b、プロセッサ21c、及び通信インターフェース21dを有する。これらの各部は、バス21iにより相互に接続される。
【0147】
このうち、記憶装置21aは、HDDやSSD等の不揮発性のストレージであって、ハイパーバイザ制御プログラム110を記憶する。
【0148】
メモリ21bは、DRAM等のようにデータを一時的に記憶するハードウェアであって、その上にハイパーバイザ制御プログラム110が展開される。
【0149】
プロセッサ21cは、制御サーバ21の各部を制御するCPUやGPU等のハードウェアである。また、プロセッサ21cは、メモリ21bと協働してハイパーバイザ制御プログラム110を実行する。
【0150】
このようにメモリ21bとプロセッサ21cとが協働してハイパーバイザ制御プログラム110を実行することにより、制御サーバ21の制御部25(
図6参照)が実現される。
【0151】
また、記憶部26(
図6参照)は、記憶装置21aとメモリ21bによって実現される。
【0152】
更に、通信インターフェース21dは、制御サーバ21をネットワーク23(
図5参照)に接続するためのNIC等のハードウェアである。その通信インターフェース21dにより通信部24(
図6参照)が実現される。
【0153】
以上説明した各実施形態に関し、更に以下の付記を開示する。
(付記1) ブート期間中の仮想マシンが使用している複数のリソースの各々の使用状況を示す複数のパラメータを取得する取得部と、
取得した複数の前記パラメータに基づいて、前記仮想マシンのオペレーティングシステムを特定する特定部と、
を有することを特徴とするオペレーティングシステム特定装置。
(付記2) 前記特定部は、
複数の前記パラメータを利用する第1のロジックに基づいて、前記オペレーティングシステムが第1のオペレーティングシステムである第1の可能性の高さを示す第1の重みを特定し、
複数の前記パラメータを利用する第2のロジックに基づいて、前記オペレーティングシステムが第2のオペレーティングシステムである第2の可能性の高さを示す第2の重みを特定し、
前記第1の重みが前記第2の重みよりも大きい場合に、前記オペレーティングシステムが前記第1のオペレーティングシステムであると特定することを特徴とする付記1に記載のオペレーティングシステム特定装置。
(付記3) 前記特定部は、
複数の相異なる前記第1のロジックに基づいて前記第1の可能性の高さを示す重みを特定し、該重みの総和を前記第1の重みとし、
複数の相異なる前記第2のロジックに基づいて前記第2の可能性の高さを示す重みを特定し、該重みの総和を前記第2の重みとすることを特徴とする付記2に記載のオペレーティングシステム特定装置。
(付記4) 前記特定部は、前記オペレーティングシステムを、前記オペレーティングシステムの名前、前記オペレーティングシステムのバージョン、前記オペレーティングシステムが使用している命令セット、及び前記オペレーティングシステムに適用されている修正プログラムの名前の組み合わせで特定することを特徴とする付記1に記載のオペレーティングシステム特定装置。
(付記5) 前記取得部は、CPU使用率と、ストレージからデータを読み出すコマンドの単位時間当たりの発行数とを前記パラメータとして取得し、
前記特定部は、ブート期間内の第1の時刻において前記CPU使用率の時間変化が鈍化し、かつ前記ブート期間の開始時刻から前記第1の時刻よりも後の第2の時刻に至る期間内で前記発行数の時間変化が鈍化していないかを判定することにより、前記オペレーティングシステムを特定することを特徴とする付記1に記載のオペレーティングシステム特定装置。
(付記6) 前記取得部は、CPU使用率と、ストレージからデータを読み出すコマンドの単位時間当たりの発行数とを前記パラメータとして取得し、
前記特定部は、第1の時刻を境にして前記CPU使用率の時間変化が増加から減少に転じ、かつ前記第1の時刻を過ぎた後に前記発行数が閾値を超える事象が所定回数発生しているかを判定することにより、前記オペレーティングシステムを特定することを特徴とする付記1に記載のオペレーティングシステム特定装置。
(付記7) 前記取得部は、
ストレージからデータを読み出すコマンドの単位時間当たりの発行数を示す第1の発行数と、前記ストレージにデータを書き込むコマンドの単位時間当たりの発行数を示す第2の発行数とを前記パラメータとして取得し、
前記特定部は、
第1の時刻における前記第2の発行数が、前記第1の時刻よりも前の第2の時刻における前記第2の発行数よりも大きく、かつ、前記第1の時刻において前記第2の発行数が前記第1の発行数よりも大きいかを判定することにより、前記オペレーティングシステムを特定することを特徴とする付記1に記載のオペレーティングシステム特定装置。
(付記8) 前記仮想マシンのCPU使用率が負の値からゼロになった時刻を前記ブート期間の開始時刻として特定し、前記開始時刻から所定の時間を経過した時点を前記ブート期間の終了時刻として特定するブート期間特定部を更に有することを特徴とする付記1に記載のオペレーティングシステム特定装置。
(付記9) 特定した前記オペレーティングシステムに脆弱性があるかを判定する判定部を更に有することを特徴とする付記1に記載のオペレーティングシステム特定装置。
(付記10) ブート期間中の仮想マシンが使用している複数のリソースの各々の使用状況を示す複数のパラメータを取得し、
取得した複数の前記パラメータに基づいて、前記仮想マシンのオペレーティングシステムを特定する、
処理をコンピュータに実行させるためのオペレーティングシステム特定プログラム。
(付記11) コンピュータが、
ブート期間中の仮想マシンが使用している複数のリソースの各々の使用状況を示す複数のパラメータを取得し、
取得した複数の前記パラメータに基づいて、前記仮想マシンのオペレーティングシステムを特定する、
処理を実行することを特徴とするオペレーティングシステム特定方法。
【符号の説明】
【0154】
1…物理サーバ、3…ストレージ、4…メモリ、5…CPU、6…リソース、8…ハイパーバイザ、10…仮想マシン、20…システム、21…制御サーバ、22…オペレーティングシステム特定装置、23…ネットワーク、24…通信部、25…制御部、26…記憶部、27…性能ログ、31…通信部、32…入力部、33…表示部、34…記憶部、35…制御部、36…判定プログラム、37…性能ログ、40…セキュリティ情報、41…取得部、42…ブート期間特定部、43…OS特定部、44…脆弱性判定部、50…表示情報。