MITRE ATT&CKから読み解くパスワードスプレー攻撃対策

2022.07.25

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

今回はパスワードスプレーというサイバーアタックをご紹介します。

パスワードスプレーは認証情報を搾取することを目的とし、同じパスワードを使って別のユーザに対して次々とログインできるかを試していき、不正ログインを試みる攻撃になります。ブルートフォースアタックパスワードリスト攻撃を応用し、一般的に良く使われるID/パスワードや流出したID/パスワード情報が使われることが多いです。
*ブルートフォースアタック=考えられるすべてのパターンをリストアップして総当りでログイン試行を行う
*パスワードリスト攻撃=何らかのシステムで実際に使われていたアカウント情報を入手して攻撃に利用する手法

イメージ元:OWASP

ブルートフォースアカウント例 一般的によく利用されるパスワード例
james.smith@exmple.com P@ssw0rd1!
robert.johnson@example.com P@ssw0rd1!
john.brown@example.com P@ssw0rd1!
maria.garcia@example.com P@ssw0rd1!
elizabeth.miller@example.com P@ssw0rd1!
james.smith@example.com Summer22!
robert.johnson@example.com Summer22!
john.brown@example.com Summer22!
maria.garcia@example.com Summer22!
elizabeth.miller@example.com Summer22!

この攻撃の特徴として、複数のユーザアカウントに対して同じパスワードでログインを試すことにより、「規定数分の連続したログイン失敗によるアカウントロック」ポリシーが適用されていた場合でも、各ユーザからするとログイン試行回数は一回としかカウントされません。さらに、攻撃の実行遅延を設定する機能を持つことで、「規定時間経過後ログイン失敗回数をゼロにリセットする」ポリシー(Windowsの場合のポリシー参考)が適用されていることも多く、例えばこの規定時間が30分に設定されていた場合、32分毎の実行遅延に設定しログイン試行を繰り返していくことで、ユーザーに気づかれずログインが成功するまで攻撃を継続させることが可能となっています。(*「規定時間経過後ログイン失敗回数をゼロにリセットする」が多くのシステムで適用されている理由は、アカウントのアンロックがかかってしまうと管理者に解除してもらう必要が出てくるためユーザー側の利便性をある程度確保するためと、DoS攻撃を受けた時に組織内のアカウントが一斉に利用不可になってしまう等の不都合をきたすため、バランスをとって設定されることが多い)
このように時間をかけて実行することから、low-and-slow攻撃とも呼ばれています。

Techniques on MITRE ATT&CK

パスワードスプレー攻撃がMITRE ATT&CKでどのような分類とされているか見てみましょう。MITRE ATT&CKのデータベースを確認することで、その攻撃手法がどのように使われるのか、攻撃への対策はどうしたらいいのかを知ることができます。(MITRE ATT&CK)

MITRE ATT&CKに馴染みがないよっていう方でざっくり概要を知りたい方は、こちらをご確認ください。

MITRE ATT&CKではパスワードスプレー攻撃を「Brute Force: Password Spraying [T1110.003]」のテクニックとして定義しています。T1110.003は「Credential Access [TA0006](認証情報アクセス)」の戦術の中に含まれます。
*戦術=攻撃者の目的や攻撃のフェーズ
*テクニック=攻撃者が使う攻撃手法

戦術マッピング

軽減措置(Mitigations)

パスワードスプレー攻撃 [T1110.003] は3つの軽減措置が定義されています。

まず、M1036では規定の回数を超えるログイン失敗が発生した時にアカウントをロックする利用ポリシーを設定することをあげています。次にM1032では可能な限り多要素認証を利用することをあげています。そして最後にM1027では各認証方式に対応した推奨のパスワードポリシーを設定することがあげられています。
各認証方式の推奨パスワードポリシーに関するガイドラインは、NIST(米国国立標準技術研究所)より発行されているNIST SP800-63Bで参照することができます。各認証方式に対応した推奨のパスワードポリシーは文書のセクション5以降のガイドラインで確認してください。
例えば、一般的なパスワード認証におけるユーザーに要求される要件は、文書内「5.1.1 記憶シークレットAuthenticator」にあたり、ユーザーがパスワード文字列を自分で選択する場合は8文字以上を必須としています。ランダムに生成されたパスワードを利用する場合は6文字以上を必須とします。これは人間が考えるパスワードはどうしても予測可能なものになりやすい性質を持つからですね。
また、ここで私が以外に思ったのは、記憶シークレットの「複雑さ」に関しては要件をポリシーで強制するべきではないとしていることです。この根拠について補足があり、

パスワードの複雑さに大文字と数字を含む要件を与えると、比較的高い確率で"Password1"を選択し、記号を要件に追加すると"Password1!"を選択するためである

とのこと。(複雑さに関する補足
数字や記号をパスワードに含めることで同じ文字数のパスワードであっても、選択可能なパターン数が増えることによって、総当たりによる攻撃の成功を難しくする効果はあるが、一方で脆弱で頻繁に使われるパスワードをユーザーが選択しやすくなるという意味においてはパスワードポリシーとして含めない方が良いということだと解釈できますね。

検知方法(Detections)

パスワードスプレー攻撃 [T1110.003] は2つの検知方法が定義されています。

DS0015およびDS0002では、有効なアカウントのログイン失敗イベントや複数アカウントへのログイン失敗イベントをシステムやアプリケーションログで検知します。
Windows OSの場合、SMBのネットワークシェアからパスワードスプレー攻撃を受けた時、Domain ControllerのイベントID 4625でログイン失敗のイベントが書き込まれます。また、LDAPを介してパスワードスプレーを受けた場合には、イベントID 4771で"0x18"のイベントが書き込まれます。Domain Controllerで同じ時刻に大量に出力された場合、パスワードスプレーが疑われますので、これらのイベントを監視します。

また、ドメインに参加しているある特定のユーザーが別のユーザーアカウントへログオンを試みた場合、実行した端末でイベントID 4648の"a logon was attempted using explicit credentials"が発生します。このログが他の多数のユーザーアカウントに対して大量に発生した場合、パスワードスプレー攻撃が疑われますので、監視します。

(イメージ元:TRIMARC)

まとめ

攻撃者がシステムに侵入するための足がかりとしての「認証情報アクセス [TA0006]」の戦術に良く使われる、パスワードスプレー攻撃 [T1110.003]のテクニックについてご紹介しました。

今回はMITRE ATT&CKに沿って対策方法を見ていきましたが、検知や防御のところでは、IPS/IDSEDR製品を用いて防いだり、SIEMによるシステム全体の相関分析を行って、侵入経路や根本原因を特定していくことも非常に大事になってきます。

弊社では、TrendMicro Cloud One(エンドポイントプロテクション)Sumo Logic(SIEM)をSaaSとして提供しております。ぜひ興味のある方は弊社までご連絡いただければと思います。