KDL BLOG

コーディングエージェントで手軽にログ分析をしよう

データインテリジェンスチームの畑です。私事ですが、10月に行われた実践型セキュリティイベント「Hardening 2025 Invisible Divide」(以下、Hardening)に参加してきました!
Hardeningは用意されたECサイトを様々な攻撃から守り抜く実践型セキュリティ競技会です。当日うまく立ち回れず悔しい思いをしたので、AIを使ってHardeningで活用できるセキュリティ対策を検討してみました。

目次
・はじめに
・環境構築
・想定する攻撃
・攻撃の検知
 - 1. アクセスログ、エラーログの取得
 - 2. 取得ファイルの分析
    ■ 使用したコーディングエージェント
    ■ Gemini CLIの検知結果
    ■ Codex CLIの検知結果
・まとめ
・参考

はじめに

Hardeningでは攻撃からECサイトを守り抜くべく、防御を固めること、攻撃を検知して対応することが大事です。今回は攻撃の検知をコーディングエージェント*1を使って効率化できないかを試しました。コード生成がメインのツールですが、ローカルファイルへのアクセスや分析も簡易にできるため利用しました。

*1:自然言語プロンプトから機能コードを生成する(Vibe Coding)に強みをもったエージェント。

環境構築

WordPressで作られたブログサイトを想定します。踏み台サーバーを経由して、サイト表示に必要な各コンテナにアクセスする環境を準備しました。

Dockerコンテナの準備は割愛します。コーディングエージェントを使用し環境構築を行いました。

想定する攻撃

認証総当たり攻撃(ブルートフォース攻撃)
認証情報を総当たりで入力してログインを試みる攻撃です。今回は模擬的に手動でログイン失敗を十数回起こしました。ログイン失敗の履歴はアクセスログやエラーログに残ると想定されるため、これらのログを用いて検出を試みます。

WordPressのログイン画面

攻撃の検知

以下の手順で検知を行いました。
1.ローカルにアクセスログ、エラーログを取得する
2.取得したファイルをコーディングエージェントで分析する

1.ローカルにアクセスログ、エラーログを取得する

踏み台サーバー経由でWordPressへのアクセスログ、エラーログをローカルの「logs/」フォルダに取得するコードを作成します。

実行すると無事アクセスログとエラーログが出力できました。ファイル名の数字はタイムスタンプです。

アクセスログ、エラーログの取得結果

2.取得ファイルの分析

1.で取得したログファイルをコーディングエージェントで分析します。

使用したコーディングエージェント
以下、2ツールを使用して検知を行いました。

Gemini CLI
バージョンは0.16.0。モデルはGemini 2.5 FlashかGemini 2.5 Flash-Liteが、質問にあわせて自動で選択される。

Codex CLI
バージョンは0.47.0。モデルはGPT-5を設定。その他の設定は以下のconfig.toml(一部抜粋)の通り。

Gemini CLIの検知結果

ログファイル一覧を確認し、正しく直前と最新のファイルを取得できています。

Gemini CLIによるログファイル一覧の取得

(つづきは、ブログ「神戸のデータ活用塾!KDL Data Blog」へ)

hatena.png

お問い合わせ

ブログ記事やサービスに関するご質問・ご相談など、お気軽にお問い合わせください。