ページの先頭行へ戻る
Interstage Application Server セキュリティシステム運用ガイド

7.1 アクセスログ

  各システムの保護資産へのアクセスについては以下のセキュリティポリシーを設定してセキュリティ対策を実施する必要があります。何らかの原因でポリシーに違反した場合には不正アクセスの可能性があります。本製品では、「いつ」「どこで」「だれが」「なにを」「どうした」という情報が監査ログに蓄積されるため、万が一不正アクセスが発生してしまった場合でも迅速に追跡調査が行えます。

  

セキュリティポリシー

いつ

アクセスできる時間帯を曜日ごとなどに定める

どこで

アクセスに用いるPCや端末をネットワークのアドレスや端末番号などで制限する

だれが

使える人だけにIDを発行し、パスワードで本人であることを確認する

なにを

IDごとにアクセスできる情報を限定する

どうした

IDごとに照会、更新、追加、削除などのうち、どれができるかを限定する

  InterstageとSymfowareが連携し、Symfowareの監査ログを確認するだけで、だれがどこのWebサーバに侵入して不正アクセスしたかを特定できます。

  アプリケーションを修正しなくても各サービス(Webサービス、Servletサービスなど)にアクセスした時の情報が自動的に各監査ログに出力されます。このため、業務アプリケーションへの不正アクセスが発覚した場合に、不正アクセス経路の迅速な特定が可能となります。この時に採取される監査ログをアクセスログと呼びます。

  ここでは、以下について説明します。

アクセスログとして採取される情報

  アクセスログとしては、以下の情報が採取されます。

Interstage シングル・サインオン

いつ

・アクセスが行われた日時

どこで

・アクセスしたクライアントのIPアドレス

だれが

・ユーザ識別情報

なにを

・アクセス対象

どうした

・処理結果(補足情報)
・SessionID
・リポジトリサーバのIPアドレス

Interstage HTTP Server

いつ

・Webクライアントからのアクセス日時

どこで

・WebクライアントまたはプロキシサーバなどのIPアドレス/ホスト名
・WebサーバのリクエストID

だれが

・Webクライアントから返信されるユーザ個人情報
・Webクライアントから送信されたユーザ名

なにを

・Webクライアントが要求したリクエスト内容

どうした

・Webクライアントに返信するコード
・Webクライアントに転送したデータ量

Interstage ディレクトリサービス

いつ

・アクセス日時

どこで

・IPアドレス:ポート番号(ホスト名)

だれが

・バインドDN

なにを

・プロトコルバージョン
・サーチベース
・サーチスコープ
・別名参照ルール
・サイズリミット
・タイムリミット
・属性取得方法
・検索フィルタ
・比較対象DN
・更新DN
・新RDN
・旧DN削除フラグ
・追加DN
・削除DN

どうした

・要求か応答かの情報
・要求や要求に対する結果
・エラーコード


  Interstage ディレクトリサービスは、以下の製品に同梱されています。

  • Interstage Application Server Enterprise Edition

  • Interstage Application Server Standard-J Edition

Symfowareと連携した場合

  Symfowareと連携した場合にはSymfowareの監査ログに以下の情報が採取されます。
  IJServer名にはSymfowareにアクセスしたIJServerの名前が設定されます。

  • WebサーバのIPアドレス(またはホスト名)

  • WebサーバのリクエストID

  • Web認証ユーザ名

  • IJServer名

WebサーバのリクエストID

  Interstage HTTP Serverでは送信されたリクエストに対して識別子を割り当てて、そのリクエストの呼び出し先に識別子を伝播します。この識別子をWebサーバのリクエストIDと呼びます。同一のリクエストIDが出力されたアクセスログを対応付けることにより、簡単に不正アクセス経路の追跡ができます。
  WebサーバのリクエストIDは以下のように作成されており、一意性が保証されます。

112ビット(32ビットIPアドレス、32ビットpid、32ビットタイムスタンプ、16ビットカウンタの4つの組)をアルファベット(A~Z、a~z、0~9、@、-)を用いてMIMEのbase64符号化と同様の方法により符号化し、24バイトの文字列を生成して作成


  Interstage HTTP Server以外のWebサーバを使用した場合にはリクエストIDは伝播されません。

Webサーバの定義

  リクエストIDを付与させるためには、Interstage HTTP Serverの環境定義ファイル(httpd.conf)に以下の定義を追加したあと、Webサーバを再起動してください。環境定義ファイル(httpd.conf)の詳細については、“Interstage HTTP Server 運用ガイド”を参照してください。

(インストールパスはデフォルト)

LoadModule unique_id_module "C:/Interstage/F3FMihs/modules/mod_unique_id.so"

LoadModule unique_id_module "/opt/FJSVihs/modules/mod_unique_id.so"

Symfoware監査ログに出力されるWebサーバ接続情報/IJServer名

  Webサーバ/アプリケーションサーバ/データベースサーバの3階層システムでは、一般的にアプリケーションサーバ上のアプリケーションではデータベースへ接続するためのユーザIDが1つのIDに固定されて使われています。(不特定多数のWebサーバログインユーザに対して、データベースの接続ユーザは特定ユーザとなるのが一般的であるためです。)このため、データベースの監査ログに出力されるCONNECTしたユーザ名だけでは「だれが」の情報が不十分です。
  本製品ではSymfowareと連携して、Webサーバ接続情報を自動的にSymfowareの監査ログに出力することができます。発行されたSQL文などのデータベースアクセス情報とともにWebサーバ接続情報が監査ログに出力されるため、監査ログを参照することで「だれが」アクセスしたかを特定することが可能となります。また、データベースにアクセスしたIJServer名が出力されることから、どのIJServerからデータベースのデータを操作したかを特定することも可能です。

