LogonTracerを用いた不正ログオンの調査(2018-01-24)

前回の分析センターだより では、イベントログの分析をサポートするツール「LogonTracer」のコンセプトや使用方法について説明しました。今回は、LogonTracerを使って実際に不正ログオンを特定する方法について紹介します。
LogonTracerのインストール方法についてはWikiページをご覧ください。

JPCERTCC GitHub - LogonTracer Wiki
https://github.com/JPCERTCC/LogonTracer/wiki/ホーム

不正ログオン分析のポイント
LogonTracerはあくまで分析をサポートするツールであり、不正ログオンを検出するわけではありません。そのため本ツールを使用して分析するには、調査のポイントをある程度把握しておく必要があります。以下に、Active Directoryドメインコントローラーのイベントログから不正ログオンを分析する際のポイントをいくつか上げました。

  • マルウエア感染ホストの使用したアカウントの調査
  • システム権限アカウントの使用調査
  • RDPログオンの調査
  • 認証回数の調査
  • アカウントを使用したホストの妥当性の調査

以降では、LogonTracerを使用して上記の調査を行う方法について説明します。なお、今回紹介する調査方法には、LogonTracerのバージョン1.0.3を使用しています。

マルウエア感染ホストの使用したアカウントの調査
標的型攻撃のインシデントでは、マルウエア感染した1台のホストから多数のホストやサーバに感染が広がる事例が多いことが分かっています。そのため、ネットワーク内にマルウエア感染したホストが見つかった場合、どのアカウントが悪用されたのか、他のホストに感染が広がっていないか確認することが必要です。
攻撃者は、ネットワーク内で感染を広げる際、盗み出したアカウント情報を使いまわして様々なホストにログオンする傾向があります。そのため、まず初めに不正ログオンに使用されたアカウントを特定することが重要です。マルウエア感染したホストにログオンしているアカウントを調べて、そのアカウントが感染ホスト上で通常使用されているアカウントなのか調査することで不正ログオンに使用されたアカウントが分かる可能性があります。
不正ログオンに使用されたアカウントを特定できると、そのアカウントが別のホストでログオンされていないかを調べることで、どのホストに感染拡大が行われたのかを確認することができます。
LogonTracerでは検索バーを使用することで、ホストにログオンしたアカウント名を可視化して確認することができます。もし、複数のホストでマルウエア感染が確認されている場合は、図1のように複数のホストを指定して検索をすれば、共通する悪用されたアカウントが見つかるかもしれません。

図 1:LogonTracerの検索バー
クリックすると拡大されます

なお、検索するアカウント名およびホスト名・IPアドレスには正規表現を使用することができます。

システム権限アカウントの使用調査
JPCERT/CCでは、攻撃者がドメインネットワークの管理者権限を持つアカウント(Domain Adminsグループに所属するアカウント)を悪用して感染を拡大する事例を多数確認しています。管理者アカウントはドメインコントローラーを含めすべてのホストにログオンすることができます。そのため、攻撃者は管理者アカウントを使用しているホストに侵入して管理者アカウントを盗もうとします。
LogonTracerでは左のサイドバーから管理者アカウントを検索することができます(図2の「SYSTEM privileges」)。通常、管理者アカウントでログオンしないホストが管理者アカウントを使用している場合は、不正ログオンである可能性があります。

図 2:LogonTracerのサイドバー
クリックすると拡大されます

RDPログオンの調査
攻撃者によってはRDPでホストにログオンする場合があります。 LogonTracerでは先ほどのシステム権限アカウントの使用調査と同じく、左のサイドバーからRDPログオンされたホストおよびアカウントを検索することができます(図2の「RDP Logon」)。

認証回数の調査
攻撃者はネットワーク内部での感染拡大の手段の1つとしてパスワード辞書を使用した総当りログオン攻撃を行う場合があります。このような場合、短時間に多数のログオンの失敗ログが記録されます。
LogonTracerでは各アカウントの時間毎のイベントログ数をカウントして時系列に表示することができます(Timelineの「Create All Users」)。さらに、検索バーに特定のアカウント名を入れてTimelineの「Search」ボタン(図3)をクリックすると、指定したアカウントに対してイベントID毎にカウント数を詳細表示することが可能です。ログオン失敗はイベントID 4625で記録されるため、このイベントIDが増加している場合は不正ログオン試行が行われている可能性があります。

図 3:タイムライン表示の例(アカウント名sysg.adminを検索している)
クリックすると拡大されます

イベントログのカウント数が急増、急減している箇所についてはハイライトされます。

アカウントを利用したホストの妥当性の調査
最後に各ホストが使用しているアカウントの妥当性を調査する方法について説明します。この調査は、1ホストでログオンするアカウントが1つに限定する運用が行われている組織でとくに有効です。
「1ホスト=1アカウント運用」ができている場合、LogonTracerですべてのログを可視化(図2の「All Users」)すると、図4の左のようにホストとアカウントが1対1の関係になります。この状態で不正ログオンが発生し、複数のホストに同一アカウントでログオンが行われた場合、図4の右のようになります。この図からもわかるように特定のアカウントが複数のホストでログオンされていることを簡単に知ることができます。

図 4:「1ホスト=1アカウント運用」を行っているログを分析
(左:正常時のログ、右:不正ログオンが発生した際のログ)
(赤: 管理者権限アカウント、青: 一般ユーザアカウント、緑: ホストまたはIPアドレス)
クリックすると拡大されます

しかし、JPCERT/CCがインシデント調査に協力した組織の多くが「1ホスト=1アカウント運用」を行っていないために、このような調査ができませんでした。「1ホスト=1アカウント運用」がされていない組織のイベントログを可視化すると図5のようになります。このような状態では不審なログオンを洗い出すのは難しくなります。

図 5:「1ホスト=1アカウント運用」されていない組織のログを分析
クリックすると拡大されます

インシデント調査の観点から「1ホスト=1アカウント運用」をお勧めします。

おわりに
LogonTracerは今後も継続的にアップデートを行う予定です。現在はログオンに関連するイベントログのみを分析対象としていますが、ポリシー変更やユーザ作成・グループ追加、イベントログの削除などログオン関連以外の重要度の高いものも分析対象に含めることを計画しています。本ツールに関してリクエストなどがありましたらご連絡ください。

分析センター 朝長 秀誠


2018年11月7日追記
LogonTracer (v1.2.0 およびそれ以前) に、複数の脆弱性が存在することを確認いたしました。
LogonTracerをご使用の場合は、最新のバージョンにアップデートをお願いします。

JVNVU#98026636
LogonTracer に複数の脆弱性
https://jvn.jp/vu/JVNVU98026636/index.html

Release v1.2.1 - JPCERTCC/LogonTracer - GitHub
https://github.com/JPCERTCC/LogonTracer/releases/tag/v1.2.1

謝辞:本脆弱性に関しては以下の方から報告をいただきました。
報告者:株式会社神戸デジタル・ラボ 馬場 将次 氏

≪ 前へ
トップに戻る
次へ ≫