不正アクセスされたか・どこから入られたかは、Windowsの標準機能だけで無料で調べられます。この記事では、その手順を順番に説明します。
不正ログインは、社内で最も気づかれにくい侵入の形です。正しいIDとパスワードで入られると、システムから見れば正当な利用者のログインで、エラーも警告も出ません。製品の導入や見積もりなしで、無料で確認する方法から順に整理します。侵入の手口は不正アクセスの基本で解説しています。
無料でできる不正ログインの確認方法
WindowsやMicrosoft 365の標準機能で、いつ・どこから・誰がログインしたかは確認できます。着手しやすい順に3つです。
| やること | かかる時間 | 分かること |
|---|---|---|
| ログイン履歴を自分で見る OS・サービスの標準機能 | 30分〜 | 実際に起きたログインの記録。過去に不審なアクセスがあったかどうか |
| サインイン通知を有効にする 設定を変えるだけ | 10分 | これから起きる不審なログイン。過去にさかのぼることはできません |
| いまの運用を棚卸しする 当サイトの無料棚卸し | 3分 | ログインまわりで何が手つかずのまま残っているか。ログは見ません |
3つ目は自社のログを読んで侵入を検出するものではなく、不正ログインを受けやすい状態になっていないかを判定するものです。すでに侵入されたかを調べたい場合は、1つ目のログ確認が答えになります。
外部の「無料スキャン」に注意
PC版 月1,800円/台(初期費用0円)・サーバー版 月20,000円/台。初月無料ではじめられます(税別・目安)
どこから入られたかを調べる(侵入経路ごとの確認場所)
不正アクセスの調べ方は、入られた可能性のある入口によって見る場所が変わります。中小企業で多い入口は、警察庁の統計でもVPN機器とリモートデスクトップです(ランサムウェアの侵入経路)。社内のWi-Fiも、VPNと同じく社内への入口です。入口ごとに、どこを開けば「いつ・どこから・誰のIDで」入られたかが分かるかをまとめます。
| 入られた可能性のある入口 | 確認する場所 | 見るポイント |
|---|---|---|
| VPN機器 | VPN機器(UTM・ルーター)の管理画面の接続ログ | 社員が使わない時間帯・国外のIPアドレスからの接続成功、退職者や使っていないIDでの接続 |
| リモートデスクトップ | 接続されたPC・サーバーのイベントビューアー(イベントID 1149・4624) | ログオンの種類10(リモート)の成功と、その接続元IP。手順はリモートデスクトップの接続履歴を確認する方法。入口が外から見えていないかはRDPのインターネット公開の確認 |
| 社内のPC・サーバーへのログイン | 各PC・サーバーのセキュリティログ(イベントID 4624・4625) | 深夜・休日の成功、普段使わないPCへの管理者IDでのログイン。手順はWindowsのログイン履歴の確認方法 |
| Microsoft 365などのクラウド | Entra ID(旧Azure AD)のサインインログ | 見覚えのない国・端末からの成功、多要素認証を通っていないサインイン。手順はサインインログの確認方法 |
入口のログで不審な接続が見つかったら、次はそのIDで社内のどのPC・サーバーにログインしたかを追います。VPNを抜けた攻撃者は、盗んだ正規のIDで社内のPCやサーバーへ順にログインしていくためです。入口だけ見て終わると、入られた範囲を見誤ります。
不正アクセスされたかを調べる手順(5ステップ)
見る順番を固定してください。思いついた場所から開くと、痕跡のある場所を飛ばして「何もなかった」と結論づけてしまいます。
調べる順番
- 1
ログが残っている期間を先に確認する
Windowsのイベントログは日数ではなくサイズで消える。上書き済みなら以降は無意味
- 2
ログオン成功の記録を時間帯で絞る
失敗ではなく成功を見る。深夜・休日・長期休暇中の成立を探す
- 3
接続元を見る
社内にない端末名、見覚えのないIPアドレス、国外からのアクセス
- 4
ロックアウトの記録を突き合わせる
ロックアウトは試行が実際にあった証拠(イベントID 4740)
- 5
アクセスされたファイルを確認する
共有フォルダの記録があれば、何が開かれたかまで追える
各手順の詳細は、イベントビューアーのログ保存期間を確認・変更する手順、Windowsのログイン履歴を確認する方法、Entra IDのサインインログを確認する手順、Windowsのロックアウトを解除する方法、共有フォルダのアクセス履歴を記録する手順にまとめています。
何も出てこなくても、「侵入されていない」ことの証明にはなりません。記録されていない経路、保存期間を過ぎた期間、監査が無効だった項目は調べようがないためです。
Windowsで今すぐできる確認(コマンド3つ)
画面を1件ずつ見るより、コマンドで絞り込む方が早く確実です。Windows PC・サーバーのどちらでも追加ソフトなしで実行できます。スタートボタンを右クリックし、「ターミナル(管理者)」または「Windows PowerShell(管理者)」で貼り付けてください(管理者でないとセキュリティログが読めずエラーになります)。
| コマンド | 見るところ |
|---|---|
| 1. ネットワーク・リモートからのログオン | 社内で使っていない接続元IP、使うはずのないユーザー名 |
| 2. 深夜・早朝のログオン | 誰も働いていない時間に人のアカウントで成立したログオン |
| 3. 接続元ごとの失敗回数 | 同じ接続元から数十回以上の失敗。社外IPなら入口が見えている可能性 |
1. 直近7日に成立したネットワーク・リモートからのログオン
Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4624; StartTime=(Get-Date).AddDays(-7)} |
Where-Object { $_.Properties[8].Value -in 3,10 } |
Select-Object TimeCreated,
@{n='ユーザー';e={$_.Properties[5].Value}},
@{n='種類';e={$_.Properties[8].Value}},
@{n='接続元IP';e={$_.Properties[18].Value}}種類が10ならリモートデスクトップ、3なら共有フォルダなどネットワーク経由のログオンです。
2. 深夜・早朝(22時〜7時)に成立したログオン
Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4624; StartTime=(Get-Date).AddDays(-7)} |
Where-Object { $_.TimeCreated.Hour -ge 22 -or $_.TimeCreated.Hour -lt 7 } |
Where-Object { $_.Properties[8].Value -in 2,3,10,11 -and $_.Properties[5].Value -notlike '*$' } |
Select-Object TimeCreated, @{n='ユーザー';e={$_.Properties[5].Value}}, @{n='種類';e={$_.Properties[8].Value}}システム自身のログオン(SYSTEM)と、末尾が$のコンピューターアカウントは除いています。
3. ログオンに失敗した回数を接続元ごとに数える
Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4625; StartTime=(Get-Date).AddDays(-7)} |
Group-Object { $_.Properties[19].Value } |
Sort-Object Count -Descending |
Select-Object -First 10 Count, Name社外のIPが出てきたら、そのIPから成功したログオンがないかを1のコマンドで探してください。失敗だけなら入られてはいませんが、成功が1件でもあれば調査の対象です。
「イベントが見つかりません」と出たとき
ドメイン環境では、ログオンの多くはドメインコントローラー側に記録されます。社内全体を見るならドメインコントローラーで同じコマンドを実行してください。画面での手順はWindowsのログイン履歴を確認する方法にあります。
まとめて無料でチェックする(点検スクリプト)
上のコマンドを1つずつ打つのが手間なら、ログオン失敗の集計に加えて、パスワードだけで入れるアカウント・管理者・リモートデスクトップの設定までを1回で一覧にするスクリプトを用意しています。無料・登録不要です。
無料の点検スクリプト:このPCに「パスワードだけで入れる入口」を一覧にする
PowerShellで1回実行するだけで、次の項目をまとめて確認できます。読み取りのみで、設定は変更しません。外部への送信もしません。
- パスワードでログインできる有効なアカウントと、長く使われていないアカウント
- 管理者グループのメンバー(グループ経由・削除済みアカウントの名残を含む)
- 標準の Administrator / Guest が有効になっていないか
- リモートデスクトップの状態・ポート・ネットワークレベル認証・ファイアウォール
- 直近7日のログオン失敗を接続元ごとに集計(管理者として実行した場合)
- ロックアウトの設定・パスワードの最小文字数・自動ログオン
実行のしかた
ダウンロードしたフォルダでPowerShellを開き、次を実行します(管理者として開くとログオン失敗の集計まで行います)。
powershell -ExecutionPolicy Bypass -File .\Check-WindowsLogin.ps1中身はテキストファイル1つです。実行する前にメモ帳で開いて、何をしているか確かめられます。
「要確認」が0件でも、Windowsのログインはパスワードを知っていれば本人として入れる状態のままです。結果の見方と次にやることは、スクリプトの最後に表示されます。
見落とされやすいのは「PCへのログイン」
報道ではVPN機器やクラウドのアカウントが侵入口として取り上げられますが、被害が広がるのは攻撃者が社内のPCやサーバーへログインしてからです。クラウドに多要素認証を入れていても、WindowsのPCログインはパスワードだけという会社は少なくありません。
自社に当てはめる1問
VPNや社内のWi-Fiなどでつないだあと、社内のPC・サーバーへのログインは、パスワードだけで入れますか?
「VPNやWi-Fiは最新か」ではなく、その先を問う質問です。
調べた後に確認したいこと
なぜ不正ログインは気づかれないのか
ウイルスによる侵入と、盗まれたパスワードでのログイン
ウイルスファイルを使う侵入
- ウイルス対策ソフトの検知対象になりうる
- ファイルなどの痕跡が残る
盗まれたID・パスワードでのログイン
- 認証は「成功」として記録される
- 通常の業務アクセスと形式上の違いがない
- 既にある機能で閲覧・持ち出しをされると検知されにくい
パスワードが漏れた場合に何が起こりうるかはパスワード漏洩の影響で扱っています。
兆候として現れうるもの
- 普段使われない時間帯や場所からのログイン(深夜・休日、業務で使わない地域)
- 同一アカウントの同時ログイン(同じIDが別の端末から並行して使われる)
- 失敗が続いた後の成功
- 退職者や休職者のアカウントの利用
- 管理者権限の操作が普段と違う(権限付与や設定変更が運用時間外)
- 設定やメール転送ルールが勝手に変わっている
- 利用者が身に覚えのないログイン通知を受け取っている
単独では断定できませんが、複数が重なれば詳しく見る対象です。管理者権限のアカウントは権限管理の考え方も確認してください。
確認するときに見る観点
いつ・誰が・どこから・何に対して操作し、成功したか失敗したかの5点が読み取れるかを基準にします。すべてのログを毎回見るのは無理なので、管理者権限を持つアカウントと社外からのアクセスに絞るのが実務的です。影響が大きく、件数が限られて続けやすい範囲です。アカウントの整理はID棚卸しの進め方、何をどの期間記録するかはアクセスログ監査で扱っています。
確認を仕組みにする
| 決めること | 理由 |
|---|---|
| 誰が・いつ確認するか | 担当と頻度がないと、忙しい時期に真っ先に止まる |
| 確認した事実の記録 | 一度見ただけでは意味がない |
| 利用者からの報告窓口と、受けた後の確認者 | 「身に覚えのない通知」の報告は管理者のログ確認より早いことがある。決めておけば放置されない |
人が見に行く確認を続けるのが難しい場合は、全PC・サーバーのログイン記録を1か所に集め、異変があるときだけLINEに届く形にすると、毎日見に行かなくて済みます(アプリップリキー)。確認の担当と頻度を決めても、見に行く手間そのものが減れば、忙しい時期でも止まりにくくなります。さらに、PC・サーバーのログインを本人のスマホを鍵にしたワンタッチログインにすると、2要素認証になります(PC版・サーバー版)。毎回の操作はスマホでワンタッチなので、社員の手間はほとんど増えません。
見つけた場合にまず何をするか
まず該当アカウントのアクセスを止め、パスワードと認証情報を変更します。そのうえで、何が閲覧・操作できたかの影響範囲を確認します。迷う場合も、止める判断は先に行って構いません。初動の詳細はパスワード漏洩の影響と対応で扱っています。
環境別にどこを開いて確認するか
| 確認したい対象 | 開く場所 |
|---|---|
| Windows PC・サーバーへのログイン | イベントビューアーのセキュリティログ。手順はWindowsのログイン履歴を確認する手順 |
| Microsoft 365・クラウドサービス | Entra ID のサインインログ。手順はサインインログを確認する手順 |
| 共有フォルダ・ファイルサーバー | 監査ポリシーの設定が前提。共有フォルダのアクセス履歴 |
| ログインの失敗が続いている | ロックアウトの発生元を特定する。アカウントロックの原因を調べる手順 |
「何も出なかった」の2つの意味
記録が残っていなかった
- 既定では古い記録から上書きされる
- 共有フォルダの履歴は設定しないと残らない
- 先にやるのは調査ではなく記録の設定
記録はあり、痕跡がなかった
- 残っている記録の範囲では不審な成功がない
- それでも記録のない経路は分からない
身に覚えのないログイン通知が来たとき
利用者からの「自分ではないログインの通知が届いた」という報告は、管理者のログ確認より早く異常を捉えられる経路です。次の順で確認します。
通知の報告を受けたときの順序
- 1
通知が本物かを確かめる
通知を装う手口がある。メールのリンクではなく、いつもの方法でサービスを開く
- 2
サインインの記録で日時・場所・端末を見る
本人の別端末や通信環境の切り替えの可能性も先に潰す
- 3
本人でなければ、先にパスワードを変更して止める
調査は止めたあとで構わない
- 4
同じパスワードを他で使っていないか確認する
1か所で漏れた認証情報は他でも試される
通知が来ていないことは、何も起きていない証明にはなりません。通知は設定されている場合にしか届かず、攻撃者が設定を変えていることもあります。
確認だけでは足りないこと
気づく仕組みは被害を小さくするためのもので、確認を増やしても侵入そのものは減りません。パスワードだけで入れる入口が残る限り、同じことが繰り返されます。入口側の対策はWindows OSログインの2要素認証、全体の組み立ては不正アクセス対策、検知と予防診断の違いは検知システムと予防診断の違いを参照してください。
普段の管理が楽になると何が変わるか
この記事の手順は、何か起きたときに1台ずつ調べる方法です。ログイン記録を普段から1か所で見られるようにしておくと、同じ確認が日常の作業の中で済みます。たとえば社員から「ロックされて入れない」と言われたとき、席まで行かずに、どのPCで誰が失敗したかをその場で確かめられます。取引先のチェックシートや監査で「ログインの記録はありますか」と聞かれたときも、日付と利用者で絞り込んだ記録をその日にCSVで出せます。夜間や休日は、異変があるときだけ担当者のLINEに届くので、何もない日は見に行かずに安心して休めます。
よくある質問
不正アクセスされたかを調べるツールはありますか?
まずは追加費用のかからない標準機能で足ります。Windows PC・サーバーはイベントビューアーとPowerShell(上の「Windowsで今すぐできる確認」のコマンド3つ、またはまとめて確認できる無料の点検スクリプト)、Microsoft 365はEntra IDのサインインログです。有償の監視ツールは、こうした記録を自動で集めて知らせるためのもので、記録そのものが残っていなければ調べられない点は同じです。
不正アクセスの痕跡は消されることがありますか?
管理者権限を奪われると、イベントログを消去されることがあります。ただしWindowsでは、セキュリティログを消去した操作自体がイベントID 1102として記録されます。1102が見つかった場合は、消去した時刻と操作したアカウントを手がかりに調査を進めてください。
どこから入られたかが分からないときは?
ログオン成功の記録(イベントID 4624)の接続元IPアドレスとログオンの種類を見ます。社外のIPアドレスやVPNの出口からのリモートログオンがあれば、そこが入口の候補です。PCの利用履歴そのものの見方はWindowsのログイン履歴を確認する方法、リモートデスクトップはリモートデスクトップの接続履歴を確認する方法を参照してください。
いまの運用を棚卸ししてみる
ログイン状況の確認が運用として回っているか、入口側の対策がどこまで進んでいるかは、組織ごとに状況が異なります。applippliの無料棚卸しでは、10問・約3分で、自社の認証・アカウント管理の対応状況を「解決済み/一部解決/人手で対応/未解決」に仕分けた一覧にできます。
