AeyeScan blog 第7回「御社のWebサイトに潜む『放置ページ』を見つける方法」 | ScanNetSecurity
2024.07.18(木)

AeyeScan blog 第7回「御社のWebサイトに潜む『放置ページ』を見つける方法」

Webサイトの開発のサイクルが速い昨今では、サイトの改修を推し進めることで、過去の特設サイトや廃止された機能など、古い Webページが放置されてしまう、というのはありがちに思えます。しかし、そこに脆弱性があったとしても、通常の脆弱性診断では見つけることができない。これは大きな問題です。

製品・サービス・業界動向
(イメージ画像)

2024 年 5 月、ある住宅メーカー企業で情報漏えい事件が発生しました。この事件では、Webサイト内に導線がなく、検索エンジンでも発見できない「フォトギャラリー」の Webページに脆弱性があったと報道されています。このような、発見が困難な Webページにおける脆弱性は、自動巡回型の脆弱性スキャナにとって非常に悩ましい問題です。

● Webサイト内に導線がない画面をどう把握するのか

自動巡回型の脆弱性スキャナは、Webサイト内のリンクをたどってアクセスすることで画面を把握する。URL を直接入力しないと辿り着けない画面の場合、自動巡回で発見できないため、自動巡回型の脆弱性スキャナでは診断対象にならない。

● 検索エンジンで発見できない画面をどう把握するのか

キーワードを工夫するなどして検索エンジンを利用することで、リンクされていない画面を発見する手法がある。ただ、検索エンジンでは発見できない仕組みの場合、人手でも見つけられず、手動による診断でも診断対象に追加できない。

Webサイトの開発のサイクルが速い昨今では、サイトの改修を推し進めることで、過去の特設サイトや廃止された機能など、古い Webページが放置されてしまう、というのはありがちに思えます。しかし、そこに脆弱性があったとしても、通常の脆弱性診断では見つけることができない。これは大きな問題です。

手動で発見する方法があれば、脆弱性スキャナに機能実装することで、画面を把握できる可能性があります。今回はこのような放置された Webページを手動で見つける方法をいくつか考えてみました。

● Google検索API

検索エンジンで発見できないというケースで利用されているのは、おそらく Webサイト版の Google検索だと思われます。Webサイト版ではなく、API版なら発見できないか試してみます。

細かいセットアップ手順は省略しますが、

https://www.googleapis.com/customsearch/v1?key={api-key}&cx={engine-id}&filter=1&safe=off&start={1,11,21,...,91}&num=10&q=site:*****

のような URL で API を利用することができます。※

記事執筆時点(2024 年 6 月 28 日)では 371 件がヒットしました。しかし、API の仕様上、100 件しか取得できません。100 件の中から、タイトルに「フォト」が含まれるもの、URL に「photo」が含まれるものを探してみましたが、残念ながら見当たりませんでした。Google検索API でも見つからないようです。

※*****にはドメインを入れています。以降の記述も同様です。

● Bing検索API

Google がダメなら Bing を試してみます。

https://api.bing.microsoft.com/v7.0/search?q=site:*****&offset={0,100,200,...}&count=100&mkt=ja-JP&responseFilter=Webpages

のような URL で API を利用することができます。

記事執筆時点では 558 件ヒットしました。BingAPI では件数制限がないようなので、すべて見ることができます。タイトルに「フォト」が含まれるもの、URL に「photo」が含まれるものは以下の 3 つでした。

- https://*****/ownersclub2/photoContest.do?method=top&categoryId=my_family
-
https://*****/ownersclub2/photoContest.do?method=top&categoryId=m_theme
-
https://*****/ownersclub2/photoContest.do?method=top&categoryId=my_art

また、手元のメモによるとインシデントの発表直後には、

- https://*****/ownerscafe/photo/
-
https://*****/ownerscafe/photo/portrait/index.html
-
https://*****/ownerscafe/photo/home/index.html
-
https://*****/ownerscafe/photo/about/
-
https://*****/ownerscafe/photo/index.html
-
https://*****/ownerscafe/photo/nature/index.html

などの URL もヒットしたようです。

これらの中に「フォトギャラリー」が含まれるかは不明ですが、少なくとも Google検索では見つけられなかったものを発見できました。

● WaybackMachineAPI

InternetArchive は Webサイトの過去データを保存する非営利法人です。WaybackMachineAPI を使うことで、このデータを検索できます。この API も試してみます。

http://web.archive.org/cdx/search/cdx?url=*****/*&output=json&collapse=urlkey&fl=original&limit=10000

のような URL で API を利用することができます。

2394 件ヒットしました。

URL に「photo」が含まれるものを探してみましたが、

- https://*****/common/img/bg_photogram.jpg
-
https://*****/ownersclub2/css/ownerscafe_photo.css

が見つかるだけで、「フォトギャラリー」に関連しそうなものは見当たりませんでした。

● CommonCrawlAPI

CommonCrawl も Webサイトの過去データを保存する非営利法人です。この API も試してみます。

