Windowsパソコンのブルートフォースアタック対策【概要編】

Windows

はじめに Introduction

Windowsのイベントビューアーでセキュリティログを確認したところイベントID:4625が多発していました。
たぶんパスワードの総当たりのブルートフォースアタック(Brute-force attack)の痕跡かと思います。
今のところパスワードが解析され、パソコンに侵入された形跡は無いですが、このままではなんか嫌なので対策したいと思いました。

UTMやルーターで海外IPは全部ブロックすれば早いのですが、同じネットワーク内に本ブログの公開用ウェブサーバーがいたり、スマホのアプリが通信出来ないとかになったもダメなので、攻撃を受けているパソコン側で対策をまずはやっていきたいと思います。

対策概要 Measures Overview

Linuxサーバー(CentOS,Rocky Linux)では、SSH接続やFTP接続が発生する度にリアルタイムでログ監視をして、ログオン失敗が一定回数発生した場合に接続元IPをファイヤーウォールやiptablesに自動追加してブロックしてくれるツール「Swatch」があります。
Windows版は無く、代替ツールも見つからなかったので、近い物を自作してみようと思いました。
参考サイト:https://centossrv.com/swatch.shtml

ログオン失敗のイベントID:4625の発生を検知して、次の処理につなげる方法が分からないので、タスクスケジューラーで5分毎に処理が実行される様にしたいと思います。

処理フロー Flow

①処理開始時間から直近30分以内に発生したイベントID:4625を検索する
②イベントID:4625のログ詳細から接続元IPを抽出してリストを作成
③抽出したIPが直近30分で何回ログイン失敗しているかカウントする
④カウント数が閾値以上のIPをブラックリストIPとして抜粋する
⑤ブラックリストIPをファイヤーウォールで拒否する
⑥以上の処理をタスクスケジューラーで5分毎に自動実行する

フローの①~⑤まではPowerShellで便利なコマンドがたくさんあるみたいなのでPowerShellで書いていこうと思います。Windowsバッチファイルは以前にcurlでデータ送信する処理を書いた事があるだけで、PHPしか言語をまともに描けない私だと何日かかるのか考えただけでもゾッします。まぁ気長に頑張っていきましょう。

パソコン環境 PC environment

パソコン環境としてはこんな感じです。
OS : Windows10 Pro 64bit
PowerShell : Ver 5.1

各処理フローのスクリプト

各処理フローの具体的なスクリプトは記事を作成できしだいアップしていきます。

③抽出したIPが直近30分で何回ログイン失敗しているかカウントする
④カウント数が閾値以上のIPをブラックリストIPとして抜粋する
⑤ブラックリストIPをファイヤーウォールで拒否する
⑥以上の処理をタスクスケジューラーで5分毎に自動実行する
PowerShellでWindowsログID:4625の接続元IPを抽出してリストを作成
はじめに Introduction 「Windowsパソコンのブルートフォースアタック対策」のフロー②である「イベントID:4625のログ詳細から接続元IPを抽出してリストを作成」を行っていきます。 前回のフロー①では、PowerShe...

コメント