Sage++ (Higmmer's Edition) 2.4.1 リリース

■ 自作ソフト Posted by ひぐま (Higmmer) on 2016-04-11 at 21:00:03

◆共有テーマ: Firefox [コンピュータ]

Sage++ (Higmmer's Edition) 2.4.1 をリリースしましたのでお知らせします。

前回お知らせの通り、当サイトでの更新版の配布はこれが最後となり、次のバージョンからはAMOに完全移行します。

更新履歴 (2.4.0 → 2.4.1)

  • Firefox 47に対応

————— その他の修正 —————

  • Yahoo!ブックマークのサービス終了につき、ソーシャルブックマーク追加用URLの既定値をはてなブックマークに変更

>>続きを読む

Sage++ (Higmmer's Edition) が AMO で公開されました

■ 自作ソフト Posted by ひぐま (Higmmer) on 2016-03-09 at 23:40:36

この度、Sage++ (Higmmer's Edition) が AMO で公開されました。

現在のバージョン 2.4.0 は当サイトで配布していたものと同じですので、既にインストール済みの方は何もしなくて構いません。今後、以下の手順を経て自動的に移行できるようにする予定です。

  • Version 2.4.1
      既存ユーザーへの更新版を当サイトで配布、次回更新をAMOから取得するよう準備
  • Version 2.4.2
      このバージョンより、配布サイトをAMOに完全移行

尚、AMOへの移行が完了した時点で、当サイトでの更新情報の提供も終了させて頂く予定です(重要な更新の際を除く)。

>>続きを読む

Sage, Sage-Too そして Sage++ の開発系図

■ 自作ソフト Posted by ひぐま (Higmmer) on 2010-02-16 at 22:25:55

◆共有テーマ: Firefox [コンピュータ]

本家Sageから派生したアドオンとしてのSage-Too、そしてSage++ (Higmmer's Edition)がどういう関係にあるのかについていささか混乱が見られるようなので、その開発の経緯を系図にしてみた。

【事実】

  • Sage-Too と Sage++ は共に本家 Sage 1.3.x からの派生アドオン
  • Sage++ は「Sage-Tooの派生アドオン」ではない
  • Sage++ は本家 Sage 1.3.6 の私製改造版として開発がスタートした
  • そこに脆弱性の存在が発覚したため、独自のHTMLフィルタ等のセキュリティ対策を追加した
  • 一方、Sage-Too は本家 Sage 1.3.10 のFirefox3対応版として「Sage 2.0」を名乗る予定だった
  • その時点で本家 Sage は1年以上動きがなく、開発再開は全くの想定外
  • 本家 Sage の脆弱性を掴んでいた私(ひぐま)が Sage-Too プロジェクトに参加してHTMLフィルタ等を提供した
  • ついでに Sage++ の機能の大部分を Sage-Too に移植した(このことが後の開発中止の一因となる)
  • 代わりに Sage-Too のFirefox3対応コードや新機能を Sage++ に逆移植した
  • 本家 Sage 1.3.x/Sage-Too/Sage++ の基本的なコード体系はほぼ同じ
  • 本家 Sage 1.4.x だけが全く独自の進化(退化?)を遂げており、この中では異端の存在
  • 本家 Sage は私が3年前に報告した脆弱性を未だに修正できずにいる

Sageの脆弱性情報とSage-Too/Sage++への影響について

■ 自作ソフト Posted by ひぐま (Higmmer) on 2009-11-26 at 06:06:48

◆共有テーマ: Firefox [コンピュータ]

以下で言及している脆弱性は Sage 1.4.6 において修正されましたが
引き続き 適切な対策 を講じることを推奨します (2010年3月10日追記)

下記サイトにおいて、本家Sageに脆弱性が存在することが公表されています。

この脆弱性の詳細は不明ですが、情報提供者の一人であるRoberto Suggi Liverani氏はBugzillaにおいて今年2月にSageの脆弱性について以下ような報告を行っています。

上記の各報告の中に掲載されている攻撃成功時のスクリーンショットが非常に似ている点から、これら2つの報告は同一又は類似の脆弱性に関するものである可能性が高いと考えられます。

Liverani氏はBugzillaでの報告においては具体的なフィード記述例を示して攻撃方法を解説しています。また、最初に紹介した記事のタイトルが「Zero-day vulnerabilities」となっていることからも、既にこの攻撃方法が広く知られている(と彼は考えている)ことが予想されます。

尚、上記以外にも本家Sageには複数の脆弱性が存在することが当方の調査で判明しています。これらについては2年半以上も前に作者及びIPAに対して報告済みですが、現在もなお未対策のまま放置され続けている状態です(*1)。

本脆弱性が悪用された場合に予想される被害について

本家Sage 1.4.xはchromeスキームを用いてフィードを表示しています。chromeスキームはFirefox自体が動作する際にも使われている特権モードの一種です。ここにスクリプトの侵入を許すことは、Firefox本体やアドオンで実行できること全て、例えばブラウザ動作の監視や改変、外部サイトとの通信、ローカルファイルの読み書きと実行、HDDの内容の全消去など、ありとあらゆる攻撃が可能になることを意味します。しかも、たとえNoScriptを導入していたとしてもchromeスキームにおけるスクリプトの実行を禁止することはできません(ブラウザ自体も動作しなくなるため)。それどころか、Liverani氏は攻撃の一例としてNoScriptの設定を勝手に変更してホワイトリストに任意のサイトを追加する手法を挙げています。

また、この攻撃はSageの設定で「HTMLタグを許可する」をオフにしても防ぐことはできません。Firefox本体側の設定でJavaScriptの実行を禁止した場合も同様です(NoScriptの効果がないのと同じ理由)。

当方の知る限り、この脆弱性に対しては、

  • 信頼できないサイトのフィードを購読しない (消極的な対策)
  • 「コンテンツエリアにフィードを読み込む」をオフにする
  • 本家Sageの使用を直ちに中止する (積極的な対策)

のいずれか以外に有効な対策はないと考えられます。

本脆弱性のSage-Too/Sage++ (Higmmer's Edition)への影響の有無について

現時点で公表されている情報を見る限り、当方としては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要素

(*3) 参考:Sage++に搭載されているHTMLフィルタに関する技術的補足 (ひぐまのひまグ)

参考:Sage/Sage-Too/Sage++の脆弱性対策状況一覧

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)
(○:問題未確認/×:脆弱性確認/?:不明) ※2010年3月10日現在 (ひぐま調べ)
(*4) 但し Sage 1.4.5 とそれ以前では実装が不十分なため脆弱性が存在。
(*5) 既知の脆弱性は Sage 1.4.6 にて修正済み。但し仮に未知の脆弱性が存在した場合、フィードに埋め込まれたスクリプトがchromeスキームで動作してしまうのを防ぐことができない。

>>続きを読む

Sage++ (Higmmer's Edition)のソーシャルブックマーク連携機能について

■ 自作ソフト Posted by ひぐま (Higmmer) on 2007-07-05 at 01:44:41

◆共有テーマ: Firefox [コンピュータ]

Last updated on 2011-09-25

Sorry, English document is not available.

このエントリではSage++ (Higmmer's Edition)に搭載されているソーシャルブックマーク連携機能と、それを更に簡単・便利に扱うための Greasemonkeyスクリプト「Yahoo! Bookmarks Integrator for Sage++」について説明します。

>>続きを読む

Sage++ (Higmmer's Edition) 公開!

■ 自作ソフト Posted by ひぐま (Higmmer) on 2007-07-02 at 21:00:00

◆共有テーマ: Firefox [コンピュータ]

このエントリでは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++ (Higmmer's Edition) の特徴

(公式版 Sage 1.3.x との比較において。Sage-Tooとの機能比較はこちらのエントリを参照)

  1. フィード解析処理の強化
    • ポッドキャストに対応しました
    • エントリ著作者情報及びカテゴリ表示に対応しました
    • エラー処理の強化により、一部読めなかったフィードが読めるようになりました
  2. 更新チェック機能の強化
    • 更新チェック時のタイムアウト時間を設定することができます(*1)
    • ワンクリックで更新されたフィードを次々と新しいタブで開くことができます
    • 更にキャッシュの導入により処理速度が最大2倍に高速化(当社比)
    • 起動時及び一定時間毎に自動的に更新チェックを実行(対象フォルダを個別設定可)
    • 既読フィード/フォルダを隠すことができます
    • 更新されたフィード数を各フォルダ上に表示することも可能
    • 新着フィードを検出時にポップアップウィンドウで通知します
    • 更新フィードを1つのタブにまとめて開くことができるようになりました
  3. ユーザーインタフェースの改善
    • フィードを開く時に今見ているページが上書きされないようにすることができます(*2)
    • フィードを閉じる前に全てのエントリを自動的に既読にすることもできます
    • フィード内の未読項目だけを抽出してタブで開くことができます
    • キーボードでの操作性が向上しました
    • サイドバーの開閉/フォーカスを移すショートカットキーが変更可能になりました
    • 更新チェックボタンを押すことでチェックを中止することができるようになりました
    • 全てのフォルダを開閉するボタンが追加されました
    • 「高度な設定」パネルの搭載により、煩雑だったHTMLフィルタ等の設定が全てGUI上で変更設定可能に
    • サイドバーではなく独立ウィンドウで動作させることもできます(ツールバーボタンをミドルクリック)
  4. セキュリティの向上(*3)
    • ホワイトリスト方式のHTMLフィルタの導入により安全性を高めました
    • HTMLフィルタの内容を柔軟にカスタマイズすることができます
    • その他、幾つかのサニタイズ処理を追加しています
  5. その他の機能追加
    • 広告ブロック機能を搭載しました
    • Yahoo! ブログ検索などいくつかの検索エンジンを追加しました(*4)
    • シングルコラム仕様のスタイルシートをビルトインで搭載しました
    • フィード毎に別々のHTMLファイルを生成して表示することができます(*5)
    • ユーザースクリプト機能の導入により、ユーザー側で動作をカスタマイズすることも可能です
    • 拙作の「Read Manager for Sage++」を別途導入すればGoogle Readerライクな操作性と機能性を実現することができます
    • ソーシャルブックマーク連携機能を搭載(*6)。Read Manager for Sage++」や「Yahoo! Bookmarks Integrator for Sage++」との併用で簡単に「後で読む」機能が実現

Features of Sage++ (Higmmer's Edition)

(As comparison with the original Sage 1.3.x. Refer to here for comparison with Sage-Too)

  1. Enhanced feed parser
    • Podcasting is available now
    • Author and category informations
    • By enhanced error handling, you can read more feeds that caused errors on old one.
  2. Enhanced update checker
    • You can specify timeout period of each feed checking
    • Automatically open all updated feeds one after another onto new tabs by just one click
    • Up to 2x processing speed by feed caching (compared to old Sage++)
    • Automatically check feeds on startup or every N minutes (and you can specify target folders individually)
    • Hide no-updated feeds/folders
    • Show updated feed count on folders
    • Notification of updated feeds
    • Unify updated feeds to one tab
  3. Improved user interfaces
    • Preventing overwriting feed onto the tab you're just reading now
    • Automatically mark all entries as read before leaving feed
    • Extract only unread items in feed and open them to tabs
    • Improved keyboard usability
    • Customizable shortcut keys: open/close sidebar, move focus onto sidebar
    • Cancellable "Check Feeds" button
    • New button to toggle all folders open/close
    • "Advanced Settings" panel to configure all features including HTML filter etc
    • Middle-click on toolbar button to open independent window instead of sidebar
  4. More secure (*1)
    • It gets safer by implementation of whitelist based HTML filter
    • You can customize details of your HTML filter if you need
    • And added some sanitizations else
  5. Other functions
    • Ad-blocking
    • More search engines (mainly for Japanese)
    • Built-in single column stylesheet
    • Generate different HTML files for each feed to render (*2)
    • User scripting provides you the ability to add your custom functions into contents area
    • If you install my additional script "Read Manager for Sage++", you'd get GoogleReader-like usability and functionality
    • Cooperating with social bookmarks (mainly for Japanese)
(*1) 「Firefox Hacks 翻訳日記」さんによる改造版を元に一部こちらで変更しています。
(*2) 元となったアイデアは「むっしゅの戯言」さんによるものです。
(*3) 但し100%の安全性を保証するものではありません
(*4) 検索用データの一部は「データバックアップメモ」さんより拝借させて頂きました。
(*5) これにより、ブラウザの「戻る」や「再読み込み」操作で意図しないフィードが表示されるのを防ぐことができます。
(*6) デフォルトではYahoo!ブックマークを使うように設定されています。
(*1) This is no guarantee of perfect security.
(*2) This allows you to prevent unexpected feed loading with "browser-back" or "reload" operation.

スクリーンショット


Sage++でのフィード表示例クリックで拡大

Sage++にRead Manager for Sage++を導入時のフィード表示例(*1)
CSSはRead Manager for Sage++に同梱のカスタム版「津波荘CSSその3」(*2)を使用

(*1) HTMLフィルタ方式を「詳細」に設定した上で適切なフィルタを設定した状態
(*2) 「津波荘-DIARY」さんで配布されているCSSを元にSage++の仕様に合わせて一部変更したもの
新しいツールバー 新しいツールメニュー 新しいツールバー&メニュー

Screenshots

These screenshots are taken under Japanese environment, but Sage++ contains complete English locale. Take it easy:-)

Click to zoom

[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++"

New Toolbar New Options New Toolbar and Options

>>続きを読む

Sage++ (Higmmer's Edition) 公開再開にあたって

■ 自作ソフト Posted by ひぐま (Higmmer) on 2007-07-01 at 19:00:00

◆共有テーマ: Firefox [コンピュータ]

本年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!

Sage++ (Higmmer's Edition)の新しい公開ページは こちら です