不正アクセスの確認方法|PC・スマホ・サーバー別

「最近パソコンの動作が重い」「スマホのバッテリーが異常に減る」これらは不正アクセスの兆候かもしれません。しかし、多くの人は具体的な確認方法を知らないため、被害が拡大してから気づくケースが後を絶ちません。本記事では、Windows、Mac、スマホ、サーバーそれぞれの確認方法を、初心者でも実践できるよう画像付きで詳しく解説します。

Windows PCの確認方法

Windows PCへの不正アクセスは、多くの痕跡を残します。技術レベルに応じて、初級者向けのGUIツールから、中級者向けのコマンドラインツールまで、段階的に確認方法を解説します。

イベントビューアーでの確認(初級)

Windowsのイベントビューアーは、システムで発生したすべての出来事を記録するデジタル日記帳のようなものです。不正アクセスの痕跡は、必ずここに残されています。

アクセス方法

イベントビューアーを開く最も簡単な方法は以下の通りです:

  1. Windowsキー + Rを同時に押して「ファイル名を指定して実行」を開く
  2. テキストボックスにeventvwr.mscと入力してEnterキーを押す
  3. 左側のツリーから「Windowsログ」を展開し、「セキュリティ」をクリック

初めて開くと、大量のログに圧倒されるかもしれません。しかし、重要なのは特定のイベントIDだけです。

重要なイベントID一覧

イベントID 意味 確認ポイント 危険度
4624 ログオン成功 深夜の時間帯、海外のIPアドレス
4625 ログオン失敗 短時間での連続失敗(ブルートフォース攻撃)
4672 特権の割り当て 通常ユーザーへの管理者権限付与
4720 ユーザーアカウント作成 見覚えのないユーザー名 最高
4732 グループへのメンバー追加 Administratorsグループへの追加 最高
4726 ユーザーアカウント削除 証拠隠滅の可能性
4697 サービスのインストール 不明なサービス名
4798 ユーザーのグループメンバーシップ列挙 情報収集活動

フィルタリング設定

大量のログから必要な情報だけを抽出するには、フィルタ機能を使います。イベントビューアーの右側にある「現在のログをフィルター」をクリックし、以下のXMLを使用します:

<QueryList>
  <Query Id="0" Path="Security">
	<Select Path="Security">
	*[System[(EventID=4624 or EventID=4625 or EventID=4672 or EventID=4720 or EventID=4732)
	and TimeCreated[timediff(@SystemTime) <= 604800000]]]
	</Select>
  </Query>
</QueryList>

このフィルタは、過去7日間の重要なセキュリティイベントのみを表示します。

不審なパターンの見分け方

ログを見る際の重要な着眼点は以下の通りです:

時間帯の異常
通常の業務時間外、特に深夜2時から5時のアクセスは要注意です。不正アクセスの多くは、監視が手薄になる深夜に行われます。土日祝日のアクセスも、業務上必要でない限り疑うべきです。

ログオンタイプの確認

  • タイプ2:ローカルログオン(キーボードから直接)
  • タイプ3:ネットワークログオン(ファイル共有など)
  • タイプ7:ロック解除
  • タイプ10:リモートデスクトップ(RDP)

特にタイプ10(RDP)で海外IPからのアクセスがあれば、アカウント乗っ取りの可能性が高いです。

アカウント名の異常

  • Administrator(無効化されているはずのデフォルト管理者)
  • Guest(通常は無効)
  • 見覚えのないユーザー名
  • ランダムな文字列のユーザー名

ワークステーション名
正規のPC名は通常「PC-営業01」のような規則的な命名です。「DESKTOP-XYZABC」のようなランダムな名前や、外国語のPC名は不正アクセスの兆候です。

タスクマネージャーでの確認(初級)

タスクマネージャーは、現在動作中のプログラムを確認する最も簡単なツールです。Ctrl + Shift + Escで即座に起動できます。

不審なプロセスの特徴

CPU使用率が常に高い(80%以上)
仮想通貨マイニングマルウェアの可能性があります。特に「svchost.exe」が異常に高い場合は要注意です。正規のsvchost.exeは複数動作しますが、CPU使用率は通常1-2%程度です。暗号通貨の採掘に悪用されている場合、常時80%以上を消費します。
メモリ使用量が異常に多い(4GB以上)
メモリ内に潜伏するマルウェアの可能性があります。通常のブラウザでも2GB程度なので、単一プロセスで4GB以上使用している場合は疑うべきです。「chrome.exe」に偽装したマルウェアも存在します。
ネットワーク通信が異常に多い
データを外部に送信している、またはC&C(Command and Control)サーバーと通信している可能性があります。「ネットワーク」列を確認し、常時10Mbps以上の通信があれば要調査です。特に深夜の大量通信は危険信号です。

