何回かに分けて FOBAS CSC Ver.3 の特徴のご紹介して行くシリーズの第8回目です。
今回は、最近話題のファイルサーバのアクセスログを取り上げてみようと思います。
話題のきっかけは、もちろん皆様もご存じの、某教育コンテンツ企業の大規模顧客情報
流出事件と、某官公庁での個人情報漏えい事故です。詳しい内容は当事者ではありませ
んので触れるつもりはありませんが、情報管理基盤のアクセスログを残す重要性につい
て再認識させられた出来事であった事は間違いありません。
報道によれば、後者の事故では本来システムとしてデータベースで管理されていた個人
情報を、一時的な作業用としてデータ抽出してファイルサーバで保管していた点が問題
の一つとして指摘されていました。
実際の作業生産性を考えた場合、定型的なアプリケーション画面だけではなく、Excel
のようなフレキシブルなツールでデータを扱う事は珍しい事ではないと思います。
そうであるならば、それらのデータを扱う基盤としてのファイルサーバにも必要なせキ
ュリティ対策を施すべきであると考えるのは自然な流れです。
FOBAS CSC でもこのような世の中の流れを受けて、アクセス権の設定 (POSIX ACL サポ
ート) と、ファイルアクセスログ、および環境変更ログの取得をサポートしています。
FOBAS CSC のアクセスログ機能について説明する前に、そもそも従来のファイルサーバ
でアクセスログを取得しようとした場合、どのような方法があったのか簡単にまとめて
みました。
1) Windows Server の場合
Windows Server では、監査ログという機能があります。サーバ内で実行された様々
な操作をイベントログに記録するものです。基本的にはこれを利用するのが OS標準
機能での取得方法です。
この方法はいくつか運用が難しい点があります。まずは大量にログが出るという点で
す。一つのファイル操作で10件以上のログが出ます。また目的のログを探すのもお世
辞にも使いやすいインタフェースではありません。
2) Linux サーバの場合
Linux サーバで有名な方法は、auditd を使ったイベントトレースです。Kernel
レベルでシステムコールをフィルターしてログを記録する事ができます。
これも適用が難しいと思われるのは、必要なログを出力するための設定を専用のコマ
ンドや定義言語で記述する必要があり難易度が高いです。また出力されるログの量も
非常に多くなります。
3) 汎用 NAS の場合
低価格なNASボックス等の汎用NASそのものの機能としては、アクセスログを記録する
仕組みは殆ど備わっていません。
EMC や NetApp 等の高機能な汎用ストレージとしての NAS には監査機能があるため
それを利用する事になります。
一般的には、これらの標準機能ではアクセスログの機能が無かったり、あっても運用が
難しい点が多く、市販のアクセスログツールを組み合わせて使う事が多いようです。
市販のアクセスログ取得製品としては以下のようなタイプがあります。
1) OS、製品標準ログの収集と整形タイプ
前述の OSやNAS標準ログをユーザオペレーションと直感的に結び付けやすい形に集約
し、整形するものです。
2) ネットワークキャプチャ方式
ネットワークでファイルアクセス用のプロトコル (CIFS や NFS) パケットをキャプ
チャして記録するものです。ログの取得対象サーバの変更が不要な点や、ログ取得の
負荷を掛けない点がメリットとされています。
SMB3.0、NFSv4 の暗号化された通信では利用できません。
いずれの方法についても、本来の目的とは違う情報(Kernel のシステムコールトレース
おびただしい量の監査ログ、あるいは、ネットワークパケットダンプ)から、頑張って
ファイルの利用情報を抜き出す、あるいは編集するというものですので、相当泥臭い実
装になっていると思われます。上記製品ベンダの皆様には敬意を表したいですね。
さて、物事をシンプルに考えるのであれば、ファイルの利用について最もよくわかって
いるのは、ファイルを管理するファイルシステムです。FOBAS CSC のアクセスログは、
この非常にシンプルな考え方に基づいています。
シリーズの3回目で少し触れましたが、FOBAS CSC では、いつ、誰が、どのファイルに対
して、何をしたかを差分スナップショットとしてリストア時に適用するために記録して
います。アクセスログ機能はこの記録をわかりやすい形でダンプしただけのものです。
従ってアクセスログのために何か特別な事をしている訳ではありません。本来のファイ
ル利用とは関係ない情報を扱う必要もなければ、冗長なログを出す必要もなく、事実上
オーバーヘッドゼロのログ機能です。
どんな形で出力されるのか、簡単にご紹介します。詳しくはドキュメントにありますの
で併せて参照ください。
出力例)
1: 2015-07-04 10:22:04.768048,OPER_MKNOD,1,1,cscadm,/cscfs3/default/users/cscadm/file2
2: 2015-07-04 10:22:04.769036,OPER_WRITE,1,1,cscadm,/cscfs3/default/users/cscadm/file2
3: 2015-07-04 10:22:04.770455,OPER_READ,1,1,cscadm,/cscfs3/default/users/cscadm/file2
4: 2015-07-04 10:22:04.771048,OPER_MKDIR,1,1,cscadm,/cscfs3/default/users/cscadm/dir1
5: 2015-07-04 10:22:04.786615,OPER_RENAME,1,1,cscadm,/cscfs3/default/users/cscadm/dir1,/cscfs3/default/users/cscadm/dir2
説明のため、実際の出力内容の前に行番号を n: の形で入れました。
共通項目としては左のから、タイムスタンプ(マイクロ秒精度)、操作内容(後述)、
操作クラスタノード、組織番号、操作ユーザ名、となっています。
操作内容は、linux 系のコマンドに明るい方であれば、直観的にわかりやすいかと思い
ますが以下のように読み替えて理解します。ここでは上記ログに含まれているものだけ
記載します。
OPER_MKNOD : ファイルの作成
OPER_WRITE : ファイルに書き込み
OPER_READ : ファイルの読み込み
OPER_MKDIR : フォルダの作成
OPER_RENAME : ファイル名/フォルダ名の変更や、移動
6カラム目以降は、操作によって内容が異なります。1行目から4行目までは、操作対象
のファイル名がフルパスで表示されています。
5行目はフォルダ名の変更なので、変更前、変更後の順番でフルパスで表示されます。
一点、注意が必要なポイントは、出力されるログは必ずしも時系列でソートされていま
せん。時系列でソートが必要な場合は、以下の例を参考に、sort コマンドが利用でき
ます。
# sort -t, -k1.1 {ソート前ログファイル} > {ソート後ログファイル}
今回は FOBAS CSC のアクセスログ機能をご紹介しました。
次回は、監査機能でもう一つ重要なログである環境変更履歴についてご紹介します。
ではでは。