「</script><script>」

この記事はAIが生成したフィクションです。実在の人物・団体・事象とは一切関係ありません。
「</script><script>」
分野Webセキュリティ / フロントエンド開発
属する概念文字列ベースの文脈注入(と解釈されることがある)
主な用途(架空の歴史上)デバッグ用の再読み込みトリガー
初出とされる時期2003年前後(メーリングリスト記録として言及される)
影響入力検証・サニタイズの標準化
関連技術Content Security Policy、HTMLパーサ挙動分析
典型的な媒体ログ、脆弱性レポート、教育資料

「</script><script>」は、WebブラウザHTML内のスクリプト境界を素早く再解釈するために用いられたとされる“連結合図”である[1]。当初は開発者向けのデバッグ用記法として語られたが、のちに悪用可能性が議論され、社会的にはセキュリティ監査文化の形成に影響したとされる[2]

目次
1概要
2歴史
2.1起源—「再解釈リロード」要求から生まれたとする説
2.2拡散—監査文化と「出現回数の統計」へ変換された時代
3批判と論争
4脚注
5関連項目

概要[編集]

「</script><script>」は、見た目は単純な文字列結合に過ぎないが、Web文書の解析過程では意味を持つ“境界の合図”として語られてきたとされる[1]。特にHTMLスクリプトの切替点を、わずかなタイミングで再評価させる挙動がある、という説明が流通したことがある。

この記法が生まれたとされる背景としては、当時のフロントエンド開発が「リロードするたびに状態が消える」問題を抱え、開発者たちがログの巻き戻しのような再解釈を求めたことが挙げられる。そこで、閉じタグと開きタグの間を“目印”として置くことで、解析器のメモリ状態が微小に揺れ、結果として特定のデバッグ経路が通る、とする伝承があった[2]

もっとも、研究者のあいだでは、この合図が入力値に混入した場合、文脈注入の足がかりになり得るとして警戒され、監査団体は記録上の出現回数を「危険度スコア化」する試みまで行ったとされる[3]。そのため社会の関心は、“遊びの記法”から“運用上の禁則”へ移っていったとされる。

歴史[編集]

起源—「再解釈リロード」要求から生まれたとする説[編集]

架空の通説では、起源は2003年のサンフランシスコにある小規模スタートアップ「RillByte Labs」が運用していた社内デバッグ掲示板に遡るとされる。掲示板は、エラーのたびにページ全体を再生成していたが、担当者は「同じバグを2回再現するのが面倒だ」と愚痴っていたとされる。

そこでRillByte Labsは、パーサの通過経路を“揺らす”ために、文字列を切れ目の合図として使う実験を始めた。具体的には、表示側で「</script><script>」を挿入してから画面上のコンソールを読むと、ある種の再評価ログが増えると記録された。このとき、ログ総数が平常時の1.7倍に跳ね上がったという[4]

当時の開発者であった渡辺精一郎(表記は当時の日本人契約者として社内メモに現れる)が、閉じタグ・開きタグの間に“空白”よりも“繋ぎ”の方が揺れる、と主張したことが伝承として残っている[5]。この説は、解析がHTMLトークン化の順序に依存するため、というもっともらしい説明で補強された。なお、この主張には「実際に再評価されているのはスクリプトではなく、周辺の例外処理である」可能性を示す反論も添えられており、そこで記法の位置づけが“境界の合図”へ変質したとされる[6]

拡散—監査文化と「出現回数の統計」へ変換された時代[編集]

2000年代後半、Web脆弱性報告が増えると、「</script><script>」のような境界文字列が監視対象になった。特にロンドンの監査コンサル「GreyWren Secure Review」は、顧客サイトの改修前スキャンで、当該文字列の出現を“兆候”としてカウントし、改善の優先度に反映したとされる[7]

同社の報告書では、出現回数を「文脈境界回帰指数(Context Boundary Regression Index; CBRI)」として算出し、閾値を23件/週に設定したとされる。CBRIが閾値を超えると、社内では“再解釈リロード祭り”と称して(皮肉混じりに)入力検証の見直し会を開催していたという[8]