確認すべきタブ

1. プロセスタブ

  • 見慣れないプロセス名(特に中国語、ロシア語のもの)
  • 発行元が「不明」または空白
  • デジタル署名がない(通常のWindowsプロセスは全て署名付き)
  • 同じ名前のプロセスが大量に起動(20個以上)

2. 詳細タブ

  • PID(プロセスID)を確認し、親プロセスとの関係を調べる
  • コマンドラインを右クリックで表示し、起動パラメータを確認
  • 「explorer.exe」から起動していないシステムプロセスは要注意

3. スタートアップタブ

  • 最近追加された項目(「最終変更日」でソート)
  • 発行元が「不明」の項目は即座に無効化
  • ランダムな文字列の名前(例:「xYz123.exe」)

PowerShellでの確認(中級)

PowerShellは、Windowsの強力な診断ツールです。管理者権限で起動することで、より詳細な調査が可能になります。

実行ポリシーの確認

まず、PowerShellの実行ポリシーが改ざんされていないか確認します:

# 実行ポリシーの確認
Get-ExecutionPolicy -List

# 期待される結果:
#         Scope ExecutionPolicy
#         ----- ---------------
# MachinePolicy       Undefined
#  UserPolicy       Undefined
#      Process       Undefined
#  CurrentUser       Undefined
#   LocalMachine    Restricted

# もしUnrestrictedやBypassになっていたら、マルウェアが設定を変更した可能性

# PowerShell実行履歴の確認
Get-History | Format-Table -AutoSize

# 最近実行されたPowerShellコマンドのログ
Get-WinEvent -FilterHashtable @{
	LogName='Microsoft-Windows-PowerShell/Operational'
	ID=4104
} | Select-Object -First 50 | Format-List TimeCreated, Message

ネットワーク接続の確認

現在確立されている外部接続を詳細に調査します:

# 外部接続の確認(プロセス名付き)
Get-NetTCPConnection | Where-Object {$_.State -eq "Established"} |
	ForEach-Object {
		$process = Get-Process -Id $_.OwningProcess -ErrorAction SilentlyContinue
		[PSCustomObject]@{
			LocalPort = $_.LocalPort
			RemoteAddress = $_.RemoteAddress
			RemotePort = $_.RemotePort
			ProcessName = if($process) {$process.ProcessName} else {"Unknown"}
			ProcessPath = if($process) {$process.Path} else {"N/A"}
			State = $_.State
		}
	} | Sort-Object RemoteAddress | Format-Table -AutoSize

# 怪しいポートでリッスンしているプロセス
Get-NetTCPConnection | Where-Object {$_.State -eq "Listen"} |
	Where-Object {$_.LocalPort -notin @(80,443,445,135,139,3389,5985)} |
	ForEach-Object {
		$process = Get-Process -Id $_.OwningProcess -ErrorAction SilentlyContinue
		[PSCustomObject]@{
			Port = $_.LocalPort
			Process = if($process) {$process.ProcessName} else {"Unknown"}
		}
	}

自動起動の確認

マルウェアは再起動後も動作を継続するため、自動起動に登録されることが多いです:

# レジストリの自動起動項目
$regPaths = @(
	'HKLM:\Software\Microsoft\Windows\CurrentVersion\Run',
	'HKCU:\Software\Microsoft\Windows\CurrentVersion\Run',
	'HKLM:\Software\Microsoft\Windows\CurrentVersion\RunOnce',
	'HKCU:\Software\Microsoft\Windows\CurrentVersion\RunOnce'
)

foreach ($path in $regPaths) {
	Write-Host "`n=== $path ===" -ForegroundColor Yellow
	Get-ItemProperty $path -ErrorAction SilentlyContinue | 
		Select-Object * -ExcludeProperty PS* | Format-List
}

