←前のページ | トップ |
この度、Sage++ (Higmmer's Edition) が AMO で公開されました。
現在のバージョン 2.4.0 は当サイトで配布していたものと同じですので、既にインストール済みの方は何もしなくて構いません。今後、以下の手順を経て自動的に移行できるようにする予定です。
- Version 2.4.1
既存ユーザーへの更新版を当サイトで配布、次回更新をAMOから取得するよう準備- Version 2.4.2
このバージョンより、配布サイトをAMOに完全移行
尚、AMOへの移行が完了した時点で、当サイトでの更新情報の提供も終了させて頂く予定です(重要な更新の際を除く)。
本家Sageから派生したアドオンとしてのSage-Too、そしてSage++ (Higmmer's Edition)がどういう関係にあるのかについていささか混乱が見られるようなので、その開発の経緯を系図にしてみた。
【事実】
以下で言及している脆弱性は Sage 1.4.6 において修正されましたが
引き続き 適切な対策 を講じることを推奨します (2010年3月10日追記)
下記サイトにおいて、本家Sageに脆弱性が存在することが公表されています。
この脆弱性の詳細は不明ですが、情報提供者の一人であるRoberto Suggi Liverani氏はBugzillaにおいて今年2月にSageの脆弱性について以下ような報告を行っています。
上記の各報告の中に掲載されている攻撃成功時のスクリーンショットが非常に似ている点から、これら2つの報告は同一又は類似の脆弱性に関するものである可能性が高いと考えられます。
Liverani氏はBugzillaでの報告においては具体的なフィード記述例を示して攻撃方法を解説しています。また、最初に紹介した記事のタイトルが「Zero-day vulnerabilities」となっていることからも、既にこの攻撃方法が広く知られている(と彼は考えている)ことが予想されます。
尚、上記以外にも本家Sageには複数の脆弱性が存在することが当方の調査で判明しています。これらについては2年半以上も前に作者及びIPAに対して報告済みですが、現在もなお未対策のまま放置され続けている状態です(*1)。
(*1) 参考:脆弱性情報の公表に関する疑問 (ひぐまのひまグ)
本家Sage 1.4.xはchromeスキームを用いてフィードを表示しています。chromeスキームはFirefox自体が動作する際にも使われている特権モードの一種です。ここにスクリプトの侵入を許すことは、Firefox本体やアドオンで実行できること全て、例えばブラウザ動作の監視や改変、外部サイトとの通信、ローカルファイルの読み書きと実行、HDDの内容の全消去など、ありとあらゆる攻撃が可能になることを意味します。しかも、たとえNoScriptを導入していたとしてもchromeスキームにおけるスクリプトの実行を禁止することはできません(ブラウザ自体も動作しなくなるため)。それどころか、Liverani氏は攻撃の一例としてNoScriptの設定を勝手に変更してホワイトリストに任意のサイトを追加する手法を挙げています。
また、この攻撃はSageの設定で「HTMLタグを許可する」をオフにしても防ぐことはできません。Firefox本体側の設定でJavaScriptの実行を禁止した場合も同様です(NoScriptの効果がないのと同じ理由)。
当方の知る限り、この脆弱性に対しては、
のいずれか以外に有効な対策はないと考えられます。
現時点で公表されている情報を見る限り、当方としてはSage-Too/Sage++においてはこの方法による攻撃は成立しないと推測します。
Bugzillaでの報告によると本脆弱性はフィードのdescription要素(*2)等に実体参照化されたHTMLタグを埋め込むことで任意のスクリプトの実行が可能になるというものですが、(本家Sageとは異なり)Sage-Too/Sage++ではフィード表示の直前段階において厳密なエスケープ処理を施しており、この方法によってHTMLタグを埋め込むことはできません。link要素内に特殊なURIを記述する手法も紹介されていますが、Sage-Too/Sage++ではこれを排除するための処理も実装しています。実際、Bugzillaで報告されているこれらの攻撃はSage-Too/Sage++に対しては失敗することを確認しています。
また現時点において、Liverani氏や他の方からSage++に関する脆弱性の報告は受けていません。
ちなみに本脆弱性とは無関係ですが、Sage-Too/Sage++においてはフィードの各エントリ本文に対してはDOMパーサとホワイトリスト方式の組み合わせによるHTMLフィルタを採用(*3)するなど、本家Sageよりも安全性を高めるための処理を複数導入しています。
但し、このことはSage-Too/Sage++には脆弱性が全く存在せず、100%完全に安全であることを保証するものではありません。少しでも不安な方は、Sage-Too/Sage++の使用を直ちに中止することを推奨します。
尚、Sage-Too/Sage++ではフィードの表示に(chromeスキームではなく)fileスキームを使用していますので、万一スクリプトの侵入を許した場合にも特権モードで動作してしまうことはありません(但しローカルファイルの読取などの攻撃は可能)。そのような場合に備えてNoScript等を併用していればスクリプトの実行を未然に防ぐことも可能です。
(*2) 各エントリではなくフィード全体に対するdescription要素
Sage/Sage-Too/Sage++の各アドオンについて現時点において当方が把握している脆弱性対策の状況を下表に示します。
表中で「○」となっている項目はあくまで「問題未確認」であり、必ずしも「安全」であることを意味しているわけではないので注意して下さい。
Sage++ 2.2.0 2.1.3 1.3.21.2 |
Sage-Too 2.0.0 |
Sage 1.3.10 |
Sage 1.4.6 |
|
正規表現ブラックリスト方式 HTMLフィルタ (旧Sageオリジナル実装) |
(無効化 済み) |
(無効化 済み) |
× | (削除済み) |
Fx内蔵API使用 DOMベース HTMLフィルタ (Sage 1.4.4以降で採用 (*4)) |
(非実装) | (非実装) | (非実装) | ○ |
DOMベース ホワイトリスト方式 HTMLフィルタ (Higmmer's Edition独自実装) |
○ | ○ | (非実装) | (非実装) |
「HTMLタグを許可する」をオフ | ○ | ○ | × | ○ |
「コンテンツエリアにフィードを読み込む」をオフ | ○ | ○ | ○ | ○ |
NoScriptを導入 (ホワイトリストが適切に管理されていることが前提) |
○ | ○ | ○ | ○ (*5) |
Firefox本体の「JavaScriptを有効にする」をオフ | ○ | ○ | ○ | ○ (*5) |
Last updated on 2011-09-25
Sorry, English document is not available.
このエントリではSage++ (Higmmer's Edition)に搭載されているソーシャルブックマーク連携機能と、それを更に簡単・便利に扱うための Greasemonkeyスクリプト「Yahoo! Bookmarks Integrator for Sage++」について説明します。
このエントリではFirefox向けフィードリーダー「Sage」の私製改造版「Sage++ (Higmmer's Edition)」を配布しています。本ソフトウェアのダウンロード及びインストールにあたっては必ず使用上のご注意をお読み下さい。
You can download "Sage++ (Higmmer's Edition)" here. It's a privately customized version of the feed reader Sage for Firefox. If you want to download and install this software, please be sure to read CAUTIONS.
(公式版 Sage 1.3.x との比較において。Sage-Tooとの機能比較はこちらのエントリを参照)
(As comparison with the original Sage 1.3.x. Refer to here for comparison with Sage-Too)
Sage++にRead Manager for Sage++を導入時のフィード表示例(*1)
CSSはRead Manager for Sage++に同梱のカスタム版「津波荘CSSその3」(*2)を使用
These screenshots are taken under Japanese environment, but Sage++ contains complete English locale. Take it easy:-)
[Translation (From the top)]
Play Podcast Button / Stylesheet is Available / Add to Social Bookmark Button / Read&Unread Manager Panel brought by "Read Manager for Sage++"
本年2月4日を以て公開停止状態となっておりましたSage++ (Higmmer's Edition)ですが、諸事情を考慮して明日より公開を再開させて頂くことに致しました。今回のバージョンでは一部セキュリティ対策が強化されたほか、フィード解析処理の改善、自動更新チェックの高速化、Yahoo!ブックマークとの連携機能、自動アップデートへの対応など大幅な変更が加えられております。主に自分が欲しい機能を追加していっただけの代物ですが、それでも必要とする方がいれば使って頂ければなと思っております。特に現在Sageユーザーの方ならきっと損はしないはずです。
さて、この再公開にあたっては前回の脆弱性問題の時と同じ過ちを繰り返さないようにしなければならないと考えております。その為には新たな脆弱性の報告又は通知を受けた際の対応方針を明確化しておく必要があります。それに関連して先ごろIPAより重要な発表がありました。
この報告書本編のp.33に以下のような記述があります。
5.1.製品脆弱性対策管理者の登録簡易化に関する検討
(中略)このような現状を踏まえ、速やかな脆弱性関連情報の提供を実現すべく、研究会での討議を経て、2007 年4 月から登録のしくみを改めることとなった。具体的には、簡易登録枠を新設したこと(表 5-1参照)と、効率化のため登記簿謄本の提出を廃止したことである。
情報システム等の脆弱性情報の取扱いに関する研究会 - 2006年度 報告書 - (p.33)
従来JPCERT/CCから脆弱性情報の通知を受けるには開発者の住所・氏名・電話番号等の個人情報を登録する必要があり、私がそれを拒否したことが前回問題の発端でした。その一件が多少なりとも影響したのかどうかは定かではありませんが、新たに簡易登録枠というものが新設され、氏名とメールアドレスのみでの登録が可能となった模様です。更に(個人を特定できる程度の)仮名での登録も可能とのこと。
この制度変更により私のようなケースでも脆弱性情報の提供を受けてソフトを修正することが可能になるのではないかと期待しております。但しひとつ気になるのは提供可能な情報の中から「複数の開発者に影響が及ぶ情報」が省略されていることです。言うまでもなくSage++はSageを元にした改造版ですから、複数の開発者に影響が及ぶことは明らかです。さて、この場合はどのような扱いになるのでしょう??
当然ながら私としては何とか情報提供して頂けるようJPCERT/CCに対して最大限交渉する所存ですが、最悪の場合私には脆弱性情報が回ってこないことも考えられます。従いまして、もし今後Sage/Sage++の双方に関わる新たな脆弱性を発見された方がおられましたら、できればIPAへの届出と共に私にもご一報頂ければ幸いです。(下線部修正: 7/2)
但し!報告/通知を受けたからといって必ずしも100%対応するという保証はできないということはご承知下さい。本来Sage++は自分が使うために開発(改造)したソフトである以上、自分が気になるバグや脆弱性があれば修正するでしょうし、そうでなければ放置するかも知れません。このことが受け容れない方はSage++のことは綺麗さっぱり忘れて下さい。ただひとつだけ言わせて頂くならば、私は今でもSage++の最大のヘビーユーザーであり、その脆弱性については誰よりも気にしてきたという自負はあります。それをどう判断するかについては皆さんにお任せしたいと思います。
Have Fun!
←前のページ | トップ |