最初に https://index.commoncrawl.org/collinfo.json から各コレクションの APIURL(cdx-api)を取得します。

次に、各コレクションの APIURL にアクセスし、検索を行います。

https://index.commoncrawl.org/CC-MAIN-2024-22-index?url=*****/*&output=json&fl=url&limit=10000
https://index.commoncrawl.org/CC-MAIN-2024-18-index?url=*****/*&output=json&fl=url&limit=10000

https://index.commoncrawl.org/CC-MAIN-2008-2009-index?url=*****/*&output=json&fl=url&limit=10000

こうして取得した URL から「photo」が含まれるものを探してみましたが、見当たりませんでした。

● HTMLコメント

Webサイトの HTML にコメントアウトされたリンクが存在することがあります。画面上ではリンクをクリックできませんが、HTML を見ればそこから URL を取得することができます。これを試してみます。

現在は該当の Webサイトは閉鎖されているため、直接HTML を見ることはできません。代わりに、Bing検索のキャッシュを使います。

Web版の Bing検索で、「site:*****サイトマップ」を検索すると、トップにhttps://*****/sitemap/ が出てきますので、このキャッシュを見てみます。するとコメントアウトされたリンクが含まれていました。「photo」を含むものに限定すると、以下が見つかりました。

- /ownerscafe/photo/home/index.html
- /ownerscafe/photo/portrait/index.html
- /ownerscafe/photo/garden/index.html
- /ownerscafe/photo/nature/index.html
- /ownerscafe/photo/home/
- /ownerscafe/photo/portrait/
- /ownerscafe/photo/garden/
- /ownerscafe/photo/nature/
- /ownerscafe/photo/monthly/
- /ownerscafe/photo/myfamily/
- /ownerscafe/photo/myart/
- /ownerscafe/photo/child/index.html

脆弱性スキャナの場合、自動巡回時にこれらのコメントアウトされたリンクを発見し、それを巡回対象に加えるということもできそうです。

● まとめ

2024 年 5 月に発生した情報漏えい事件の事例をもとに、5 つの方法で、放置された Webページを発見できないか試してみました。今回の結果では、Bing検索API と HTMLコメントが特に有効そうに見えました。1 つの方法に頼るのではなく、複数の方法を試すことが重要です。

また、こうした問題に対応している脆弱性スキャナはないのか調べてみたところ、AppCheck など、URL収集のために、Webサイトの自動巡回と検索エンジンを併用する脆弱性スキャナも存在するようです。

>ForeachURLconfiguredwiththescan,AppCheckperformsonlinereconnaissancetogatherinformation
pertainingtothesitethatispubliclyavailableinsearchenginesandotheronlineindexingservices.
>https://appcheck-ng.com/our-approach/

 近い将来、自動巡回以外の方法でも URL を探し出す機能が、脆弱性スキャナの標準機能になるのかもしれません。

《株式会社エーアイセキュリティラボ》

編集部おすすめの記事

特集

製品・サービス・業界動向 アクセスランキング

  1. AeyeScan blog 第7回「御社のWebサイトに潜む『放置ページ』を見つける方法」

    AeyeScan blog 第7回「御社のWebサイトに潜む『放置ページ』を見つける方法」

  2. 迷惑メール対策推進協議会「送信ドメイン認証技術 DMARC導入ガイドライン」公表

    迷惑メール対策推進協議会「送信ドメイン認証技術 DMARC導入ガイドライン」公表

  3. NTTデータ経営研究所、地域金融機関向けにサイバーセキュリティ合同演習

    NTTデータ経営研究所、地域金融機関向けにサイバーセキュリティ合同演習

  4. 東京都が中小企業を対象にセキュリティ対策点検、50 社募集

  5. 82歳、情報セキュリティマネジメント試験合格最年長記録3年2ヶ月ぶり更新 ~ 令和4年度上期

  6. 「ITパスポート試験」が1位に ~ 日本の資格検定アワード2023

  7. 2 年連続 ITパスポート試験が 1 位、情報セキュリティマネジメント試験も注目ランキングで 2 位に

  8. イエラエ CSIRT支援室 第 31 回 OSCP受験記

  9. “世界一自由、世界一ユニーク” 壁のないSOC 「GMOイエラエSOC 用賀」

  10. カカクコム続報 実はサイバーノーガード戦法? 最大の問題は無知の脆弱性

アクセスランキングをもっと見る

「経理」「営業」「企画」「プログラミング」「デザイン」と並ぶ、事業で成功するためのビジネスセンスが「セキュリティ」
「経理」「営業」「企画」「プログラミング」「デザイン」と並ぶ、事業で成功するためのビジネスセンスが「セキュリティ」

ページ右上「ユーザー登録」から会員登録すれば会員限定記事を閲覧できます。毎週月曜の朝、先週一週間のセキュリティ動向を総括しふりかえるメルマガをお届け。(写真:ScanNetSecurity 名誉編集長 りく)

×