# スケジュールタスクの確認
Get-ScheduledTask | Where-Object {$_.State -ne "Disabled"} |
	Where-Object {$_.Author -notin @("Microsoft", "Microsoft Corporation")} |
	Select-Object TaskName, TaskPath, State, Author, Date |
	Format-Table -AutoSize

# サービスの確認(最近インストールされたもの)
Get-WmiObject Win32_Service |
	Where-Object {$_.StartMode -eq "Auto"} |
	Select-Object Name, DisplayName, PathName, StartMode, State |
	Sort-Object Name | Format-Table -AutoSize

Mac の確認方法

MacOSは、Unixベースのシステムであるため、Windowsとは異なるアプローチが必要です。しかし、基本的な考え方は同じです。

コンソールでの確認(初級)

MacのConsole.appは、システムログを確認するための標準ツールです。Spotlight検索(Command + Space)で「コンソール」と入力して起動します。

Console.appの使い方

  1. アプリケーションユーティリティコンソールを開く
  2. 左サイドバーでMacの名前をクリック
  3. 検索バーでフィルタリング(例:「failed」「error」「authentication」)
  4. 期間を指定して絞り込み

重要なログ

system.log:システム全体の動作ログ

  • カーネルメッセージ
  • システムサービスの起動・停止
  • ハードウェアエラー

secure.log:セキュリティ関連のログ

  • sudo コマンドの実行
  • 認証の成功・失敗
  • SSHアクセス

install.log:ソフトウェアインストールの履歴

  • 最近インストールされたアプリ
  • システムアップデート
  • 不審なパッケージのインストール

不審なエントリーの例

コンソールで以下のようなメッセージを見つけたら、不正アクセスの可能性があります:

# 不正なsudo使用の試み
Nov 1 03:45:23 MacBook sudo[1234]: user NOT in sudoers ; 
	TTY=ttys000 ; PWD=/Users/victim ; USER=root ; COMMAND=/bin/bash

# 認証失敗の連続(ブルートフォース攻撃)
Nov 1 03:46:10 MacBook sshd[5678]: Failed password for invalid user admin
Nov 1 03:46:12 MacBook sshd[5679]: Failed password for invalid user root
Nov 1 03:46:14 MacBook sshd[5680]: Failed password for invalid user test

# 不明なプロセスの起動
Nov 1 04:00:00 MacBook launchd[1]: Unknown job label: com.suspicious.daemon

# カーネル拡張の不正なロード
Nov 1 04:15:30 MacBook kernel[0]: Kext com.unknown.driver not found for unload request

ターミナルでの確認(中級)

Macのターミナルは、より詳細な調査を可能にする強力なツールです。Spotlight検索で「ターミナル」と入力して起動します。

ログイン履歴の確認

誰がいつシステムにアクセスしたかを確認することは、不正アクセス検知の基本です:

# 最後の20件のログイン履歴
last -20

# 出力例の解釈:
# username  ttys001  192.168.1.100  Mon Nov  1 10:00 - 11:00  (01:00)
# → usernameが192.168.1.100から10時にログインし、1時間接続

# 現在ログイン中のユーザー
who
w

# SSH接続の履歴(過去50件)
sudo grep sshd /var/log/system.log | tail -50

# 認証失敗のログ
sudo log show --style syslog --predicate 'process == "loginwindow"' --last 1d | grep -i failed

# sudo実行履歴
sudo grep sudo /var/log/system.log | tail -30

ネットワーク接続確認

現在のネットワーク接続を確認し、不審な通信を検出します:

# 確立された接続(ESTABLISHED)
netstat -an | grep ESTABLISHED

# より詳細な情報(プロセス名付き)
sudo lsof -i -P | grep -i established

# リスニングポート(外部からの接続待ち)
sudo lsof -iTCP -sTCP:LISTEN -P

# 特定のプロセスの通信を調査
sudo lsof -i -P | grep -i "プロセス名"

# 外部との通信量が多いプロセス
nettop -P -L 1

# DNSクエリの監視(リアルタイム)
sudo tcpdump -i any port 53

起動項目の確認

Macでは、LaunchAgentsとLaunchDaemonsという仕組みで自動起動が管理されています:

# ユーザー起動項目の確認
ls -la ~/Library/LaunchAgents/
ls -la /Library/LaunchAgents/

# システム起動項目の確認
ls -la /Library/LaunchDaemons/
sudo ls -la /System/Library/LaunchDaemons/

# 起動項目の内容確認(例)
cat ~/Library/LaunchAgents/com.suspicious.plist

