コラム

Unix/Linuxサーバで標準出力されるログは監査証跡になるか?

Writer 星 光史
WEEDS SYSTEMS創業メンバーの一人。
創業から証跡監査、アクセスログ分野のツールを自社開発・自社販売してきたWEEDS SYSTEMS社で、導入からセールスサポートまで一貫して従事し続けているコアメンバー。現場で起きているお客様の課題や悩みに直面しながら解決に導き、製品バージョンアップの方針策定も手掛ける。

昨今の情報漏えい事故の背景を受け、情報セキュリティーに関するガイドラインでは、”人間による操作”の記録保持をうたっています。それを受け、UNIX/Linuxサーバーに標準搭載されているログ「”wtmp”、”history”、”script”」を保管してそれに替えている企業やセキュリティ製品を多く見受けます。さて、この”wtmp”、”histry”、”script”は、各ガイドラインが求める”人間による操作”の記録として成り立つのでしょうか?

目次

      1. そもそも”wtmp”、”history”、”script”とは何か?
        1. ログイン情報が記録される”wtmp”
        2. 実行したコマンドが記録される”history”
        3. 画面に表示された情報を記録する”script”
      2. UNIX/Linuxの標準ログを監査証跡とする場合の問題点
      3. まとめ

1.そもそも”wtmp”、”history”、”script”とは何か?

UNIX/Linux サーバでは、システムやアプリケーションの動作状況などをログとして個別のファイルに記録する仕組みがあります。その一部が、”wtmp”、”history”、”script”です。
これらのログをセキュリティ対策や各種ガイドラインが求める監査証跡として、利用に耐えうるログなのでしょうか?

まずは、それぞれの役割と実態を見ていきましょう。

ログイン情報が記録される”wtmp”

まず「wtmp」です。
このログは、サーバにログインした履歴情報が記録されています。
場所は「/var/log/wtmp」に、バイナリ形式で保管されています。

「wtmp」内には、ログインの履歴が特殊な形式で記録されています。
記録されている情報は、「ユーザID」「ログイン日時」「アクセス元IPアドレス」です。
よって、残念ながらログオフの日時は記録されていません。

実行したコマンドが記録される”history”

次に「history」です。
このログは、コマンド実行履歴が記録されています。

このようにコマンドが記録されているため、外部ファイルなどに出力して記録することができます。

しかし「history」には、コマンドを実行した時刻は記録されず、ログオフすると消えてしまいます。また「-c」オプションで履歴を削除することもできます。

「history」コマンドはもともと、ユーザーが実行したコマンドを再度実行する時に打ち直しをすることなく、カーソルの“上キー”だけで再表示させるための”入力補助”機能ですので、ログオフされると消えるのは当然かもしれません。

画面に表示された情報を記録する”script”

最後に「script」です。
UNIX/Linuxでは「script」というコマンドを実行することで、画面に表示された文字列を記録することができます。例えば、サーバで作業を実施する際に、実行したコマンドとその結果画面に表示された全ての文字列を記録することができますので、後に実施手順を確認したり、作業報告に利用することができます。

上記画面がそのままテキストファイルとして保存されます。この「script」を使うことで、操作ログを取得することができますし、監査証跡として利用することも可能だといえます。

しかし、もし作業が1時間と続けば、この量は膨大になり、どんなコマンドを実行したかを目で追うのは容易なことではありません。そして、例えば”エイリアス”という”コマンドに別名”をつけて実行されてると、scriptにはエイリアスしか表示されず、実際に実行されたコマンドは分かりません。”シェル”についても同様です。

操作の詳細が時系列に沿って記録されているので、再現性も高く証跡として良いものですが、そこから特定の操作を抽出したり、問題を発見したりするためには高度なスキルを必要とします。

2.UNIX/Linuxの標準ログを監査証跡とする場合の問題点

以上のことから、UNIX/Linuxの標準ログであ”wtmp”、”history”、”script”を、各種セキュリティガイドラインの監査証跡とするには、以下の問題点があることが分かります。

    • ”wtmp”にはログオフ情報が記録されない
    • ”history”にはコマンド実行時刻が記録されない
    • ”script”ではエイリアス、シェルの内部で実行されたコマンドが分からない

さらに「wtmp」と「histry」は共に悪用されやすいデメリットもあります。
標準設定で使い続けるとディスク容量を圧迫してしまうことから、ユーザーは内容を定期的に削除することが求められます。

そこで内容を削除するツールを使用することが一般的になっていますが、このツールによって攻撃者が自身の侵入した痕跡を消すことも可能になってしまっています。

3.まとめ

上記の通り、個々のログの特徴を見ると、監査証跡として十分な状態にないことが分かります。
そして、容易に削除できてしまい、セキュリティ対策として利用するのは現実的ではないと考えざるを得ません。

そこでWEEDSでは、ユーザーのログイン/ログオフ情報及び、すべての実行さてたコマンド(エイリアス、シェルは内部で実行されたコマンドを取得)、パラメータ、コマンド実行結果を区別・判断しながら取得し、ログインの一覧やコマンドの一覧など、レポートする「WEEDS UNIX-Trace」を開発しました。
またログは悪意を持って削除されないよう、定期的にログサーバー「WEEDS Log-RepositoryManager」へ転送して退避、蓄積して管理します。

WEEDS UNIX-Traceは、ユーザーがログインした時だけ発動し、シェルをフックすることでユーザー操作を取得する仕組みを実現していますので、通常は稼働することなく、人間がログインした時だけ稼働するため、パフォーマンスを劣化させる事なく、安全に監査証跡を取得する事ができます。
また多くのUNIX/Linuxサーバに対応しています。

詳しくは、安全性、完全性、網羅性を満たしたUNIX/Linuxサーバ上の操作ログ取得ツール「WEEDS UNIX-Trace」をご覧ください。

ページトップへ戻る