JP7446142B2 - サイバーセキュリティ監査システム - Google Patents

サイバーセキュリティ監査システム Download PDF

Info

Publication number
JP7446142B2
JP7446142B2 JP2020061751A JP2020061751A JP7446142B2 JP 7446142 B2 JP7446142 B2 JP 7446142B2 JP 2020061751 A JP2020061751 A JP 2020061751A JP 2020061751 A JP2020061751 A JP 2020061751A JP 7446142 B2 JP7446142 B2 JP 7446142B2
Authority
JP
Japan
Prior art keywords
work
audit
alarm
log
scenario
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
JP2020061751A
Other languages
English (en)
Other versions
JP2021162971A (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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2020061751A priority Critical patent/JP7446142B2/ja
Publication of JP2021162971A publication Critical patent/JP2021162971A/ja
Application granted granted Critical
Publication of JP7446142B2 publication Critical patent/JP7446142B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Debugging And Monitoring (AREA)

Description

本願は、サイバーセキュリティ監査システムに関する。
例えば、電力システムなどにおいては、各種設備の健全性を確保するために、保守作業が適正に行われているかどうかを常に監査する必要がある。このような監査においては、業務手順が正しく行われているかを確認すること以外に、監査ログに記録されたエラーについて、何故そのようなエラーが発生したか、エラーの発生に問題があるのか、あるいは無いのかを確認する必要がある。
サイバーセキュリティの観点では、監査において、実施すべき作業が作業手順に沿って実施されているか否かを確認するだけではなく、エラーの発生原因についても、そのエラーが不正な行為の実行結果として発生しているのか否かを調査することが必要となる。
しかし、エラーは必ずしも不正な行為の結果として発生するだけではない。例えば、タイプミスにより存在しないコマンドを実行しようとした結果として発生することがある。あるいは、特定のディレクトリ下のファイルの全てに対してファイル情報を得るコマンドを実行する場合には、アクセス権が無いサブディレクトリについてコマンドがエラーになることがある。さらに、作業の途中で、作業には必須ではないディレクトリ情報を操作するコマンドを実行したり、実行中のプロセスを確認することがあり、その際には、コマンドの引数の指定ミスなどでエラーを発生することがある。
監査ログにこれらのエラーが見つかった場合、上記のように、必ずしも悪意のある操作の結果としてエラーが発生する訳ではない。したがって、このような各種のエラーが発見された場合、従来は、監査人がログを手動で調査して前後の作業状況を確認してエラーの内容を判断したり、関係者にヒアリングして確認したりするなどの手間と時間を要し、監査の効率が悪かった。
従来技術として、業務の承認にパターンがあることに着目し、承認処理の順番等の情報に基づいてログを収集して順番、処理時間等について検査する内容が提案されている(例えば、下記の特許文献1参照)。
特開2014-38479号公報
しかしながら、特許文献1に開示された証跡情報監査システムでは、監査ログにおいてエラーが記録された場合、記録されたエラーについても、起こるべくして起こった軽微なエラーのか、単純なタイプミスに起因したエラーなのか、システム運営に支障を来すような重大なエラーなのか、といったエラーの重要度の観点からエラー発生の原因を確認することについては何ら言及されていない。
本願は、上記のような課題を解決するための技術を開示するものであり、プラント設備などの保守対象装置について、保守作業が正しく行われたかどうかの監査をエラー発生の是非を含めて効率的に実現することができるサイバーセキュリティ監査システムを提供することを目的とする。
本願に開示されるサイバーセキュリティ監査システムは、
検証環境の下で保守対象装置から出力される監査ログ、および警報装置から出力される警報ログを取り込んで保守作業の手順を定めた作業シナリオを生成する作業シナリオ生成装置、および本番環境の下で前記保守対象装置から出力される監査ログ、前記警報装置から出力される警報ログ、および前記作業シナリオ生成装置から出力される前記作業シナリオを取り込んで前記保守対象装置が前記作業シナリオに従った保守作業が実施できているかどうかを監査する作業監査装置を有し、
前記作業シナリオ生成装置は、
前記保守対象装置から前記検証環境の下で得られる前記監査ログを入力して監査ログデータを抽出する監査ログ入力部と、
前記警報装置から前記検証環境の下で得られる前記警報ログを入力して警報ログデータを抽出する警報ログ入力部と、
前記検証環境の下で得られた前記監査ログデータ、前記警報ログデータ、および前記保守対象装置に対する保守作業の開始日時ならびに終了日時に基づいて監査対象データを抽出する監査対象抽出部と、
前記監査対象データおよび保守作業に対して付された作業名に基づいて、前記監査ログに記録されたエラーを参照し、このエラーに関する情報も含めた作業プロファイルを生成する作業プロファイル生成部と、
前記作業プロファイルを時系列にまとめた作業シナリオを生成する作業シナリオ生成部と、を備え、
前記作業監査装置は、
前記保守対象装置から前記本番環境の下で得られる監査ログを入力して監査ログデータを抽出する監査ログ入力部と、
前記警報装置から前記本番環境の下で得られる警報ログを入力して警報ログデータを抽出する警報ログ入力部と、
前記作業シナリオ生成装置からの前記作業シナリオを入力して当該作業シナリオに含まれる作業プロファイルを抽出する作業シナリオ解析部と、
前記本番環境の下で得られた前記監査ログデータ、前記警報ログデータ、および前記保守対象装置に対する保守作業の開始日時および終了日時、ならびに前記作業プロファイルに基づいて、前記保守対象装置について、前記本番環境の下で前記作業シナリオに従った保守作業が実施できているかどうかを監査するとともに、エラーが発生していた場合にはそのエラーの是非を含めて監査する監査実行部と、前記監査実行部が生成した監査結果を出力する監査結果生成部と、を備える。
本願に開示されるサイバーセキュリティ監査システムによれば、プラント設備などの保守対象装置について、保守作業が正しく行われたかどうかの監査をエラー発生の是非を含めて効率的に実現することができる。
本願のサイバーセキュリティ監査システムにおける作業シナリオ生成装置の構成を示すブロック図である。 本願のサイバーセキュリティ監査システムにおける作業監査装置の構成を示すブロック図である。 図1の構成の作業シナリオ生成装置と図2の構成の作業監査装置の関係を示す説明図である。 図1の作業シナリオ生成装置の作業プロファイル生成部における処理手順を示すフローチャートである。 本願のエラータイプ判定情報の一例を示す説明図である。 図2の作業監査装置における監査実行部における処理手順を示すフローチャートである。
実施の形態1.
この実施の形態1では、プラント設備などの各種の保守対象となる装置(以下、保守対象装置という)についての健全性を担保するために保守作業を行う場合を一例として説明する。ただし、本願は、このような保守作業に限定されるものではなく、事前に装置に対する作業の検証(例:動作確認、テスト)を行ってから、本番の環境下で装置への作業を実施するような場合にも適用可能である。
なお、以降、保守対象装置を作業手順に従って実際に運用して保守作業を行う状況を本番環境と、また本番環境で保守を行う前に保守対象装置に対して動作の事前確認を行う状況を検証環境と称する。
保守作業では、保守対象装置に対して、検証環境の下で保守作業の事前確認を行った後に、本番環境の下で実際の保守作業を行う。保守対象装置は、同機種、同機能を備えたリファレンス装置であったり、本番環境の装置を一旦回収して検証環境に設置したりする場合がある。
保守対象装置に対する保守作業の具体例としては、ソフトウェアの更新、設定の変更などがある。その際、作業者は、検証環境において、保守対象装置に対して、作業手順書に従ってソフトウェアの更新を行う。その場合、手作業でコマンドを実行することもあれば、バッチファイルを使用して自動的に更新するなどの方法も採用される。
検証環境において、保守対象装置は、処理の実行結果を監査ログとして出力する。この監査ログは、OS(Operating System)が実装している場合、あるいはアプリケーションが実装している場合がある。また、この監査ログには、処理が実行されたタイミングを示すタイムスタンプ、実行したコマンド、ファイル等の処理対象の情報、実行したプログラムの情報、実行したユーザ名、および処理の結果(成功/失敗)等の情報が記録される。さらに、この監査ログには、それ以外に作業に伴うログイン、ログアウト等の一連の処理も記録される。つまり、何時、誰が、どのような処理を行い、その処理のプロセス、およびその処理によってどのような結果が得られたのかが記録される。監査ログによっては、OSが自動的に実行した処理、ならびにエラー情報等が記録されることもある。
保守対象装置を用いる環境では、保守対象装置の動作を監視して、異常があれば警報を発する警報装置を備えることがある。本願では、このような警報装置を備えることを前提としており、保守対象装置に異常がある場合、警報装置は、警報ログを出力する。この警報ログにおいては、異常を検知したタイミングを示すタイムスタンプ、異常が発生した装置の情報、異常の内容などが記録される。
このような前提の下、本願のサイバーセキュリティ監査システムの構成について、次に説明する。
本願のサイバーセキュリティ監査システムは、検証環境において保守対象装置8から出力される監査ログL11、および警報装置9から出力される警報ログL21を取り込んで作業手順を定めた作業シナリオScを生成する作業シナリオ生成装置1、および本番環境において保守対象装置8から出力される監査ログL12、警報装置9から出力される警報ログL22、および作業シナリオ生成装置1から出力される作業シナリオScを取り込んで保守対象装置8に対して作業シナリオScに従った保守作業が実施できているかどうかを監査するとともに、エラーが発生していた場合にはそのエラーの是非を含めて監査する作業監査装置2を備えている。
図1は、本願の実施の形態1のサイバーセキュリティ監査システムにおける作業シナリオ生成装置の構成を示すブロック図である。
作業シナリオ生成装置1は、監査ログ入力部11、監査対象抽出部12、作業プロファイル生成部13、作業シナリオ生成部14、警報ログ入力部15、およびエラータイプ判定部16で構成されている。
監査ログ入力部11は、検証環境の下で保守対象装置8より出力される監査ログL11からログの内容を抽出し、監査ログデータD11として監査対象抽出部12へ出力する。
警報ログ入力部15は、検証環境の下で警報装置9より出力される警報ログL21からログの内容を抽出し、警報ログデータD21として監査対象抽出部12へ出力する。
監査対象抽出部12は、監査ログデータD11および警報ログデータD21について、保守対象装置8に対する保守作業の開始日時Ts1から終了日時Te1までの期間に含まれるログの内容である監査対象データD3を抽出し、作業プロファイル生成部13へ出力する。
作業プロファイル生成部13は、保守作業に対して付された作業名i、および監査対象抽出部12で得られた監査対象データD3に基づいて、作業プロファイルPiを生成し、これを作業シナリオ生成部14へ出力する。
この場合の作業プロファイルPiは、作業名iごとに、対応する開始日時Ts1から終了日時Te1までの期間内の監査対象データD3に基づいて生成される。そのため、作業名i、開始日時Ts1、および終了日時Te1が順次入力された場合は、各々に対応する作業プロファイルPiが生成される。
このとき、監査対象データD3にエラーの記録がある場合、そのエラーが起き易いエラーか、必然的に起きるべくして起きたエラーか、といったエラータイプについて、エラータイプ判定部16にエラーが発生した要因となるコマンド情報Dcoを出力し、これに応じてエラータイプ判定部16から出力されるエラータイプEtpの情報を入力する。このエラータイプEtpは、作業プロファイル生成部13が生成する作業プロファイルPiに反映される。
作業シナリオ生成部14は、作業プロファイル生成部13で生成される作業プロファイルPiを時系列にまとめた作業シナリオScを生成し、作業シナリオ生成装置1の外部へ出力する。したがって、この場合の作業シナリオScは、作業手順に沿った全ての作業プロファイルPiを含む。
図2は本願のサイバーセキュリティ監査システムにおける作業監査装置の構成を示すブロック図である。
作業監査装置2は、監査ログ入力部21、警報ログ入力部22、作業シナリオ解析部23、監査実行部24、および監査結果生成部25で構成されている。
監査ログ入力部21は、本番環境の下で保守対象装置8より出力される監査ログL12からログの内容を抽出し、監査ログデータD12として監査実行部24へ出力する。
警報ログ入力部22は、本番環境の下で警報装置9より出力される警報ログL22からログの内容を抽出し、警報ログデータD22として監査実行部24へ出力する。
作業シナリオ解析部23は、作業シナリオ生成装置1で得られた作業シナリオScを入力し、この作業シナリオScに含まれる作業プロファイルPiを抽出する。そして、この作業プロファイルPiを監査実行部24へ出力する。
監査実行部24は、監査ログデータD12、警報ログデータD22、作業プロファイルPi、開始日時Ts2、および終了日時Te2を入力とし、本番環境の下で作業シナリオに従った保守作業が実施できているかどうかを監査するとともに、エラーが発生していた場合にはそのエラーの是非を含めて監査する。
すなわち、監査実行部24は、本番環境の下で得られる監査ログデータD12および警報ログデータD22に対する保守作業の開始日時Ts2から終了日時Te2までの期間に含まれるログの内容を抽出し、作業プロファイルPiを参照して、監査を実行する。その結果、異常があった場合は、その異常内容を知らせるメッセージをアラートArに含めて、監査結果生成部25に出力する。また、異常がない場合は、異常発生のメッセージを含まないアラートArを、監査結果生成部25に出力する。
監査結果生成部25は、監査実行部24で得られるアラートArから監査結果を生成して作業監査装置2の外部に出力する。したがって、この監査結果は、作業シナリオScに基づいた作業が行われた際に問題があったか否かを、開始日時Ts2から終了日時Te2の期間の監査ログL12、および警報ログL22に基づいて監査した結果を示すものである。
図3は、作業シナリオ生成装置1と作業監査装置2の相互の関係を示す説明図である。
検証環境において、保守対象装置8と警報装置9がLAN(Local Area Network)で接続される。保守対象装置8は、自身において実行されたコマンド、プログラム、操作、エラーなどの履歴を監査ログL11として出力する。また、警報装置9は、保守対象装置8の特定の異常を検知して警報ログL21を出力する。
作業者Moは、予め用意された作業手順書を参照して、保守対象装置8に対して保守作業を行う。この作業は、作業者Moが、保守対象装置8に備え付けられたキーボード、あるいはマウスなどの入力インタフェースを操作して実施する。この時、作業者Moは、作業の実施に合わせて、作業名i、開始日時Ts1、および終了日時Te1の情報を作業シナリオ生成装置1に入力する。
ここに、上記の作業名iは、1つの作業単位について付与された名称であり、例えば、「更新ファイルのインストール」、「ネットワーク設定の変更」、「アプリケーションの動作確認」等の作業単位である。これらの作業単位には、その作業に必要なコマンド実行、ファイル操作、設定変更、サービスの停止、再起動、OSの再起動などのシステムの操作、ならびにアプリケーションの操作が含まれる。
そして、作業名iで識別される作業を開始する直前に、作業名iおよび開始日時Ts1を作業シナリオ生成装置1に入力する。その後、その作業名iに該当する作業が終了した時点で、終了日時Te1を作業シナリオ生成装置1に入力する。
この作業の結果、保守対象装置8からは監査ログL11が、また警報装置9からは警報ログL21がそれぞれ出力され、作業シナリオ生成装置1に送られる。作業シナリオ生成装置1は、作業名i、開始日時Ts1、および終了日時Te1の情報、ならびに監査ログL11および警報ログL21の入力に基づいて作業シナリオScを作成して出力する。このようにして作成される作業シナリオScの詳細な内容については後述する。
なお、作業シナリオ生成装置1に対する監査ログL11および警報ログL21の入力方法としては、例えば、作業者Moが、これらのログを作業シナリオ生成装置1へのファイル読み込みとして実施したり、あるいは、作業シナリオ生成装置1へネットワーク経由で入力することができる。前者の場合は、作業シナリオ生成装置1における監査ログ入力部11および警報ログ入力部15は、ファイル読み込みの機能を持つ。また、後者の場合は、作業シナリオ生成装置1における監査ログ入力部11および警報ログ入力部15は、ネットワーク経由でこれらのログを受信する機能を持つ。
一方、本番環境においては、保守対象装置8と警報装置9がLANで接続される。作業者Moは、作業手順書に従い、保守対象装置8に対して保守の作業を実施する。その結果は、保守対象装置8に関する監査ログL12として記録される。また、警報装置9は、作業における警報を警報ログL22として記録する。
監査人Miは、作業監査装置2に対して、本番環境の下で保守対象装置8から得られた監査ログL12、および警報装置9から得られた警報ログL22、ならびに、先の検証環境の下で作業シナリオ生成装置1で得られた作業シナリオScをそれぞれ入力するように指示する。さらに、監査人Miは、作業監査装置2に対して、作業者Moが本番環境の下で保守対象装置8に対して保守の作業を開始した開始日時Ts2および終了した終了日時Te2を入力する。
作業監査装置2は、保守作業の開始日時Ts2、終了日時Te2の情報、監査ログL12、警報ログL22、および作業シナリオScの情報を用いて、作業者Moの作業内容を監査し、その監査結果を出力する。このようにして作成される監査結果の詳細な内容については後述する。
なお、本番環境での監査の開始日時Ts2および終了日時Te2は、監査実行部24の図示しない画面インタフェースによる日付を指定しての入力機能により、作業監査装置2に入力される。また、作業シナリオScは、作業シナリオ解析部23におけるファイル入力機能により作業監査装置2に入力される。また、監査ログL12、および警報ログL22の入力方法としては、例えば、監査人Miが、これらのログを作業監査装置2へのファイル読み込みとして実施したり、あるいは、作業監査装置2へネットワーク経由で入力することができる。前者の場合は、作業監査装置2における監査ログ入力部21、および警報ログ入力部22は、ファイル読み込みの機能を持つ。また、後者の場合は、作業監査装置2における監査ログ入力部21、および警報ログ入力部22は、ネットワーク経由で、監査ログL12、および警報ログL22を受信する機能を持つ。
次に、検証環境において作業者Moによる作業シナリオ生成装置1を用いた操作手順について説明する。
手順(1)作業者Moは、作業シナリオ生成装置1に作業名i、作業名iの開始日時Ts1を手動で入力する。
手順(2)作業者Moは、作業手順書に従って作業名iに該当する保守作業を、装置に対して実施する。保守作業とは、例えば、保守対象装置にソフトウェアアップデート用のファイルを保存し、サービスを再起動して動作を確認するといった内容である。
手順(3)作業者Moは、保守作業が終了すると、作業シナリオ生成装置1に対して作業名iの終了日時Te1を手動で入力する。
手順(4)また、作業シナリオ生成装置1は、保守対象装置8が出力する監査ログL11を入力する。
手順(5)また、作業シナリオ生成装置1は、検証環境で警報装置が出力した警報ログL21を入力する。
手順(6)さらに、作業シナリオ生成装置1は、上記(1)、(3)の情報から作業名iに対応する保守作業を実施した期間を特定し、その期間の監査ログL11と警報ログL21から、作業プロファイルPiを生成する。この作業プロファイルPiの作成処理については後に詳述する。
手順(7)上記の手順(1)~(6)および処理を作業名iに対応して繰り返して、各々の作業名iに対応した作業プロファイルPiを生成する。
手順(8)続いて、作業シナリオ生成装置1は、上記手順(7)で得られた作業プロファイルPiから作業シナリオScを生成して外部に出力する。
次に、上記の手順(6)において、作業プロファイルPiを生成する場合の各部の処理動作について説明する。
監査ログ入力部11は、監査ログL11を入力し、記録されているログデータを監査ログデータD11として抽出する。監査ログデータD11は具体的には、例えばログの記録1行1行のまとまりであって、後述のコマンド情報Dcoが含まれている。
警報ログ入力部15は、警報ログL21を入力し、記録されているログデータを警報ログデータD21として抽出する。警報ログデータD21は具体的には、例えばログの記録1行1行のまとまりである。
監査対象抽出部12は、開始日時Ts1、終了日時Te1、監査ログデータD11、警報ログデータD21を入力する。そして、開始日時Ts1から終了日時Te1までの期間(Ts1~Te1)の監査ログL11のエントリを、監査ログデータD11から抽出する。同様に、監査対象抽出部12は、開始日時Ts1から終了日時Te1までの期間(Ts1~Te1)の警報ログL21のエントリを、警報ログデータD21から抽出する。そして、監査対象抽出部12は、抽出した、監査ログL11のエントリと、警報ログL21のエントリを、監査対象データD3として、作業プロファイル生成部13へ出力する。
次に、作業プロファイル生成部13が作業プロファイルPiを生成するにあたり、その前に監査対象抽出部12で抽出された監査対象データD3に対して作業プロファイル生成部13およびエラータイプ判定部16が行う処理内容について、図4に示すフローチャートを用いて説明する。
作業プロファイル生成部13は、監査対象データD3に含まれる監査ログL11のエントリから、ある作業者Moについて、その対となるログインとログアウトの記録から、作業者Moの名前(以下、ユーザ名という)を特定する。例えば、図4には明示していないが、ユーザ名として、例えばuser_hosyuが特定されたとする。
作業プロファイル生成部13は、監査ログデータD11から、ユーザ名user_hosyuにより実行されたコマンド/プログラム、アクセスしたファイル等、実行結果(成功/失敗)を抽出する。この処理は、図4において、ユーザ名user_hosyuによる実行の抽出を行う(ステップS401)。抽出できた場合は、ステップS403へ進み、抽出できなかった場合は処理を終る(ステップS402)。
次に、ユーザ名user_hosyuにより実行された、コマンド/プログラムの実行の記録と、引数等のコマンド/プログラムが対象とした情報を抽出する(ステップS403)。
抽出できた場合は、ステップS405へ進み、抽出できなかった場合はステップS407へ進む(ステップS404)。ステップS405では、コマンド/プログラムの実行の記録において、その結果がエラーであるかを確認し、エラーが含まれている場合は、ステップS406へ進み、含まれない場合はステップS407へ進む。
ステップS406では、エラータイプ判定部16により、エラータイプEtpを判定する。エラータイプとは、そのコマンドを実行した場合に、タイプミスなどの人的な作業ミスによってエラーを起こし易いかどうかを示す情報である。なお、エラータイプ判定部16によるエラータイプの判定処理の具体的な内容については後に詳述する。
ステップS407では、警報ログデータD21があるかどうかを確認し、ある場合はステップS408へ進み、無い場合は処理を終る(ステップS407)。ステップS408では、保守対象装置8の健全性を維持できない場合は、「起こる警報」として判定する。
エラータイプ判定部16は、作業プロファイル生成部13から、コマンドの情報をコマンド情報Dcoとして入力する。このコマンド情報Dcoは、監査ログデータD11の内部に記録されている。
上記のコマンド情報Dcoは、コマンド名、エラー情報、コマンドの引数(例:ファイルパス)、コンソールから打ち込んだ(手打ち)、ネットワーク経由で打ち込んだ(リモート接続)、他のプログラムから起動されたか(例:バッチにて起動)の実行方法である。
エラータイプ判定部16は、コマンド情報Dcoについて、内部に保持しているエラータイプ判定情報(図5)を参照して、エラーの種類を判定し、エラータイプEtpとして作業プロファイル生成部13に出力する。
ここに、エラータイプ判定部16が内部に保持しているエラータイプ判定情報としては、例えば、図5に示すような情報がある。
すなわち、エラータイプ1に対応するコマンドαは、そのコマンド名が、キーボードによりタイプミスを起こし易いものであり、タイプミスあるいは呼び出し時に引数指定などで誤りを起こし易いという情報である。そして、このコマンドαを実行したとしてもシステムに影響を与えないものとして登録されている。例えば、ファイルをリスト表示するリストコマンドがある。
エラータイプ2に対応するコマンドβは、タイプミスおよび呼び出し誤りを起こしにくく、コマンド実行によるシステムへの影響を与えないものとして登録されている。例えば、システム情報の表示コマンドがある。
また、エラータイプ3に対応するコマンドγは、タイプミスを起こしにくいが、呼び出し誤りを起こし易く、コマンド実行によるシステムへ影響を与えるものとして登録されている。例えば、ファイルの移動コマンドがある。
エラータイプ判定部16へのこれらのエラータイプ判定情報の登録は、作業シナリオ生成装置1の管理者により、経験、もしくは検証環境で過去に同様の検証を行った知見に基づき、登録される。また、コマンドごとの、一般的な打ち間違え易さの統計データが公開されていれば、そのデータに基づいて登録してもよい。
なお、エラータイプ判定部16には、図5に示したようなエラータイプ判定情報を必ずしも予め登録しておく必要性はなく、下記のようなエラータイプ判定基準に基づいてエラータイプEtpを判定し、このエラータイプEtpの情報を作業プロファイル生成部13に出力するようにしてもよい。
この点につき、次に説明する。
(1)第1のエラータイプEtp1(起こり易いエラー):
(a)実行方法から識別して手打ち入力であり、かつ、(b)コマンド、またはプログラムを実行したエラー情報から識別して、コマンド実行の権限違反、コマンドが存在しない、あるいはファイルアクセス権限違反(ファイルの操作の場合)、もしくはファイルパスが存在しない場合(ファイルの操作の場合)には、タイプミスによる起こり易いエラー(第1のエラータイプEtp1)であるとして判定する。
または、(c)ファイル名/パス名/コマンド名が存在するものと類似しているかどうか(すなわち、検証環境の保守対象装置について、ファイル名/パス名/コマンド名を予め情報として保持し、エラー情報と比較して、類似しているかどうか)を識別して、類似している場合には、タイプミスによる起こり易いエラー(第1のエラータイプEtp1)であるとして判定する。なお、類似の判断は、既存の文字列の類似判定技術により実施してもよい。
(2)第2のエラータイプEpt2(必然的に起こるべくして起こるエラー):
(a)手打ち入力以外であり、かつ(b)禁止コマンドあるいはアクセス禁止ファイルではない(明確に禁止されていない)場合には、エラーが発生することは妥当であり、必然的に起こるべくして起こるエラー(第2のエラータイプEtp2)であるとして判定する。なお、手打ち入力以外としては、手打ち入力して実行したバッチファイルの実行結果も含んでおり、このバッチファイルの場合、プロセスIDの親子関係でバッチファイルの結果実行されたコマンドを追跡することができる。
次に、作業プロファイル生成部13による作業プロファイルPiの生成処理について説明する。
作業プロファイル生成部13は、作業名i、保守作業を実施したユーザ名、作業分析情報Ia、および警報情報Ikを時系列にまとめて作業プロファイルPiとして生成する。
ここに、上記の作業分析情報Iaは、次の情報が列挙される。
作業分析情報Ia={作業名iの処理にかかった時間、コマンド名/プログラム名、コマンド/プログラムの引数(例:ファイルパス)、コンソールから打ち込んだかネットワーク経由で打ち込んだか、他のプログラムから起動されたかの入力(実行)方法、エラー内容、エラータイプEtp(エラーが発生した場合)}
また、上記の警報情報Ikは、次の情報が列挙される。
警報情報Ik=[警報内容、警報タイプ]。
そして、作業プロファイル生成部13は、開始日時Ts1から終了日時Te1までの間に実行されたコマンド、プログラム等の項目ごとに上記の作業分析情報Iaを生成して実施順に並べる。さらに、警報ログの内容を上記の警報情報Ikの発生順に並べ、これらの情報全てを作業プロファイルPiとして生成する。
したがって、このように生成される作業プロファイルPiは、作業名iを実施する場合に、実行するコマンド、プログラム、およびその結果を時系列にまとめたものであり、本番環境で同じ作業を行った場合に、監査ログL12および警報ログL22にどのような内容の情報が記録されるかの基準となるリファレンス情報である。
保守対象装置8について複数の保守作業が必要となる場合、作業プロファイル生成部13は、作業名iの数に対応する数の作業プロファイルPiを順次作成し、生成した作業プロファイルPiを作業シナリオ生成部14に出力する。
例えば、作業名iがi=1~4の4つの作業がある場合は、作業プロファイルPiも4つ生成される。そして、作業シナリオ生成部14は、作業プロファイルPiを作業名i=1~4の順番に並べて全体を作業シナリオScとして作業シナリオ生成装置1の外部へ出力する。
作業シナリオ生成部14により作成される作業シナリオScの具体的な一例を次に示す。なお、ここでは、説明を簡単にするために、作業名iはi=1~4の4つあるとし、したがって、作業シナリオScは、4つの作業プロファイルPi(i=1~4)で構成される。また、ここでは各々の作業名iについて作業に要する時間を一律に300秒とする。ただし、この値は作業名iごとに異なっていてもよい。
作業プロファイルP1:
作業名1、ユーザ名=user_hosyu、作業分析情報Ia={300秒、cp pArch.zip, unzip pArch.zip,手打ち,}、警報情報Ik=[なし]
説明:pArch.zipを媒体等から装置にコピー(cp)し、解凍する(unzip)。この実施には300秒かかる。エラーは発生しない。警報は発生しない。
作業プロファイルP2:
作業名2、ユーザ名=user_hosyu、作業分析情報Ia={300秒、restart service_x、手打ち}、警報情報Ik=[作業対象の通信切断の警報、起こる警報]
説明:service_xを再起動(restart)する。この実施には300秒かかる。エラーは発生しない。restartの後に通信切断の警報が発生する。この警報は起こる警報であって、起こることが妥当な正しい警報である。
作業プロファイルP3:
作業名3、ユーザ名=user_hosyu、作業分析情報Ia={300秒、コマンドX xxx.log、手打ち、コマンドXの実行でエラー、起こり易いエラー}、警報情報Ik=[なし]
説明:コマンドX xxx.logを実行する(xxx.logを引数としてコマンドXを実行)。この実施には300秒かかる。エラーが起こり易いコマンドである。警報は発生しない。
作業プロファイルP4:
作業名4、user_hosyu、作業分析情報Ia={300秒、sagyou.sh、手打ち、コマンドYの実行でエラー、起こるエラー}、警報情報Ik=[なし]
説明:sagyou.shを実行する。この実施には300秒かかる。この時、sagyou.shが呼び出すコマンドYでエラーが発生する。また、起こるエラーは、発生することが妥当であり、必然的に起こるべくして起こるエラーであることを示している。警報は発生しない。
作業シナリオ生成装置1は、作業者Moが検証環境において作業シナリオScを作成する上で必要となるGUI(Graphical User Interface)として、次のような操作手段を備えている。
(a)検証作業開始ボタン、および検証作業終了ボタン:
一連の検証作業の開始と終了を装置に伝える。作業名1~作業名4の4つの作業を実施する場合は、作業名1の開始時点で検証作業開始ボタンを押し、作業名4の終了時点で、検証作業終了ボタンを押す。
(b)作業名入力テキストボックス:
作業名iを入力する。
(c)開始日時入力ボタン:
押したときのタイムスタンプが装置に開始日時Ts1として入力する。
(d)終了日時入力ボタン:
押したときのタイムスタンプが装置に終了日時Te1として入力する。
次に、前述の一例として示した4つの作業プロファイルPi(i=1~4)からなる作業シナリオScを生成するために、作業者Moが検証環境において行う操作手順の具体例を以下に示す。
(1)作業者Moは、作業シナリオ生成装置1の検証作業開始ボタンを押す。
(2)作業者Moは、作業シナリオ生成装置1に作業名1を入力する。作業者Moは、開始日時入力ボタンを押して、開始日時1(例:2020/1/20 12:00:00)を入力する
(3)作業者Moは、保守対象装置8にユーザ名user_hosyでログインする。(4)作業者Moは、USB(Universal Serial Bus)メモリから装置にpArch.zipをコピー(cp)する。次に、pArch.zipをunzipで解凍する。これらは、開始日時1から300秒後に行われる。
(5)作業者Moは、終了日時入力ボタンを押して、作業シナリオ生成装置1に終了日時1(例:2020/1/20 12:05:00)を入力する。この結果、作業名1の作業にかかった時間は300秒となる。
(6)作業者Moは、作業シナリオ生成装置1に作業名2を入力する。作業者Moは、開始日時入力ボタンを押して、開始日時2(例:2020/1/20 12:10:00)を入力する。この例では、作業名2の作業を作業名1の作業の終了から5分後に実行している。
(7)作業者Moは、保守対象装置8においてrestart servic_xでservice_xを再起動する。
(8)restart後、装置の通信が切断された警報が警報装置9において発生したとする。
(9)作業者Moは、終了日時入力ボタンを押して、作業シナリオ生成装置1に終了日時2(例:2020/1/20 12:15:00)を入力する。この結果、作業名2の作業にかかった時間は300秒となる。
(10)作業者Moは、作業シナリオ生成装置1に作業名3を入力する。作業者Moは、開始日時入力ボタンを押して、開始日時3(例:2020/1/20 12:20:00)を入力する。この例では、作業名3の作業を作業名2の作業の終了から5分後に実行している。
(11)作業者Moは、保守対象装置8においてコマンドX xxx.logを実行する(xxx.logを引数としてコマンドXを実行)。この時、タイプミスを行い、エラーが発生し、再度、正確にコマンドを入力して成功したとする。なお、このコマンドXのエラーは、作業プロファイル生成部13の処理により、そのエラーの記録から、「起こり易いエラー」として判断される。
(12)作業者Moは、終了日時入力ボタンを押して、作業シナリオ生成装置1に終了日時3(例:2020/1/20 12:25:00)を入力する。この結果、作業名3の作業にかかった時間は300秒となる。
(13)作業者Moは、作業シナリオ生成装置1に作業名i=4を入力する。作業者Moは、開始日時入力ボタンを押して、開始日時4(例:2020/1/20 12:30:00)を入力する。この例では、作業名4の作業を作業名3の作業の終了から5分後に実行している。
(14)作業者Moは、保守対象装置8においてsagyou.shを実行する。
(15)sagyou.shが呼び出したコマンドYでエラーが発生したが、作業者Moは、作業を中断せずに作業を完了させた。なお、このコマンドYのエラーは、作業プロファイル生成部13の処理により、そのエラーの記録から、「起こるエラー」として判断される。
(16)作業者Moは、装置からログアウトする(user_hosyuのログアウト)。
(17)作業者Moは、終了日時入力ボタンを押して、作業シナリオ生成装置1に終了日時4(例:2020/1/20 12:35:00)を入力する。この結果、作業名4の作業にかかった時間は300秒となる。
(18)作業者Moは、検証作業終了ボタンを押す。
ここで、各開始日時、各終了日時は、作業者による作業の開始、終了のタイミングが反映され、作業の進捗によっては、作業開始あるいは終了を早めることもできるし、次の作業の準備を行うために、遅くなることもある。何れの場合でも、検証環境での各作業の所要時間が算出される。
次に、本番環境において、作業監査装置2を用いた保守対象装置8に対する保守作業の監査手順について説明する。
(1)作業者Moは、本番環境で保守対象装置8に対して作業手順書に従って保守作業を行う。ここで、作業者Moは、検証環境の作業者Moと同じ人物であってもよく、あるいは異なった者であってもよい。作業手順書は、検証環境で用いた内容のものを本番環境で使用する。作業手順は、検証環境と本番環境で同じである必要があるが、ドキュメントとしての体裁は異なっていてもよい。
(2)本番環境では、保守作業の結果、保守対象装置8から監査ログL12が、また警報装置9からは警報ログL22がそれぞれ出力される。
(3)監査人Miは、作業監査装置2に対して本番環境で出力された監査ログL12および警報ログL22の入力を許可する。
ここに、監査ログL12は、作業監査装置2における監査ログ入力部21に入力される。これに応じて、監査ログ入力部21は、監査ログL12から監査ログのエントリを抽出し、監査ログデータD12として監査実行部24へ出力する。
一方、警報ログL22は、作業監査装置2における警報ログ入力部22に入力される。これに応じて、警報ログ入力部22は、警報ログL22から警報ログのエントリを抽出し、警報ログデータD22として監査実行部24へ出力する。
(4)監査人Miは、作業監査装置2に対して作業シナリオScの入力を許可する。この作業シナリオScは、作業手順書と対応する保守作業を検証環境で実施した際に、作業シナリオ生成装置1により生成された作業シナリオScである。そして、この作業シナリオScは、作業シナリオ解析部23に入力される。これに応じて、作業シナリオ解析部23は、作業シナリオScに含まれる作業プロファイルPiを抽出する。
(5)監査人Miは、作業監査装置2に対して、保守作業の開始日時Ts2、および終了日時Te2をそれぞれ入力する。作業の開始日時Ts2と終了日時Te2の情報は、監査実行部24に入力される。
なお、以下において、保守作業の開始日時Ts2はTaと、また、保守作業の終了日時Te2はTbと表記するものとする。
(6)監査実行部24は、作業シナリオScを参照し、監査ログL12、および警報ログL22を分析して監査を行う。
(7)監査結果生成部25は、監査結果を出力する。
次に、作業監査装置2の監査実行部24による上記の(6)の手順における処理内容について、さらに詳しく説明する。
ここでは説明を簡単にするために、作業シナリオScは、前述の検証環境において、作業シナリオ生成装置1が生成した作業シナリオScの一例として挙げたものと同じであるとする。したがって、作業シナリオScを構成する作業プロファイルPiは、i=1~4の4つ存在する。
(1)監査実行部24は、入力された作業プロファイルPi(i=1~4)のうち、先ず、i=1に該当する作業プロファイルP1を選択する。その内容は、次の通りである。
作業プロファイルP1:作業名1、user_hosyu、作業分析情報Ia={300秒、cp pArch.zip, unzip pArch.zip,手打ち}、警報情報Ik=[なし]
監査実行部24は、監査ログデータD12に次の記録があるかどうかを確認する。すなわち、TaからTa+300秒の期間において、user_hosyuが、手打ちで、cp pArch.zip, unzip unzipを実行した記録があるかどうかを確認する。この時、(Ta+300秒<Tb)であるとする。なお、Ta+300秒の期間は、作業名1に関し、その作業の開始日時Taから起算して予想される作業終了までに要する期間である。
この確認は、作業プロファイルP1を以下のように解釈することで実現する。すなわち、ユーザ名user_hosyuが、手打ちで、pArch.zipをcpし、さらに、pArch.zipをunzipする。これらの作業時間は300秒である。また、エラーは発生しない。
この処理は、監査実行部24において、図6のフローチャートに示す処理に該当する。
すなわち、ステップS501で、開始時刻=Ta、終了時刻=Ta+300秒の監査ログデータD12を抽出する。抽出できない場合はステップS516へ進む(ステップS502)。抽出できた場合はステップS503へ進む(ステップS502)。
ステップS503で、ユーザ名がuser_hosyuであるログのエントリを抽出する。抽出できない場合はステップS516へ進む(ステップS504)。抽出できた場合はステップS505へ進む(ステップS504)。
ステップS505で、実行方法が手入力であるログのエントリを抽出する。抽出できない場合はステップS516へ進む。抽出できた場合は、ステップS507へ進む(ステップS506)。
次に、作業プロファイルP1について、cp pArch.zip、unzip pArch.zipの記録を抽出する(ステップS507)。抽出できない場合はステップS516へ進む(ステップS508)。抽出できた場合はステップS509へ進む(ステップS508)。
ステップS509で、作業プロファイルP1について、cp pArch.zip、unzip pArch.zipの実行のエラーを抽出する。そして、エラーに問題が無いか確認する(ステップS510)。ここでは、作業プロファイルP1によれば、エラーは発生しない。ここで、エラーが発生していた場合は「エラーに問題がある」と判定し(ステップS510)、ステップS516に進む。エラーが発生していなければ、ステップS511へ進む。
ステップS511で、開始日時=Ta、終了日時=Ta+300秒の警報ログデータD22を抽出する。
抽出できない場合はステップS515へ進む(ステップS512)。この場合、作業プロファイルP1については、警報は発生しない。警報が発生した場合は、ステップS513へ進む(ステップS512)。ステップS513で、警報ログデータD22から、警報を抽出する。
ステップS514で警報に問題が無いか確認する。作業プロファイルP1によれば、警報は発生しないため、警報が抽出されたために、「警報に問題がある」と判定し、ステップS516に進む。
ステップS515では、作業プロファイルP1の作業については監査結果に問題が無いため、アラートなしとする。ステップS516では、作業プロファイルP1の作業については監査結果に問題があるため、以下のアラートArを監査結果生成部25に入力する。
ここに、アラートArは、「作業名1の実施が適切ではない:理由」というメッセージであり、その理由の箇所には、ステップS516に分岐した理由が記載される。例えば、監査ログが記録されていない(ステップS502)、エラーが発生している(ステップS510)、警報が発生している(ステップS514)等である。警報なしの場合は、アラートArのメッセージは空とする。
監査結果生成部25は、アラートArにおいてメッセージが存在した場合は、アラートArを含めて監査結果として作業監査装置2の外部へ出力する。
アラートArにメッセージが含まれる場合は、その作業プロファイルP1の監査は失敗である。メッセージが含まれない場合(空である場合)は、その作業プロファイルP1の監査は成功である。
ここで、監査結果生成部25が出力する監査結果は、ファイルとして出力する。または、監査結果生成部25が通信機能を備えてネットワークに接続されている場合には、同じネットワークに接続されたSYSLOGサーバへ監査結果をSYSLOGメッセージとして通知してもよい。
以降、この実施の形態1では、この監査結果にアラートArを含めて作業監査装置2の外部へ出力する処理を「アラートを発する」と称する。
(2)次に、監査実行部24は、入力された作業プロファイルPi(i=1~4)のうち、i=2に該当する作業プロファイルP2を選択する。その内容は、次の通りである。
作業プロファイルP2:作業名2、ユーザ名=user_hosyu、作業分析情報Ia={300秒、restart service_x、手打ち}、警報情報Ik=[作業対象の通信切断の警報、起こる警報]
監査実行部24は、監査ログデータD12に以下の(a)、かつ(b)の記録があるかどうかを確認する。(a)Ta+300からTa+300+300秒の期間において、user_hosyuが、手打ちで、restart service_xを実行した記録がある。この時、Ta+300+300<Tbであるとする。(b)restart service_xの実行後からTa+300+300秒の期間において、警報ログデータD22に保守対象装置8について、通信切断の警報の記録がある。なお、Ta+300秒からTa+300+300秒の期間は、作業名2に関し、作業名1の作業終了日時から起算して予想される作業終了までに要する期間である。
具体的には、監査実行部24は、図6に示すフローチャートの手順に従って作業プロファイルP1の処理と同様の処理を行うが、以下の点が異なる。
ステップS512において、抽出対象の警報が無い場合は、作業プロファイルP2と異なるため、ステップS516へ進む。その場合、例えば「作業名2の実施が適切ではない:警報が発生していない」といった内容のアラートArを生成する。
(3)次に、監査実行部24は、入力された作業プロファイルPi(i=1~4)のうち、i=3に該当する作業プロファイルP3を選択する。その内容は、次の通りである。
作業プロファイルP3:作業名3、ユーザ名=user_hosyu、作業分析情報Ia={300秒、コマンドX xxx.log、手打ち、コマンドXの実行でエラー、起こり易いエラー}、警報情報Ik=[なし]
監査実行部24は、監査ログデータD12に次の記録があるかどうかを確認する。すなわち、Ta+600からTa+600+300秒の期間において、user_hosyuが、手打ちで、コマンドX xxx.logを実行した記録があるかどうかを確認する。この時、Ta+600+300<Tbであるとする。なお、Ta+600秒からTa+600+300秒の期間は、作業名3に関し、作業名2の作業終了日時から起算して予想される作業終了までに要する期間である。
図6に示すフローチャートの手順に従い、監査実行部24は、作業プロファイルP1と同様の処理を行うが、以下の点が異なる。ステップS510において、エラーが記録されていた場合、以下の(a)、かつ(b)を満たす場合は、エラーに問題が無いと判定する。(a)作業プロファイルP3では、第1のエラータイプEtp1=起こり易いエラーとなっていること。(b)コマンドXの実行エラーの記録の後、コマンドXを再試行して成功している記録があること。また、エラーが記録されていない場合も、エラーに問題が無いと判定する。
コマンドXを再試行していない、再試行しても成功していない場合は、例えば「作業名3の実施が適切ではない:コマンドXに成功していない」という内容のアラートArを生成する。
(4)次に、監査実行部24は、入力された作業プロファイルPi(i=1~4)のうち、i=4に該当する作業プロファイルP4を選択する。その内容は、次の通りである。
作業プロファイルP4:作業名4、ユーザ名=user_hosyu、作業分析情報Ia={300秒、sagyou.sh、手打ち、コマンドYの実行でエラー、起こるエラー}、警報情報Ik=[なし]
監査実行部24は、監査ログデータD12に以下の(a)、かつ(b)の記録があるかどうかを確認する。(a)Ta+900からTa+900+300秒の期間において、user_hosyuが、手打ちで、sagyou.shを実行した記録がある。この時、Ta+900+300<Tbであるとする。(b)sagyou.shの実行後、コマンドYの実行でエラーの記録がある。なお、Ta+900秒からTa+900+300秒の期間は、作業名4に関し、作業名3の作業終了から起算して予想される処理終了までに要する期間である。
図6に示すフローチャートの手順に従い、監査実行部24は、作業プロファイルP1と同様の処理を行うが、以下の点が異なる。
ステップS510において、エラーが記録されていた場合、(a)作業プロファイルP4では第2のエラータイプEtp2=必然的に起こるべくして起こるエラーとなっていること、かつ(b)コマンドYでエラーが発生していること、の条件を満たす場合は、エラーに問題が無いと判定する。
コマンドYでエラーが発生していない場合は、エラーに問題があると判定する。例えば、sagyou.shはバッチファイルであり、特定のディレクトリに対してまとめてファイル処理を行うコマンドを含む。ファイル処理の対象のフォルダの一部については、user_hosyの権限では参照できないディレクトリがある。そのようなディレクトリについては、エラーになるはずである。
したがって、エラーが発生していない状況は、アクセス権に何かしらの問題があり、異常と捉えるべきである。その場合は、例えば「作業名4の実施が適切ではない:エラーが発生していない」といった内容のアラートArを生成する。
以上のように、作業監査装置2は、作業シナリオScに含まれる作業プロファイルPiに従って監査ログL12、警報ログL22を用いて保守作業を監査する。その結果、保守作業が、作業シナリオScに従っていないと判断した場合には、アラートArに警報のメッセージが含まれる。成功している場合は、メッセージは発せられない。
このアラートArは、監査結果生成部25に入力される。監査結果生成部25は、アラートArのメッセージが空である場合は、作業シナリオScの監査に成功した(問題なかった)ことを示すメッセージを監査結果に含めて出力する。アラートArにメッセージが存在する場合は、そのメッセージを監査結果に含めて出力する。
なお、作業監査装置2は、監査実行部24において、ある作業プロファイルPiに従って監査ログL12、警報ログL22を確認した結果、監査に成功しなかった場合、即座に、アラートArに基づき監査結果を出力して処理を終了してもよい。または、作業プロファイルPiに従った監査において、監査の成功/失敗に関わらず、全ての作業プロファイルPiを処理して、作業プロファイルPiごとのアラートArを全て含めた監査結果を出力して処理を終了してもよい。
このように、作業監査装置2は、作業シナリオScに従い、予定通りの保守作業が実施されたかどうかを、発生したエラーの是非も含めて、監査ログL12、警報ログL22、および作業シナリオScから判定することができる。
以上のように、この実施の形態1のサイバーセキュリティ監査システムによれば、作業シナリオ生成装置1は、検証環境の下で保守対象装置8から出力される監査ログ、および警報装置9から出力される警報ログを取り込んで保守作業の手順を定めた作業シナリオを生成し、作業監査装置2は、本番環境の下で保守対象装置から出力される監査ログ、警報装置から出力される警報ログ、および作業シナリオ生成装置で予め生成しておいた作業シナリオを取り込んで保守対象装置8が作業シナリオに従った保守作業が実施できているかどうかを監査するので、本番環境の下で保守作業が正しく行われたかどうかの監査をエラー発生の是非を含めて効率的に行うことができるという効果がある。
実施の形態2.
上記の実施の形態1では、作業シナリオ生成装置1は、ある作業の開始と終了の日時から、作業の実施にかかる時間を算出した。この実施の形態2では、作業シナリオ生成装置1は、検証環境における、ある作業の終了の日時から、次の作業の開始日時の間の期間を、「作業間隔」として算出して、作業シナリオScに含めてもよい。
すなわち、作業手順書において、作業のタイミングが決められている場合は、作業間隔を考慮した作業シナリオScを生成し、作業監査装置2を用いた監査時に、この「作業間隔」の情報を参照する。これにより、一層確実な監査が可能になる。
例えば、作業シナリオ生成装置1で作成される作業シナリオScは、以下に示すようになる。
作業シナリオSc=[作業プロファイルP1、作業間隔ΔT12、作業プロファイルP2、作業間隔ΔT23、作業プロファイルP3、作業間隔ΔT34、作業プロファイルP4]
ここに、作業間隔ΔT12は、作業名1の終了時点から作業名2の開始時点までの間の秒数である。作業間隔ΔT23は、作業名2の終了時点から作業名3の開始時点までの間の秒数である。作業間隔ΔT34は、作業名3の終了時点から作業名4の開始時点までの間の秒数である。なお、この場合も各々の作業名iについて作業に要する時間を一律に300秒とする。
作業監査装置2は、この作業シナリオScが入力されると、監査実行部24において、各々の作業間隔ΔT12、ΔT23、ΔT34を加味して、監査ログデータD12、警報ログデータD22から、作業プロファイルPi(ここではi=1~4)に示されたコマンド/エラー/警報を抽出する。
そのため、作業シナリオ解析部23から監査実行部24へは、作業シナリオScとして、上記の例では、作業プロファイルP1、作業間隔ΔT12(300秒)、作業プロファイルP2、作業間隔ΔT23(300秒)、作業プロファイルP3、作業間隔ΔT34(300秒)、作業プロファイルP4、という単位で入力される。
この情報をもとに、例えば、作業名2の監査ログデータD12を抽出する場合には、以下の期間について抽出を行う。
すなわち、作業プロファイルP1、作業間隔ΔT12の情報から、作業名1の300秒後に作業プロファイルP2を実施する。したがって、[Ta+300秒(作業名1の終了時点)]から、[Ta+300+作業間隔ΔT12(300秒)+300秒]までの期間が、作業名2の作業結果について確認すべき監査ログL12、および警報ログL22の期間である。
その他の作業シナリオ生成装置1と作業監査装置2の動作は、実施の形態1に同じであるので、ここでは詳しい説明は省略する。
以上のように、この実施の形態2のサイバーセキュリティ監査システムによれば、作業監査装置2は、作業シナリオScに従い、予定通りの保守作業が実施されたかを、検証環境での作業間隔を考慮し、発生したエラーの是非も含めて、監査ログL12と警報ログL22と作業シナリオScから判定できる効果がある。また、作業手順書に従う場合、検証環境での作業間隔は、本番環境での作業間隔に近しいものとなるため、正確に、監査が可能となる効果がある。
実施の形態3.
上記の実施の形態1および2では、作業監査装置2の監査ログ入力部21で得られる監査ログデータD12について、作業プロファイルPiに示されたコマンド/プログラムの実行の記録、エラーの記録に関してこれを抽出して確認するようにしている(図6のステップS507の処理参照)。
しかし、実際には、保守作業の途中で、作業プロファイルPiに示されたコマンド/プログラム以外の実行の記録が、監査ログデータD12に記録されている場合がある。例えば、保守対象装置8に対する保守作業の途中で、作業手順書に記載されていないようなコマンドが必要上、入力される場合がある。
そこで、この実施の形態3では、作業プロファイルPiに示されたコマンド/プログラム以外の実行の記録が、監査ログデータD12に記録されている場合、これに対する作業監査装置2の動作について次に説明する。
図2に示した作業監査装置2において、この実施の形態3では、図示していないが、監査実行部24に対して、監査人Miが実施不可情報Iia、および実施許可情報Iavを入力する。これらの入力は、実施の形態1および2において示した監査実行部24への入力情報の他に、追加した情報として行われる。
ここに、実施不可情報Iiaとは、作業において実施すべきではないコマンド、プログラム、あるいは、その対象となるファイルを示した情報である。この情報としては、例えば、ファイル削除コマンド、ファイル置換コマンド、装置シャットダウンコマンド、装置再起動コマンド、設定変更プログラムの実行、あるいは/AAAフォルダ以下のファイルへのアクセスなどがある。
また、実施許可情報Iavとは、作業において実施してもよいコマンドであり、作業シナリオScに記載するまでもない、実行してもよいコマンド、あるいはプログラム、もしくはその対象となるファイルを示した情報である。この情報としては、例えば、ディレクトリ情報取得コマンド、ファイル表示コマンド、ネットワーク設定取得コマンド、テキストエディタの実行、あるいは/BBBフォルダ以下のファイルへのアクセスなどがある。
また、コマンドによって、エラーの理由が複数存在することがある。例えば、ここでは、一例として、コマンドZは、エラーについて、エラーコード=e1、e2の2種類を返すとする。作業において、コマンドZを実行した際に、エラーの理由によっては許容できたり、できなかったりということがある。
例えば、エラーコードe1は、引数の指定が不適切であるというエラーコードであり、これはタイプミスによって発生する可能性がある。具体例としは、引数のオプションで、仕様に無いオプションを指定した場合などが該当する。
また、例えば、エラーコードe2は、実行権限が無いというエラーコードであり、作業者が悪意なく実行する場合もあれば、作業者が悪意をもって自身の権限を越えて処理を行おうとした場合に発生することがある。そのため、監査においてはエラー発生の確認を行う必要がある。
このように、コマンド/プログラム等の実行の記録に対して、さらに実施不可情報Iia、および実施許可情報Iavを含めると監査結果の充実化を図ることができる。
そこで、この実施の形態3では、監査実行部24は、作業プロファイルPiを参照して、監査ログデータD12の処理を行うことに加えて、処理対象の期間の監査ログデータD12において、実施不可情報Iiaに記載されたコマンド、あるいはプログラムの実行、ファイルへのアクセスの記録を抽出する。これが抽出された場合、アラートArとして、例えば「作業名iの実施が適切ではない:禁止作業の実施」といった内容の警報を発する。
または、監査実行部24は、作業プロファイルPiを参照して、監査ログデータD12の処理を行うことに加えて、処理対象の期間の監査ログデータD12において、実施許可情報Iavに記載されたコマンド、あるいはプログラムの実行、ファイルへのアクセス「以外」の記録を抽出する。これが抽出された場合、アラートArとして、例えば「作業名iの実施が適切ではない:許可外の作業の実施」といった内容の警報を発する。
または、監査実行部24は、上記の実施不可情報Iiaを参照しての記録の抽出の処理、および実施許可情報Iavを参照しての記録の抽出(すなわち、実施許可情報Iavに無いコマンド、あるいはプログラムの実行、ファイルへのアクセスの記録の抽出)の処理を併用してもよい。
同様に、図2に示す作業監査装置2の監査実行部24に対して、監査人Miが作業において発生してはいけない発生不可警報Aia、発生を無視できる発生可警報Aavを監査実行部24に入力し、実施の形態1、2に示した警報ログデータD22の処理に加えて、以下の処理を行うようにするのが好ましい。
すなわち、処理対象の期間の警報ログデータD22において、発生不可警報Aiaに記載された警報の記録を抽出する。抽出された場合、アラートArとして、例えば「作業名iの実施が適切ではない:不可警報の発砲」といった内容の警報を発する。
または、発生可警報Aavに記載された警報「以外」の記録を抽出する。抽出された場合、アラートArとして、例えば「作業名iの実施が適切ではない:許可外の警報の発砲」といった内容の警報を発する。
または、監査実行部24は、上記の発生不可警報Aiaを参照しての記録の抽出の処理、および発生可警報Aavを参照しての記録の抽出(発生可警報Aavに無い警報の抽出)の処理を併用してもよい。
以上のように、この実施の形態3のサイバーセキュリティ監査システムによれば、作業プロファイルPiに含まれていないコマンド、あるいはプログラムの実行についても、禁止されたものであるか、許可されていなものであるかの情報を作業監査装置2が保有することで、作業シナリオScによる監査に加えて、許容できない不適切な作業の検知が可能となる。
また、作業監査装置2は、作業シナリオScに従い、予定通りの保守作業が実施されたかを、検証環境での作業間隔を考慮し、発生したエラーの是非も含めて、監査ログL12と警報ログL22と作業シナリオScから判定することができる。
本願は、様々な例示的な実施の形態及び実施例が記載されているが、1つ、または複数の実施の形態に記載された様々な特徴、態様、及び機能は特定の実施の形態の適用に限られるのではなく、単独で、または様々な組み合わせで実施の形態に適用可能である。
従って、例示されていない無数の変形例が、本願に開示される技術の範囲内において想定される。例えば、少なくとも1つの構成要素を変形する場合、追加する場合または省略する場合、さらには、少なくとも1つの構成要素を抽出し、他の実施の形態の構成要素と組み合わせる場合が含まれるものとする。
1 作業シナリオ生成装置、11 監査ログ入力部、12 監査対象抽出部、
13 作業プロファイル生成部、14 作業シナリオ生成部、15 監査ログ入力部、
16 エラータイプ判定部、2 作業監査装置、21 監査ログ入力部、
22 警報ログ入力部、23 作業シナリオ解析部、24 監査実行部、
25 監査結果生成部、8 保守対象装置、9 警報装置。

Claims (3)

  1. 検証環境の下で保守対象装置から出力される監査ログ、および警報装置から出力される警報ログを取り込んで保守作業の手順を定めた作業シナリオを生成する作業シナリオ生成装置、および本番環境の下で前記保守対象装置から出力される監査ログ、前記警報装置から出力される警報ログ、および前記作業シナリオ生成装置から出力される前記作業シナリオを取り込んで前記保守対象装置が前記作業シナリオに従った保守作業が実施できているかどうかを監査する作業監査装置を有し、
    前記作業シナリオ生成装置は、
    前記保守対象装置から前記検証環境の下で得られる前記監査ログを入力して監査ログデータを抽出する監査ログ入力部と、
    前記警報装置から前記検証環境の下で得られる前記警報ログを入力して警報ログデータを抽出する警報ログ入力部と、
    前記検証環境の下で得られた前記監査ログデータ、前記警報ログデータ、および前記保守対象装置に対する保守作業の開始日時ならびに終了日時に基づいて監査対象データを抽出する監査対象抽出部と、
    前記監査対象データおよび保守作業に対して付された作業名に基づいて、前記監査ログに記録されたエラーを参照し、このエラーに関する情報も含めた作業プロファイルを生成する作業プロファイル生成部と、
    前記作業プロファイルを時系列にまとめた作業シナリオを生成する作業シナリオ生成部と、を備え、
    前記作業監査装置は、
    前記保守対象装置から前記本番環境の下で得られる監査ログを入力して監査ログデータを抽出する監査ログ入力部と、
    前記警報装置から前記本番環境の下で得られる警報ログを入力して警報ログデータを抽出する警報ログ入力部と、
    前記作業シナリオ生成装置からの前記作業シナリオを入力して当該作業シナリオに含まれる作業プロファイルを抽出する作業シナリオ解析部と、
    前記本番環境の下で得られた前記監査ログデータ、前記警報ログデータ、および前記保守対象装置に対する保守作業の開始日時および終了日時、ならびに前記作業プロファイルに基づいて、前記保守対象装置について、前記本番環境の下で前記作業シナリオに従った保守作業が実施できているかどうかを監査するとともに、エラーが発生していた場合にはそのエラーの是非を含めて監査する監査実行部と、前記監査実行部が生成した監査結果を出力する監査結果生成部と、を備える、
    サイバーセキュリティ監査システム。
  2. 前記作業シナリオ生成装置は、保守作業の手順に沿った終了日時から次の保守作業の開始日時までの作業間隔を含んだ作業シナリオを生成する請求項1に記載のサイバーセキュリティ監査システム。
  3. 前記監査実行部は、禁止されたコマンドおよびプログラムの作業、あるいは許可されたコマンドおよびプログラムに基づく作業以外の作業の実施の有無を確認する、請求項1または請求項2に記載のサイバーセキュリティ監査システム。
JP2020061751A 2020-03-31 2020-03-31 サイバーセキュリティ監査システム Active JP7446142B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2020061751A JP7446142B2 (ja) 2020-03-31 2020-03-31 サイバーセキュリティ監査システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020061751A JP7446142B2 (ja) 2020-03-31 2020-03-31 サイバーセキュリティ監査システム

Publications (2)

Publication Number Publication Date
JP2021162971A JP2021162971A (ja) 2021-10-11
JP7446142B2 true JP7446142B2 (ja) 2024-03-08

Family

ID=78005382

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020061751A Active JP7446142B2 (ja) 2020-03-31 2020-03-31 サイバーセキュリティ監査システム

Country Status (1)

Country Link
JP (1) JP7446142B2 (ja)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003048362A (ja) 2001-08-07 2003-02-18 Konica Corp 画像形成装置、及び管理システム
JP2006235895A (ja) 2005-02-24 2006-09-07 Mitsubishi Electric Corp 監査ログ分析装置及び監査ログ分析方法及び監査ログ分析プログラム
JP2007148946A (ja) 2005-11-30 2007-06-14 Hitachi Ltd 不正アクセス検知方法
JP2008117008A (ja) 2006-10-31 2008-05-22 Nomura Research Institute Ltd リモートアクセス制御装置
WO2015029464A1 (ja) 2013-08-29 2015-03-05 三菱電機株式会社 模擬装置、情報生成装置、模擬方法、模擬プログラム、環境提供システム、環境提供方法及びプログラム
WO2018146757A1 (ja) 2017-02-08 2018-08-16 三菱電機株式会社 情報処理装置、情報処理方法及び情報処理プログラム

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003048362A (ja) 2001-08-07 2003-02-18 Konica Corp 画像形成装置、及び管理システム
JP2006235895A (ja) 2005-02-24 2006-09-07 Mitsubishi Electric Corp 監査ログ分析装置及び監査ログ分析方法及び監査ログ分析プログラム
JP2007148946A (ja) 2005-11-30 2007-06-14 Hitachi Ltd 不正アクセス検知方法
JP2008117008A (ja) 2006-10-31 2008-05-22 Nomura Research Institute Ltd リモートアクセス制御装置
WO2015029464A1 (ja) 2013-08-29 2015-03-05 三菱電機株式会社 模擬装置、情報生成装置、模擬方法、模擬プログラム、環境提供システム、環境提供方法及びプログラム
WO2018146757A1 (ja) 2017-02-08 2018-08-16 三菱電機株式会社 情報処理装置、情報処理方法及び情報処理プログラム

Also Published As

Publication number Publication date
JP2021162971A (ja) 2021-10-11

Similar Documents

Publication Publication Date Title
CN101918922A (zh) 用于计算机网络中的自动数据异常修正的系统和方法
US20130311977A1 (en) Arrangement and method for model-based testing
CN110088744A (zh) 一种数据库维护方法及其系统
CN104836699A (zh) 设备状态处理方法与设备状态处理系统
US20050188269A1 (en) System and method for providing a health model for software
WO2009144826A1 (ja) 検査用ファイル生成プログラム、検査用ファイル生成装置および検査用ファイル生成方法
CN112463421A (zh) 信息处理系统
CN111181775B (zh) 基于自动发现主机资产的一体化运维管理告警方法
CN104135483A (zh) 一种网络安全自动配置管理系统
CN112561370A (zh) 软件发版的管理方法、装置、计算机设备及存储介质
CN110955897A (zh) 基于大数据的软件研发安全管控可视化方法及系统
CN103440460A (zh) 一种应用系统变更验证方法及验证系统
JP2010123014A (ja) サーバ不正操作監視システム
JP2005038125A (ja) アクセスログ解析方法及び解析システム
JP7446142B2 (ja) サイバーセキュリティ監査システム
JP6436705B2 (ja) テスト実行装置、テスト実行方法およびコンピュータプログラム
CN112395125A (zh) 页面报错的通知方法、装置、计算机设备及存储介质
US8402125B2 (en) Method of managing operations for administration, maintenance and operational upkeep, management entity and corresponding computer program product
JP2004145715A (ja) コンピュータの保守システムおよび保守方法
JP5492593B2 (ja) Itシステムの変更作業時における操作逸脱防止支援システムおよび操作逸脱防止支援方法、ならびにそのためのプログラム
CN113032744B (zh) 一种数字水印一体机系统
CN112948204A (zh) 一种基于DataRobot技术的数据处理系统
JP7036603B2 (ja) 運用管理システム
JP2011028490A (ja) システム監視装置、システム監視方法、及びプログラム
CN117034368B (zh) 一种数据完整性的保护方法、装置、设备及存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230125

TRDD Decision of grant or rejection written
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20240124

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20240130

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240227

R151 Written notification of patent or utility model registration

Ref document number: 7446142

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151