# ログインアイテムの確認
osascript -e 'tell application "System Events" to get the name of every login item'

# 最近追加されたファイルの確認(過去7日)
find ~/Library/LaunchAgents /Library/LaunchAgents /Library/LaunchDaemons \
	-type f -mtime -7 -ls 2>/dev/null

# 不審なカーネル拡張の確認
kextstat | grep -v com.apple

スマートフォンの確認方法

スマートフォンは個人情報の宝庫であり、不正アクセスの標的となりやすいデバイスです。iOSとAndroidそれぞれの確認方法を解説します。

iPhone/iPadの確認(初級)

iOSは比較的セキュアなOSですが、それでも不正アクセスのリスクはゼロではありません。特に脱獄(Jailbreak)されたデバイスは危険です。

設定からの確認項目

1. 設定→スクリーンタイム

  • 「コンテンツとプライバシーの制限」が勝手に変更されていないか
  • アプリの使用時間に異常がないか(深夜に大量使用など)
  • 見覚えのないアプリの使用履歴
  • Webサイトの閲覧履歴に不審なサイト

2. 設定→バッテリー

  • バッテリー消費が異常に多いアプリ(特に「その他」カテゴリ)
  • バックグラウンド動作時間が長いアプリ
  • 充電していないのに本体が熱い
  • バッテリーの減りが以前より明らかに早い

3. 設定→モバイル通信

  • データ使用量が急増していないか
  • 「システムサービス」のデータ使用量が異常に多い
  • 見覚えのないアプリが大量通信
  • 海外ローミングが勝手にオンになっていないか

4. 設定→一般→プロファイルとデバイス管理

  • 見覚えのないプロファイル
  • 企業用アプリの不正インストール
  • MDM(モバイルデバイス管理)の不正登録

不審な兆候チェックリスト

以下の症状が複数当てはまる場合、不正アクセスの可能性があります:

  • [ ] バッテリーの異常な消耗(1日持たない)
  • [ ] 本体の異常な発熱(使用していないのに熱い)
  • [ ] 勝手に再起動する
  • [ ] アプリが勝手に起動・終了する
  • [ ] 通信量の急増(月間使用量が2倍以上)
  • [ ] 動作が異常に遅い(メモリ不足の警告)
  • [ ] ポップアップ広告が頻繁に表示
  • [ ] 設定が勝手に変わる(Wi-Fi、Bluetooth等)
  • [ ] 通話中にノイズや第三者の声
  • [ ] SMSが勝手に送信される
  • [ ] Apple IDのパスワード変更通知が来る
  • [ ] 見覚えのないアプリがインストールされている

Androidの確認(初級)

Androidは、オープンソースの特性上、iOSよりも攻撃を受けやすい傾向があります。特に古いバージョンのAndroidは要注意です。

開発者向けオプションの確認

開発者向けオプションは、通常は非表示ですが、不正アクセスに悪用される可能性があります:

設定→システム→端末情報→ビルド番号を7回タップ
→開発者向けオプションが表示される

確認すべき項目:

  • USBデバッグ:OFFであることを確認(ONだとPCから操作可能)
  • ワイヤレスデバッグ:必ずOFF(Wi-Fi経由での操作を防ぐ)
  • 不明なアプリのインストール:すべてOFF
  • アプリの確認を無効化:必ずOFF
  • OEMロック解除:OFFであることを確認

Google Playプロテクトでスキャン

Google Playプロテクトは、Androidの標準セキュリティ機能です:

  1. Google Playストアを開く
  2. 右上のプロフィールアイコンをタップ
  3. Play プロテクトを選択
  4. デバイスをスキャンをタップ

確認項目:

  • 有害なアプリが検出されていないか
  • Play プロテクトが有効になっているか
  • 最後のスキャン日時が最近か

アプリ権限の監査

不正なアプリは、過剰な権限を要求することが多いです:

設定→アプリ→権限マネージャー

特に注意すべき権限:

  • カメラ:写真アプリ以外は基本的に不要
  • マイク:通話・録音アプリ以外は不要
  • 位置情報:地図・天気アプリ以外は「使用中のみ」に
  • 連絡先:SNSアプリ以外は基本的に不要
  • SMS:メッセージアプリ以外は絶対に許可しない
  • 電話:通話アプリ以外は要注意
  • ストレージ:必要最小限のアプリのみ