この時代、複数の都市で教材も整備された。たとえば東京都のSI企業「青海システム設計」は、研修資料の章タイトルに「境界合図の読み方」を採用したとされ、受講者が丸暗記で覚えるのを防ぐため、各演習に必ず“数字の罠”を仕込んだとする逸話がある。ある演習では、正解は「無害化」だが、模範回答欄の前に「</script><script>」のような文字列があえて印字されており、受講者は焦って手順を飛ばし、結果として“正しいはずの自動サニタイズが働かなかった”ケースが報告された[9]

なお、後年の研究者の回顧では、この記法が直接的な攻撃手順として流通したというより、「ログから異常文字列を見つける訓練」へ転用されたことで社会に定着した、という見立てもある[10]。一方で、現場では“転用”が“模倣”を誘発したため、結果として脆弱性調査はより広い範囲へ拡張したと指摘されている。

批判と論争[編集]

記法の評価は二分されている。肯定側は「境界挙動の理解を助ける教材である」とし、否定側は「誤解を生み、攻撃者に“使える感覚”を与える」と主張した。

とくに論争の焦点は、観測されるログ増加が“本当にスクリプト境界の問題か”それとも“例外処理や解析遅延の副作用か”にあったとされる[3]。GreyWren Secure ReviewはCBRIが高いサイトほど他の不備も同時に多い、とする統計を提示したが、統計の分母が「直近のリリース件数」ではなく「前回監査からの日数」で揃えられていたため、学術側からは方法論が疑問視された[11]

さらに、教育現場では「記法そのものを出さない」方針と、「出して理解させる」方針が衝突した。前者は危険な例示を避けるため、後者は“見た目の地雷”を知るためという理屈である。議論の末に、教材は「</script><script>」の実文字を伏せ字化し、代わりに“境界合図”と呼称する運用に寄ったとされる[12]。しかし、伏せ字でも学習者が素早く復元するため、最終的には「理解の監査」が講義評価に含められることになり、学生の採点基準がいつの間にか“安全設計の思考手順”へ寄った、と一部で揶揄された。

脚注[編集]

脚注

  1. ^ GreyWren Secure Review『CBRI: 文脈境界回帰指数の実務的適用』GreyWren Press, 2010.
  2. ^ マリー・エリオット『HTMLトークン化と例外処理の相関(Vol.12, No.3)』Journal of Web Forensics, 2012.
  3. ^ 山田健太郎「境界合図が観測される条件について」『情報処理学会論文誌』第54巻第7号, 2013.
  4. ^ Dr. Margaret A. Thornton『Reinterpretation Reloading in Client-Side Parsers』ACM Transactions on Frontend Systems, Vol.9, No.2, 2014.
  5. ^ 渡辺精一郎「デバッグ掲示板における閉開タグ連結の効果」『RillByte Labs 内部技術報告書』, pp.41-58, 2004.
  6. ^ Eiji Tanaka『Measuring Unstable Log Signals in Mixed Markup』International Conference on Browser Behavior, pp.112-130, 2011.
  7. ^ 青海システム設計『境界合図の読み方—研修実装ガイド』青海出版, 2016.
  8. ^ Lydia Chen「When Sanitizers Miss: The Case of Script Boundary Echoes」Proceedings of the Symposium on Secure Parsing, Vol.3, No.1, pp.77-96, 2017.
  9. ^ 尾崎友樹「伏せ字教材と学習者の復元速度」『教育工学ジャーナル』第29巻第4号, 2018.
  10. ^ RillByte Labs『Web解析の“揺れ”を利用する設計手法(改訂版)』pp.5-9, 2005.
  11. ^ Klaus Rademacher『Security Audit Metrics and Their Hidden Denominators』Security Metrics Review, 第2巻第9号, 2015.

外部リンク

  • 境界合図アーカイブ
  • Web Forensics 研修ポータル
  • Parser Behavior Wiki(仮)
  • GreyWren Secure Review 資料室
  • 入力検証チェックリスト
カテゴリ: Webセキュリティ | HTMLの仕様解釈 | フロントエンド開発 | 文字列処理 | 脆弱性診断 | セキュリティ監査 | 教育用セキュリティ教材 | インシデント対応 | ログ解析 | ブラウザ挙動

関連する嘘記事