以下実施の形態を、図面を参照して説明する。
まず、以下の説明で用いる用語について説明する。「フロー」とは、順を追って行う複数の作業について、作業の内容と実行順とを対応付けたものをいう。「アクティビティ」とは、フローを構成する個々の作業をいう。「フロー定義」とは、実際に行う複数の作業をフローとして記述したものをいう。「セキュリティ脅威」とは、コンピュータの安全動作を脅かす事象をいう。安全動作を脅かす事象とは、例えば、コンピュータの不正操作を可能とするソフトウェアのセキュリティ脆弱性及び、当該セキュリティ脆弱性が発見されたことをいう。「アラート」とはセキュリティ脅威が発見された旨の通知をいう。「アラート対象」とは、セキュリティ脅威が発見されたことにより、運用の停止が必要となることをいう。アラート対象のサーバとは、セキュリティ脅威が発見されたことにより、運用停止の対象となるサーバをいう。アラート対象のフローとは、セキュリティ脅威が発見されたことにより、実行の停止又は禁止がされるフローをいう。
「運用」とは、いわゆる「運用管理・保守」を行うことをいう。ここでは、特にサーバコンピュータ、並びにサーバコンピュータ及びネットワークを含む情報システムが、安全性と安定性を守り、稼働を止めることなく動作するために行う作業をいう。
「運用フロー」とは、「運用」における作業をフローとして定義したものをいう。「自動化フロー」又は「自動運用フロー」とは、「運用フロー」の中で、人手を必要とすることなく実行できるものをいう。「臨時フロー」とは、自動化フローに含まれるアクティビティの中から、アラート状態であっても実行すべきアクティビティを抜き出して生成した自動化フローをいう。「解除後フロー」とは、自動化フローに含まれるアクティビティの中から、臨時フローに含まれないアクティビティを抜き出して生成した自動化フローをいう。
図1は情報システム10の構成例を示すブロック図である。情報システム10は運用自動化サーバ(フロー生成装置)1、セキュリティ脅威検知サーバ2、業務サーバ(情報処理装置)3、端末4を含む。各装置はネットワークNにより、互いに通信可能に接続されている。運用自動化サーバ1は自動化フローの定義を記憶し、実行する。セキュリティ脅威検知サーバ2はセキュリティ脅威を検知する。業務サーバ3は情報システム10のユーザに対して、業務に関するサービスを提供する。業務サーバ3が運用の対象となるコンピュータである。端末4は主に運用担当者が使用する。運用担当者は端末4に自動化フローの動作状況などを表示させる。運用担当者は必要に応じ、端末4を介して運用自動化サーバ1の制御を行う。
図2は運用自動化サーバ1のハードウェア構成例を示すブロック図である。運用自動化サーバ1はCPU(Central Processing Unit)11、ROM(Read Only Memory)12、RAM(Random Access Memory)13、大容量記憶部14、通信部15及び読み取り部16を含む。各構成はバスBで接続されている。
CPU11はROM12に記憶された制御プログラム(フロー生成プログラム)1Pにしたがい、ハードウェア各部を制御する。RAM13は例えばSRAM(Static RAM)、DRAM(Dynamic RAM)又はフラッシュメモリである。RAM13はCPU11によるプログラムの実行時に発生するデータを一時的に記憶する。
大容量記憶部14は、例えばハードディスク又はSSD(Solid State Drive)などである。大容量記憶部14は各種データを記憶する。制御プログラム1Pを大容量記憶部14に記憶してもよい。通信部15はネットワークNを介して、セキュリティ脅威検知サーバ2、業務サーバ3、及び端末4や他のコンピュータと通信を行う。読み取り部16はCD(Compact Disc)−ROM及びDVD(Digital Versatile Disc)−ROMを含む可搬型記憶媒体1aを読み取る。CPU11が読み取り部16を介して、制御プログラム1Pを可搬型記憶媒体1aより読み取り、大容量記憶部14に記憶してもよい。また、ネットワークN等を介して他のコンピュータからCPU11が制御プログラム1Pをダウンロードし、大容量記憶部14に記憶してもよい。さらにまた、半導体メモリ1bから、CPU11が制御プログラム1Pを読み込んでもよい。
図3は端末4のハードウェア構成例を示すブロック図である。端末4はCPU41、ROM42、RAM43、大容量記憶部44、表示部45、入力部46、通信部47及び読み取り部48を含む。各構成はバスBで接続されている。
CPU41はROM42に記憶された制御プログラム4Pにしたがい、ハードウェア各部を制御する。RAM43は例えばSRAM、DRAM又はフラッシュメモリである。RAM43はCPU41によるプログラムの実行時に発生するデータを一時的に記憶する。大容量記憶部44は、例えばハードディスク又はSSDなどである。大容量記憶部44は各種データを記憶する。制御プログラム4Pを大容量記憶部44に記憶してもよい。表示部45は例えば液晶表示パネルなどの画像表示デバイスを含む。
表示部45は運用自動化サーバ1が送信した自動化フローの動作状況など各種情報を表示する。入力部46はキーボードやマウスを介して、ユーザが入力した運用自動化サーバ1への制御コマンドを受け付ける。また、タッチパネルディスプレイのように、表示部45及び入力部46を一体してもよい。
通信部47はネットワークNを介して、運用自動化サーバ1や他のコンピュータと通信を行う。読み取り部48はCD−ROM及びDVD−ROMを含む可搬型記憶媒体4aを読み取る。CPU41が読み取り部48を介して、制御プログラム4Pを可搬型記憶媒体4aより読み取り、大容量記憶部44に記憶してもよい。また、ネットワークN等を介して他のコンピュータからCPU41が制御プログラム4Pをダウンロードし、大容量記憶部44に記憶してもよい。さらにまた、半導体メモリ4bから、CPU41が制御プログラム4Pを読み込んでもよい。
次に運用自動化サーバ1の大容量記憶部14が記憶しているデータベース(DB:DataBase)について説明する。図4はアラート対照DB(記憶部)141の例を示す説明図である。アラート対照DB141は、セキュリティ脅威検知サーバ2から送信されたアラートを解析する際に用いられる。アラートとは、セキュリティ脅威検知サーバ2が検知したセキュリティの脅威に関する通知である。アラート対照DB141はアラート種別(種別情報)と、製品、OSS(Open Source Softaware)、通信ポート・プロトコルとを対応付けて記憶する。アラート対照DB141はアラート種別列、シグネチャパターン/ルール列、通信ポート・プロトコル列、及び製品・OSS列を含む。アラート種別列はアラートの種別を記憶する。種別は、例えば、Information(情報)、Warining(警告)、Average(要注意)などである。シグネチャパターン/ルール列は、アラートに関するシグネチャパターン/ルールを記憶する。シグネチャパターンとはマルウェアや不正アクセスといった攻撃(セキュリティ脅威)の特徴的なパターンをいう。シグネチャルールとはシグネチャパターンを用いて、セキュリティ脅威を判定するためのルールをいう。通信ポート・プロトコル列はアラートに対応する通信ポート・プロトコルを記憶する。例えば、80/TCPなどである。製品・OSS列はアラートに対応するソフトウェアの製品名やOSSの名称を記憶する。
図5は構成管理DB(記憶部)142の例を示す説明図である。構成管理DB142は業務サーバ3のハードウェア構成及びソフトウェア構成などの構成情報を記憶する。構成管理DB142はホスト名列、OS(Operating System)列、インストール済みソフト列、及び通信手段列を含む。ホスト名列は業務サーバ3のホスト名を記憶する。ホスト名は業務サーバ3を一意に特定できるデータである。OS列は業務サーバ3にインストールされているOSの情報(OS名、バージョン、パッチレベルなど)をインストール済みソフト列は業務サーバ3にインストールされているソフトウェア製品やOSSの情報(名称、バージョン、エディションなど)を記憶する。通信手段列は業務サーバ3が用いている通信手段に関する情報(通信規格名、プロトコル名、使用ポート番号など)を記憶する。
図6はアラート管理DB143の例を示す説明図である。アラート管理DB143はセキュリティ脅威検知サーバ2から送信されたアラートの対象となる業務サーバ3の情報を記憶する。アラート管理DB143はアラートID列、受信アラート列、対象サーバ列、及び状態列を含む。アラートID列はアラートを一意に特定可能なIDであるアラートIDを記憶する。アラートIDはセキュリティ脅威検知サーバ2により発行される。受信アラート列はセキュリティ脅威検知サーバ2より送信されたアラートの内容を記憶する。受信アラート列は種別列及びシグネチャパターン/ルール列を含む。種別列はアラートの種別を記憶する。シグネチャパターン/ルール列は、アラートに関するシグネチャパターン/ルールを記憶する。対象サーバ列はアラートの対象となっている業務サーバ3のホスト名を記憶する。状態列はアラートの状態を記憶する。アラートの状態は例えばアラート状態、アラート状態である。アラート状態は対象サーバによるサービスを停止するなど、アラートに対する対応が必要な状態を示す。非アラート状態はアラートに対する恒久的な対策が完了したなどの理由により、対象サーバによるサービスを再開可能な状態等を示す。
図7はアラート状況管理DB144の例を示す説明図である。アラート状況管理DB144はアラートの対象サーバを対象となった製品・OSSと共に記憶する。アラート状況管理DB144はアラートID列、対象サーバ列、製品・OSS列、及び状態列を含む。アラートID列はアラートIDを記憶する。対象サーバ列はアラート対象の業務サーバ3のホスト名を記憶する。製品・OSS列はアラート対象の製品名、OSSの名称などを記憶する。状態列はアラートの状態を記憶する。
図8はフロー実行状況DB145の例を示す説明図である。フロー実行状況DB145は実行中の自動化フローを記憶する。フロー実行状況DB145はフローID列、及び実行ポイント列を含む。フローID列は自動化フローを一意に特定可能なIDであるフローIDを記憶する。実行ポイント列は実行中のアクティビティを記憶する。
図9はアクティビティDB146の例を示す説明図である。アクティビティDB146は自動化フローを構成するアクティビティ(フローの定義情報)を記憶する。アクティビティDB146はフローID列、アクティビティ列、接続先列、通信手段列、及び運用操作列を含む。フローID列は自動化フローを一意に特定可能なIDであるフローIDを記憶する。アクティビティ列はアクティビティ名を記憶する。アクティビティ名は同一の自動化フローにおいてはユニークな値である。図9に示すアクティビティ名は3桁の数字を含む。この3桁の数字はアクティビティの実行順を示す。実行順をアクティビティ名に含めず、実行順を記憶する列を設けてもよい。接続先列はアクティビティを実行する際に運用自動化サーバ1が接続する業務サーバ3のホスト名を記憶する。通信手段列は運用自動化サーバ1が業務サーバ3に接続する際に用いる通信手段を記憶する。運用操作列は接続先列で特定された業務サーバ3に対して、運用自動化サーバ1が行う操作内容を記憶する。
図10はフロー管理DB147の例を示す説明図である。フロー管理DB147はアラートにより実行が制限されている自動化フローに関する情報を記憶する。フロー管理DB147はアラートID列、フローID列、対象サーバ列、臨時フローID列、再開ポイント列、及び状態列を含む。アラートID列はアラートIDを記憶する。フローID列は実行が制限されている自動化フローのフローIDを記憶する。対象サーバ列はアラートの対象となっている業務サーバ3のホスト名を記憶する。臨時フローID列は自動化フローが制限されたことに伴い生成された臨時フローや解除後フローのフローIDを記憶する。再開ポイント列は臨時フローや解除後フローに関して、実行を開始するアクティビティを記憶する。状態列は臨時フローや解除後フローの状態を記憶する。実行中は臨時フローや解除後フローが実行中であることを示す。実行不可は臨時フローや解除後フローの実行が禁止されていることを示す。
図11はフロー定義DB148の例を示す説明図である。フロー定義DB148はフローの属性を記憶する。フロー定義DB148はフローID列、フロー名列、及び臨時フローフラグ列を含む。フローID列はフローを一意に特定可能なフローIDを記憶する。フロー名列はフローの名称を記憶する。臨時フローフラグ列は、フローがアラート対象となった場合、臨時フローの作成が必要となる可能性が有るか否かを示す。例えば、臨時フローフラグの値がONは、臨時フローの作成が必要となる可能性が有ることを示す。臨時フローフラグの値がOFFは、臨時フローの作成が必要となる可能性が無いことを示す。
図12は停止フローDB149の例を示す説明図である。停止フローDB149はアラートにより実行が停止されているフローの情報を記憶する。停止フローDB149はアラートID列、フローID列、対象サーバ列、及び停止ポイント列を含む。アラートID列はアラートを一意に特定可能なアラートIDを記憶する。フローID列はフローを一意に特定可能なフローIDを記憶する。対象サーバ列はフローを実行するサーバであって、アラート対象のサーバのホスト名を記憶する。停止ポイント列はフローが停止しているポイントを記憶する。停止ポイント列はフローに含まれるアクティビティの名称を記憶する。停止ポイント列が記憶するアクティビティは未実行、又は実行を停止し、実質、実行していないに等しいアクティビティである。
図13は臨時アクティビティDB150の例を示す説明図である。臨時アクティビティDB150は臨時フロー及び解除後フローに含まれるアクティビティを記憶する。臨時アクティビティDB150はフローID列、アクティビティ列、接続先列、通信手段列、及び運用操作列を含む。フローID列は臨時フロー又は解除後フローのフローIDを記憶する。図13に示す例では、「ext」から始まるフローIDは臨時フローのフローIDを示す。「restart」から始まるフローIDは解除後フローのフローIDを示す。アクティビティ列はフローに含まれるアクティビティの名称を記憶する。接続先列はアクティビティの実行の際、運用自動化サーバ1が接続する業務サーバ3のホスト名を記憶する。通信手段列は、運用自動化サーバ1が業務サーバ3に接続する際に用いる通信手段を記憶する。運用操作列は、運用自動化サーバ1が業務サーバ3に対して行う操作の内容を記憶する。
図14は種別判定DB151の例を示す説明図である。種別判定DB151はアクティビティに含まれる運用操作の種別を記憶する。種別判定DB151は種別列及び運用操作列を含む。種別列は運用操作の種別を記憶する。運用操作列は種別に対応する運用操作を記憶する。
次に、運用自動化サーバ1が実行する情報処理について説明する。図15はアラート受信処理の手順例を示すフローチャートである。アラート受信処理は運用自動化サーバ1が、セキュリティ脅威検知サーバ2よりアラートを受信したことを契機に行う処理である。運用自動化サーバ1のCPU11はアラートを取得する(ステップS1)。CPU11はアラート解析を行う(ステップS2)。CPU11は対象サーバが有るか否かを判定する(ステップS3)。CPU11は対象サーバが無いと判定した場合(ステップS3でNO)、アラート受信処理を終了する。CPU11は対象サーバが有ると判定した場合(ステップS3でYES)、フロー捜査処理を行う(ステップS4)。CPU11はフロー管理DB147よりフロー管理情報を取得する(ステップS5)。ここで、取得対象になるのは、臨時フロー列が空白又はNULLで、状態列が実行不可のものである。フロー管理情報をフロー管理情報はフロー捜査処理で得たものである。CPU11は臨時フローを生成するかを判定する(ステップS6)。具体的には、状態列の値が実行中であり、フローID列の値をフローIDとするフローが臨時フロー作成対象で有るか否かを判定する。臨時フロー作成対象で有るか否かは、フロー定義DB148における該当レコード(フローIDが一致するレコード)の臨時フローフラグ列の値で判定する。CPU11は臨時フローを生成しないと判定した場合(ステップS6でNO)、処理をステップS9へ進める。CPU11は臨時フローを生成すると判定した場合(ステップS6でYES)、臨時フロー生成処理を行う(ステップS7)。CPU11は生成した臨時フローを実行する(ステップS8)。CPU11はフロー管理DB147に未処理のフロー管理情報が有るか否かを判定する(ステップS9)。CPU11は未処理のフロー管理情報が有ると判定した場合(ステップS9でYES)、処理をステップS5に戻し、未処理のフロー管理情報に対する処理を行う。CPU11は未処理のフロー管理情報が無いと判定した場合(ステップS9でNO)、アラート受信処理を終了する。
図16はアラート解析処理の手順例を示すフローチャートである。アラート解析処理は図15のステップS2で実行される処理である。アラート解析処理はセキュリティ脅威検知サーバ2より受信したアラートの内容を、運用自動化サーバ1が解析する処理である。当該アラートはアラート種別、シグネチャパターン、及びシグネチャルールなどを含む。運用自動化サーバ1のCPU11はアラートの対象となる製品又はOSSを取得する(ステップS31)。CPU11はアラートに含まれるアラート種別、シグネチャパターン、及びシグネチャルールを検索キーに、アラート対照DB141を検索し、対象となる製品又はOSSを取得する。CPU11は対象サーバの検索を行う(ステップS32)。CPU11はステップS31で取得した製品又はOSSを検索キーに、構成管理DB142を検索する。CPU11は対象サーバが有るか否か判定する(ステップS33)。CPU11は対象サーバが有ると判定した場合(ステップS33でYES)、アラート管理情報をアラート管理DB143に記憶する(ステップS34)。記憶するのは、アラートID、アラート種別、シグネチャパターン、シグネチャルール、検索で得た対象サーバのホスト名、及び状態である。状態は「アラート状態」とする。アラートIDは一意となるように、CPU11により生成される。以降のアラート受信処理が終了するまで、アラートIDの値は、ここで生成したものが使いまわしされる。CPU11はアラート状況情報をアラート状況管理DB144に記憶する(ステップS35)。記憶するのは、アラートID、検索で得た対象サーバのホスト名、アラートの対象となる製品又はOSS、及び状態である。状態は「アラート状態」とする。CPU11は戻り値を「対象サーバ有り」に設定し(ステップS36)、処理を呼び出し元に戻す。CPU11は対象サーバが無いと判定した場合(ステップS33でNO)、戻り値を「対象サーバ無し」に設定し(ステップS37)、処理を呼び出し元に戻す。
図17はフロー捜査処理の手順例を示すフローチャートである。フロー捜査処理は図15のステップS4で実行される処理である。フロー捜査処理はアラートに対する対応が必要な実行中のフローを捜査する処理である。運用自動化サーバ1のCPU11はアラート状況管理DB144から、アラートIDに対応する対象サーバ(のホスト名)を取得する(ステップS51)。CPU11はフロー実行状況DB145を参照し、実行中のフローを選択する(ステップS52)。CPU11は選択したフローに含まれるアクティビティであって、接続先がステップS51で取得した対象サーバのいずれかであるアクティビティを検索する(ステップS53)。検索対象はアクティビティDB146である。検索条件は、フローIDがステップS52で選択したフローのフローIDと一致し、接続先がステップS51で取得した対象サーバのいずれかである、という条件である。CPU11は検索にヒットしたか否か判定する(ステップS54)。CPU11は、検索はヒットしていないと判定した場合(ステップS54でNO)、処理をステップS59に進める。CPU11は検索にヒットしたと判定した場合(ステップS54でYES)、検索にヒットしたアクティビティを選択する(ステップS55)。CPU11は選択したアクティビティが未実行であるか否か判定する(ステップS56)。選択したアクティビティが未実行であるか否かは、フロー実行状況DB145の実行ポイント列の値により判定する。ここでは、アクティビティ名にフローでの実行順を示す3桁の数字が含まれている。したがって、数字の大小により選択したアクティビティが未実行であるか否か判定可能である。選択したアクティビティの数字が、フロー実行状況DB145の実行ポイントの値に含まれる数字より大きいのであれば、選択したアクティビティは未実行である。選択したアクティビティの数字が、フロー実行状況DB145の実行ポイントの値に含まれる数字より小さければ、選択したアクティビティは実行済みである。選択したアクティビティの数字が、フロー実行状況DB145の実行ポイントの値に含まれる数字と等しければ、選択したアクティビティは実行中である。CPU11は選択したアクティビティが未実行であると判定した場合(ステップS56でYES)、選択したアクティビティが含まれるフローの実行を停止する(ステップS57)。CPU11は停止したフローに関するフロー管理情報を生成し、フロー管理DB147に記憶する(ステップS58)。この際、臨時フローID列は空白又はNULLとする。再開ポイント列は停止した時点のアクティビティ名を記憶する。状態列の値は「実行不可」とする。CPU11は処理をステップS59に進める。CPU11は選択したアクティビティが未実行ではないと判定した場合(ステップS56でNO)、未処理のアクティビティが有るか否かを判定する(ステップS60)。CPU11は未処理のアクティビティが有ると判定した場合(ステップS60でYES)、処理をステップS55に戻し、未処理のアクティビティについての処理を行う。CPU11は未処理のアクティビティが無いと判定した場合(ステップS60でNO)、処理をステップS59に進める。CPU11は実行中のフローで未処理のものが有るか否かを判定する(ステップS59)。CPU11は実行中のフローで未処理のものが有ると判定した場合(ステップS59でYES)、処理をステップS52に戻し、未処理の実行中フローについての処理を行う。CPU11は実行中のフローで未処理のものが無いと判定した場合(ステップS59でNO)、フロー捜査処理を終了し、処理を呼び出し元に戻す。
図18及び図19は臨時フロー生成処理の手順例を示すフローチャートである。臨時フロー生成処理は図15のステップS7で実行される処理である。臨時フロー生成処理は臨時フロー生成対象であるフロー(以下、「対象フロー」と記す。)から、臨時フローと解除後フローを生成する処理である。運用自動化サーバ1のCPU11はフローIDを生成する(ステップS71)。ここで、生成するのは臨時フローのフローIDと解除後フローのフローIDである。CPU11は処理対象のフローに含まれるアクティビティを取得する(ステップS72)。CPU11はポイントA及びポイントBをNULL、ポイントtを再開ポイントに設定する(ステップS73)。CPU11は再開ポイントをフロー管理DB147より取得する。ポイントA、ポイントB及びポイントtは対象フローに含まれる任意のアクティビティを示す変数である。CPU11はポイントtが示すアクティビティの種別が対象種別で有るか否かを判定する(ステップS74)。アクティビティの種別とは、アクティビティに含まれる運用操作の種別である。CPU11は運用操作の種別を種別判定DB151より得る。対象種別とは臨時フローに含めるべきアクティビティの種別である。対象種別は例えば、パッチ、アプリケーション配備及びプログラムの複写などである。CPU11はポイントtが示すアクティビティの種別が対象種別であると判定した場合(ステップS74でYES)、ポイントAがNULLで有るか否かを判定する(ステップS75)。CPU11はポイントAがNULLであると判定した場合(ステップS75でYES)、ポイントAにポイントtの値を設定する(ステップS76)。CPU11はポイントBにポイントtの値を設定する(ステップS77)。CPU11はポイントtが示すアクティビティが対象フローの最後のアクティビティで有るか否かを判定する(ステップS78)。CPU11は、ポイントtが示すアクティビティが対象フローの最後のアクティビティではないと判定した場合(ステップS78でNO)、ポイントtが示すアクティビティを、当該アクティビティの次のアクティビティに設定する(ステップS79)。CPU11は処理をステップS74に戻す。CPU11はポイントtが示すアクティビティが対象フローの最後のアクティビティであると判定した場合(ステップS78でYES)、CPU11は処理をステップS80に移す。CPU11はポイントAがNULLでないと判定した場合(ステップS75でNO)、処理をステップS77に移す。CPU11はポイントtが示すアクティビティの種別が対象種別でないと判定した場合(ステップS74でNO)、処理をステップS78に移す。
CPU11は、ポイントAからポイントBまでのアクティビティに臨時フロー及び解除後フローに追加する(ステップS80)。CPU11は、臨時フローより対象サーバについてのアクティビティを削除し、解除後フローより対象サーバ以外についてのアクティビティを削除する(ステップS81)。CPU11は、再開ポイント〜ポイントA直前のアクティビティを臨時フローの先頭に追加し、ポイントB直後〜最後のアクティビティを解除後フローの最後に追加する(ステップS82)。なお、ポイントA直前のアクティビティが、再開ポイントのアクティビティよりも前に実行するアクティビティの場合(再開ポイント=ポイントA)、CPU11は臨時フローへのアクティビティの追加は行わない。ポイントB直後のアクティビティが存在しない場合(ポイントA=最後)、CPU11は解除後フローへのアクティビティの追加は行わない。CPU11は臨時フロー及び解除後フローにおいて、運用自動化サーバ1との通信手段に脅威を受ける製品又はOSSの通信手段を用いているか否かを判定する(ステップS83)。CPU11は脅威を受ける製品又はOSSの通信手段を用いていないと判定した場合(ステップS83でNO)、処理をステップS85に移す。CPU11は脅威を受ける製品又はOSSの通信手段を用いていると判定した場合(ステップS83でYES)、臨時フロー及び解除後フローにおいて使用する通信手段を、脅威を受けない他の通信手段に置き換える(ステップS84)。CPU11は臨時フローを実行状態とする(ステップS85)。CPU11は、フロー管理DB147において、臨時フローに対応するレコードの状態列の値を実行中に設定する。CPU11は臨時フロー生成処理を終了し、処理を呼び出し元に戻す。CPU11は図15のステップS8で、生成した臨時フローを実行する。
以上の処理を、例を用いて説明する。図20は対象フローの一例を示す説明図である。図20は、図9に示したアクティビティDB146に記憶するフローID=FlowID0001のフローを有向グラフの形式で示したものである。図20に示す各ノードが対象フローのアクティビティを示している。アクティビティの名称は「actXXX」(Xは任意の数字)としてある。XXXはアクティビティに実行順を示している。
ここでは、アラート種別がwarning、シグネチャパターン/ルールがsignature_000000xxx、通信プロトコルがyyy/tcpであるアラートを、運用自動化サーバ1がセキュリティ脅威検知サーバ2より受信したとする。運用自動化サーバ1のCPU11は図15に示したアラート受信処理を開始する。CPU11は通信部15からアラートを取得する(ステップS1)。CPU11はアラート解析処理を行う(ステップS2、図16)。
取得したアラートとアラート対照DB141とを対比することにより、CPU11は対象製品として、DBsoft1を取得する(ステップS31)。CPU11は構成管理DB142を用いて対象サーバを検索する。CPU11は、インストール済みソフト列に対象製品DBsoft1を含むレコードを検索する(ステップS32)。ここでは、対象となる業務サーバ3はServer3である(ステップS33でYES)。CPU11はアラート管理情報を生成し、アラート管理DB143に記憶する(ステップS34)。ここでは、図6に示すアラートID=alt0001であるレコードを、CPU11は生成する。CPU11はアラート状況情報を生成し、アラート状況管理DB144に記憶する(ステップS35)。ここでは、図7に示すアラートID=alt0001であるレコードを、CPU11は生成する。CPU11はアラート解析処理の戻り値を、該当サーバ有りと設定し(ステップS36)、処理をアラート受信処理に戻す。アラートIDはRAM13等に設けた一時記憶領域に記憶し、アラート受信処理において、必要に応じて参照される。
アラート解析処理の戻り値は該当サーバ有りであるので(ステップS3でYES)、CPU11はフロー捜査処理を行う(ステップS4、図17)。CPU11はアラート状況情報を取得する(ステップS51)。処理対象であるアラートID=alt0001であるレコードを、CPU11は取得する。CPU11は実行中のフローを選択する(ステップS52)。フロー実行状況DB145のレコード1つを、CPU11は選択する。ここでは、フローID=FlowID001のレコードが選択されたとする。CPU11は選択したフローのアクティビティであって、接続先が対象サーバであるレコードを検索する(ステップS53)。ここでは、フローID=FlowID001、接続先=Server3であるレコードを、CPU11は検索する。図9において、アクティビティact003、act008、act009、及びact010がヒットする(ステップS54でYES)。CPU11は検索にヒットしたアクティビティを選択する(ステップS55)。CPU11はアクティビティact003を選択したとする。CPU11はアクティビティact003が未実行で有るか否か判定する(ステップS56)。フロー実行状況DB145によれば、フローID=FlowID001のフローの実行ポイントはact003であるので、未実行ではないと、CPU11は判定する(ステップS56でNO)。CPU11は未処理のアクティビティが有るか否か判定する(ステップS60)。アクティビティact008、act009、及びact010について未処理であるから、CPU11は有りと判定し(ステップS60でYES)、処理をステップS55に戻す。
CPU11は、ステップS55でアクティビティact008を選択したとする。CPU11はアクティビティact008が未実行で有るか否か判定する(ステップS56)。上述のように、フローID=FlowID001のフローの実行ポイントはact003であるので、未実行であると、CPU11は判定する(ステップS56でYES)。CPU11はフロー(フローID=FlowID001)の実行を停止する(ステップS57)。CPU11は停止したフローに関するフロー管理情報を生成し、フロー管理DB147に記憶する(ステップS58)。CPU11が記憶するフロー管理情報は、アラートID=alt0001、フローID=FlowID001、対象サーバ=Server3、臨時フローID=空白又はNULL、再開ポイント=act004、状態=実行不可である。CPU11は実行中のフローで未処理のものが有るか否かを判定する(ステップS59)。ここでは、フローID=FlowID002であるフローは未処理であるため、CPU11は未処理のものが有りと判定し(ステップS59でYES)、処理をステップS52に戻す。フローID=FlowID002であるフローについての処理は、説明を省略する。CPU11は実行中のフローすべてについて処理を終えたら(ステップS59でNO)、フロー捜査処理を終了し処理を呼び出し元であるアラート受信処理に戻す。
CPU11はフロー管理DB147よりフロー管理情報を取得する(ステップS5)。ここで、CPU11が取得するのは上述したレコードである。CPU11は臨時フローを生成するかを判定する(ステップS6)。ここでは、フローID=FlowID001についての処理である。フロー定義DB148において、フローID=FlowID001であるレコードの臨時フローフラグ列の値はONである。CPU11は臨時フローを生成すると判定し(ステップS6でYES)、臨時フロー生成処理を行う(ステップS7、図18)。
CPU11はフローIDを生成する(ステップS71)。ここでは、臨時フローのフローIDとして、extflow001が生成されたとする。解除後フローのフローIDとして、restartflow001が生成されたとする。CPU11は処理対象のフロー(フローID=FlowID001)に含まれるアクティビティを取得する(ステップS72)。CPU11はポイントA及びポイントBをNULL、ポイントtを再開ポイントに設定する(ステップS73)。CPU11は再開ポイントをフロー管理DB147より取得する。ここで、再開ポイントはact004である。ポイントt=act004となる。CPU11はポイントtが示すアクティビティact004の種別が対象種別で有るか否かを判定する(ステップS74)。CPU11は、アクティビティDB146からアクティビティact004の運用操作を取得する。ここでは、運用操作=更新パッチ転送である。CPU11は、アクティビティact004の種別を種別判定DB151より取得する。CPU11は種別として、パッチを得る。上述のように、パッチは対象種別である。CPU11は対象種別であると判定し(ステップS74でYES)、ポイントAがNULLで有るか否かを判定する(ステップS75)。ここでは、ポイントA=NULLであるから、CPU11はポイントAがNULLであると判定し(ステップS75でYES)、ポイントAにポイントtの値を設定する(ステップS76)。ここでは、ポイントA=act004となる。CPU11はポイントBにポイントtの値を設定する(ステップS77)。ここでは、ポイントB=act004となる。CPU11はポイントtが示すアクティビティ(act004)が対象フローの最後のアクティビティで有るか否かを判定する(ステップS78)。アクティビティact004は最後のアクティビティではないので、CPU11はポイントtが示すアクティビティが対象フローの最後のアクティビティでないと判定する(ステップS78でNO)。CPU11はポイントtが示すアクティビティを、当該アクティビティの次のアクティビティに設定する(ステップS79)。ここでは、ポイントt=act005となる。CPU11は処理をステップS74に戻す。
CPU11はポイントtが示すアクティビティact005の種別が対象種別で有るか否かを判定する(ステップS74)。CPU11は、アクティビティDB146及び種別判定DB151を参照し、種別としてパッチを得る。CPU11は対象種別であると判定し(ステップS74でYES)、ポイントAがNULLで有るか否かを判定する(ステップS75)。ここでは、ポイントA=NULLでないから、CPU11はポイントAがNULLでないと判定し(ステップS75でNO)、CPU11はポイントBにポイントtの値を設定する(ステップS77)。ここでは、ポイントB=act005となる。CPU11はポイントtが示すアクティビティ(act005)が対象フローの最後のアクティビティで有るか否かを判定する(ステップS78)。アクティビティact005は最後のアクティビティではないので、CPU11はポイントtが示すアクティビティが対象フローの最後のアクティビティでないと判定する(ステップS78でNO)。CPU11はポイントtが示すアクティビティを、当該アクティビティの次のアクティビティに設定する(ステップS79)。ポイントt=act006となる。CPU11は処理をステップS74に戻す。
アクティビティact006、act007、act008、act009について、CPU11はアクティビティact006と同様の処理を行い、処理をステップS74に戻す。アクティビティact009についての処理後は、ポイントt=act010、ポイントB=act009となっている。CPU11はポイントtが示すアクティビティact010の種別が対象種別で有るか否かを判定する(ステップS74)。CPU11は、アクティビティDB146及び種別判定DB151を参照し、種別として保守を得る。ここで保守は対象種別ではないので、CPU11は対象種別でないと判定し(ステップS74でNO)、ポイントtが示すアクティビティ(act010)が対象フローの最後のアクティビティで有るか否かを判定する(ステップS78)。アクティビティact010は最後のアクティビティではないので、CPU11はポイントtが示すアクティビティが対象フローの最後のアクティビティでないと判定する(ステップS78でNO)。CPU11はポイントtが示すアクティビティを、当該アクティビティの次のアクティビティに設定する(ステップS79)。ポイントt=act011となる。CPU11は処理をステップS74に戻す。
アクティビティact011について、CPU11はアクティビティact010と同様の処理を行い、処理をステップS74に戻す。アクティビティact010についての処理後は、ポイントt=act011となっている。CPU11はポイントtが示すアクティビティact011の種別が対象種別であるか否かを判定する(ステップS74)。CPU11は、アクティビティDB146及び種別判定DB151を参照し、種別として保守を得る。ここで保守は対象種別ではないので、CPU11は対象種別でないと判定し(ステップS74でNO)、ポイントtが示すアクティビティ(act011)が対象フローの最後のアクティビティであるか否かを判定する(ステップS78)。アクティビティact011は最後のアクティビティであるので、CPU11はポイントtが示すアクティビティが対象フローの最後のアクティビティであると判定し(ステップS78でYES)、処理をステップS80へ移す。この時点で、ポイントA=act004、ポイントB=act009となっている。
CPU11は、ポイントAからポイントBまでのアクティビティを臨時フロー及び解除後フローに追加する(ステップS80)。ここでは、act004からact009までが追加される。臨時フローより対象サーバ(Server3)についてのアクティビティを削除し、解除後フローより対象サーバ以外についてのアクティビティを削除する(ステップS81)。ここでは、臨時フローよりServer3のアクティビティであるact008及びact009が削除される。解除後フローよりServer3以外のアクティビティであるact004からact007が削除される。CPU11は、再開ポイント〜ポイントA直前のアクティビティを臨時フローの先頭に追加し、ポイントB直後〜最後のアクティビティを解除後フローの最後に追加する(ステップS82)。ここでは、臨時フローにアクティビティは追加されない。解除後フローには、act011及びact012が追加される。
CPU11は臨時フロー及び解除後フローにおいて、運用自動化サーバ1との通信手段に脅威を受ける製品又はOSSの通信手段を用いているか否かを判定する(ステップS83)。ここでは、通信手段についてのアラートではないので、CPU11は脅威を受ける製品又はOSSの通信手段を用いないと判定し(ステップS83でNO)、臨時フロー(extflow001)を実行状態とする(ステップS85)。フロー管理DB147において、臨時フローに対応するレコードの状態列の値を実行中に設定する。CPU11は臨時フロー生成処理を終了し、処理を呼び出し元に戻す。CPU11は図15のステップS8で、生成した臨時フローを実行する(ステップS8)。ステップS9以降については説明を省略する。
図21は臨時フロー及び解除後フローの一例を示す説明図である。上述した対象フロー(フローID=FlowID001)に対する処理の結果、得られる臨時フロー及び解除後フローを有向グラフで示したものである。図21Aは臨時フローの一例である。図21Bは解除後フローの一例である。図13に示した臨時アクティビティDB150は、図21と対応している。
次に、アラートが通信手段に関する場合について、例を用いて説明する。説明を簡単にするために、対象フローは図20に例示したものである。また、アラート種別がwarning、シグネチャパターン/ルールがsignature_ABC123456、通信プロトコルがxyzz/tcpであるアラートを、運用自動化サーバ1がセキュリティ脅威検知サーバ2より受信したとする。運用自動化サーバ1のCPU11は図15に示したアラート受信処理を開始する。CPU11は通信部15からアラートを取得する(ステップS1)。CPU11はアラート解析処理を行う(ステップS2、図16)。
取得したアラートとアラート対照DB141とを対比することにより、CPU11は対象製品として、PowerShellを取得する(ステップS31)。CPU11は構成管理DB142を用いて対象サーバを検索する。CPU11は、通信手段列にPowerShellを含むレコードを検索する(ステップS32)。ここでは、対象となる業務サーバ3はServer3である(ステップS33でYES)。なお、PowerShellが通信手段であることは、何らかの方法で判定可能とする。例えば、構成管理DB142に通信手段列を追加し、判定可能とする。又は、通信手段である対象製品の名称一覧を用意しておき、取得した対象製品の名称が当該一覧に含まれているか否かで判定する。
ここで、対象サーバはServer3であるので、以降の処理は上述した対象製品がDBsoft1の場合とほぼ同様である。以下、異なる箇所について説明する。臨時フロー生成処理のステップS82までは、同様の処理が行われる。
CPU11は臨時フロー及び解除後フローにおいて、運用自動化サーバ1との通信手段に脅威を受ける製品又はOSSの通信手段を用いているか否かを判定する(ステップS83)。ここでは、通信手段PowerShellが脅威を受ける製品又はOSSの通信手段である。ここでの例では、act008及びact009が該当する。CPU11は脅威を受ける製品又はOSSの通信手段を用いていると判定し(ステップS83でYES)、臨時フロー及び解除後フローにおいて使用する通信手段を、脅威を受けない他の通信手段に置き換える(ステップS84)。例えば、CPU11はact008及びact009の通信手段をSSHに変更する。変更する通信手段は構成管理DB142を参照し、対象サーバであるServer3が使える他の通信手段を、CPU11は決定する。
CPU11は臨時フロー(extflow001)を実行状態とする。フロー管理DB147において、臨時フローに対応するレコードの状態列の値を実行中に設定する。CPU11は臨時フロー生成処理を終了し、処理を呼び出し元に戻す。CPU11は図15のステップS8で、生成した臨時フローを実行する(ステップS8)。ステップS9以降については説明を省略する。
図22は臨時フロー及び解除後フローの一例を示す説明図である。図22Aは臨時フローの一例である。図22Bは解除後フローの一例である。図22Aは図21Aと同一である。図22Bは図21Bとほぼ同様であるが、act008及びact009の通信手段が、PowerShellからSSHに変更されている。
次に、アラートが解除された後の処理を説明する。図23はアラート解除後処理の手順例を示すフローチャートである。運用自動化サーバ1のCPU11はアラートの解除通知を取得する(ステップS101)。解除通知はアラートと同様な内容に、解除された旨の情報が付加されている。CPU11は受信した解除通知とアラート管理DB143とを対照し、解除されたアラートに対応したアラート管理情報を特定する(ステップS102)。CPU11は特定したアラート管理情報の状態を、アラート状態から非アラート状態に変更する(ステップS103)。CPU11は、フロー管理DB147において、アラートID=特定したアラート管理情報のアラートID、状態=実行不可のレコードを取得する(ステップS104)。CPU11は取得したレコードに含む臨時フローIDが空か否かを判定する(ステップS106)。ここで、臨時フローID列に値が設定されている場合、実行不可とされているフローに対して、臨時フロー及び解除後フローが生成されたことを示している。CPU11は取得したレコードに含む臨時フローIDが空でないと判定した場合(ステップS106でNO)、臨時フローID列に設定されているフローIDに対応した解除後フローを実行する(ステップS107)。臨時フローIDに値が空の場合、実行不可とされているフローに対して、臨時フロー及び解除後フローが生成されていないことを示している。CPU11は取得したレコードに含む臨時フローIDが空であると判定した場合(ステップS106でYES)、中断しているフローを再開する(ステップS108)。すなわち、フローID列に記憶されているフローIDに対応したフローを、再開ポイント列に記憶されているアクティビティから再開する。CPU11はフロー管理DB147の該当レコード(ステップS104で取得したレコード)の状態を実行開始に設定する(ステップS109)。
以上の説明は、アラート受信時に実行中のフローについての処理である。次に、スケジュール又は手動により、フローを実行する処理について説明する。図24はフロー開始処理の手順例を示すフローチャートである。運用自動化サーバ1のCPU11はアラートが有るか否かを判定する(ステップS111)。CPU11はアラート管理DB143を参照し、状態=アラート状態のレコードが有れば、アラートが有ると判定する。状態=アラート状態のレコードが無ければ、アラートが無いと判定する。CPU11はアラートが有ると判定した場合(ステップS111でYES)、対象サーバをアラート管理DB143より取得する(ステップS112)。CPU11はフローに含まれるアクティビティをアクティビティDB146から取得する(ステップS113)。CPU11は取得したアクティビティの中に、接続先が対象サーバであるアクティビティが含まれているか否かを判定する(ステップS114)。CPU11は、接続先が対象サーバであるアクティビティが含まれていると判定した場合(ステップS114でYES)、フロー管理情報を生成し、フロー管理DB147に記憶する(ステップS115)。CPU11が生成するフロー管理情報は、アラートIDは処理対象のアラートのアラートIDである。フローIDは処理対象のフロー、すなわち、実行しようとしているフローのフローIDである。対象サーバはステップS112で取得した業務サーバ3のホスト名である。臨時フローID=空白又はNULL、再開ポイント=最初のアクティビティ、状態=実行不可である。CPU11は処理対象フローが臨時フロー生成対象であるか否かを、フロー定義DB148を参照し判定する(ステップS116)。CPU11は処理対象フローが臨時フロー生成対象であると判定した場合(ステップS116でYES)、臨時フロー及び解除後フローを生成する(ステップS117)。当該処理は図18及び19で示した処理と同様であるので、説明を省略する。CPU11は臨時フローを実行する(ステップS118)。CPU11はフロー開始処理を終了する。CPU11は処理対象フローが臨時フロー生成対象でないと判定した場合(ステップS116でNO)、フロー開始処理を終了する。CPU11は、接続先が対象サーバであるアクティビティが含まれていないと判定した場合(ステップS114でNO)、又はCPU11はアラートが無いと判定した場合(ステップS111でNO)、通常にフローを開始する(ステップS119)。CPU11はフロー開始処理を終了する。
上述のように、本実施の形態では、各自動化フローは臨時フローの作成対象であるか否かのフラグを、フロー定義DB148の臨時フローフラグ列に記憶している。臨時フローフラグ列の値は、自動化フローの新規登録時及び変更登録時に設定される。自動化フローの新規登録時には、CPU11はフローIDを生成し、フロー定義DB148に新規レコードを追加する。この時、臨時フローフラグ列の値は設定されていない。また、CPU11はアクティビティの数に対応したアクティビティ名を生成し、アクティビティDB146に記憶する。これらの処理の完了後に、CPU11は臨時フローフラグ列の値を設定する。
自動化フローの変更登録時には、変更内容に応じて、フロー定義DB148及びアクティビティDB146を変更した後に、CPU11は臨時フローフラグ列の値を更新する。図25は臨時フローフラグ設定・更新処理の手順例を示すフローチャートである。CPU11は処理対象のフローに含まれるアクティビティをアクティビティDB146より取得する(ステップS131)。CPU11は取得したアクティビティの1つを選択する(ステップS132)。CPU11は選択したアクティビティの運用操作が臨時フロー作成対象となる運用操作に該当するか否かを判定する(ステップS133)。判定については、図18のステップS74の処理と同様であるから、説明を省略する。CPU11はた選択したアクティビティの運用操作が該当運用操作であると判定した場合(ステップS133でYES)、臨時フローフラグをONに設定し(ステップS136)、臨時フローフラグ設定・更新処理を終了する。CPU11は選択したアクティビティの運用操作が該当運用操作でないと判定した場合(ステップS133でNO)、未処理のアクティビティが有るか否かを判定する(ステップS134)。CPU11は未処理のアクティビティが有ると判定した場合(ステップS134でYES)、処理をステップS132に戻し、未処理のアクティビティに対する処理を行う。CPU11は未処理のアクティビティが無いと判定した場合(ステップS134でNO)、臨時フローフラグをOFFに設定し(ステップS135)、臨時フローフラグ設定・更新処理を終了する。
以上の説明から明らかのように、本実施の形態は次の効果を奏する。セキュリティ脅威についてのアラートが通知された場合、アラートの対象となる実行中のフローは、その実行を中断させる。しかし、フローに含まれるアクティビティであって、アラートの対象ではないものを含む臨時フローを生成し実行する。残りのアクティビティは解除後フローとする。これにより、アラート通知時に実行を中止するアクティビティを最小限とすることが可能となる。臨時フローに含むアクティビティがパッチ適用の場合、セキュリティパッチによるセキュリティの向上、不具合解消パッチ適用による障害発生の抑止が可能となる。アラート解除後は解除後フローを実行することにより、中止していたアクティビティを確実に実行可能である。臨時フロー及び解除後フローの生成、並びに臨時フロー及び解除後フローの実行を、人手を介さずに可能となるので、運用の効率化を図ることが可能となる。
図26は運用自動化サーバ1の機能構成例を示すブロック図である。運用自動化サーバ1は、第1取得部11a、第1特定部11b、第2特定部11c、第2取得部11d、作成部11e、フロー停止部11f、及び定義変更部11gを含む。CPU11が制御プログラム1Pを実行することにより、運用自動化サーバ1は以下のように動作する。
第1取得部11aは、システムが晒されたセキュリティ脅威の種別情報を取得する。第1特定部11bは、製品とセキュリティ脅威の種別情報との対応関係を示す情報を記憶する記憶部を参照して、取得した前記種別情報に対応付けられた製品を特定する。第2特定部11cは、システムに含まれる複数の情報処理装置の構成情報を記憶する記憶部を参照して、特定した製品を構成として含む情報処理装置を特定する。第2取得部11dは、複数の情報処理装置により実行される複数の処理のフローの定義情報を記憶する記憶部を参照して、特定した情報処理装置により実行される処理が含まれるフローの定義情報を取得する。作成部11eは、取得した定義情報に基づき、取得した定義情報に含まれる処理のうち、特定した情報処理装置により実行される処理以外の処理を含み、かつ、特定した情報処理装置により実行される処理を含まないフローの定義情報を作成する。作成部11eは、又、取得した定義情報に基づき、取得した定義情報に含まれる処理のうち、特定した情報処理装置により実行される処理を含み、かつ、特定した情報処理装置により実行される処理以外を含まない解除後のフローの定義情報を作成する。フロー停止部11fは、特定した前記情報処理装置により実行される処理が含まれるフローが実行中の場合、フローの実行を停止する。定義変更部11gは、作成したフロー定義情報に、特定した製品の通信機能を利用する処理が含まれている場合、構成情報を記憶する記憶部を参照して、特定した製品以外に情報処理装置が利用可能な通信機能を提供する他製品を特定し、特定した他製品の通信機能を利用するように定義を変更する。
各実施の形態で記載されている技術的特徴(構成要件)はお互いに組み合わせ可能であり、組み合わせすることにより、新しい技術的特徴を形成することができる。
今回開示された実施の形態はすべての点で例示であって、制限的なものではないと考えられるべきである。本発明の範囲は、上記した意味ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
以上の実施の形態に関し、さらに以下の付記を開示する。
(付記1)
システムが晒されたセキュリティ脅威の種別情報を取得し、
製品とセキュリティ脅威の種別情報との対応関係を示す情報を記憶する記憶部を参照して、前記取得した種別情報に対応付けられた製品を特定し、
前記システムに含まれる複数の情報処理装置の構成情報を記憶する記憶部を参照して、前記特定した製品を構成として含む情報処理装置を特定し、
前記複数の情報処理装置により実行される複数の処理のフローの定義情報を記憶する記憶部を参照して、前記特定した情報処理装置により実行される処理が含まれるフローの定義情報を取得し、
前記取得した定義情報に基づき、前記取得した定義情報に含まれる処理のうち、前記特定した情報処理装置により実行される処理以外の処理を含み、かつ、前記特定した情報処理装置により実行される処理を含まないフローの定義情報を作成する
処理をコンピュータに実行させることを特徴とするフロー生成プログラム。
(付記2)
前記取得した定義情報に基づき、前記取得した定義情報に含まれる処理のうち、前記特定した情報処理装置により実行される処理を含み、かつ、前記特定した情報処理装置により実行される処理以外を含まない解除後のフローの定義情報を作成する
ことを特徴とする付記1に記載のフロー生成プログラム。
(付記3)
前記特定した情報処理装置により実行される処理が含まれるフローが実行中の場合、前記フローの実行を停止し、
前記取得した定義情報が停止した前記フローのものであるときは、前記取得した定義情報に基づき、前記取得した定義情報に含まれる処理のうち、前記特定した情報処理装置により実行される処理以外の処理であって未実行の処理を含み、かつ、前記特定した情報処理装置により実行される処理を含まないフローの定義情報を作成する
ことを特徴とする付記1又は付記2に記載のフロー生成プログラム。
(付記4)
前記特定した情報処理装置により実行される処理が含まれるフローが実行中の場合、前記フローの実行を停止し、
前記取得した定義情報が停止したフローのものであるときは、前記取得した定義情報に基づき、前記取得した定義情報に含まれる処理のうち、前記特定した情報処理装置により実行される処理であって未実行の処理を含み、かつ、前記特定した情報処理装置により実行される処理以外を含まない解除後のフローの定義情報を作成する
ことを特徴とする付記1から付記3のいずれか1つに記載のフロー生成プログラム。
(付記5)
前記作成したフロー定義情報に、前記特定した製品の通信機能を利用する処理が含まれている場合、前記構成情報を記憶する記憶部を参照して、前記特定した製品以外に前記情報処理装置が利用可能な通信機能を提供する他製品を特定し、
特定した前記他製品の通信機能を利用するように前記処理を変更する
ことを特徴とする付記1から付記4のいずれか1つに記載のフロー生成プログラム。
(付記6)
フローの定義情報を記憶する前記記憶部は、前記フローの定義情報を状態と対応付けて記憶しており、
前記作成した解除後のフローの定義情報を実行不可状態と対応付けて記憶する
ことを特徴とする付記2に記載のフロー生成プログラム。
(付記7)
前記セキュリティ脅威から開放された旨の通知を受信した場合、前記解除後のフローの定義情報に対応付けられた状態を実行不可から、実行開始に変更する
ことを特徴とする付記6に記載のフロー生成プログラム。
(付記8)
システムが晒されたセキュリティ脅威の種別情報を取得する第1取得部と、
製品とセキュリティ脅威の種別情報との対応関係を示す情報を記憶する記憶部を参照して、前記取得した種別情報に対応付けられた製品を特定する第1特定部と、
前記システムに含まれる複数の情報処理装置の構成情報を記憶する記憶部を参照して、前記特定した製品を構成として含む情報処理装置を特定する第2特定部と、
前記複数の情報処理装置により実行される複数の処理のフローの定義情報を記憶する記憶部を参照して、前記特定した情報処理装置により実行される処理が含まれるフローの定義情報を取得する第2取得部と、
前記取得した定義情報に基づき、前記取得した定義情報に含まれる処理のうち、前記特定した情報処理装置により実行される処理以外の処理を含み、かつ、前記特定した情報処理装置により実行される処理を含まないフローの定義情報を作成する作成部と
を備えることを特徴とするフロー生成装置。
(付記9)
コンピュータが、
システムが晒されたセキュリティ脅威の種別情報を取得し、
製品とセキュリティ脅威の種別情報との対応関係を示す情報を記憶する記憶部を参照して、前記取得した種別情報に対応付けられた製品を特定し、
前記システムに含まれる複数の情報処理装置の構成情報を記憶する記憶部を参照して、前記特定した製品を構成として含む情報処理装置を特定し、
前記複数の情報処理装置により実行される複数の処理のフローの定義情報を記憶する記憶部を参照して、前記特定した情報処理装置により実行される処理が含まれるフローの定義情報を取得し、
前記取得した定義情報に基づき、前記取得した定義情報に含まれる処理のうち、前記特定した情報処理装置により実行される処理以外の処理を含み、かつ、前記特定した情報処理装置により実行される処理を含まないフローの定義情報を作成する
ことを特徴とするフロー生成方法。