2025/04/11その他
Windowsセキュリティのセルフチェックと攻撃検証
執筆:CISO事業部 豊田 英稔
監修:CISO事業部 吉田 卓史
本記事では、Windowsのセキュリティ機能をセルフチェックする方法について解説します。具体的には、Windows Firewall、RDP(リモートデスクトップ)、システムの権限やアカウント設定、スケジュールされたタスク、およびイベントログを定期的に確認することで、不正な通信や誤った権限設定、不審なログインを防止・検知する方法を紹介します。
また、Windowsのセキュリティ機能を無効化した環境で検証を行ったところ、辞書攻撃ツール(Hydra)を用いたRDP接続の認証が突破されました。適切なセキュリティ設定を施さない場合、不正アクセスのリスクが高まり、外部からの侵入を許す可能性があります。
以上のことから、Windows Firewallは常に有効化しておき、RDPは必要な時だけ有効化、不要な時には無効化することを推奨します。
本記事では、Windowsに備わる各種セキュリティ機能のセルフチェック方法を解説します。具体的には、以下のポイントを紹介します。
・Windows Firewallの状態
・システムの権限・アカウント設定
・スケジュールされたタスク
・Windows イベントログの分析
さらに、これらのセキュリティ対策を適用しない場合、どのようなリスクが生じるかを確認することを目的として、ネットワークレベルのセキュリティを考慮せずに攻撃検証を行いました。
本記事の内容は、セキュリティ向上を目的としたものであり、不正アクセスや不正行為を助長するものではありません。悪用はご遠慮ください。
Windows Firewallは不正なアクセスを防ぎ、信頼できる通信のみを許可することで、システムのセキュリティを強化する重要な機能です。その設定を確認することで、不要な通信が許可されていないかを検証し、システムの安全性を確保します。
①ファイアウォールの状態を確認
以下のポイントをチェックします。
・ファイアウォールが有効になっているか(ドメイン、プライベート、パブリックのすべてのプロファイル)
・RDPの確認
・適切なルールが適用されているか
Windows Firewallの設定は、環境に応じて適切に構成されているかを確認することが重要です。一般的にBlockInbound(受信ブロック)と AllowOutbound(送信許可)の設定となっており、外部からの不要な通信を遮断しつつ、内部からの通信を許可する挙動になります。AllowInbound(受信許可)となっている場合は意図した設定であるかを確認し、必要に応じてBlockInbound(受信ブロック)に変更してください。
WindowsのRDP(リモートデスクトップ)は、リモートアクセスに便利な一方で不正アクセスの標的になりやすいため注意が必要です。特にRDPが有効になっていると、ブルートフォース攻撃のリスクが高まります。
fDenyTSConnections の設定値によって、リモートデスクトップ(RDP)の有効・無効が決まります。
fDenyTSConnections = 1 の場合 → RDPは無効
fDenyTSConnections = 0 の場合 → RDPは有効
手間はかかるものの、RDPは必要なときのみ有効化し、不要なときは無効化するのが理想的です。以下のコマンドでRDPの有効化・無効化を実行できます。
Windowsのシステム権限は、ユーザーが実行できる操作範囲を決定します。適切に管理されていない場合、攻撃者による権限昇格攻撃(Privilege Escalation)やシステムの乗っ取りに悪用される可能性があるため、不要な権限が付与されていないかを定期的にチェックする必要があります。whoamiコマンドを使用して、現在のユーザーに付与されている権限を確認し、不必要な権限が存在しないかをチェックします。
ユーザーに付与されている特権の中にはセキュリティリスクを伴うものがあるため、注意が必要です。例えばSeDebugPrivilege はデバッグ目的で使用されるものの、不正なアクセスに悪用される可能性があります。SeImpersonatePrivilege は一部のサービスでは必要ですが、認証後にクライアントを偽装できる強い権限であり、攻撃に利用されるリスクもあるため、不必要であれば無効にすることを推奨します。
Windowsではスケジュールされたタスク(タスクスケジューラ)を利用して、処理を定期的に自動実行することができます。ただし、マルウェアや不正なスクリプトがシステムのタスクスケジューラを悪用し、意図しないタスクを登録する可能性があるため、定期的にタスクの内容を確認することが重要です。以下でスケジュールされたタスクを確認し、不審なタスクが存在しないかをチェックします。
スケジュールされたタスクの数が多い場合、フィルターを使用して条件に合致するタスクのみを抽出すると確認しやすくなります。以下の内容をチェックし、該当するものは無効化や削除を検討してください。
・不明なスクリプトやプログラムの実行
・定期的な外部サーバーへの通信(見覚えのないIPやURLへのアクセス)
・通常の業務やシステム運用で不要なタスク
イベントログを確認することで、システム内の不審なアクティビティを特定することができます。
全てを表示すると確認が厳しいため、ログオンに関するIDに絞って確認します。
イベントログの分析では、正常なログオン(4624)、特権ログオン(4672)、ログオフ(4634)の流れを確認し、普段の利用時間と一致しているか確認します。また、正常なログオン(4624)やログオン失敗(4625)が短時間に連続で発生している場合、不正アクセスの攻撃対象となっている可能性があるため注意が必要です。しかし、これらを手作業で確認するのは負担が大きいため、アカウントのロックアウトポリシーの設定や、イベントログの監視とアラート通知を活用することで不正なアクセスや異常な操作を早期に特定することが可能です。
本検証では、これまでに紹介したセキュリティ対策を適用しない場合に、どのようなリスクが生じるかを確認することを目的として、ネットワークレベルのセキュリティを考慮せずにWindowsの設定ミスが攻撃にどの程度影響するのかを実際に検証しました。
(1)環境設定
・Windows 10のRDP(リモートデスクトップ)を有効化
・Windows Firewall(ファイアウォール)を無効化
・ユーザーアカウントのロックアウトポリシーは適用されていない
(2) Hydraを使用した辞書攻撃
Hydraはさまざまなプロトコルに対応したパスワードクラックツールで、辞書攻撃を自動化できます。特にRDP、SSH、FTP、HTTPなどのリモートログインプロトコルに対して有効で、短時間に大量の認証試行を行うことが可能です。
・users.txtにはユーザー名、passwords.txtにはパスワードが記載されています。
・ユーザー名、パスワードはランキング等を参考に収集しましたが、正解の認証情報も記載しています。
・攻撃に成功すると対象ホストのIP、ユーザー名、パスワードが表示されます。
Windowsイベントログの分析で実行したコマンドを実行してみます。
ログオン成功(4624)や特権割り当て(4672)、ログオフ(4634)のイベントに加え、ログオン失敗(4625)のイベントも確認されました。Hydraを実行したことで、辞書攻撃による認証試行が成功したケースと失敗したケースの両方が発生していることが確認できました。
※Windows Firewallを有効化すると、Hydraの攻撃はブロックされます。
辞書攻撃で取得したユーザー名・パスワードを使用して、実際にRDP接続を試みました。
成功すると画像のようにRDPの画面が表示されます。
今回の検証により、Windows Firewallが無効化されている場合、Hydraの攻撃や不正なRDP接続が成功することを確認しました。Windows Firewallはデフォルト設定でも十分な防御力を持っており、厳密なポリシーのカスタマイズも可能です。設定確認やログ管理が難しい場合でも、Windows Firewallが無効化されていないかを定期的に確認することだけでも効果的です。
豊田 英稔(とよだ ひでとし)
2023年にアイディールートコンサルティング株式会社(IDR)に新卒で入社。エンジニアとしてCISOサービス事業部に参画し、Prisma Accessの導入案件を中心に担当している。
監修:吉田 卓史(よしだ たくし)
20年間にわたり、一貫してサイバーセキュリティに携わる。ガバナンス構築支援からセキュリティ監査、ソリューション導入等、上流から下流まで幅広い経験を有する。また、複数の企業において、セキュリティのコンサルティングチーム立ち上げを0から担い、数億円の売上規模にまで成長させる。IDRにおいても、セキュリティコンサルティングチームの立ち上げを担い、急速なチーム組成、案件受注拡大を行っている。