サーバーの確認方法

サーバーは企業の重要な資産を管理しているため、より厳密な監視が必要です。LinuxとWindows Serverそれぞれの確認方法を解説します。

Linux サーバー(中級)

Linuxサーバーは、コマンドラインでの操作が基本となります。SSHでログインして以下のコマンドを実行します。

ログ分析コマンド

認証関連のログを確認し、不正アクセスの痕跡を探します:

# 認証失敗ログの確認(最新20件)
sudo grep "Failed password" /var/log/auth.log | tail -20

# 特定IPからの失敗回数をカウント
sudo grep "Failed password" /var/log/auth.log | 
	awk '{print $(NF-3)}' | sort | uniq -c | sort -rn | head -10

# 成功したログインの確認
sudo grep "Accepted password\|Accepted publickey" /var/log/auth.log | tail -20

# 最近ログインしたユーザー
last -20
lastlog

# 現在ログイン中のユーザー
w
who -a

# sudo実行履歴
sudo grep sudo /var/log/auth.log | tail -20

# 新規ユーザー作成の痕跡
sudo grep useradd /var/log/auth.log
sudo grep "new user" /var/log/auth.log

不審なプロセスの検出

システムリソースを異常に消費しているプロセスや、見慣れないプロセスを特定します:

# CPU使用率TOP10
ps aux | sort -nrk 3,3 | head -10

# メモリ使用率TOP10  
ps aux | sort -nrk 4,4 | head -10

# 全プロセスツリー(親子関係を表示)
pstree -p

# ネットワーク接続中のプロセス
sudo netstat -tulpn
sudo ss -tulpn

# 外部と通信中のプロセス
sudo lsof -i -P | grep -i established

# 不審なcronジョブの確認
for user in $(cut -f1 -d: /etc/passwd); do
	echo "=== Crontab for $user ==="
	sudo crontab -l -u $user 2>/dev/null
done

# システム全体のcron
sudo ls -la /etc/cron.*
sudo cat /etc/crontab

# 隠しプロセスの検出
ps aux | awk '{print $2}' | sort -n > /tmp/ps.txt
ls -d /proc/[0-9]* | cut -d/ -f3 | sort -n > /tmp/proc.txt
diff /tmp/ps.txt /tmp/proc.txt

ファイル改ざん検知

システムファイルやWebコンテンツの改ざんを検出します:

# 最近変更されたファイル(過去24時間)
sudo find / -mtime -1 -type f 2>/dev/null | grep -v "/proc\|/sys\|/dev"

# 最近作成されたファイル(過去7日)
sudo find / -ctime -7 -type f 2>/dev/null | grep -v "/proc\|/sys\|/dev"

# SUID/SGIDビットが設定されたファイル(権限昇格に悪用される)
find / -perm /6000 -type f 2>/dev/null | xargs ls -la

# /etc配下の設定ファイル変更確認
sudo find /etc -mtime -7 -type f -ls

# Webルートの改ざんチェック
find /var/www -type f -name "*.php" -mtime -7 -exec ls -la {} \;

# 不審な実行ファイルの検索
find / -type f \( -name "*.sh" -o -name "*.py" -o -name "*.pl" \) -mtime -7 2>/dev/null

# rkhunterでルートキット検査(要インストール)
sudo rkhunter --check --skip-keypress

# ファイル整合性確認(要事前設定)
sudo aide --check
sudo tripwire --check

Windows Server(中級)

Windows Serverは、GUIとPowerShellの両方を活用して調査を行います。

WMIでの調査

WMI(Windows Management Instrumentation)を使用して、システム情報を詳細に調査します:

# リモートデスクトップセッション(タイプ10)の確認
Get-WmiObject Win32_LogonSession | Where-Object {$_.LogonType -eq 10} |
	ForEach-Object {
		$session = $_
		Get-WmiObject Win32_LoggedOnUser | Where-Object {$_.Dependent -match $session.LogonId} |
			Select-Object @{N="User";E={$_.Antecedent.Split('"')[1]}},
						 @{N="Domain";E={$_.Antecedent.Split('"')[3]}},
						 @{N="LogonTime";E={$session.StartTime}}
	}

