はじめに
この記事は、ログを取ったことがない中小規模のシステムを管理していて、どうしたらいいのかまだよく分からないというWindowsを中心としたシステムの管理者の皆様向けです。また、取り敢えずログは集めているが活用方法が分からないという皆様にもお役に立てるだろうと思います。
ログとは何か、特に基本的なログ形式であるSyslogについては、弊社の紹介記事にあるような予備知識があると理解しやすいと思います。
何のためのログ収集か
ログ収集・管理に際しては、何のためにどんなログを取って集めて保存し、異常がないかを調べることが大事です。ログの世界は、コンピューターとネットワークの発展とともにとても多様で複雑になってきているからです。どんな脅威からシステムの何を特に守りたいのか、具体的なイメージを持つ必要があります。
そうは言っても、最初はどんなログで何が分かるかも分からないということもあると思います。そこで、弊社製品の Snare Windows(Desktop)エージェントと弊社の代表的なログサーバーである WinSyslog を使って、こんなログが取れて、こんなことが分かる、こんな対応が取れるということを紹介しますので、この記事でイメージを膨らませて頂ければと思います。
Snare Windows (Desktop) エージェントについて
そこで今回取り上げる弊社製品の一つであるSnare Windows (Desktop) エージェントの特長を簡単に紹介します。
Snare Windows (Desktop) エージェントは、WindowsサーバーやWindows PCのようなエンドポイントからログをログサーバーに転送するエージェントです。Windowsのイベントログが取れるだけでなく、以下の機能もあり、サーバーやPCの総合的なログ採取による脅威への備えが可能です。
- ファイルログのフィルタリングと転送 DNSサーバーやWebサーバーのアクセスログやエラーログなどイベントログには含まれないファイルに書き出されるログをフィルタリングし転送する機能
- ファイルやレジストリの改ざん検出 ファイルやレジストリのチェックサムを定期的に比較し、異動があった場合にログを送信する FIM(File Integrity Monitoring)/RIM(Registry Integrity Monitoring)の機能
- USBイベントの検出 WindowsマシンにUSBの挿抜を行ったことを示すSnare Windows (Desktop) エージェント独自のログ生成機能
- CPU、ディスク、メモリ、ネットワークのテレメトリー CPU、ディスク、メモリ、ネットワークの稼働状況をモニターしたログを送信する機能(v5.9.0版以降、v5.9.0はジュピターでは2025年1月末頃よりサポート予定)
このブログでは、ログサーバーのWinSyslogを使って、これらの特長を生かすことを念頭に話を進めます。
最初の今回は、Windowsエージェントで採取したログをログサーバーに転送し活用しやすいように整理・保存する方針の検討とSnareとWinSyslogの間でログを送受信する設定までです。
ログ整理の方針
タイムスタンプとログ送信元(ソース)が重要
後々のログの検索などの活用を考えれば、ログを整理して保存することが重要です。
その整理の方針としては、ログの時系列調査やバックアップやアーカイブの観点からも、ログの日付や時間が最も重要です。これは通常、タイムスタンプと呼ばれています。
次に重要なのはそれがどこで起きたかです。これはログを一か所に集約して活用する上で欠かせない情報で、ログの送信元(ソース)がそれに当たります。その次が、ログの種類などです。
5W1Hを考慮して整理する
これは、ログの5W1Hとして理解すると分かり易いです。
つまり、いつ(When)、どこで(Where)、誰が(Who)、何を(What)、何故(Why)、どのように(How)、したのかということです。ログの中にはこれらが含まれているはずなので、5W1Hのように整理すればよいと考えられます。
タイムスタンプが「いつ」で、ログの送信元が「どこで」に当たります。これらがないログは役に立ちません。
ログは形式の異なる種別毎に分離
一方、Snare Windows (Desktop) エージェントではWindowsのイベントログ以外のログも採取できます。またWinSyslogでは、多くのネットワーク系の機器のログも収集できます。
そのログの種類によってログを構成する情報がどのように表現されているかの形式、英語で言うフォーマットが異なります。ですから、種類の異なるログは別々のファイルに分けて保存するのがよいと考えられます。
このログ種別は、5W1Hで言えば、主に「誰が」以降の内容に対する形式だから重要ということです。
タイムスタンプ、送信元(ソース)、ログ種別で整理する
上記の考察を踏まえて、ここではタイムスタンプと送信元とログの種類のこの3つをこの順番で重要なキーとしてログを整理する方針とします。
この辺りの背景については、ログの標準規格であるSyslogについての弊社の記事が参考になります。
ログ保存の方針
ログ量の見積もりと保存・バックアップ・アーカイブの方針
ログを保存するにあたっては、毎日発生するログの量の見積もりと、保存期間、そのうち非圧縮で保存する期間と、圧縮しアーカイブして保存する期間、ログの圧縮率などを検討する必要があります。
毎日のログ量の見積もりに加えて、ログが大量に発生する時間帯のピークのログ量も、機器やソフトの能力が足りるかを見極めるために必要です。それが分からない場合は、評価版のソフトなどを使って小規模に試してみるとよいでしょう。
ログ検索と保存形態の関係の検討
ログ量の概要が把握できたなら、保存期間や保存場所の構成についても結論を出しましょう。
その際、一年を超えるような比較的長期のログを検索する必要がある場合と、通常は1か月程度前までのログを調べれば済む場合では、保存の仕方を変えたほうがよいです。
その理由は、ディレクトリ名やファイル名で検索範囲が絞りこめる方が検索は速くなり、また圧縮ファイルの検索は時間がかかり、アーカイブについては通常はそのままでは検索できないからです。
ディレクトリ構成やファイル命名規則の検討
検索対象が長期にわたる場合は、一か所のディレクトリに年単位のログを保存するとファイル数が非常に多くなってしまうので、日付毎にディレクトリを分ける必要が出てきます。
更にログを分離して整理するならば、その下にログソース名のディレクトも作るとよいでしょう。検索対象のログ量が少ない場合、ディレクトリは一つでも構わないでしょう。
弊社のシスログサーバーWinSyslogにはBlueBakというバックアップソフトが付属しております。このソフトの説明書である「BlueBak7 設定例 バックアップ・アーカイブ・クリーンアップ」では、日付のディレクトリ等の階層のない例を扱っています。
Snare Windows (Desktop) エージェント側の転送設定
SnareエージェントとWinSyslogのインストール
SnareやWinSyslogのインストールの説明は、「Snare Windows(Desktop)エージェントインストールガイド」や「WinSyslogのインストールとライセンス登録」にあります。
インストールについては、上記マニュアルを参照してください。ここからはこの二つを組み合わせて使う場合の送受信設定のポイントを説明します。
Snareでのログ送信フォーマットの検討
Snare Windows (Desktop) エージェントのログ送信フォーマットは、多くのログ形式に対応しており、これもSnareエージェントの特長の一つです。
中でもログのフィールド(項目、トークンともいう)をタブ文字(ASCII 0x09の制御文字)で区切ったフォーマットはSnareフォーマットとして知られているもので、これがSnare Windows (Desktop) エージェントの大きな特長です。
一方、ログを各所から受信して保存するログサーバーのWinSyslogは、その名の通りWindows上のSyslogサーバーです。まさにSyslogを扱うようにできています。
以上の前提から、Snare Windows (Desktop) エージェントからイベントログなどの送信には、WinSyslog側で扱いやすいsyslogフォーマットで送るのがよいと考えられます。
第一候補:SYSLOG(RFC3164)でVertical Bar区切り
Snareの標準の区切り文字のタブは、残念ながらWinSyslogは区切文字(Delimiter Character)としてうまく扱うことができません。代わりに”|”(Vertical Bar、縦線、ASCII 0x7C)を使いましょう。
そこで、Snareからのログ送信フォマートはSYSLOG(RFC3164)でDelimiter CharacterはVertical Bar ”|”とします。これが第一候補です。
第二候補:SYSLOG(JSON)でタブ区切り
しかしこれでは、イベントログのXMLにある詳細データが転送できないという問題があります。XMLにしかないデータも必要な場合は、SYSLOG(JSON)を使ってください。
ただし、JSONが一行に押し込められるので、検索には便利ですが、そのままではとても見にくいので、ログの表示に際しては工夫が必要になります。
またこの場合の、SYSLOGはRFC3164ではなくRFC5424であることに注意してください。区切文字はStructured-DataとMSGの間に一つ入るだけなので、デフォルトのタブのままで問題ないでしょう。
ログ送信プロトコルとポートの選択
ログ送信のプロトコルの選択は、ログのロストする可能性のあるUDPよりもその心配のないTCPがお薦めです。
更に、社外を通過するなどのセキュリティ上の懸念がある場合は、TLSでデータを暗号化する必要があります。
Snareのログ送信のデフォルトはUDP 6161で、WinSyslogの受信はUDPの514です。TCPを使うと決めたので、ここではTCPの514ポートでログを送受信することにします。
Snare Windows (Desktop) エージェントでの具体的なログ送信設定
Snare Windows (Desktop) エージェントで具体的に上記の案に従って、WinSyslogにログを送信する場合の設定例は以下の通りです。
Snare エージェントのWeb GUIをhttps://localhost:6161などで開いて、左側のペインでDestination Configurationを選択します。
Domain/IP欄にWinSyslogのドメイン名もしくはIPアドレスを設定します。第一候補の例では、Portには514を入力し、ProtocolはTCPをプルダウンから選択します。
また、FormatではSYSLOG(RFC3164)を選択し、Delimiter CharacterではVertical Barを選択します。
一番下にある赤いUpdate Destinationsをクリックして設定値を確定した後、左側のペインのApply Configuration & Restart Serviceをクリックして設定をサービスに反映しサービスを再起動してください。
第二候補の設定の場合は、FormatにSYSLOG(JSON)を指定して、Delimiter CharacterはデフォルトのままのTabを選択します。
WinSyslog(ログサーバー)側の受信設定
Snare向けSyslogサーバーの追加
WinSyslogはインストール直後の設定では、Default Syslog ListenerというサービスがUDP 514ポートでSyslogを待ち受ける設定になっています。
先ほどのSnareエージェントの設定に合わせて、Snare用にTCP 514で待ち受けるSyslog Listenerを設定します。Snare用なので、Snare Syslog Listenerとしましょう。
通常UDP 514でネットワーク機器のsyslogを受信するので、Snare Syslog Listenerのサービスは新に追加します。WinSyslogの設定クライアントで、サービスを右クリックして、サービスを作成、Syslogサーバーを選択して、Syslogサーバーを追加します。
Snare向けSyslogサーバーの設定のポイント
このサービスの設定でポイントは、デフォルトの設定に対して以下の設定をすることです。
- 全体タブでインターネットプロトコルタイプにTCPを設定する(ポート番号は514のままでよい)
- エンコードタブで □メッセージのエンコードを自動検出する(UTF-8、SHIFT_JIS、EUCJP) のチェックをそのままに(デフォルトでチェックされているはずです)□メッセージ文字コードを全てUTF-8として処理する にもチェックを入れる
これはSnare Windows(Desktop)エージェントでは、イベントログをUTF-8で送信しますが、BOMなしUTF-8であるため、自動検出の設定だけでは文字化けするためです。そのため、Shift-JISのログをこの設定で受信した場合は文字化けします。この問題に対する対策は、別途説明します。
Snare向けSyslogサーバーのルールセットの設定
ログを処理するルールセットは、UDP 514のネットワーク機器向けのSyslog ListenerとTCP 514のSnare Syslog Listenerでは、その先の処理が異なるので分離します。
ここでは、UDP 514のルールセットはdefault rule setのままとし、Snare用のルールセットは、Snare rule setと命名しておきます。なおこのSnare用サービスのルールセットの変更は、Snare用のルールセット作成後でないとできないので、具体的なやりかたは次回説明します。
今回はここまでです。
おわりに
最後までお読みいただき、ありがとうございました。
次回は、WinSyslogでのログの分類保存の方法と、ログ種別毎のフィールド分割の方法について、特にイベントログのフィールド分割の方法について詳しく説明します。
30日無償で利用いただける評価版を以下ダウンロードリンクに用意しております。簡単に検証が開始できますので、ぜひお気軽にお試しください。