InterstageとSymfowareが連携して採取される情報

  InterstageとSymfowareが連携して出力される情報は以下です。

採取される情報

Symfowareの監査ログとの対応

WebサーバのIPアドレス(またはホスト名)

CLIENT_INF

WebサーバのリクエストID

Web認証ユーザ名

IJServer名

MODULE_INF

  CLIENT_INFには以下の書式で情報が設定されます。斜体文字の部分は可変情報です。

i=RequestID,u=UserID,h=HostName

RequestID

WebサーバのリクエストID

UserID

Web認証ユーザ名

HostName

WebサーバのIPアドレス(またはホスト名)


  CLIENT_INFの最大長は64Byteです。UserIDもしくはHostNameの長さにより、64Byteを超えた場合にはh=HostNameの部分がハイフン“-”で出力されます。ハイフンが出力された場合には、ユーザ名についても切り捨てが発生した可能性があります。Webサーバのログを確認してリクエストIDに該当するユーザ名/ホスト名を確認してください。
  上記よりユーザ名には20Byte以下を使用することを推奨します。

【出力例】

i=TzJ4HAqDyX8AABMMBcoAAAAw,u=peter,h=192.168.0.2

  上記情報はIJServer上でJ2EEのJNDI機能でlookupしたJDBCのデータソースに対して、アプリケーションがgetConnectionを実行したタイミングで自動的に設定されます。Symfowareが用意する以下のプロシジャルーチンをInterstageが自動的に実行してWebサーバ接続情報を設定し、getConnectionで取得したコネクションに対して要求を実行するとWebサーバ接続情報とともに監査ログが出力されます。

  MODULE_INFのアクション名(上記プロシジャルーチンの第2パラメタ)には何も設定されません。
  また、Web認証ユーザ名は、以下の機能を使用して認証を行った場合のみ自動的に監査ログに出力されます。

  J2EEアプリケーションが独自にユーザ認証機能を実装している場合には、“7.4 アプリケーションインタフェース詳細”に記載したメソッドでユーザIDを設定することによって、Webサーバ接続情報のWeb認証ユーザ名として各プロトコルで情報を伝播し、各監査ログに情報を出力できます。
  CORBAアプリケーションなどからデータベースにアクセスする場合にはSymfowareが用意するプロシジャルーチンを直接実行してWebサーバ接続情報を設定することも可能です。すでにプロシジャルーチンでWebサーバ接続情報が設定されている状態で、プロシジャルーチンを実行した場合には設定されている情報は上書きされます。

不正アクセス追跡方法

  データベース(Symfoware)への不正アクセスが確認された場合、以下のように追跡できます。

Webサーバ/Webクライアントの追跡
  1. Symfowareの監査ログに出力される“Web認証ユーザ名”により、不正アクセスを行ったユーザ名を特定できます。

  2. Symfowareの監査ログに出力される“WebサーバのIPアドレス(またはホスト名)”により不正ユーザが侵入したWebサーバを特定できます。

  3. 2)によりWebサーバが特定できれば、Webサーバのアクセスログから不正アクセスしたWebクライアントを特定できます。


  Webクライアントがプロキシサーバを経由してWebサーバにアクセスしている場合には、Webクライアントの特定はできません。

アプリケーションサーバの追跡

  Symfowareの監査ログに以下が出力されます。以下の情報から不正ユーザが侵入したアプリケーションサーバを特定することが可能です。

Symfowareの監査ログの項目

出力内容

アプリケーション/RDBコマンドのプロセスID

IJServerプロセスのプロセスID

アプリケーション/RDBコマンドを実行したマシンのホスト名/IPアドレス

IJServerを運用するマシンのホスト名またはIPアドレス

モジュール名

IJServer名

不正アクセス経路の追跡

  WebサーバのリクエストIDをアプリケーションサーバが伝播して各監査ログに出力するため、リクエストIDを元に各監査ログを対応付けて、どのように不審者がデータベースにアクセスしたかを追跡することも可能です。不審者がどのように侵入したかを確認することで、システムの脆弱性の存在を早期に確認することが可能となり、適切なセキュリティ対策を実施することができます。
  また、監査ログを対応付けることにより、各種アクセスログの情報から不正ユーザがその他不正行為を行っていないかを確認することも可能です。

Interstage シングルサインオンの追跡

  以下の手順により、Interstage シングル・サインオンで認証を行った不審者がサインオンからサインオフまでに行った証跡を調べることができます。

  1. Symfowareの監査ログに出力される“WebサーバのリクエストID”を特定します。

  2. Interstage シングル・サインオンの業務サーバのアクセスログで、1)のリクエストのレコードを特定します。

  3. 2)のレコードに記載されている“セションID”を特定します。

  4. Interstage シングル・サインオンの認証サーバ、およびリポジトリサーバのアクセスログ、およびセション管理ログで、3)の“セションID”のレコードを特定します。

  5. 4)のレコードから、サインオン操作からサインオフ操作までに行った行為を追跡することができます。

  6. Interstage シングル・サインオンの業務サーバのアクセスログで、3)の“セションID”のレコードを特定します。

  7. 6)のレコードから、そのユーザがアクセスした全ての“WebサーバのリクエストID”を特定します。

  8. 7)の全ての“WebサーバのリクエストID”を元に、不審者が業務システムで行った行為を追跡することができます。

設定方法

  Symfoware監査ログにWebサーバ接続情報/IJServer名を出力する場合、以下の設定が必要です。

  また、Interstageの各種サービスのアクセスログを取得する場合、以下のマニュアルを参照してください。


  Interstage ディレクトリサービスは、以下の製品に同梱されています。