# 最近インストールされたソフトウェア(30日以内)
Get-WmiObject Win32_Product | 
	Where-Object {$_.InstallDate -gt (Get-Date).AddDays(-30).ToString("yyyyMMdd")} |
	Select-Object Name, Version, InstallDate, Vendor |
	Sort-Object InstallDate -Descending

# 実行中のサービス(Microsoft以外)
Get-WmiObject Win32_Service | 
	Where-Object {$_.State -eq "Running" -and $_.PathName -notlike "*Microsoft*"} |
	Select-Object Name, DisplayName, PathName, StartMode, StartName |
	Format-Table -AutoSize

# 共有フォルダの確認
Get-WmiObject Win32_Share | 
	Select-Object Name, Path, Description, Type |
	Format-Table -AutoSize

セキュリティログの詳細分析

PowerShellを使用して、セキュリティイベントログを詳細に分析します:

# 過去24時間の失敗ログイン(4625)
$startTime = (Get-Date).AddDays(-1)
Get-WinEvent -FilterHashtable @{
	LogName='Security'
	ID=4625
	StartTime=$startTime
} | Select-Object TimeCreated, 
	@{N='Account';E={$_.Properties[5].Value}},
	@{N='WorkStation';E={$_.Properties[13].Value}},
	@{N='IPAddress';E={$_.Properties[19].Value}} |
	Format-Table -AutoSize

# 新規ユーザー作成(4720)
Get-WinEvent -FilterHashtable @{
	LogName='Security'
	ID=4720
} -MaxEvents 50 | Select-Object TimeCreated,
	@{N='CreatedUser';E={$_.Properties[0].Value}},
	@{N='CreatedBy';E={$_.Properties[4].Value}} |
	Format-Table -AutoSize

# 特権使用の監査(4672)
Get-WinEvent -FilterHashtable @{
	LogName='Security'
	ID=4672
	StartTime=$startTime
} | Select-Object TimeCreated,
	@{N='Account';E={$_.Properties[1].Value}},
	@{N='Privileges';E={$_.Properties[4].Value}} |
	Where-Object {$_.Account -notlike "*SYSTEM*"} |
	Format-Table -AutoSize

無料診断ツールの使い方

市販のセキュリティソフト以外にも、優れた無料診断ツールが存在します。これらを組み合わせることで、包括的なセキュリティチェックが可能です。

Malwarebytes(Windows/Mac)

Malwarebytesは、マルウェア感染の検出に特化した無料ツールです。通常のアンチウイルスでは検出できない脅威も発見できます。

インストールと初期設定

  1. 公式サイト(malwarebytes.com)からダウンロード
  2. インストール時に「無料版を使用」を選択
  3. 初回起動時の設定:
    • リアルタイム保護:無料版では14日間のみ
    • スケジュールスキャン:無料版では手動のみ
    • アップデート:自動(推奨)

スキャンオプション

クイックスキャン(10分程度)

  • メモリ上のプロセス
  • 自動起動項目
  • レジストリの重要部分
  • システムフォルダの主要ファイル

脅威スキャン(30分程度、推奨)

  • クイックスキャンの全項目
  • ユーザーフォルダ全体
  • ブラウザの拡張機能
  • ルートキットの検出

カスタムスキャン

  • 特定のドライブやフォルダを指定
  • アーカイブ内部もスキャン可能
  • 外付けドライブの検査に便利

ClamAV(Linux)

ClamAVは、オープンソースのアンチウイルスソフトです。Linuxサーバーの定期的なスキャンに最適です。

インストールとアップデート

# Ubuntu/Debian
sudo apt-get update
sudo apt-get install clamav clamav-daemon

# CentOS/RHEL
sudo yum install epel-release
sudo yum install clamav clamav-update

# 定義ファイルの更新(重要)
sudo freshclam

# 自動更新の設定
sudo systemctl enable clamav-freshclam
sudo systemctl start clamav-freshclam

# 手動スキャン(ホームディレクトリ)
clamscan -r ~/

# 詳細スキャン(システム全体、時間がかかる)
sudo clamscan -r --bell -i --exclude-dir="^/sys" --exclude-dir="^/proc" --exclude-dir="^/dev" /

# 感染ファイルの隔離
sudo clamscan -r --move=/quarantine /home/

# スキャンログの保存
sudo clamscan -r --log=/var/log/clamscan.log /

Wireshark(ネットワーク)

Wiresharkは、ネットワークトラフィックを詳細に分析できる無料ツールです。不審な通信を発見するのに役立ちます。

