企業はJavaScriptを完全に無効にすべきか否か
IE、Firefox、Chrome開発者を悩ませるJavaScript、ユーザー企業への影響は?
高品質なWebページを実現できる一方でハッカーに悪用されるケースの多いJavaScript。企業はその存在を完全に無効にすべきかどうか、必要なセキュリティ対策も踏まえて検討する。
JavaScriptは、最も利用されているWebサイトスクリプト言語だ。Webブラウザ上で動作し、HTMLのみの場合に比べてはるかに動的なページを実現できる。一方でハッカーにとっては、ブラウザを乗っ取り、不正な操作を実行できる存在でもある。
JavaScriptが攻撃に悪用されるケースが多いためクロスサイトスクリプティング(XSS)をはじめ、さまざまなインジェクション攻撃に利用されている、ブラウザベンダーは一層のセキュリティ対策が求められている。本稿では、JavaScriptのセキュリティ対策を幾つか紹介する。また、企業はJavaScriptを完全に無効にすべきかどうかについても検討する。
JavaScriptのセキュリティ対策の1つは、不正コードが埋め込まれている既知のサイトへのユーザーアクセスを防ぎ、コードが実行される機会そのものを絶つことだ。MicrosoftのInternet Explorer(IE) 8とIE 9はURLをフィルタリングするSmartScreen機能を利用し、Firefox、Safari、ChromeはGoogleのSafeBrowsingを採用して、同様の処理を行っている。仕組みは、まず上記のようなレピュテーションベースのシステムがインターネット上の不正なWebサイトを検索し、検索結果に従ってサイトのコンテンツにフラグを付ける。次にユーザーがリクエストしたURLのレピュテーション情報をブラウザが要求し、危険を示すフラグがコンテンツに付けられている場合は、ユーザーに警告を表示する。
IE 9にはXSSフィルタ機能も実装されている。この機能は、Webサイトからの他のWebサイトに対する動作を分析し、疑わしいスクリプトコードが別のサイトに混入することを防ぐ。Chromeにも同様の機能がある。Firefoxの場合はNoScriptプラグインをユーザーがインストールする必要がある。ただし、いずれのコントロールでも、ブラウザがサーバの意図とは違う形でコンテンツを解釈する可能性があるため、信用できないコンテンツを適切に除外することは難しい。実際、Samyワームはこの矛盾を突き、(MySpaceサイトで入力検証時にブロックされる)単語「JavaScript」を「Java」と「Script」の2つに分けることで、CSSタグ内にコードを混入させた。
また最近では、不正コードをカモフラージュするために、複雑で検出しにくい複合型の攻撃が使用され始めている。例えば、Adobe Flashに組み込むAdobe ActionScriptコードとWebページに組み込むJavaScriptコンポーネントに悪意のあるコードを分割して、多くの予防型セキュリティの検査をすりぬけるという手法が取られている。
Firefoxは、バージョン4からコンテンツセキュリティポリシー(CSP)をサポートした。CSPを利用すると、サイトは特殊なヘッダを送信することで、.js形式の実行可能スクリプトの正規の発行元と見なされるべきドメインを指定できる。CSP対応Webブラウザは、このような承認済みのドメインから読み込まれたスクリプトのみを実行する。Twitterは最近、モバイルサイトにCSPを実装したが、これは簡単な作業ではなかった。埋め込まれたJavaScriptコードを別のファイルに移動し、スクリプトタグを使って再読み込みする必要があるからだ。
また、CSPはonClickなど、JavaScriptによって制御されるさまざまなHTMLイベントを無効にするため、JavaScriptの悪用は阻止できても、ユーザー用の送信ボタンなど、Weサイトの正規のonClick機能が図らずも使用できなくなる可能性がある。WordPress、Drupal、Djangoの各WebフレームワークへのCSPへの実装が進められているが、特に、持続型XSSに対しては限られた保護しか得られず、クロスサイトリクエストフォージェリ(CSRF)攻撃には歯が立たないため、大半のWebサイトでCSPが使用されるようになるまでには、時間がかかるだろう。
JavaScriptのリスクを考慮し、企業ではJavaScriptの実行を全面的に無効にする場合がある。この設定は、全てのブラウザに用意されている。ただしこの場合、ナビゲーションメニューにはJavaScriptがある程度使用されていることが多いため、かなりのWebサイトを利用できなくなる。セキュリティが最優先課題の場合は、スクリプトを無効にし、ホワイトリストを作ってブラウザでJavaScriptの実行を許可するサイトと禁止するサイトを制御することもできる。
この処理も全てのブラウザでサポートされているが、ホワイトリストのメンテナンスには時間がかかるのが難点だ。また、Adobe ReaderでもJavaScriptを無効にすることをお勧めする。Symantecによると、2010年に発生したWebベース攻撃の半数近くが、不正なPDFファイルに関係しているという。ほとんどのPDFは表示や操作にJavaScriptを必要としないため、Adobe ReaderでJavaScriptを無効にしても、さほど不便は感じないだろう。
上記のいずれの方法もスマートではないが、現時点では、100%安全でありながらJavaScriptも使用できるという実用的な代替策はない。ブラウザベンダーはブラウザのセキュリティを強化する必要に迫られているが、JavaScriptベースの攻撃に強いサイトの構築をWeb開発者に求める必要もある。
例えば、ユーザー入力をWebページに追加したりデータベースに格納する前に厳格なチェックを実行することで、持続型(ストアド)XSS攻撃からWebサイトユーザーを保護する(.NET開発者の場合は、Microsoft Anti-Cross Site Scripting Libraryをフル活用して、格納対象のデータから不正データを除去する)。また、開発者はクライアントサイドスクリプトがcookieにアクセスできないように、HttpOnlyフラグを常に使用する習慣を付け、IE 8で導入されたtoStaticHTMLなどのメソッドを利用することを覚える。toStaticHTMLは、HTMLで表示する前にユーザー入力からイベントの属性とスクリプトを削除することで、DOMベースのXSS攻撃からページを保護するメソッドだ。JavaScriptベースの攻撃の被害を受け得るWebページを排除することで、ユーザーの保護を格段に強化できる。
ブラウザやサイトでどれほどセキュリティ対策を講じても、ユーザーやサイトが、ユーザーの信頼というブラウザセキュリティの最大の弱みにつけ込んだソーシャルエンジニアリング攻撃の餌食になる可能性は消せない。ソーシャルエンジニアリング攻撃では、ユーザーがJavaScriptコードをブラウザのアドレスバーにコピーするように仕向け、現在読み込まれているページのコンテンツが実行されるようにする。IE 9では、このようなユーザー自身の操作が引き金になる攻撃を防ぐため、アドレスバーにコピーされた文字列から「JavaScript」というプレフィックスを削除している。しかし、最高の対抗手段は、根気よくユーザーの啓蒙を続け、セキュリティポリシーに従わない場合のリスクを理解してもらうことだ。
Copyright © ITmedia, Inc. All Rights Reserved.
この記事の著者
関連記事
新着ホワイトペーパー PR
-
製品資料
[株式会社MatrixFlow] 「物流リソース最適化」ガイド:人員・配車・傭車を出庫依頼の確定前に決めきる -
製品資料
[株式会社キーエンス] なぜRPA導入は頓挫する? シナリオ作成の壁を乗り越える解決策とは -
製品資料
[株式会社セールスフォース・ジャパン] 「CRMは設計と無関係」は本当か? PLMとの融合で実現する高速開発 -
事例
[日本ヒューレット・パッカード合同会社] AIエージェントの時代にどう備える? 「新たな働き手」を支える3要素とは -
製品資料
[日本ヒューレット・パッカード合同会社] “横並びの自動化”から脱却、AI活用で生産性と競争力を高める秘訣
こんなメディアも見られています
TechTargetジャパンに関連する情報をお探しであれば、こちらのメディアもお役に立てるかもしれません。
ベンダーコンテンツ PR
From Informa TechTarget
SpecialPR
アクセスランキング
-
1
なぜ「全社配布Copilot」は使われないのか? 失敗に学ぶAI定着
-
2
法務と開発者で「言葉が通じない」問題 トヨタやソニーが語るOSS管理の真実
-
3
なぜ「Gemini 4 Argon」は出遅れたのか? Googleが狙う“逆転のシナリオ”
-
4
損保ジャパンはなぜ「COBOL」を捨てなかったのか? 脱メインフレームの真相
-
5
情シスの約8割が転職や退職を意識 調査で分かった“辞めたくなる最大の理由”
-
6
ChatGPTは“検索しまくり”でGeminiは“淡泊”? データが明かすAIの裏側
-
7
情報漏えいはなぜ繰り返されるのか 今すぐ見直すべき「境界」
-
8
「Wi-Fi 7」経由でWindowsが乗っ取られる? 最高権限奪取の恐怖
-
9
「結局使わなくなる」Microsoft 365 Copilotを半年で定着 キリンの3施策
-
10
「中堅・中小企業のネットワーク・セキュリティ運用実態」に関するアンケート
ホワイトペーパーランキング PR
-
1
不審メールの経路や見せ方に変化? 2026年夏の3事例から見えた動向と対処方法
-
2
家庭用Wi-Fiルーターの業務利用は危険? 避けるべき理由と具体的な対策
-
3
Microsoft 365を安全に運用 うっかりミスやサイバー攻撃に備えるデータ保護術
-
4
財務部門がAIを最大限に活用する方法 無駄のない戦略的リーダーシップへの道
-
5
LLMが兵器化? 元FBI高官が鳴らす警鐘とセキュリティツール統合のポイント
-
6
「オンプレミス回帰」せざるを得ない“合理的な理由”
-
7
なぜRPA導入は頓挫する? シナリオ作成の壁を乗り越える解決策とは
-
8
生成AIを開発に導入しても効果が見えない? 実証実験で分かった成果と課題
-
9
経産省DX指針から読み解く、受発注業務デジタル化ロードマップ
-
10
HDDを使わない「SSDオンリー」が無謀なのはなぜ?
TechTargetジャパン SNS
インフォメーション
注目情報をチェック
TechTargetジャパンをフォロー