2015年 春期 応用情報技術者試験 問6
アクセスログ監査システムの構築
K社は,システム開発を請け負う中堅企業である。セキュリティ強化策の一つとして,ファイルサーバのアクセスログを管理するシステム(以下,ログ監査システムという)を構築することになった。
現在のファイルサーバの運用について,次に整理する。
・ファイルサーバの利用者はディレクトリサーバで一元管理されている。 ・利用者には,社員,パートナ,アルバイトなどの種別がある。 ・利用者はいずれか一つの部署に所属する。 ・部署はファイルサーバを1台以上保有している。 ・ファイルサーバ上のファイルへのアクセス権は,利用者やその種別,部署,操作ごとに設定される。 ・操作には,読取,作成,更新及び削除がある。 ・ファイルサーバ上のファイルに対して操作を行うと,操作を行った利用者の情報や操作対象のファイルの絶対パス名,操作の内容がファイルサーバ上にアクセスログとして記録される。 ・ファイルサーバのフォルダごとに社外秘や部外秘などの機密レベルが設定されている。
機能名 | 機能概要 |
---|---|
アクセスログインポート | 各ファイルサーバに記録されたアクセスログにファイルサーバの情報を付与してログ監査システムに取り込む機能 |
非営業日利用一覧表示 | 非営業日にファイル操作を行った利用者,操作対象,操作元のIPアドレス,操作日時などを一覧表示する機能 |
部外者失敗一覧表示 | 他部署のファイルサーバ上のファイルへの操作のうち,その操作が失敗した利用者,操作対象,操作元のIPアドレス,操作日時などを一覧表示する機能 |
ログ監査システムでは,E-R図のエンティティ名を表名とし,属性名を列名にして,適切なデータ型と制約で表定義した関係データベースによって,データを管理する。
なお,外部キーには,被参照表の主キーの値かNULLが入る。
【非営業日利用一覧表示機能の実装】
非営業日利用一覧表示機能で用いるSQL文を図2に示す。
なお,非営業日表の非営業年月日列には,K社の非営業日となる年月日が格納されている。
SELECT AC.* FROM アクセスログ AC WHERE c (SELECT * FROM 非営業日 NS WHERE d)
【部外者失敗一覧表示機能の実装】
部外者失敗一覧表示機能で用いるSQL文を図3に示す。
なお,アクセスログ表の操作結果列には,ファイル操作が成功した場合には'S'が,失敗した場合には'F'が入っている。
SELECT AC.* FROM アクセスログ AC INNER JOIN 利用者 US ON AC.利用者ID = US.利用者ID INNER JOIN サーバ SV ON AC.サーバID = SV.サーバID WHERE e AND f
【アクセスログインポート機能の不具合】
アクセスログインポート機能のシステムテストのために準備したアクセスログの一部が取り込めない,との指摘を受けた。テストで用いたアクセスログを図4に示す。このログはCSV形式であり,先頭行はヘッダ,アの行は操作対象のファイルへの削除権限がない社員('USR001')が削除を試みた場合のデータ,イの行はディレクトリサーバにログオンせずにファイル更新を試みた場合のデータ,ウの行は存在しない利用者ID('ADMIN')を指定してファイル削除を試みた場合のデータである。
アクセスログ表のデータを確認したところ,gの行のデータが表に存在しなかった。この問題を解消するために,①テーブル定義の一部を変更することで対応した。
"利用者ID","操作名","操作結果","操作対象","IPアドレス","操作日時" 'USR001','削除','F','/home/test1.txt',192.168.1.98,2015-4-1 9:30:00 ←ア '','更新','F','/home/test2.txt',192.168.1.98,2015-4-1 10:00:00 ←イ 'ADMIN','削除','F','/home/test3.txt',192.168.1.98,2015-4-1 10:30:00 ←ウ