基本的なフィルタ

Wiresharkの強力なフィルタ機能を使いこなすことで、効率的な分析が可能です:

# HTTP通信のみ表示
http

# HTTPS通信(SSLハンドシェイク)
ssl.handshake

# 特定IPとの通信
ip.addr == 192.168.1.100

# 特定ポートの通信
tcp.port == 80 or tcp.port == 443

# SYNフラグのみ(接続開始)
tcp.flags.syn == 1 and tcp.flags.ack == 0

# FINフラグ(接続終了)
tcp.flags.fin == 1

# DNS クエリ
dns.qry.name contains "suspicious"

# 大きなパケット(1400バイト以上)
frame.len > 1400

# 特定のMACアドレス
eth.addr == aa:bb:cc:dd:ee:ff

不審な通信パターン

以下のパターンを発見した場合、詳細な調査が必要です:

  • 大量のSYNパケットDDoS攻撃の兆候
  • 不明な宛先への通信:C&Cサーバーとの通信の可能性
  • 深夜の大量データ送信:情報窃取の可能性
  • 暗号化されていないパスワード:平文での認証情報送信
  • 異常なDNSクエリ:DNSトンネリングの可能性
  • 繰り返しのICMPパケット:pingを使った情報漏洩

専門家に依頼すべきケース

判断基準

セキュリティインシデントへの対応は、専門知識と経験が必要です。以下の基準で専門家への依頼を判断します。

緊急性の評価

状況 緊急度 推奨対応 理由
ランサムウェア感染 最高 即座に専門家に連絡 時間経過で被害拡大、証拠消失
情報流出の疑い 24時間以内に相談 法的対応、顧客通知が必要
不正送金の発生 最高 即座に警察と専門家 資金凍結の可能性
Webサイト改ざん 即座に専門家 二次被害の防止
動作が遅い まず自己診断 単純な原因の可能性
スパムメール送信 48時間以内 ブラックリスト登録回避

コストと効果のバランス

専門家への依頼を判断する際の経済的観点:

  • 被害想定額 > 調査費用:依頼を強く推奨
  • 法的対応が必要:依頼必須(証拠能力の確保)
  • 技術的に対応不可能:依頼推奨(時間の無駄を避ける)
  • 再発リスクが高い:依頼推奨(根本原因の解明)
  • レピュテーションリスク:依頼推奨(適切な対外発表)

依頼時の準備事項

専門家に依頼する際は、以下の情報を準備することで、迅速かつ的確な対応が可能になります。

提供すべき情報

  1. 異常に気づいた日時と状況

    • 最初の兆候(具体的に)
    • 発見の経緯
    • その後の変化
  2. 具体的な症状

    • エラーメッセージ(スクリーンショット)
    • 異常な動作の詳細
    • 影響範囲
  3. 実施済みの対策

    • 実行したコマンド
    • 変更した設定
    • インストールしたソフト
  4. システム構成

    • ネットワーク図
    • サーバー/PC一覧
    • 使用ソフトウェア一覧
    • セキュリティ対策状況
  5. ログファイル

    • 可能な範囲で収集
    • タイムスタンプを保持
    • 改ざんしない
  6. ビジネスへの影響

    • 業務停止の有無
    • 金銭的損失
    • 顧客への影響

よくある質問(FAQ)

