SECURITY OBSERVATION REPORT

サイバーセキュリティ観測レポート

ログに残る攻撃試行を、日々の備えにつなげるために。
スタジオまさおが確認した状況を、公開可能な範囲で共有します。

REPORT 01 / ORIGIN & EDGE LOG ANALYSIS

3日分のログ比較と
Cloudflare導入後の観測

対象
2026年10月10・14・18日分のサーバーログ
Cloudflareの実イベントは10月19日
更新日

インターネットに公開したWebサイトには、規模や業種にかかわらず、設定ファイルや既知の脆弱性を探す要求が届きます。当サイトで実際に記録された要求と応答を、観測結果として整理しました。

2026年10月16日(金)にCloudflareを導入しました。導入前の2期間と導入後の1期間のサーバーログに、CloudflareのFirewallイベントを加え、観測した攻撃試行と導入前後の変化を報告します。

KEY FINDINGS

観測の要点

サーバーの記録件数52.1% 減10/14分 → 10/18分
総リクエスト数の比較
導入後も届いた .env 関連要求203 件10/18分・クエリ内の指定を含む
403・404・501の応答を記録
Cloudflareの遮断記録244 件本体+wwwのJSON収録分
今回の出力データに含まれる件数
  • 導入前は、総アクセスが減っていても探索が増加。10月10日分から14日分にかけて、.env関連要求は79件から434件に増え、PHP-CGI・Shellshock・SSRF型の試行も記録されました。
  • 導入後は、サーバーへの到達件数と記録上の送信量が減少。総リクエストは22,027件から10,547件に減少しました。
  • Cloudflare側でも探索の継続と遮断を確認。設定ファイルなどを探すアクセスに対し、カスタムルールによるブロックが記録されています。

DATA & TIME WINDOWS

資料と集計期間

一次資料は、studiomasao.comのサーバーアクセスログ3ファイル・エラーログ3ファイルと、CloudflareのFirewallイベントJSON 1ファイルです。以下の時刻はすべて日本時間(JST/UTC+9)です。

ファイルの日付と、実際に記録されている時間帯
資料実際の収録範囲集計件数
サーバー 10/10分(土)導入前10/10 03:51:39 ~ 10/11 03:30:44アクセス 24,351
エラー 88
サーバー 10/14分(水)導入前10/14 03:18:23 ~ 10/15 03:17:01アクセス 22,027
エラー 344
サーバー 10/18分(日)導入後10/18 03:39:17 ~ 10/19 03:18:06アクセス 10,547
エラー 111
Cloudflare JSON導入後10/19 15:17:22 ~ 17:07:20全ホスト 355
本体+www 244

サーバーの時間帯はアクセスログの収録範囲です。Cloudflareの件数は、一部サンプリングを含む今回の出力データ内の件数で、両者の収録時間帯は異なります。

BEFORE & AFTER

3期間で何が変わったか

同じ集計条件で比較したサーバーの記録
指標10/10分
導入前
10/14分
導入前
10/18分
導入後
総リクエスト24,35122,02710,547
1時間あたりの記録件数(概算)1,030919446
記録上の応答バイト数(MB)1,326.71,031.0321.2
HTTP 403141564112
HTTP 4042,7844,4832,333
HTTP 429100
HTTP 5xx(全件501)0252
エラーログ行数88344111
.env 関連要求79434203
.env 関連要求の割合0.32%1.97%1.92%

10/10 → 10/14:件数よりも中身が変化

総リクエストは9.5%減少した一方、.env関連要求は約5.5倍、403は4倍になりました。総アクセス数が減る一方で、設定情報を探す要求が増えていました。

10/14 → 10/18:記録件数が減少

総リクエストは52.1%、応答バイト数は68.8%減少しました。.env関連要求も434→203件に減りましたが、全記録に占める割合は1.97%→1.92%と近い値です。件数と割合の両方から変化を確認しています。

この比較は各期間の記録件数の変化を示しています。利用状況や曜日、キャッシュなども影響するため、Cloudflare単独の遮断率としては扱っていません。

OBSERVATIONS

ログから見えた探索・攻撃試行

