GetSetによる
2006年09月23日 9時00分の掲載
脆弱性は17歳部門より。
脆弱性は17歳部門より。
Elbereth曰く、"JVNにて、gzipの脆弱性についていくつか報告があがっています。
- JVNVU#933712: gzip (GNU zip) の huft_build() における NULL ポインタ参照の脆弱性
- JVNVU#596848: gzip (GNU zip) の LZH の取扱いにおいて無限ループが引き起こされる脆弱性
- JVNVU#554780: gzip におけるバッファオーバーフローの脆弱性
- JVNVU#773548: gzip の LZH の取扱におけるバッファオーバーフローの脆弱性
- JVNVU#381508: gzip の make_table() の配列処理における脆弱性
そして、さらに今回の件で特に問題なのは、LHAに関連するコードで脆弱性が発見されたことでしょう。MS-DOS時代からWindowsに至るPCのファイル圧縮技術の主流であり今もなお現役であるLHAには、解凍(展開)プログラムが山のようにあり、今回の脆弱性がこれら全てに波及する可能性があります。LHAの開発者の一人である奥村教授のBlogでは、脆弱性が発見されたコードは1989年に教授が書いたものということで、今から17年ほども前という古いコードで今頃脆弱性を発見という話にびっくりします。
ちなみに、これらの脆弱性は、最近よく見かけるGoogleセキュリティチームの、Tavis Ormandyによって発見されたとのこと。"
関連ストーリー
この議論は賞味期限が過ぎたので、保存されている。
新たにコメントを書くことはできない。
LHAより前 (スコア:5, 参考になる)
問題のファイルのひとつである"unlzh.c"の冒頭には
というコメントがあります。この"ar002"をキーワードにしてぐぐると、奥村先生のサイトにあるデータ圧縮の昔話 [mie-u.ac.jp]の中のコンテンツが引っかかります(1990年 [mie-u.ac.jp]とか1991年 [mie-u.ac.jp]あたり)。
タレコミからリンクされているBlogでも「LHAの元になったC言語ソース」(おそらくは前述のar002を指すと思われる)と発言されてますので、タレコミ文の「LHAに起源のあるコード」という記述は正確ではないと思います。
Re:LHAより前 (スコア:3, 参考になる)
> LHAに起源のあるコード
「LHAに関連するコード」と修正しました。
親コメント
Re:LHAより前 (スコア:4, 参考になる)
> lharc??
元コメントのリンク先を見ればわかりますが、ar002 は
LHarc から LHa へ改良している頃に、奥村さんが書かれたものですね。(LHa のためだけに書いたわけではないですが)
1988 LHarc(LHA の前身)
1990/07 LHx(LH 試作版、LHは後にLHAに名称変更)
1990/08 ar002(今回問題のファイル)
1990/11 LHA
といった流れ。
親コメント
あのころ (スコア:5, すばらしい洞察)
Re:あのころ(オフトピ) (スコア:2, すばらしい洞察)
親コメント
Re:あのころ(オフトピ) (スコア:2, すばらしい洞察)
だいたい10年以上前といったら、他人のシステムをどうこうしたところで、
その出力を攻撃者に戻す手段が無きに等しかったわけ。
ネットに常時、あるいは頻繁に繋がる環境というのは、
それ自体が侵入経路であるという以上に、
攻撃者が直にアウトプットを得られる経路であるということを見過ごしちゃいけない。
そしてもうひとつ重要なのは、今ではそのアウトプットを換金できるということ。
日本では ny を通じた情報流出も話題になっているけれど、
攻撃の主流はあくまで金を得るためのクレジットカードや銀行の情報奪取が目的だからね。
ny 関連が深刻で無いというつもりは無いが、あの騒がれ方は多分に「目立つから」という面が大きい。
決して、その他の脅威と比較してより深刻だから騒がれているというわけではない。
確かに不用心なユーザーも増えているのは間違いないけれど、
それ以上に、そもそも10年以上前はこんなに物騒では無かったよ。
親コメント
アーカイバの脆弱性はアンチウィルスソフトに波及する可能性がある (スコア:5, 参考になる)
Re:アーカイバの脆弱性はアンチウィルスソフトに波及する可能性がある (スコア:4, 参考になる)
親コメント
lzhまだ使ってます? (スコア:2, 興味深い)
zipと比較してlzhを使うメリットってあります?lzhは解凍できるがzipは解凍できない環境ってそうないと思うんですが。慣れ親しんだものだから?圧縮率?圧縮率どうのは把握してませんが。
# 取引先からはいつもlzh圧縮でくるのでID
しないさせない!スルー力
Re:lzhまだ使ってます? (スコア:3, 参考になる)
当たり前かもしれないけど解凍せずに中身を表示させる機能って便利ですね。他の解凍ソフトにもそういう機能あるんでしょうけど。
コタツ出したら負けかなと思ってる。 つ [twitter.com]
親コメント
Re:lzhまだ使ってます? (スコア:2, 参考になる)
前の文字列とhttp://がくっついている場合はリンクされないようです。
親コメント
Re:lzhまだ使ってます? (スコア:2, 参考になる)
lzhよりzipの方が圧縮後のファイルサイズが小さくなるようですが、
新旧OSの混在環境ではlzhもzipも使い勝手は同じです。
> Windows(XP?)であれば
Meも圧縮フォルダに対応しています。(ただ初期設定は無効になってたような・・・)
2000はMeのファイルを流用して圧縮フォルダを利用 [nifty.com]できます。
> zipと比較してlzhを使うメリットってあります?
lzhはunlha32.dllを用いた圧縮/解凍用コードが広く知られており、
業務ソフトのデータセーブ機能に広く用いられています。
一方でzipを扱うのはどうも面倒で問題も起きそう [dobon.net]です。
匠気だけでは商機なく、正気なだけでは勝機なし。
親コメント
Re:lzhまだ使ってます? (スコア:3, 興味深い)
面倒ごとはキライなんで他の選択肢も調べてみたところ、OpenLha32.dll [infoseek.co.jp]を使う方法が一番制限が緩いようです。
C以外から使うにはすこし宣言をいじってコンパイルしなおす必要ありますが。
親コメント
Re:lzhまだ使ってます? (スコア:2, 参考になる)
このAPIは圧縮/解凍のはずなのに、なぜかメッセージループも要求するのがどうも…。
描画は別スレッドに任せればいいじゃないかと思うんですが。
ちなみに/.Jな方なら気づかないところで結構LZHを使っているんじゃないかと思います。
マザーボードBIOSの更新ファイル、あれになにげに -lh5- とか入っていてびっくりです。
親コメント
Re:lzhまだ使ってます? (スコア:2, 興味深い)
むかーし、わざわざ解凍してからBIOS更新したら起動できなくなった話があったような。もちろん、M/Bはメーカー送りw
親コメント
Re:lzhまだ使ってます? (スコア:2, 参考になる)
扱うファイルの特性もあるでしょうね。
cab の場合には、書庫ファイルに対して追加や一部削除などの操作ができないことから、昔ながらの書庫をそのまま操作するタイプには適さないという点があります。
lzh や zip などの場合、Windows からはエクスプローラ上からそのまま開くことができますが、zip の場合はそこにそのままファイルを投げ込んだりすることもできるため、そういう面での利便性を重視する方には cab は向かないでしょう。
しかし、cab って LZX 形式にしないと圧縮率悪いと思うので、単純に「最高圧縮設定」というのも微妙ですが。しかも Microsoft の expand.exe とかは MSZIP 形式の cab しか操作できないような。
# 個人的には速度、圧縮率、今後のサポートを考えると 7zip が扱いやすい印象です。
親コメント
Re:lzhまだ使ってます? (スコア:2, 興味深い)
じきに(既に?).NETな最適化がかかっていくことでしょう。
そんなわたしもMIPSとかARM向けの実行ファイルの圧縮を研究してたりするのでAC
親コメント
Re:lzhまだ使ってます? (スコア:2)
相手の設定が悪いのか、こちらが悪いのかわかりませんが、
macユーザーとやりとりしてて、相手が日本語が入ったファイルをzip圧縮(stuffitかなんかで?)して、私(windows)側で解凍しようとすると大概文字化けしてることが多い気が。。
なんで、相手(mac)側でlzh使ってとお願いをすることがよくあります。(今のところ化けたことがない)
$多分どっか設定見直せばなおるのかもしれませんが
親コメント
MacとWindowsのzip(オフトピ) (スコア:3, 参考になる)
そんな訳で、Mac上でWindows向けの圧縮ファイルを作る際は、lzhが無難です。→「目的別 圧縮ツール [mac.com]」
ちなみに、Windowsで作成したzipファイルをMac OS X 10.3.xで解凍するとShift-JISで格納されたファイル名をUTF-8として処理するため、エラーが発生して解凍に失敗します。
Mac OS X 10.4以降は解凍できるようになりましたが、それでも文字化けしました。
10.4.6以降で、ようやく文字コードの自動判別機能が備わり、UTF-8かShift-JISかを判断して解凍できるようになりました。
Windows Vistaのzip圧縮プログラムが仕様変更されて、ファイル名をUTF-8で格納するようになってくれないだろうか。OS間の互換性問題が軽減されるのだが。(アップルには、Shift-JISを使うつもりがないようだ…)
親コメント
Re:lzhまだ使ってます? (スコア:2, 参考になる)
ちなみに今確認したところ、WindowsXP標準のzip圧縮機能ではこの問題はないようです。
#仕事で必要なファイルをWinZipで圧縮して客先へ持って行って展開したら何もない!
#とかいう恐怖経験したらそりゃあzipを敬遠するようにもなるってもんですよ、ええ
親コメント
知らなかった! (スコア:2, すばらしい洞察)
Re:知らなかった! (スコア:2, 参考になる)
アルゴリズムとして lzh を使えるということであって、LHA で圧縮したファイルを gzip でほどけるというわけではない。
親コメント
Re:知らなかった! (スコア:2, 参考になる)
(SCO compress -H) で圧縮されたファイルも伸張できるようになっている、ということですね。
LHAも SCO compress -H も、圧縮アルゴリズムとして
Lempel-Ziv(LZ77)と Huffman を組み合わせているという点では同じですが、
この2者に直接の関係はありません。
ついでに書けば、gzip は「GNU の zip」ではありません。
gzip の圧縮と zip の圧縮は別物です。
zip のdeflate圧縮したファイルも扱えたりしますが、
(こちらは単位アルゴリズムが同じだけではなく、1ファイルだけdeflate圧縮したzip ファイルを伸張できる)
これは compress で圧縮したものを扱えるのと同じように、
ユーザーの利便性を考えてサポートされたものです。
親コメント
Re:知らなかった! (スコア:2, 参考になる)
-- Takehiro TOMINAGA // may the source be with you!
親コメント
Re:無責任さを感じます (スコア:2, 興味深い)
親コメント
Re:無責任さを感じます (スコア:2, 参考になる)
JIS C 6226からパクってくるとき「ー」だけ離れた位置にあったので日本語のネイティブでない人間にはそれも必要であることが認識できなかったのでしょうね。
親コメント
Re:無責任さを感じます (スコア:5, おもしろおかしい)
> 私には、OSS、フリ一ソフトの中には飛び散った精子にしか見えないモノがある。
フリーソフトは精子と一緒、という話、まったくもってその通りだ。
そのままゴミ箱行きとなる益体のないものも多い。
その一方で、大変に役立つ存在のものもある。
だいたい遺伝子の運び手・精子なくては君も生まれなかったのだ。
コードを伝播させていろいろなものに組み込まれるような挙動を思えば
ドーキンスの「身勝手な遺伝子」とOSSの挙動というのはアイデア的に
似通っているのかもしれない。
(∑´w`)キョウモ マジレス
親コメント
Re:無責任さを感じます (スコア:3, すばらしい洞察)
プロプラエタリのソフトだったら実際にトラブルが
発生するまで発見されずにいた可能性が高いですね。
親コメント