【実例公開】Apacheログから見つけたサーバーを狙う不正アクセスとその対処法

Apacheアクセスログの解析とは?

Webサーバー(Apache)のアクセスログには、日々のアクセス履歴だけでなく、サーバーに対する偵察・攻撃・侵入の試みといった「危険な足跡」も記録されています。

今回は、実際に取得したApacheログから検出された深刻な不正アクセスの実例と、それに対する具体的な防御手順をご紹介します。


危険な不正アクセスの実態

ログを詳細に分析した結果、通常のクローラーとは異なる、明確に悪意を持ったアクセスが多数確認されました。特に危険度の高い3つのパターンを以下に紹介します。

A. サーバー破壊を狙う「コマンドインジェクション」

最も危険な攻撃の一つが、リクエストURLにOSコマンドを埋め込む「コマンドインジェクション」です。

  • 攻撃の目的:ボットネット感染
  • 検出されたログの例
GET /shell?cd+/tmp;rm+-rf+*;wget+...

このようなリクエストは、サーバーのテンポラリディレクトリに移動し、悪意のある実行ファイル(例:Mozi.a)をダウンロード・実行してボットネットに組み込むことを目的としています。

B. 管理画面を狙う「総当たり攻撃(ブルートフォース)」

特定のログインフォームに対して、短時間で大量のパスワードを試行する攻撃です。

  • 攻撃の目的:不正ログイン
  • 検出されたログの例
POST /boaform/admin/formLogin

この攻撃では、辞書攻撃やパスワードリスト攻撃が行われ、User-Agentには Python-urllib などの自動化ツールが使用されていました。

C. 機密情報を狙う「情報収集・スキャン」

本格的な攻撃の前段階として、サーバーの構成や脆弱性を探る偵察活動が行われます。

  • 設定ファイルの窃取
GET /.env
GET /.git/config
  • スキャンツールの使用:User-Agentに ivre-masscanzgrab などのスキャナ名が記録。
  • 既知の脆弱性パスの探索
/actuator/gateway/routes
/cgi-bin/luci/;stok=/locale

IPアドレスの「悪質度」を評価する(AbuseIPDBの活用)

不正アクセス元のIPアドレスが過去にも悪質な行動をしていたかを確認するには、AbuseIPDBという脅威インテリジェンスサービスが有効です。

評価手順

  1. IPアドレスの抽出
    ログから重複のないIPアドレスリストを作成します。
  2. APIキーの取得
    AbuseIPDBに登録し、APIキー(例:daily_ip_check_script)を取得します。
  3. スクリプトで一括照会
    PythonなどでAPIに問い合わせ、各IPの「Abuse Confidence Score(不正利用信頼度スコア)」を取得します。
  4. 結果の分析
    スコアが80%以上のIPは、世界中で悪質な活動に関与した実績が高いと判断できます。

このようにして、「ログ上で不審なIP」かつ「過去にも悪質な実績あり」というIPを特定できれば、確実なブロック対象として扱えます。


【実践編】firewalld + ipsetで一斉ブロック!

悪質と判定されたIPアドレスをOSレベルでブロックするには、Linuxのfirewalldipsetの組み合わせが効果的です。

ステップ1:ipsetの作成

# ipsetの作成(永続化)
sudo firewall-cmd --permanent --new-ipset=bad_ips --type=hash:ip

# firewalldの設定をリロード
sudo firewall-cmd --reload

ステップ2:IPアドレスの一括登録

# IPリストファイルから読み込み、ipsetに追加
IP_LIST="high_score_ips.txt"
IPSET_NAME="bad_ips"

while read ip; do
  sudo firewall-cmd --permanent --ipset=$IPSET_NAME --add-entry=$ip
done < "$IP_LIST"

# 設定を反映
sudo firewall-cmd --reload

ステップ3:ipset全体をブロックするルールを追加

# bad_ipsリストからのアクセスをすべてドロップ
sudo firewall-cmd --permanent --add-rich-rule='rule source ipset="bad_ips" drop'

# 設定の最終リロード
sudo firewall-cmd --reload

これで、Apacheに届く前に不正IPを遮断できるようになります。


まとめ

Apacheログの分析は、サーバー防御の第一歩です。

  • 不正なパターンを検出
  • 外部情報(AbuseIPDB)で評価
  • firewalld + ipsetで自動ブロック

このように、ログ解析 → 評価 → 自動防御の流れを構築することで、より安全なサーバー運用が可能になります。

さらに、WAFの導入により、コマンドインジェクションやSQLインジェクションといったアプリケーション層の攻撃にも対応できます。

今回のIPブロックと組み合わせることで、ネットワーク層とアプリケーション層の多層防御が実現できます。