[実施の形態1]
図1に、情報処理システムの例を示す。複数のコンピュータ101がネットワーク(例えば、LAN(Local Area Network))を介して接続している。ネットワークは、ファイアウォール105を介してインターネットと接続している。例えば、イントラネットによる情報処理システムを想定する。コンピュータ101は、例えばサーバコンピュータ又はクライアントコンピュータである。サーバコンピュータの機能は、任意である。サーバコンピュータは、例えばドメイン管理サーバ、Webサーバ、ファイルサーバ、Windows(登録商標)サーバ又はSambaサーバなどであってもよい。
各クライアントコンピュータは、各サーバコンピュータによるサービスを利用することがある。各クライアントコンピュータは、各サーバコンピュータで保持するデータを利用することがある。また、複数のサーバコンピュータが連携する場合もある。クライアントコンピュータ同士が、データを共有することもある。クライアントコンピュータが、他のクライアントコンピュータによるサービスを利用することもある。
つまり、コンピュータ101同士は、所定の条件の下で、任意にリモート操作を行うことがあるものとする。そのために、複数のコンピュータ101の間でSMBに基づく制御が行われる。SMBは、リモート操作の機能を提供するアプリケーション層のプロトコルの例である。リモート操作の機能を提供するアプリケーション層のプロトコルとして、更にDCE/RPC(Distributed Computing Environment / Remote Procedure Calls)に基づく制御を行うようにしてもよい。
本実施の形態では、ケルベロス認証方式によってユーザを認証する。ケルベロス認証は、共通鍵暗号法を用いたネットワーク認証方式である。ケルベロス認証は、一度だけユーザ認証を受ければ、複数のサービスを利用できるシングルサインオンの仕組みを提供する。以下に示すシーケンスにおいて、クライアントコンピュータとサーバコンピュータは、それぞれ自らの共通鍵でチケットを復号し、セッション鍵を取得することによって相互認証する。また、ケルベロス認証では、成りすましを防止するための時刻同期処理及びデータ秘匿化のための暗号化処理も行う。
チケット発行システム107は、ケルベロス認証方式に従ってユーザのアカウント及びアクセス権を一元的に管理する。また、チケット発行システム107は、クライアントコンピュータの共通鍵とサーバコンピュータの共通鍵とを保持する。チケット発行システム107は、これらの共通鍵によってクライアントコンピュータとサーバコンピュータとの身元を確認する。チケット発行システム107は、KDC(Key Distribution Center)又はドメインコントローラーと呼ばれることがある。チケット発行システム107は、認証サーバ109及びチケット発行サーバ111を含んでいる。認証サーバ109及びチケット発行サーバ111を、一体の装置に設けるようにしてもよい。
認証サーバ109は、ケルベロス認証方式におけるユーザ認証を行う。認証サーバ109は、AS(Authentication Server)と呼ばれることもある。
チケット発行サーバ111は、クライアントコンピュータがサーバコンピュータを利用するためのサービスチケットを発行する。サービスチケットは、クライアントコンピュータのID、タイムスタンプ及び有効期限を含んでいる。チケット発行サーバ111は、TGS(Ticket Granting Server)と呼ばれることもある。
本実施の形態におけるサービスチケットは、クレデンシャルの例である。同じくチケット発行サーバ111は、クレデンシャル発行装置の例である。また、同じくチケット発行システム107は、クレデンシャル発行システムの例である。
尚、クライアントコンピュータとサーバコンピュータとをプリンシパルと呼ぶことがある。また、同一の認証ポリシーが適用されるクライアントコンピュータとサーバコンピュータとのグループをレルムと呼ぶことがある。この例では、レルムはドメインと一致するものとする。
監視装置103は、例えばポートミラーリング対応のスイッチ又はネットワークタップを介して、ネットワークに接続している。監視装置103は、ネットワークを流れるパケットをキャプチャし、パケットを分析することによって、アカウント名が対応付けられたリモート操作のログを生成する。
図2に、シーケンスの例を示す。この例で、クライアントコンピュータ201は、サーバコンピュータ203にアクセスして、サーバコンピュータ203のサービスを利用するものと想定する。
クライアントコンピュータ201は、ケルベロス認証方式におけるユーザ認証(以下、最初の認証という。)のリクエストメッセージを認証サーバ109へ送る(S211)。当該リクエストメッセージは、クライアントコンピュータ201のユーザに割り当てられているアカウント名及びパスワードを含んでいる。
認証サーバ109は、当該リクエストメッセージに含まれるアカウント名及びパスワードに基づいて、最初の認証を行う。最初の認証が成功すると、認証サーバ109は、TGT(Ticket-granting Ticket)を生成し、TGTを含む成功のレスポンスメッセージをクライアントコンピュータ201へ送る(S213)。TGTは、サービスチケット発行を許可するチケットである。
クライアントコンピュータ201は、成功のレスポンスメッセージに含まれるTGTを保管する。クライアントコンピュータ201は、サーバコンピュータ203を利用するためのサービスチケット発行のリクエストメッセージをチケット発行サーバ111へ送る(S215)。当該リクエストメッセージには、TGT及びサーバコンピュータ203のサービス名が含まれている。
チケット発行サーバ111は、サービスチケット発行のリクエストメッセージに含まれるTGTを検証する。具体的には、チケット発行サーバ111は、TGTのタイムスタンプや有効期限を確認し、更にサーバコンピュータ203へのアクセス権を有するユーザであることを確認する。検証が成功すると、S211で認証したユーザがサーバコンピュータ203を利用するためのサービスチケットを生成する。そして、チケット発行サーバ111は、サービスチケットを含むレスポンスメッセージをクライアントコンピュータ201へ送る(S217)。当該レスポンスメッセージは、最初の認証で用いられたアカウント名を含んでいる。
クライアントコンピュータ201は、当該レスポンスメッセージを受信すると、SMB認証のリクエストメッセージをサーバコンピュータ203へ送る(S219)。当該リクエストメッセージは、サービスチケットを含んでいる。
サーバコンピュータ203は、サービスチケットに基づいてSMBにおけるユーザ認証(以下、SMB認証という。)を行う。サービスチケットが正当である場合には、SMB認証が成功する。SMB認証が成功すると、サーバコンピュータ203は、成功のレスポンスメッセージをクライアントコンピュータ201へ送る(S221)。
成功のレスポンスメッセージが送られると、クライアントコンピュータ201がリモート操作を行う準備が整う。この例では、クライアントコンピュータ201は、ファイルリードのリクエストメッセージをサーバコンピュータ203へ送る。(S223)。
サーバコンピュータ203は、当該リクエストメッセージに従って、ファイルを含むレスポンスメッセージをクライアントコンピュータ201へ送る(S225)。図2に示したファイルリードは、リモート操作の例であって、他のリモート操作が行われることもある。このようなシーケンスを前提として、監視装置103は、上述したメッセージに相当するパケットを分析する。
続いて、監視装置103の動作について説明する。図3に、監視装置103のモジュール構成例を示す。監視装置103は、キャプチャ部301、判別部303、第1特定部305、第1記録処理部307、第2記録処理部309、第3記録処理部311、第4記録処理部313、削除部315、時計部317、発行ログ記憶部321、コネクション記憶部323、認証ログ記憶部325、操作ログ記憶部327及びパケット格納部329を有する。
キャプチャ部301は、ネットワークを流れるパケットをキャプチャする。判別部303は、パケットの種類を判別する。第1特定部305は、コネクション特定処理を実行する。第1記録処理部307は、第1記録処理を実行する。第1記録処理では、クレデンシャル発行に関するデータが発行ログに記録される。第2記録処理部309は、第2記録処理を実行する。第2記録処理では、SMB認証に関するデータが認証ログに記録される。本実施の形態では、第2記録処理(A)が実行される。後述する実施の形態では、第2記録処理(B)が実行される。第3記録処理部311は、第3記録処理を実行する。第3記録処理では、リモートファイルアクセスに関するデータが操作ログに記録される。第4記録処理部313は、第4記録処理を実行する。第4記録処理では、リモートファイルアクセス以外のリモート操作に関するデータが操作ログに記録される。削除部315は、発行ログのデータを削除する。時計部317は、日付及び時刻を計測する。
発行ログ記憶部321は、発行ログを記憶する。コネクション記憶部323は、コネクションテーブルを記憶する。認証ログ記憶部325は、認証ログを記憶する。操作ログ記憶部327は、操作ログを記憶する。パケット格納部329は、キャプチャしたパケットを格納する。各ログ及びテーブルについては、後述する。
上述したキャプチャ部301、判別部303、第1特定部305、第1記録処理部307、第2記録処理部309、第3記録処理部311、第4記録処理部313、削除部315及び時計部317は、ハードウエア資源(例えば、図24)と、以下で述べる処理をプロセッサに実行させるプログラムとを用いて実現される。
上述した発行ログ記憶部321、コネクション記憶部323、認証ログ記憶部325、操作ログ記憶部327及びパケット格納部329は、ハードウエア資源(例えば、図24)を用いて実現される。
続いて、監視装置103における処理について説明する。図4に、メイン処理フローを示す。キャプチャ部301は、キャプチャ処理を開始する(S401)。キャプチャ処理で、キャプチャ部301は、監視装置103とネットワークとの間に設けられたポートミラーリング対応のスイッチ又はネットワークタップを介して、ネットワークを流れるパケットを取り込む。取り込んだパケットは、パケット格納部329に格納される。キャプチャ部301は、格納したパケットに、キャプチャした日時を付する。日時は、時計部317から得られる。
判別部303は、キャプチャしたパケットのうち、未処理のパケットを1つ特定する(S403)。判別部303は、例えばキャプチャした順にパケットを特定する。判別部303は、処理済みのパケットを破棄するようにしてもよい。未処理のパケットが無い場合に、判別部303は、次のパケットがキャプチャされるまで待機する。
判別部303は、特定したパケットがケルベロス認証プロトコルのパケットであるか否かを判定する(S405)。具体的には、判別部303は、当該パケットに設定されている送信元ポート番号が、ケルベロス認証に割り当てられている番号「88」である場合に、当該パケットがケルベロス認証プロトコルのパケットであると判定する。当該パケットがケルベロス認証プロトコルのパケットであると判定した場合には、第1記録処理部307は、第1記録処理を実行する(S407)。
第1記録処理について説明する前に、第1記録処理部307のモジュール構成例について説明する。図5に、第1記録処理部307のモジュール構成例を示す。第1記録処理部307は、第1設定部501及び第1抽出部503を有する。
第1設定部501は、発行ログの新たなレコードに各種データを設定する。第1抽出部503は、ケルベロス認証プロトコルのパケットから各種データを抽出する。
上述した第1設定部501及び第1抽出部503は、ハードウエア資源(例えば、図24)と、以下で述べる処理をプロセッサに実行させるプログラムとを用いて実現される。
図6に、第1記録処理フローを示す。第1記録処理部307は、発行ログに、新たなレコードを設ける(S601)。
図7に、発行ログの構成例を示す。この例における発行ログは、テーブル形式である。但し、発行ログは、テーブル形式以外の形式であってもよい。この例における発行ログは、サービスチケット発行のレスポンスメッセージに対応するレコードを有している。当該レコードは、日時を設定するためのフィールドと、送信元IPアドレスを設定するためのフィールドと、送信元ポート番号を設定するためのフィールドと、宛先IPアドレスを設定するためのフィールドと、宛先ポート番号を設定するためのフィールドと、クライアントレルム名とアカウント名とを設定するためのフィールドと、サーバレルム名とサーバ名とを設定するためのフィールドと、サービスチケットを設定するためのフィールドとを有している。
日時は、当該レスポンスメッセージのパケットをキャプチャした日時である。送信元IPアドレス及び宛先IPアドレスは、当該レスポンスメッセージのIPヘッダーから抽出される。送信元ポート番号及び宛先ポート番号は、当該レスポンスメッセージのTCP(Transmission Control Protocol)ヘッダー又はUDP(User Datagram Protocol)ヘッダー(以下、UDP/TCPヘッダーと記す。)から抽出される。アカウント名は、サービスチケットを要求したアカウントを識別する。クライアントレルム名は、クライアントコンピュータ201が属するレルムを識別する。サーバ名は、サーバコンピュータ203を識別する。サーバレルム名は、サーバコンピュータ203が属するレルムを識別する。この例では、クライアントレルム名とアカウント名とを一体として記録しているが、クライアントレルム名とアカウント名とを別個に記録するようにしてもよい。同じくサーバレルム名とサーバ名とを一体として記録しているが、サーバレルム名とサーバ名とを別個に記録するようにしてもよい。
図6の説明に戻る。第1設定部501は、新たなレコードに、S403で特定したパケットがキャプチャされた日時を設定する(S603)。
第1抽出部503は、当該パケットのIPヘッダーから送信元IPアドレス及び宛先IPアドレスを抽出し、第1設定部501は、抽出した送信元IPアドレス及び宛先IPアドレスを、新たなレコードに設定する(S605)。第1抽出部503は、当該パケットのUDP/TCPヘッダーから送信元ポート番号及び宛先ポート番号を抽出し、第1抽出部503は、抽出した送信元ポート番号及び宛先ポート番号を、新たなレコードに設定する(S607)。
第1抽出部503は、当該パケットからアカウント名、クライアントレルム名、サーバ名及びサーバレルム名を抽出し、第1設定部501は、抽出したアカウント名、クライアントレルム名、サーバ名及びサーバレルム名を、新たなレコードに設定する(S609)。
第1抽出部503は、当該パケットからサービスチケットを抽出し、第1設定部501は、抽出したサービスチケットを、新たなレコードに設定する(S611)。第1記録処理を終えると、図4に示したS403の処理に戻って、上述した処理を繰り返す。
図4の説明に戻る。S405において、S403で特定したパケットがケルベロス認証プロトコルのパケットではないと判定した場合には、判別部303は、当該パケットがSMBプロトコルのパケットであるか否かを判定する(S409)。具体的には、判別部303は、当該パケットにプロトコルがSMBであることを示すデータが設定されている場合に、当該パケットがSMBパケットであると判定する。当該パケットがSMBパケットではないと判定した場合には、S403に示した処理に戻って、上述した処理を繰り返す。SMBパケットとは、SMBプロトコルによる制御で用いられるパケットのことである。
図8に、SMBパケットの構成を示す。図8に示すように、MAC(Media Access Control)ヘッダーには、宛先MACアドレスが設定されるフィールドと、送信元MACアドレスが設定されるフィールドとが含まれている。送信元MACアドレスは、当該パケットを送ったコンピュータ101のMACアドレスである。宛先MACアドレスは、当該パケットを受けるコンピュータ101のMACアドレスである。
また、IPヘッダーには、送信元IPアドレスが設定されるフィールドと、宛先IPアドレスが設定されるフィールドとが含まれている。送信元IPアドレスは、当該パケットを送ったコンピュータ101のIPアドレスである。宛先IPアドレスは、当該パケットを受けるコンピュータ101のIPアドレスである。
SMBパケットがTCPに従って送られる場合に、当該パケットは、TCPヘッダーを有する。SMBパケットがUDPに従って送られる場合に、当該パケットは、UDPヘッダーを有する。TCPヘッダー又はUDPヘッダーのいずれの場合であっても、当該ヘッダーには、送信元ポート番号が設定されるフィールドと、宛先ポート番号が設定されるフィールドとが含まれている。送信元ポート番号は、当該パケットを送り出したポートの番号である。宛先ポート番号は、当該パケットを受けるポートの番号である。
尚、この例で、NetBiosに関するヘッダーは省略する。
SMBパケットは、SMBヘッダー及びSMBボディを有する。SMBヘッダーには、プロトコルが設定されるフィールドと、オペレーションコードが設定されるフィールドと、パイプ名が設定されるフィールドとが含まれている。プロトコルには、SMBの識別子が設定される。尚、SMBの識別子は、SMBのバージョンを含む。オペレーションコードは、SMBにおけるコマンド(リモート操作に相当する。)の識別子である。パイプ名は、データ伝送形態の一つであるパイプの名前である。パイプ名は、サービスに対して一意に定められている。従って、利用されるサービスは、パイプ名によって特定される。
SMBヘッダーには、各種の属性データが含まれる。但し、属性項目及び格納位置は、SMBパケットの種類によって異なる場合がある。SMBパケットの種類は、オペレーションコードとパイプ名との両方又は一方によって判別される。属性データの例は、後述する。
図4の説明に戻る。S409において、S403で特定したパケットがSMBパケットであると判定した場合には、判別部303は、更に、S403で特定したパケットがSMB認証のリクエストメッセージに該当するか否かを判定する(S411)。具体的には、判別部303は、SMBヘッダーに、SMB認証のオペレーションコード(SessionSetup)が設定されている場合に、当該パケットがSMB認証のリクエストメッセージに該当すると判定する。
当該パケットがSMB認証のリクエストメッセージに該当すると判定した場合には、第2記録処理部309は、第2記録処理を実行する(S413)。
第2記録処理について説明する前に、SMB認証のリクエストメッセージの構成及び第2記録処理部309のモジュール構成例について説明する。
図9に、SMB認証のリクエストメッセージの例を示す。この例では、IPアドレスによってコンピュータ101を判別するので、MACアドレスについては言及しない。但し、MACアドレスによってコンピュータ101を判別するようにしてもよい。
図9に示したSMB認証のリクエストメッセージは、IPアドレス「x.x.x.10」のコンピュータ101から、IPアドレス「x.x.x.30」のコンピュータ101へ送られたものと想定する。従って、送信元IPアドレスのフィールドには「x.x.x.10」が設定され、宛先IPアドレスのフィールドには「x.x.x.30」が設定されている。
当該リクエストメッセージは、宛先のコンピュータ101におけるポート番号「P2」のポートに対して、送信元のコンピュータ101におけるポート番号「P1」のポートから送られたものと想定する。従って、送信元ポート番号のフィールドには「P1」が設定され、宛先ポート番号のフィールドには「P2」が設定されている。
この例におけるSMB認証の手順は、SMBのバージョン2に準拠するものとする。従って、プロトコルのフィールドには「SMB2」が設定されている。オペレーションコードの「0x01」は、認証の要求に相当する。プロバイダーは、認証方式を特定する。プロバイダーは、セキュリティブロブと呼ばれることもある。この例では、「ケルベロス認証方式」が設定されている。尚、プロバイダーに「NTLM(NT LAN Manager)」が設定されていることもあるが、本実施の形態では、NTLMによる認証の場合には、ロギングの対象としない。
キャプチャしたパケットに設定されているプロトコルが「SMB2」であり、同じくオペレーションコードが「0x01」であるという条件と合致する場合に、当該パケットは、SMB認証のリクエストメッセージに該当すると判定される。
図10に、第2記録処理部309のモジュール構成例を示す。第2記録処理部309は、第2設定部1001、第2抽出部1003、第1判定部1005及び第1探索部1007を有する。
第2設定部1001は、認証ログの新たなレコードに各種データを設定する。第2抽出部1003は、SMB認証のリクエストメッセージに該当するパケットから各種データを抽出する。第1判定部1005は、SMB認証のリクエストメッセージにおけるプロバイダーのフィールドに「ケルベロス認証方式」が設定されているか否かを判定する。第1探索部1007は、発行ログにおいて、特定のサービスチケットを含むレコードを探索する。
上述した第2設定部1001、第2抽出部1003、第1判定部1005及び第1探索部1007は、ハードウエア資源(例えば、図24)と、以下で述べる処理をプロセッサに実行させるプログラムとを用いて実現される。
続いて、第2記録処理(A)について説明する。図11に、第2記録処理(A)フローを示す。第1判定部1005は、プロバイダーのフィールドに「ケルベロス認証方式」が設定されているか否かを判定する(S1101)。プロバイダーのフィールドに「ケルベロス認証方式」が設定されていないと判定した場合には、第2記録処理(A)を終え、図4に示したS403の処理に戻って、上述した処理を繰り返す。
一方、プロバイダーのフィールドに「ケルベロス認証方式」が設定されていると判定した場合には、第2抽出部1003は、S403で特定したパケットからサービスチケットを抽出する(S1103)。第1探索部1007は、発行ログにおいて、抽出したサービスチケットと同じサービスチケットを含むレコードを探索する(S1105)。
第1判定部1005は、上記サービスチケットを含むレコードが有ったか否かを判定する(S1107)。上記サービスチケットを含むレコードが無かったと判定した場合には、第2記録処理(A)を終え、図4に示したS403の処理に戻って、上述した処理を繰り返す。
一方、上記サービスチケットを含むレコードが有ったと判定した場合には、第2記録処理部309は、認証ログに、新たなレコードを設ける(S1109)。
図12に、認証ログの構成例を示す。この例における認証ログは、テーブル形式である。但し、認証ログは、テーブル形式以外の形式であってもよい。この例における認証ログは、ケルベロス認証方式によるSMB認証のリクエストメッセージに対応するレコードを有している。当該レコードは、日時を設定するためのフィールドと、送信元IPアドレスを設定するためのフィールドと、送信元ポート番号を設定するためのフィールドと、宛先IPアドレスを設定するためのフィールドと、宛先ポート番号を設定するためのフィールドと、コネクションIDを設定するためのフィールドと、クライアントレルム名とアカウント名とを設定するためのフィールドと、サーバレルム名とサーバ名とを設定するためのフィールドとを有している。
日時は、当該リクエストメッセージのパケットをキャプチャした日時である。送信元IPアドレス及び宛先IPアドレスは、当該リクエストメッセージのIPヘッダーから抽出される。送信元ポート番号及び宛先ポート番号は、当該リクエストメッセージのTCP/UDPヘッダーから抽出される。アカウント名は、サービスチケット発行を要求したアカウントを識別する。クライアントレルム名は、クライアントコンピュータ201が属するレルムを識別する。サーバ名は、サーバコンピュータ203を識別する。サーバレルム名は、サーバコンピュータ203が属するレルムを識別する。この例では、クライアントレルム名とアカウント名とを一体として記録しているが、クライアントレルム名とアカウント名とを別個に記録するようにしてもよい。同じくサーバレルム名とサーバ名とを一体として記録しているが、サーバレルム名とサーバ名とを別個に記録するようにしてもよい。
図11の説明に戻る。第2設定部1001は、新たなレコードに、S403で特定したパケットがキャプチャされた日時を設定する(S1111)。
第2抽出部1003は、当該パケットのIPヘッダーから送信元IPアドレス及び宛先IPアドレスを抽出し、第2設定部1001は、抽出した送信元IPアドレス及び宛先IPアドレスを、新たなレコードに設定する(S1113)。第2抽出部1003は、当該パケットのUDP/TCPヘッダーから送信元ポート番号及び宛先ポート番号を抽出し、第2設定部1001は、抽出した送信元ポート番号及び宛先ポート番号を、新たなレコードに設定する(S1115)。
第1特定部305は、コネクション特定処理を実行する(S1117)。コネクション特定処理において、第1特定部305は、S403で特定したパケットが伝送されるコネクションを特定する。
図13に、コネクション特定処理フローを示す。第1特定部305は、S1113で抽出した送信元IPアドレス、S1115で抽出した送信元ポート番号、S1113で抽出した宛先IPアドレス及びS1115で抽出した宛先ポート番号の組み合わせと同じ組み合わせが、コネクションテーブルに既に登録されているか否かを判定する(S1301)。
図14に、コネクションテーブルの構成例を示す。この例におけるコネクションテーブルは、コネクションに対応するレコードを有している。当該レコードは、コネクションIDを設定するためのフィールドと、送信元IPアドレスを設定するためのフィールドと、送信元ポート番号を設定するためのフィールドと、宛先IPアドレスを設定するためのフィールドと、宛先ポート番号を設定するためのフィールドとを有している。
コネクションIDは、コネクションを識別する。コネクションは、送信元IPアドレス、送信元ポート番号、宛先IPアドレス及び宛先ポート番号の組み合わせによって特定される。
図13の説明に戻る。S1301において、上記組み合わせが、コネクションテーブルに登録されていないと判定した場合には、第1特定部305は、コネクションテーブルに新たなレコードを設ける(S1303)。第1特定部305は、新たなレコードに新たなコネクションIDを割り当てる(S1305)。第1特定部305は、S1113で抽出した送信元IPアドレス、S1115で抽出した送信元ポート番号、S1113で抽出した宛先IPアドレス及びS1115で抽出した宛先ポート番号を、新たなレコードに設定する(S1307)。そして、図11に示した第2記録処理(A)に復帰する。この場合には、第2記録処理(A)で、S1305で割り当てられたコネクションIDによってコネクションを特定する。
一方、S1301において、上記組み合わせが、コネクションテーブルが登録されていると判定した場合には、第1特定部305は、上記組み合わせに対応するコネクションIDを特定する(S1309)。そして、図11に示した第2記録処理(A)の処理に復帰する。
図11の説明に戻る。第2設定部1001は、S1117の処理で特定されたコネクションIDを、S1109で設けた新たなレコードに設定する(S1119)。
第2抽出部1003は、S1105で探索されたレコードに設定されているアカウント名、クライアントレルム名、サーバ名及びサーバレルム名を抽出し、第2設定部1001は、抽出したアカウント名、クライアントレルム名、サーバ名及びサーバレルム名を、新たなレコードに設定する(S1121)。第2記録処理(A)を終えると、図4に示したS403の処理に戻って、上述した処理を繰り返す。
図4の説明に戻る。S411において、S403で特定したパケットがSMB認証のリクエストメッセージに該当しないと判定した場合には、判別部303は、当該パケットがリモートファイルアクセスのリクエストメッセージに該当するか否かを判定する(S415)。具体的には、判別部303は、SMBヘッダーに、リモートファイルアクセスのオペレーションコード(NTCreate)が設定されている場合に、当該パケットが、リモートファイルアクセスのリクエストメッセージに該当すると判定する。尚、リモートファイルアクセスは、複数のリクエストメッセージによって成立する。従って、リモートファイルアクセスの所定シーケンスに従って、「NTCreate」が設定されているパケット(以下では、1回目のリクエストメッセージという。)に続くパケット(以下では、2回目のリクエストメッセージという。)もリモートファイルアクセスのリクエストメッセージに該当すると判定する。
図15に、ファイルリードのリクエストメッセージの例を示す。リモート操作の種類によって、リクエストメッセージの送出が1回で終わる場合と、リモート操作の処理が完了するまでにリクエストメッセージを複数回送出する場合とがある。図15及び後述する図20に示す例は、いずれもリクエストメッセージを複数回送出する場合に相当する。
上段に示したファイルリードにおける1回目のリクエストメッセージは、IPアドレス「x.x.x.10」のコンピュータ101から、IPアドレス「x.x.x.30」のコンピュータ101へ送られたものと想定する。従って、送信元IPアドレスのフィールドには「x.x.x.10」が設定され、宛先IPアドレスのフィールドには「x.x.x.30」が設定されている。尚、下段に示したファイルリードにおける2回目のリクエストメッセージの場合も、同様である。
上段に示したファイルリードにおける1回目のリクエストメッセージは、宛先のコンピュータ101におけるポート番号「P2」のポートに対して、送信元のコンピュータ101におけるポート番号「P1」のポートから送られたものと想定する。従って、送信元ポート番号のフィールドには「P1」が設定され、宛先ポート番号のフィールドには「P2」が設定されている。尚、下段に示したファイルリードにおける2回目のリクエストメッセージの場合も、同様である。
この例におけるファイルリードの手順は、SMBのバージョン1に準拠するものとする。従って、プロトコルのフィールドには「SMB」が設定されている。
1回目のリクエストメッセージにおけるオペレーションコードの「0xa2」は、NTCreateを表す。バージョン1のSMBの場合におけるオペレーションコードは、1byteである。1回目のリクエストメッセージにおけるオペレーションコード「0x01」である場合には、ファイルアクセスの要求であること意味する。2回目のリクエストメッセージにおけるオペレーションコードの「0x2e」は、ファイルアクセスの種類がファイルリードであることを示している。
1回目のリクエストメッセージに設定されているオペレーションコードが「0xa2」であり、2回目のリクエストメッセージ(1回目のリクエストメッセージと、プロトコル、送信元IPアドレス、送信元ポート番号、宛先IPアドレス及び宛先ポート番号が共通する。)に設定されているオペレーションコードが「0x2e」である場合に、これらのリクエストメッセージは、ファイルリードを要求するものであると判定される。尚、ファイルパスは、1回目のリクエストメッセージに設定されている。
図4の説明に戻る。当該パケットがリモートファイルアクセスのリクエストメッセージに該当すると判定した場合には、第3記録処理部311は、第3記録処理を実行する(S417)。
第3記録処理について説明する前に、第3記録処理部311のモジュール構成について説明する。図16に、第3記録処理部311のモジュール構成例を示す。第3記録処理部311は、第3設定部1601、第3抽出部1603、第2判定部1605、第2特定部1607及び第2探索部1609を有する。
第3設定部1601は、操作ログの新たなレコードに各種データを設定する。第3抽出部1603は、リモートファイルアクセスのリクエストメッセージに該当するパケットから各種データを抽出する。第2判定部1605は、処理対象のパケットが、1回目のリクエストメッセージであるか否かを判定する。第2特定部1607は、コマンド名を特定する。第2探索部1609は、認証ログにおいて、特定のコネクションIDを含むレコードを探索する。
上述した第3設定部1601、第3抽出部1603、第2判定部1605、第2特定部1607及び第2探索部1609は、ハードウエア資源(例えば、図24)と、以下で述べる処理をプロセッサに実行させるプログラムとを用いて実現される。
図17に、第3記録処理フローを示す。第3記録処理では、リモートファイルアクセスに係る1回目のリクエストメッセージ及び2回目のリクエストメッセージに基づくデータを、操作ログに設定する。第2判定部1605は、S403で特定したパケットが、オペレーションコードに「NTCreate」が設定されているパケット、つまり1回目のリクエストメッセージであるか否かを判定する(S1701)。
当該パケットが、1回目のリクエストメッセージであると判定した場合には、第3記録処理部311は、操作ログに新たなレコードを設ける(S1703)。
図19に、操作ログの構成例を示す。この例における操作ログは、テーブル形式である。但し、操作ログは、テーブル形式以外の形式であってもよい。この例における操作ログは、リモート操作のリクエストメッセージに対応するレコードを有している。当該レコードは、日時を設定するためのフィールドと、送信元IPアドレスを設定するためのフィールドと、送信元ポート番号を設定するためのフィールドと、宛先IPアドレスを設定するためのフィールドと、宛先ポート番号を設定するためのフィールドと、コネクションIDを設定するためのフィールドと、コマンド名とオプションとを設定するためのフィールドと、属性データを設定するためのフィールドとを有している。
この例では、属性データを設定するためのフィールドが、クライアントレルム名とアカウント名とを設定するためのフィールドと、サーバレルム名とサーバ名とを設定するためのフィールドと、パス又はアカウント名を設定するためのフィールドに分かれている。但し、他の属性項目を設定するためのフィールドを有するようにしてもよい。また、属性データを設定するためのフィールドを一体として、一又は複数の任意の属性を設定するようにしてもよい。
日時は、当該リクエストメッセージのパケットをキャプチャした日時である。送信元IPアドレスは、送信元IPアドレス及び宛先IPアドレスは、当該リクエストメッセージのIPヘッダーから抽出される。送信元ポート番号及び宛先ポート番号は、当該リクエストメッセージのTCP/UDPヘッダーから抽出される。コネクションIDは、当該リクエストメッセージが伝送されたコネクションを識別する。コマンド名とオプションとは、リモート操作の内容を示す。オプションは、設定されない場合がある。クライアントレルム名は、クライアントコンピュータ201が属するレルムを識別する。サーバ名は、サーバコンピュータ203を識別する。サーバレルム名は、サーバコンピュータ203が属するレルムを識別する。この例では、クライアントレルム名とアカウント名とを一体として記録しているが、クライアントレルム名とアカウント名とを別個に記録するようにしてもよい。同じくサーバレルム名とサーバ名とを一体として記録しているが、サーバレルム名とサーバ名とを別個に記録するようにしてもよい。この例で、コマンド名が「ファイルリード」である場合には、パス又はアカウント名のフィールドにファイルパスが設定される。同じく、コマンド名が「ユーザ登録」である場合には、パス又はアカウント名のフィールドにアカウント名が設定される。
図17の説明に戻る。第3設定部1601は、新たなレコードに、当該パケットがキャプチャされた日時を設定する(S1705)。
第3抽出部1603は、当該パケットのIPヘッダーから送信元IPアドレス及び宛先IPアドレスを抽出し、第3設定部1601は、抽出した送信元IPアドレス及び宛先IPアドレスを、新たなレコードに設定する(S1707)。更に、第3抽出部1603は、当該パケットのTCPヘッダー或いはUDPヘッダーから送信元ポート番号及び宛先ポート番号を抽出し、第3設定部1601は、抽出した送信元ポート番号及び宛先ポート番号を、新たなレコードに設定する(S1709)。
第1特定部305は、コネクションテーブルを参照して、送信元IPアドレス、送信元ポート番号、宛先IPアドレス及び宛先ポート番号の組み合わせに対応するコネクションIDを特定する(S1711)。第3設定部1601は、新たなレコードに、コネクションIDを設定する(S1713)。
第3抽出部1603は、当該パケットのSMBヘッダーからファイルパスを抽出し、第3設定部1601は、抽出したファイルパスを、新たなレコードにおけるパス又はアカウント名のフィールドに設定する(S1715)。以上で、1回目のリクエストメッセージに基づくデータの設定を終える。そして、一旦図4に示したS403の処理に戻って、上述した処理を繰り返す。
一方、S1701において、当該パケットが、1回目のリクエストメッセージではないと判定した場合、つまり当該パケットが、2回目のリクエストメッセージである場合には、端子Aを介して図18のS1801に示した処理に移る。
第2特定部1607は、オペレーションコードに基づいてコマンド名を特定する(S1801)。例えば、オペレーションコードが「0x2e」であれば、ファイルリードのコマンドが特定される。第3設定部1601は、1回目のリクエストメッセージに基づきデータが設定されているレコードに、特定されたコマンド名を設定する(S1803)。
第2探索部1609は、認証ログにおいて、1回目のリクエストメッセージに対するS1711の処理で特定したコネクションIDと同じコネクションIDを含むレコードを探索する(S1805)。
第3抽出部1603は、探索されたレコードに設定されているアカウント名、クライアントレルム名、サーバ名及びサーバレルム名を抽出し、第3設定部1601は、操作ログの新たなレコードに、抽出したアカウント名、クライアントレルム名、サーバ名及びサーバレルム名を設定する(S1807)。端子Bを介して、図17に示した処理に戻る。第3記録処理を終えると、図4に示したS403の処理に戻って、上述した処理を繰り返す。
図4の説明に戻る。S415において、S403で特定したパケットがリモートファイルアクセスのリクエストメッセージに該当しないと判定した場合には、判別部303は、その他のリモート操作、つまりリモートファイルアクセスを除くリモート操作(以下の図4の説明において、その他のリモート操作という。)のリクエストメッセージに該当するか否かを判定する(S419)。具体的には、判別部303は、SMBヘッダーに設定されているオペレーションコード及びパイプ名の組み合わせ(或いは、オペレーションコード又はパイプ名の一方)が、その他のリモート操作として想定されるいずれかのパターンと一致する場合に、当該パケットがその他のリモート操作のリクエストメッセージに該当すると判定する。
当該パケットがその他のリモート操作のリクエストメッセージに該当すると判定した場合には、第4記録処理部313は、第4記録処理を実行する(S421)。
この処理例では、1つのリクエストメッセージによって、その他のリモート操作が成立するものと想定する。但し、その他のリモート操作の中には、リモートファイルアクセスの場合と同様に、複数のリクエストメッセージによって成立するものもある。その場合には、リモートファイルアクセスの場合と同様に、処理を複数回に分ける。つまり、1回目のリクエストメッセージと2回目のリクエストメッセージ(3回目以降のリクエストメッセージを含む場合もある。)を、それぞれ当該その他のリモート操作のリクエストメッセージに該当するものとする。
以下では、ユーザ登録の例について説明する。第4記録処理について説明する前に、ユーザ登録のリクエストメッセージ及び第4記録処理部313のモジュール構成について説明する。
図20に、ユーザ登録のリクエストメッセージの例を示す。上段に示したユーザ登録における1回目のリクエストメッセージは、IPアドレス「x.x.x.13」のコンピュータ101から、IPアドレス「x.x.x.25」のコンピュータ101へ送られたものと想定する。従って、送信元IPアドレスのフィールドには「x.x.x.13」が設定され、宛先IPアドレスのフィールドには「x.x.x.25」が設定されている。尚、下段に示したファイルリードにおける2回目のリクエストメッセージの場合も、同様である。
この例におけるユーザ登録の手順は、SMBのバージョン2に準拠するものとする。従って、プロトコルのフィールドには「SMB2」が設定されている。
1回目のリクエストメッセージに設定されているオペレーションコードが「0x0005」であり、同じパケットに設定されているパイプ名が「samr」であり、且つ2回目のリクエストメッセージ(1回目のリクエストメッセージと、プロトコル、送信元IPアドレス、送信元ポート番号、宛先IPアドレス及び宛先ポート番号が共通する。)に設定されているオペレーションコードが「0x0032」である場合に、これらのリクエストメッセージは、ユーザ登録を要求するものであると判定される。尚、バージョン2のSMBの場合におけるオペレーションコードは、2bytesである。アカウント名は、2回目のリクエストメッセージに設定されている。
図21に、第4記録処理部313のモジュール構成例を示す。第4記録処理部313は、第4設定部2101、第4抽出部2103、第3特定部2105及び第3探索部2107を有する。
第4設定部2101は、操作ログの新たなレコードに各種データを設定する。第4抽出部2103は、リモートファイルアクセス以外のリモート操作のリクエストメッセージに該当するパケットから各種データを抽出する。第3特定部2105は、コマンド名を特定する。第3探索部2107は、認証ログにおいて、特定のコネクションIDを含むレコードを探索する
上述した第4設定部2101、第4抽出部2103、第3特定部2105及び第3探索部2107は、ハードウエア資源(例えば、図24)と、以下で述べる処理をプロセッサに実行させるプログラムとを用いて実現される。
続いて、第4記録処理について説明する。図22に、第4記録処理フローを示す。第4記録処理部313は、操作ログに新たなレコードを設ける(S2201)。第4設定部2101は、新たなレコードに、リモートファイルアクセス以外のリモート操作のリクエストメッセージに相当するパケットがキャプチャされた日時を設定する(S2203)。
第4抽出部2103は、当該パケットのIPヘッダーから送信元IPアドレス及び宛先IPアドレスを抽出し、第4設定部2101は、抽出した送信元IPアドレス及び宛先IPアドレスを、新たなレコードに設定する(S2205)。更に、第4抽出部2103は、当該パケットのUDP/TCPヘッダーから送信元ポート番号及び宛先ポート番号を抽出し、第4設定部2101は、抽出した送信元ポート番号及び宛先ポート番号を、新たなレコードに設定する(S2207)。
第1特定部305は、コネクションテーブルを参照して、送信元IPアドレス、送信元ポート番号、宛先IPアドレス及び宛先ポート番号の組み合わせに対応するコネクションIDを特定する(S2209)。第4設定部2101は、新たなレコードに、コネクションIDを設定する(S2211)。
第3特定部2105は、オペレーションコード及び/又はサービス識別子に基づいてコマンド名を特定する(S2213)。具体的には、第3特定部2105は、所定のルールに従って、オペレーションコード及びパイプ名の組み合わせ(或いは、オペレーションコード又はパイプ名の一方)に対応するリモート操作のコマンド名(又は、コマンド名とオプションの組み合わせ)を特定する。
第4設定部2101は、特定したコマンド名(又は、コマンド名とオプションの組み合わせ)を、新たなレコードに設定する(S2215)。
尚、1回目のリクエストメッセージと2回目のリクエストメッセージ(3回目以降のリクエストメッセージを含む場合もある。)によって、コマンド名(又は、コマンド名とオプションの組み合わせ)を特定する場合には、第3記録処理の場合と同様に、後続のリクエストメッセージに対する処理を行う段階で、コマンド名(又は、コマンド名とオプションの組み合わせ)を特定する。
第3探索部2107は、認証ログにおいて、S2209の処理で特定したコネクションIDと同じコネクションIDを含むレコードを探索する(S2217)。
第4抽出部2103は、探索されたレコードに設定されているアカウント名、クライアントレルム名、サーバ名及びサーバレルム名を抽出し、第4設定部2101は、操作ログの新たなレコードに、抽出したアカウント名、クライアントレルム名、サーバ名及びサーバレルム名を設定する(S2219)。
第4抽出部2103は、S2213で特定したコマンド名(又は、コマンド名とオプションの組み合わせ)に応じた所定のルールに従って、アカウント名以外の属性データを抽出する。そして、第4設定部2101は、抽出した属性データを、新たなレコードの属性データのフィールドに設定する(S2221)。
第4抽出部2103は、SMBボディから属性データを取得するようにしてもよい。また、抽出すべき属性データが無い場合には、S2221の処理を省略するようにしてもよい。
2回目のリクエストメッセージ(3回目以降のリクエストメッセージを含む場合もある。)に抽出すべき属性データが含まれる場合には、後続のリクエストメッセージに対する処理を行う段階で、S2221の処理を行うようにしてもよい。
尚、後続のリクエストメッセージに対しても分析を行う場合には、リクエストメッセージの順位を判別して、各順位に応じた処理を行うようにしてもよい。第4記録処理を終えると、図4に示したS403の処理に戻って、上述した処理を繰り返す。
図4の説明に戻る。S419において、S403で特定したパケットが、その他のリモート操作のリクエストメッセージに該当しないと判定した場合には、当該パケットはログ対象に該当しないと看做す。従って、そのままS403に示した処理に戻って、上述した処理を繰り返す。
本実施の形態によれば、チケット発行サーバ111から発行されたサービスチケットをに基づくリモート操作を行ったアカウントを特定できる。また、リモート操作の記録に、認証サーバ109で認証したアカウントを対応付けておけば、不正なリモート操作を特定することに役立つという面がある。
[実施の形態2]
本実施の形態では、処理を終えたサービスチケットを削除する例について説明する。図4のS413において、図11に示した第2記録処理(A)に代えて、第2記録処理(B)を実行する。図23に、第2記録処理(B)フローを示す。S1101乃至S1121の処理は、第2記録処理(A)の場合と同様である。
S1121の処理に続いて、削除部315は、S1105において探索された発行ログのレコードを削除する(S2301)。
本実施の形態によれば、記録するデータ量を抑えられる。
以上本発明の実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、上述の機能ブロック構成はプログラムモジュール構成に一致しない場合もある。
また、上で説明した各記憶領域の構成は一例であって、上記のような構成でなければならないわけではない。さらに、処理フローにおいても、処理結果が変わらなければ、処理の順番を入れ替えることや複数の処理を並列に実行させるようにしても良い。
なお、上で述べた監視装置103は、コンピュータ装置であって、図24に示すように、メモリ2501とCPU(Central Processing Unit)2503とハードディスク・ドライブ(HDD:Hard Disk Drive)2505と表示装置2509に接続される表示制御部2507とリムーバブル・ディスク2511用のドライブ装置2513と入力装置2515とネットワークに接続するための通信制御部2517とがバス2519で接続されている。オペレーティング・システム(OS:Operating System)及び本実施例における処理を実施するためのアプリケーション・プログラムは、HDD2505に格納されており、CPU2503により実行される際にはHDD2505からメモリ2501に読み出される。CPU2503は、アプリケーション・プログラムの処理内容に応じて表示制御部2507、通信制御部2517、ドライブ装置2513を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ2501に格納されるが、HDD2505に格納されるようにしてもよい。本発明の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク2511に格納されて頒布され、ドライブ装置2513からHDD2505にインストールされる。インターネットなどのネットワーク及び通信制御部2517を経由して、HDD2505にインストールされる場合もある。このようなコンピュータ装置は、上で述べたCPU2503、メモリ2501などのハードウエアとOS及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
以上述べた本発明の実施の形態をまとめると、以下のようになる。
本実施の形態に係るネットワーク監視方法は、(A)クレデンシャル発行装置の通信データから、発行されたクレデンシャルと、当該クレデンシャルを要求したアカウントの識別データとを抽出し、(B)上記クレデンシャルを含むリモート操作プロトコルの認証要求が伝送されたコネクションを特定し、(C)上記コネクションにおけるリモート操作の記録に上記識別データを対応付ける処理を含む。
このようにすれば、クレデンシャル発行装置から発行されたクレデンシャルに基づくリモート操作を行ったアカウントを特定できる。
更に、抽出された上記クレデンシャルと上記識別データとを対応付けて記録し、上記コネクションを特定した場合に、上記コネクションと上記識別データとを対応付けて記録し、上記クレデンシャルを削除するようにしてもよい。
このようにすれば、記録するデータ量を抑えられる。
なお、上記方法による処理をコンピュータに行わせるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、CD−ROM、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納されるようにしてもよい。尚、中間的な処理結果は、一般的にメインメモリ等の記憶装置に一時保管される。
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
クレデンシャル発行装置の通信データから、発行されたクレデンシャルと、当該クレデンシャルを要求したアカウントの識別データとを抽出し、
前記クレデンシャルを含むリモート操作プロトコルの認証要求が伝送されたコネクションを特定し、
前記コネクションにおけるリモート操作の記録に前記識別データを対応付ける
処理を、コンピュータに実行させるネットワーク監視プログラム。
(付記2)
更に、
抽出された前記クレデンシャルと前記識別データとを対応付けて記録し、
前記コネクションを特定した場合に、前記コネクションと前記識別データとを対応付けて記録し、前記クレデンシャルを削除する
処理を、コンピュータに実行させる付記1記載のネットワーク監視プログラム。
(付記3)
クレデンシャル発行装置の通信データから、発行されたクレデンシャルと、当該クレデンシャルを要求したアカウントの識別データとを抽出し、
前記クレデンシャルを含むリモート操作プロトコルの認証要求が伝送されたコネクションを特定し、
前記コネクションにおけるリモート操作の記録に前記識別データを対応付ける
処理を含み、コンピュータにより実行されるネットワーク監視方法。
(付記4)
クレデンシャル発行装置の通信データから、発行されたクレデンシャルと、当該クレデンシャルを要求したアカウントの識別データとを抽出する抽出部と、
前記クレデンシャルを含むリモート操作プロトコルの認証要求が伝送されたコネクションを特定する特定部と、
前記コネクションにおけるリモート操作の記録に前記識別データを対応付ける対応付け部と
を有するネットワーク監視装置。