不正アクセスか誤操作かわからない場合、ログからアクセス元を絞り込んでいく

サイト管理者の場合

「あるデータが消されてしまったかもしれない」

「だれも更新していないはずなのに変更されている」といった相談はよくあります。

 

WordPressの場合は多人数でアカウントを共有しての運用が多いのでこういったことはよくあります。(そしてたいていは普段やらない人のミスであったなど…)

 

ただ管理をしている立場からするとこういったおそらくミスと思われる場合でも、パスワードの流出や悪意ある攻撃も念のため疑わざるを得ません。

また管理に不備がなかったことを証明できないといけないですし、原因がわからないと気持ち悪いこともあります。

ただの誤操作なのに、ログインURL変更やアカウントをすべて作り直しなどは避けたいです。

 

この記事ではこういった事態になったときにアクセス元を突き止めて対処する考え方の概要をまとめました。

アクセスログをとっていることが前提です。

なおログの取り方などの技術的なことは本記事の趣旨からそれてしまうので書きません。(本当はあまり詳しくないので書けません…)

 

そもそもアクセスログって?

そもそもアクセスログとは、文字通り以下のような意味です。

アクセスログ…Webサイトへのアクセスをサーバーなどに記録したもの。
「いつ」「どこから」「どのコンピュータ」がアクセスしたのかの履歴。

アクセスログを調べることでこんなことがわかります。

  • アクセスされたURL
  • 接続元の情報(IPアドレスなど)
  • どこを通って自サイトにきたか
  • UA(ユーザーエージェント)
ユーザーエージェント…ブラウザの種類やバージョンなど

 

つまりサイト管理者(とくに運用保守を担当している人・会社など)にとってセキュリティ上超重要なものです。

逆にこれがあるとどんな訪問や接触がいつどこからあったかを把握することができます。

疑わしいことがあった場合これを調査して原因を突き止め、それに基づいて対策を立てることになります。

不正アクセスが疑われる際に調べる手順(一例)

以下実際にどんな風にログから原因を調べて対策を取るかです。

ここではWordPressサイトを例に

「何月何日何時ごろからあるページが表示されなくなった…」

「操作していないのにファイルが消えてしまったみたいだ…」

などの場合でみていきます。

 

1.疑わしい時間を絞る

基本的にはまず異変が起こった日時から絞っていきます。

 

FTPで接続して各ファイルやフォルダのタイムスタンプなどからピンポイントでわかる場合もあります。

例:WordPressのメディアライブラリに2019/08に上げたデータが消えている場合、

wp-content>uploads>2019>08

この08フォルダのタイムスタンプを見ると最終更新日時がわかります。

時刻が絞れていると次からの手順が楽になります。

 

2.ログインの情報を抽出(「削除」など特定の命令で絞り込む)

次に問題が起こった時刻前後のログインのURLを条件にして絞り込みます。

WordPressへのログインなら

hogehoge.com(ドメイン)/wp-admin/

などの文字列です。(ログインURLをプラグインなどで変更している場合は別)

なお1.で時刻があまり絞り込めていなくても、対象をログインのみに絞るなどすれば膨大にはならないはずなので調査していけます。

 

またログインがわかったらその後あやしい命令がされていないか絞っていきます。

例えば「データが消された」疑いがある場合なら

post.php?action=delete

などの文字列で検索をかけてみます。

 

3.ここまでの情報からIPとUAを洗い出す

ログインや削除など問題に関連する動きをしているあやしいIPとUAを洗い出します。

なぜUAが必要かというと、一つにはIPは変わってしまう可能性があるので。

また同じIPから複数UAなどのパターンもあります。

 

4.あやしいIP、UAの過去の動きを調べる

あるIPからの接続でデータを削除されていた場合、

それが悪意ある攻撃者かもしれませんが、身内のミスの可能性も多々あります。

そのため過去に範囲を広げて同じIPやUAからのアクセスがないか調べていきます。

UA情報をもとに関係者にプロバイダ、端末など条件に合致する人がいないか(可能ならIPなどでさらに照合)確認するのも手です。

「whois」でネットワーク情報を取得しましょう。

IPアドレス・AS番号 - JPNIC

プロバイダ特定などに役立ちます。

またログイン後の動きを追っていくと悪意があるか、関係者が通常の操作を行っているのかだいたい予測がつくこともあります。

例えばあるIPの記録が下記のような場合、通常の管理上の動きだと予測できます。

WordPressで管理画面にログイン。数分置きにメディアをアップロードしたり削除する。

 

ログの読み方概要

ログってどんなものっていうサンプルです。

Apacheではサーバが受信したHTTPリクエスト1件につき1行でログに記録します。

一行はこんな感じです。(設定によるのであくまで一例)

ログを取るとこれが何百行~も並んでいる感じなります。

255.xxx.x.xxx – – [31/Aug/2019:02:12:45 +0900] “GET /wp-admin/post.php?action=delete&post=xxxx&_xxxxxxx=xxxxxxx HTTP/1.1” 302 – “https://domain_name/wp-admin/upload.php” “Mozilla/5.0 (Windows NT 6.2; WOW64; Trident/7.0; rv:11.0) like Gecko”

慣れないとどこが何を表しているかよくわからないですが、主に下記のようなことがわかります。

IP…255.xxx.x.xxx

日時… 31/Aug/2019:02:12:45

経路…HTTPプロトコルバージョン1.1で/wp-admin/post.php?action=delete&post=xxxx&_xxxxxxx=xxxxxxxにGETメソッドでアクセス

アクセスされたページURL…https://domain_name/wp-admin/upload.php

UA…Windows NT 6.1; WOW64; Trident/7.0; rv:11.0➡Windows7 64bit IE11

「Windows NT 6.2; WOW64; Trident/7.0; rv:11.0」ってなんだ?ってなりますが、
「ユーザーエージェント一覧」などのキーワードか文字列そのものでググりましょう。

コメント