Q: パソコンが重いのは不正アクセスのせいですか?
A: 必ずしもそうとは限りません。まず以下の点を確認してください:(1)Windows Updateが実行中でないか、(2)ウイルススキャンが動作中でないか、(3)ディスクの空き容量は十分か(10GB以上)、(4)メモリ使用率は正常か(80%以下)。これらが正常にも関わらず、タスクマネージャーで見知らぬプロセスがCPUを50%以上使用している場合は、クリプトジャッキングの可能性があります。特に「svchost.exe」が異常にCPUを使用している場合は要注意です。Malwarebytesなどで詳細スキャンを実施してください。
Q: スマートフォンで「このiPhoneはハッキングされています」という警告が出ました。
A: それは99%偽警告(スケアウェア)です。AppleやGoogleが直接そのような警告を出すことはありません。絶対に表示されたリンクをタップしたり、アプリをインストールしたりしないでください。対処法:(1)ブラウザのタブを閉じる、(2)ブラウザの履歴とキャッシュをクリア、(3)念のため設定→Safari→詳細→Webサイトデータを削除。本当に心配な場合は、設定から本記事で紹介した確認項目をチェックしてください。
Q: イベントビューアーに大量のエラーがありますが、全て対処すべきですか?
A: いいえ、多くは無害です。Windowsのイベントログには、正常動作でも多くの警告やエラーが記録されます。重要なのは、本記事で紹介したセキュリティ関連のイベントID(4624、4625、4720等)です。「DistributedCOM」エラー10016や「Perflib」エラー1008などは、通常無視して構いません。ただし、同じエラーが1分間に100回以上記録されている場合は、何らかの問題がある可能性があります。
Q: 公衆Wi-Fiを使った後、不正アクセスされているか心配です。
A: 公衆Wi-Fiは確かにリスクがありますが、すぐに確認すべき点があります。(1)ブラウザの保存パスワードが変更されていないか、(2)メールやSNSから「新しいデバイスからのログイン」通知が来ていないか、(3)クレジットカードの利用明細に不審な取引がないか。予防策として、公衆Wi-Fi利用時は必ずVPNを使用し、金融取引は避けてください。また、中間者攻撃を防ぐため、HTTPSサイトのみを利用してください。
Q: サーバーのログを見ても、正常か異常か判断できません。
A: ログ分析は経験が必要ですが、基本的なパターンを覚えることから始めてください。(1)通常の業務時間外のアクセス、(2)連続した認証失敗(5回以上)、(3)rootやAdministratorへの直接ログイン試行、(4)見慣れないIPアドレスからのアクセス、(5)大量のデータ転送(通常の10倍以上)。これらのパターンが見つかったら、詳細な調査が必要です。また、平常時のログを保存しておき、比較することも有効です。
Q: 不正アクセスの証拠を見つけましたが、すぐに削除すべきですか?
A: 絶対に削除しないでください。証拠の保全が最優先です。(1)画面のスクリーンショットを撮る、(2)ログファイルをコピーして保存、(3)日時と状況を詳細に記録、(4)可能ならシステム全体のバックアップを取る。その後、緊急対処法に従って対応してください。証拠を削除すると、原因究明や法的対応が困難になります。
Q: 家族共用のPCで不正アクセスをチェックする際の注意点は?
A: 家族の正常な使用と不正アクセスを区別する必要があります。まず、(1)各家族メンバーのユーザーアカウントを分ける、(2)管理者権限は1人だけに限定、(3)各自のログイン時間を把握しておく。確認時は、(1)家族のアカウント以外のログインがないか、(2)家族が使わない時間帯のアクティビティ、(3)家族が使わないアプリケーションの起動、を重点的にチェックします。また、子供のオンラインゲームやP2Pソフトは、セキュリティリスクが高いため、使用ルールを決めることをお勧めします。

まとめ:定期的な確認の重要性

不正アクセスの早期発見は、被害を最小限に抑える鍵となります。以下のスケジュールで定期的なチェックを実施することをお勧めします:

日次確認(5分)

  • ログイン履歴の確認(最新のログイン)
  • 異常なエラーメッセージの有無
  • デバイスの動作速度チェック

週次確認(30分)

  • プロセス・通信状態の確認
  • セキュリティログの概要確認
  • アップデートの適用状況

月次確認(1時間)

  • 総合的な診断ツールでのスキャン
  • 自動起動項目の見直し
  • パスワード変更(重要なアカウント)
  • バックアップの動作確認

不正アクセスは、早期発見・早期対応が被害を最小限に抑える鍵です。本記事で紹介した方法を定期的に実践し、少しでも異常を感じたら、躊躇せず詳細な調査を行ってください。

セキュリティは一度設定したら終わりではありません。継続的な監視と改善が、安全なデジタルライフを実現します。


【重要なお知らせ】

  • 本記事の内容は2025年11月時点の情報に基づいています
  • OSやソフトウェアのバージョンにより、画面や手順が異なる場合があります
  • 不正アクセスを発見した場合は、速やかに専門家や警察に相談してください
  • 定期的なバックアップを必ず実施してください

更新履歴

初稿公開

京都開発研究所

システム開発/サーバ構築・保守/技術研究

CMSの独自開発および各業務管理システム開発を行っており、 10年以上にわたり自社開発CMSにて作成してきた70,000以上のサイトを 自社で管理するサーバに保守管理する。