ネットワーク内の任意のユーザーアカウントの資格情報(クレデンシャル)を把握されることは、攻撃者に大きな力を与えます。正規ユーザーとしてログオンした後、攻撃者は他のシステムへ横方向に移動し、権限を昇格してランサムウェアを展開したり、重要なデータを盗んだり、重要な業務を妨害したりといったことが可能になります。
ほとんどの組織はこれを理解しており、ユーザーの資格情報を保護するための対策を講じています。特に Active Directory password policy を使用して、パスワードの長さ・複雑さ・履歴要件を強制し、一定回数のログオン失敗後にアカウントをロックするポリシーも定めています。つまり、安全ですよね?
残念ながら、それでは十分ではありません。これらの対策が導入されていても、多くの人はWinter2017 や Password!@# のように、簡単に推測できるパスワードを選んでしまいます。これらは社内の基準には適合しているものの、覚えやすいためです。こうした脆弱なパスワードは、攻撃者がネットワーク内で足場を築くために使う最も単純な攻撃の1つである「推測(guessing)」に対して組織を脆弱にします。
この戦略がどれほど効果的なのか、意外に感じるかもしれません。まずはパスワードの推測(password guessing)攻撃の例を見ていき、その後、自社の脆弱性を評価し、サイバーセキュリティを強化する方法を探っていきましょう。
厳選した関連コンテンツ:
パスワードスプレー攻撃の仕組み
password spraying 攻撃では、攻撃者はよく使われるパスワードを1つ選び、それを組織内の各アカウントへのログオンに試します。ほとんどの試行は失敗しますが、あるアカウントで1回ログオンに失敗しただけではロックアウトは発生しません。すべての試行が失敗した場合は、単に次に用意したパスワードで再度試します。もし、組織内のたった1人のユーザーが選んだパスワードを見つけることができれば、攻撃者はあなたのネットワークの中に入り込み、混乱を引き起こす準備が整います。
攻撃者がパスワードスプレー(password spraying)攻撃を実行する方法の1つは、CrackMapExec を使うことです。これは Github からダウンロードするのに料金がかかるユーティリティです。CrackMapExec には、資格情報の収集(credential harvesting)を支援する Mimikatz モジュール(PowerSploit 経由)がバンドルされています。攻撃の流れは次のとおりです。
ステップ1. Active Directory のパスワードポリシーとロックアウトポリシーを確認します。
ロックアウトを回避するには、攻撃者は各アカウントにつき、間違えたパスワードをどれだけ試せるかを把握する必要があります。さらに、うまく機能する可能性が高いパスワードを選ぶためには、会社の AD パスワードポリシーを知る必要があります。CrackMapExec はその両方を提供します。以下はその出力例です:
これで攻撃者は、この環境ではロックアウトを引き起こさずに各ユーザーのパスワードを 9 回まで試せることを把握しました。また、最小パスワード長が 5 文字で、パスワードの複雑さが有効になっていることも確認できます。この情報を使えば、ポリシーによって拒否されるパスワードに推測回数を無駄にせず、候補パスワードのカスタム辞書を作成できます。(あるいは、複数の password lists のいずれかを使うこともできます。これらは data breach からのパスワードダンプを使って作成されたもので、これらも GitHub で容易に入手できます。)
ステップ2. すべてのユーザーアカウントを列挙(enumerate)します。
次に、攻撃者はパスワードを試すためのアカウント一覧が必要になります。LDAP クエリで全ユーザー アカウントのリストを簡単に抽出できます。または、以下のように CrackMapExec の rid-brute 機能を使用することもできます:
ステップ 3:それぞれのパスワードをすべてのユーザー アカウントに対して試します。
すべての AD ユーザー アカウントの一覧(users.txt)と候補パスワードの一覧(passwords.txt)があれば、攻撃者は次のコマンドを発行するだけで済みます:
このコマンドは、一致するものが見つかるまで各アカウントに対して各パスワードを順に試します:
弱いパスワードを見つける
ご覧のとおり、環境内でアクセス権を持たない攻撃者でも、AD アカウントを侵害する非常に効果的な方法があります。それは、平文パスワードを単に推測するだけです。こうした攻撃に対して、組織がどれほど脆弱なのか気になっているかもしれません。
確認するには、 DSInternals コマンド Test-PasswordQuality を使用できます。これにより、すべてのユーザー アカウントのパスワード ハッシュが抽出され、弱いパスワードの辞書に含まれるパスワード ハッシュと照合されます。
分析を実行するために発行できるコマンドは以下のとおりです。これはリモートで実行でき、 DCSync Mimikatz attack と同様に DC レプリケーションを使用してパスワード ハッシュを抽出します。
出力レポートの先頭には、可逆的な暗号化で保存されているアカウントのリストが表示されます。このトピックは、前回の last post で取り上げました。
続いて、辞書に含まれているパスワードが見つかったすべてのアカウントが次のように一覧表示されます:
Netwrix は弱いパスワードからどのように防御するお手伝いができるか
Microsoft のパスワード ポリシーでは、いくつかの制約を設定できますが、攻撃者が簡単に推測できるパスワードをユーザーが選んでしまうのを防ぐには不十分です。Netwrix は Active Directory security solution により、強力なパスワードを要求できるようにします。さらに、Active Directory をエンドツーエンドで保護できます。次のことができます:
- Active Directory の脆弱性を特定し、対処(軽減)します。弱いパスワードだけでなく、過剰な権限、シャドウ管理者、放置されたアカウントなども対象にできます。
- 強力なパスワード ポリシーを適用し、AD の構成と権限も制御して、認証情報(credential)の窃取を防止します。
- 高度な脅威であっても検知し、悪意のある攻撃者が任務を完了する前に阻止します。
- 自動化された対応アクションでセキュリティ侵害を即座に封じ込め、ビジネスへの被害を最小限に抑えます。
- 悪意のある、またはその他の不適切な変更から最小限のダウンタイムでロールバックまたは復旧します。
共有する
もっと詳しく
著者について
Jeff Warren
チーフ・プロダクト・オフィサー
Jeff Warren は Netwrix のプロダクトポートフォリオを統括しており、安全に重点を置いたプロダクトマネジメントおよび開発の分野で10年以上の経験を持ちます。Netwrix に入社する前、Jeff は Stealthbits Technologies にてプロダクト組織を率いていました。そこで彼はソフトウェアエンジニアとしての経験を活かし、革新的でエンタープライズ規模のセキュリティソリューションの開発に取り組みました。手を動かす実践的なアプローチと、難しいセキュリティ課題を解決するのが得意な点を強みに、Jeff は「実際に機能する」実用的なソリューションの構築に注力しています。彼はデラウェア大学(University of Delaware)で情報システム(Information Systems)の学士号を取得しています。