主な探索・攻撃試行を9つに分類しました。件数は順に10/10分 → 10/14分 → 10/18分です。

  1. Webシェル・PHP診断ファイルの探索

    Web Shell / Diagnostic File Discovery

    3 → 41 → 0件

    既知のWebシェル名やphpinfo.php、管理ツール名などを列挙するアクセスです。10/14分は404が24件、301が17件。ファイルの存在を調べる探索として分類しています。

  2. 機密設定・認証情報の探索

    Sensitive File / Credential Enumeration

    .env関連:79 → 434 → 203件

    データベースや外部サービスの接続情報が置かれやすい設定ファイルを、階層・拡張子・派生名を変えて探索しています。10/18分の203件は403が14件、404が187件、501が2件で、2xxはありません。Vite系のファイル・デバッグ用パスも28→56→30件あり、設定情報やプロセス情報を求める横断的な探索が続いています。

  3. Gitリポジトリ露出の探索

    Exposed Git Repository Probing

    1 → 25 → 0件

    .git/configなど、ソースコード管理情報の公開を探る要求です。10/14分は403が9件、404が14件、301が2件。2xxは記録されていません。301は別のURLへの転送を示す応答です。

  4. AI開発ツール・MCP設定の露出探索

    AI Tool / MCP Configuration Disclosure Probing

    0 → 10 → 0件

    AI開発ツール、エディター、MCP連携用の設定パスを列挙する要求です。10/14分の該当10件はすべて403でした。開発用の設定情報を探すパターンとして分類しています。

  5. SSRF型の要求・クラウドメタデータ探索

    Server-Side Request Forgery / Metadata Probing

    0 → 17 → 0件

    クエリ等にクラウドのメタデータ取得先を指定し、サーバーから内部向け通信を起こそうとするパターンです。10/14分は200が14件、404が3件でした。200はWebページの応答を示すもので、攻撃の成功を示すものではありません。応答サイズについては後述します。

  6. ThinkPHPのリモートコード実行試行

    ThinkPHP RCE Probing

    0 → 2 → 0件

    ThinkPHPの関数呼び出し・ディスパッチを悪用する形の要求です。10/14分の2件は200で、通常のトップページと同じ応答サイズが記録されています。

  7. Shellshock攻撃試行

    Bash Environment Variable Command Injection

    0 → 12 → 0件

    User-AgentやRefererに、Bashの関数定義を悪用する特徴的な構文が含まれていました。10/14分は501が6件、404が6件です。いずれもエラー応答として記録されています。

  8. PHP-CGI引数インジェクション

    PHP-CGI Argument Injection

    7 → 14 → 0件

    PHPの設定値を外部入力から変更しようとする要求です。allow_url_includeまたはauto_prepend_fileの指定を含む行を集計しました。10/14分は404が10件、405が4件。いずれもエラー応答として記録されています。

  9. クローラー名を使う自動的な横断探索

    Automated Cross-Product Probing

    検索・AIクローラー等を名乗るUser-Agentで、設定ファイルや複数製品向けのパスを短時間に列挙するパターンが複数日に見られました。今回の分類では、クローラーの名乗りよりも要求先や短時間の連続アクセスに着目しました。

このほか、WordPressのログイン・XML-RPC入口への要求は2→55→0件で、いずれも403でした。

RESPONSE ANALYSIS

どんな結果になったか

ログに記録された主な応答
観測応答の意味
403・404・405拒否、対象未検出、メソッド不許可として応答したこと
301・302別の場所への遷移を指示したこと
攻撃形式のクエリに200Webページへの要求に応答したこと
501エラー応答が返ったこと
Cloudflareのblockそのイベントでルールのブロック処理が記録されたこと

200応答の具体例:本文サイズは通常ページと一致

10/14分のThinkPHP型2件とSSRF型13件は7,217バイト、別時刻のSSRF型1件は8,141バイトでした。それぞれ近い時刻の通常のトップページへのGETでも同じサイズが記録されています。これらは通常ページが返された可能性を示す記録です。

エラーログは、主にアクセス制御による拒否を記録

エラー543行のうち、AH01630(サーバー設定によるアクセス拒否)は83→339→110件、AH01797(アクセス制御による拒否)は2→2→1件でした。10/14分にはディレクトリ一覧の表示禁止を示すAH01276が3件あります。

10/10分には、ModSecurityがファイル部分を除くリクエスト本文について1MiBの上限超過を検出し、413で拒否した記録が3件ありました。この記録では、防御機能と拒否理由を具体的に確認できました。

会員ログインへのPOSTは67→13→35件で、すべて302(画面遷移)の応答でした。また、404には旧URLやリンク切れも含まれるため、404全件を攻撃として数えていません。

CLOUDFLARE OBSERVATIONS

導入後、エッジ側では何が見えたか

JSONの355件はすべてaction=block、source=firewallCustomでした。この資料には、カスタムルールによる遮断が記録されています。

書き出し全体と、サイト本体の集計を分離
対象ホスト海外アクセス遮断設定ファイル遮断計
studiomasao.com + www2413244
その他のサブドメイン1110111
JSON全体3523355

本体+wwwの244件を、要求内容から読み直す

パスを中心とする分類。ここでは1イベントを1分類に整理
要求の種類件数読み取れること
設定・認証・開発情報の探索120環境設定64、クラウド認証13、Git・CI設定10、PHP診断6、その他開発設定27
WordPress REST API関連37CMS配下のAPI探索30件と、バッチAPIへのPOST 7件
CMSの設置場所探索14複数の候補ディレクトリを列挙
公開ページ・公開資産など52通常の閲覧・収集でも使われるURLへの要求
トップページ18サイトのトップページへの要求
HEADによる設定ファイル確認3同時刻・同一User-Agentの確認要求。検証アクセスの可能性があるため別枠で集計

特に、10/19 16:04:34〜16:04:36の間には、1つの接続元から本体とwwwに127イベント・90種類のパスが記録され、そのうち120件が設定・診断情報の探索でした。書き出し全体では同系統の探索が226件あり、サブドメインにも106件見られました。導入後も探索は継続し、この抽出分ではCloudflare側の遮断が記録されています。

海外アクセスの遮断には、設定ファイル探索だけでなく公開ページやトップページへの要求も含まれていました。このため、遮断件数は攻撃件数とは分けて掲載しています。

接続元IPの記録にも変化

10/18分では、ログに記録された接続元IPのうち10,418件(98.8%)がCloudflare公開IPv4レンジと一致しました。導入前は10/10分が0件、10/14分が2件でした。残り129件はすべて301でした。導入後はCloudflareの接続元IPが多く記録されるようになっています。Cloudflare公式IPv4レンジ

MEASURES SUGGESTED BY THE LOGS

今回のログから考えられる対策

今回の記録では、設定情報の探索と既知の脆弱性を狙う要求が目立ちました。こうしたアクセスへの備えとして、次の対策が有効と考えられます。

  1. 設定・開発用ファイルの公開を防ぐ

    .envやGit、開発ツールの設定を探す要求が繰り返し届いていました。これらを公開領域に置かず、サーバー側でもアクセスを拒否する設定が、情報の持ち出しを防ぐ備えになると考えられます。

  2. Cloudflareとサーバーの両方で防ぐ

    Cloudflareでは探索の遮断を確認した一方、導入後のサーバーにも.env関連の要求が届いていました。Cloudflareのルールとサーバー側のアクセス制御を組み合わせることが、継続する探索への対策として有効と考えられます。

  3. 使用するソフトウェアを更新する

    PHP-CGIやShellshockなど、既知の脆弱性を狙う形式の要求も記録されました。使用しているソフトウェアの更新も、こうした試行への備えとして有効と考えられます。

集計方法・参照資料

アクセスログ56,925行・エラーログ543行と、Cloudflareの355レコードを解析しました。アクセスはstudiomasao.comとwww.studiomasao.comを合算し、画像なども含めて1要求を1件として集計しています。エラーログは別集計です。1時間あたりの件数はアクセスログの収録時間幅から計算し、MBは1,000,000バイトとしています。

URLを最大3回パーセントデコードし、要求先やUser-Agent等の特徴から分類しました。.env関連にはクエリ内の指定や派生名も含みます。分類は重複し、再試行も別の要求として集計しています。HTTP応答は通信上の結果で、認証やサーバー内の処理結果とは区別しています。本文サイズの比較は補助情報です。

Cloudflareの選択期間は10/18 17:08:04〜10/19 17:08:04(JST)、実際の収録範囲は本文の表のとおりです。sampleIntervalは1が200件、2〜8が155件で、件数の補正はしていません。サーバーのログとは時間帯が異なり、両者を合算した攻撃総数や全通信に対する遮断率は算出していません。公開する情報は集計結果を中心とし、接続元IPや会員情報などは掲載していません。

ONGOING LOG REVIEW

今後のログ点検

今後も、探索の内容や拒否・遮断の記録を確認し、通常のご利用への影響にも配慮しながら対策を見直してまいります。

当店の取り組みと、お客様にお願いしたい対策は、以下のページでご案内しています。

ページの先頭へ ↑

STUDIO MASAO MEMBERS

撮影会の予約には会員登録が必要です

会員ページで空き枠の確認、予約、履歴確認をまとめて行えます。

会員ページへ