|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MHVI#20100425:
|
すり抜けパターン | 該当 (代表) ソフト | 説 明 |
7-Zip 型 |
Microsoft Security Essentials 1.0.1961.0, F-Secure Anti-Virus 2010 10.00, AVG Anti-Virus Free 9.0.716 |
このタイプでは, 基本, 拡張, それぞれのヘッダー毎に必要な大きさのバッファーを動的確保した上で読込が行われます。 従って, 基本的にサイズによる制限が存在しないことから, 格納ファイルが検疫をすり抜けてしまうこともありません。 このタイプであれば安全と言えます。
余談ながら, このタイプの場合, 自身に制限が存在しない分『ヘッダー全体のサイズに疎い』という弊害の出てしまう場合があります。 |
LHA for UNIX 型 | ESET NOD32 Antivirus 4 4.0.474.9 |
ここで言う LHA for UNIX は autoconf 版を指します。 このタイプでは, 基本ヘッダーと拡張ヘッダーそれぞれに 4KB の固定バッファーが用意されていて, ヘッダー毎に, そこへ読込を行います。 4KB を超えるような拡張ヘッダーが存在した場合は, 当該メンバーについての処理を打ち切ります。 基本ヘッダーが 4KB を超えることはありません。 従って, 4KB を超える拡張ヘッダーの付加された格納ファイルが, 検疫をすり抜けてしまうことになります。 |
オリジナル型 |
Norton Internet Security 2011 18.1.0.37, Norton Internet Security 2010 17.6.0.32, ウイルスバスター 2011 クラウド 3.0.1303-JPS3001.0275, ウイルスバスター 2010 17.50.1647.0000, McAfee アンチウイルス プラス 2010 13.15.117, Virus Security ZERO 10.0.0058, avast! Free Antivirus 5.0.507 |
『オリジナル』とは LHA.EXE を指します。 このタイプでは, 4KB の単一固定バッファーが用意されていて, そこへヘッダー全体を一括して読み込みます。 その後, 処理を行う中でヘッダーが 4KB を超えていると判断できた時点で, 当該メンバーの処理を打ち切ります。 従って, ヘッダーの構造にかかわらず, 全体が 4KB を超えるヘッダーの付加された格納ファイルが, 検疫をすり抜けてしまうことになります。 |
ヘッダー CRC チェック型 |
ウイルスバスター 2011 クラウド 3.0.1303-JPS3001.0275, ウイルスバスター 2010 17.50.1647.0000, McAfee アンチウイルス プラス 2010 13.15.117, CA Anti-Virus r8.1 8.1.660.0 |
ここに一覧されている製品については, ご丁寧にヘッダー CRC のチェックを行い, 合わないものについては書庫として扱わず, 検疫が行われません。 攻撃書庫は CRC の合っていないことが多いことから, 半分無力となってしまっています。 なにしろ, ここで取り上げた Lhaz, Lhaplus, 7-Zip, WinRAR を始めとして, 意外と多くのソフトが CRC のチェックを行わないのですから…。 |
例外型 |
CA Anti-Virus r8.1 8.1.660.0, |
CA Anti-Virus は 7-Zip 型です。 しかし, 冗談のような話ですが, h2 形式に対応していませんので, 昨今の LZH 書庫には無力です。(泣) |
一覧されている対策ソフトが, 振り分けられているタイプの処理を行っているとは限りません。 あくまでも『そのタイプの処理を行った場合と同様の挙動を示している』に過ぎません。 例えば, LHA for UNIX 型の処理を行っていたとしても, 十分なサイズのバッファー (ヘッダー単体であれば上限値が存在します。) が確保されていれば, 挙動は 7-Zip 型と同じになります。
実は LZH 書庫の場合と同様の問題が ARJ 書庫にも存在します。 むしろ, ヘッダーのサイズに限って言えば形式に限らない問題なのかもしれません。 それはともかく, ARJ 書庫ではファイル名等の情報が基本ヘッダーに SZ 形式で記録されていることから, こと名前に関しては, こちらのほうが深刻と言えます。
まず, ヘッダー読込に関してですが, LZH 書庫と異なり, ARJ 書庫の場合は動的バッファーを採用した場合でもバッファーオーバーフローの危険があります。 というのも, 上述したように, ファイル名などの名前やコメント情報が SZ 形式で記録されているからです。 もしヘッダーの CRC を確認しなかった場合, 名前を扱おうとした段階で容易にバッファーオーバーフローが発生してしまいます。 幸い, LZH 書庫に対して CRC チェックを全く行っていなかった 7-Zip や WinRAR でも ARJ 書庫に対してはチェックを行うようになっていますので, 問題は発生しません。
次に, 名前に関してですが, (拡張ヘッダーの) サイズ情報と SZ 形式という違いはあれども CVE-2004-0234 と同様の問題が発生する可能性があり, 実際この部分でバッファーオーバーフローの発生してしまうソフトが存在します。
さらに, ここでも多くの対策ソフトが検疫を行ってくれません。 後述する ZIP 書庫については, 最近ようやく CVE-2010-0098 が公開されるなどして, 殆どのソフトが対応済みですが, ARJ 書庫については未だに多くのソフトが未対策のままです。 面白いことに, CVE-2010-0098 の脆弱性に該当し対応を行ったソフトについては, ARJ 書庫についても しっかり修正されています。
ARJ 書庫についても, 各ソフトのバッファーサイズの違いにより, LZH 書庫と同様の問題が発生しますので, 一覧しておきます。 総じて小さめのヘッダーしか扱えないことから, テストデーター自体がオリジナルの限界サイズとの差が小さい点に注意してください:
すり抜けパターン | 該当 (代表) ソフト | 説 明 |
動的確保型 |
ESET NOD32 Antivirus 4 4.0.474.9, Virus Security ZERO 10.0.0058, CA Anti-Virus r8.1 8.1.660.0, avast! Free Antivirus 5.0.507 |
LZH 書庫の場合と同様, 動的にバッファーを確保して読込を行っていると考えられますが, テストデーター自体が比較的小さなヘッダー (それでもメジャーどころのアーカイバー等が全滅する程度の大きさ。) となってしまっているため, 大きめのバッファーを採用しているソフトが, ここに該当してしまっている恐れがあります。 ここに該当するソフトは, 他に比べて, より安全と言えます。 |
7-Zip 型 | McAfee アンチウイルス プラス 2010 13.15.117 |
このタイプでは, オリジナルより僅かに大きい 2.5KB 超の固定バッファーが用意されていて, そこへ基本ヘッダーを読み込みます。 拡張ヘッダーについては, バッファーへの読込を行わず単純にスキップしていると思われますが, Win 環境で作成された書庫には拡張ヘッダーが存在しないため, 詳細は判りません。 従って, 基本ヘッダーが約 2.5KB を超えるヘッダーの付加された格納ファイルが, 検疫をすり抜けてしまうことになりますが, 多くのソフトと同等のバッファーであることから, 比較的安全と言えるかもしれません。 |
オリジナル型 |
Microsoft Security Essentials 1.0.1961.0, ウイルスバスター 2011 クラウド 3.0.1303-JPS3001.0275, ウイルスバスター 2010 17.50.1647.0000, F-Secure Anti-Virus 2010 10.00, AVG Anti-Virus Free 9.0.716 |
『オリジナル』とは UNARJ.EXE を指します。 このタイプでは, 2.3KB 前後の固定バッファーが用意されていて, そこへ基本ヘッダーを読み込みます。 拡張ヘッダーについては, バッファーへの読込を行わず単純にスキップします。 従って, 基本ヘッダーが 2.3KB を超えるヘッダーの付加された格納ファイルが, 検疫をすり抜けてしまうことになります。 7-Zip 型と僅かな違いではありますが, 7-Zip を始めとした一部のソフトが扱える書庫の検疫が出来ないため, 少々安全性に劣ります。 |
オリジナル未満型 |
Norton Internet Security 2011 18.1.0.37, Norton Internet Security 2010 17.6.0.32 |
『オリジナル』とは UNARJ.EXE を指します。 このタイプでは 2.3KB 未満の固定バッファーしか用意されていず, オリジナルを含む多くのソフトが扱える書庫の検疫が出来ないなど, 影響が相当大きいものとなっています。 |
ヘッダー CRC チェック型 |
Microsoft Security Essentials 1.0.1961.0, ウイルスバスター 2011 クラウド 3.0.1303-JPS3001.0275, ウイルスバスター 2010 17.50.1647.0000, F-Secure Anti-Virus 2010 10.00, AVG Anti-Virus Free 9.0.716 |
ここに一覧されている製品については, ヘッダー CRC のチェックを行い, 合わないものについては書庫として扱わず, 検疫が行われません。 LZH 書庫と異なり ARJ 書庫では殆どのソフトがヘッダーの CRC チェックを行いますが, ソフトの性格上, CRC の合わないメンバーについても検疫してほしいところです。 |
固定項目長型 | F-Secure Anti-Virus 2010 10.00 | F-Secure Anti-Virus 2010 は, ヘッダーがバッファーのサイズに収まったとしても, 長いファイル名の記録されていた場合には検疫が行われません。 (オリジナルを始めとして, ARJ 書庫対応ソフトでは, そのような場合にファイル名を指定して展開出来るものが意外と多い。) |
ZIP 書庫においても, ファイル名等の名前が 64KB まで記録できる仕様となっていますので, LZH や ARJ 書庫と同様, 問題の発生が考えられます。 こちらについては, 最近ようやく CVE-2010-0098 が公開されるなどして, 殆どのソフトが対応済みとなっています:
すり抜けパターン | 該当 (代表) ソフト | 説 明 |
直接取得型 |
Microsoft Security Essentials 1.0.1961.0, Norton Internet Security 2011 18.1.0.37, Norton Internet Security 2010 17.6.0.32, ウイルスバスター 2011 クラウド 3.0.1303-JPS3001.0275, ウイルスバスター 2010 17.50.1647.0000, McAfee アンチウイルス プラス 2010 13.15.117, ESET NOD32 Antivirus 4 4.0.474.9, Virus Security ZERO 10.0.0058, F-Secure Anti-Virus 2010 10.00, CA Anti-Virus r8.1 8.1.660.0, AVG Anti-Virus Free 9.0.716, avast! Free Antivirus 5.0.507 |
このタイプでは, (単一) ヘッダー全体ではなく, ヘッダー内の項目毎にバッファーへ読み込むか, 直接情報を取得します。 バッファーは動的, 若しくは仕様上最大となる 64KB (+ α) 固定のものが使用されることから, 基本的にサイズの制限が存在しませんので, 格納ファイルが検疫をすり抜けてしまうこともありません。 このタイプであれば安全と言えます。 |
固定項目長型 | 該当なし |
このタイプでは, バッファー等については動的確保を行っているなど, すり抜けに繋がる処理とはなっていませんが, 当該ソフトの既定値を超えた長さの名前が記録されているなどの場合に, 処理を打ち切ってしまいます。 そういった意味では, 『ヘッダーのサイズ』ではなく『項目のサイズ』に制限のあるタイプといえます。 従って, メンバー名の偽装を行ったものなど (ヘッダーの CRC が存在しませんので容易に行えます。), 簡単に格納ファイルの検疫すり抜けが発生してしまいます。 |
巨大なヘッダーによるバッファーオーバーフロー発生の脆弱性については対応が行われており, 次のような処理を行います:
巨大なヘッダーによるバッファーオーバーフロー発生の脆弱性については, 元々 UNARJ.EXE が既定のバッファーサイズを超えるものをヘッダーとして扱わないようになっていることから対応済みといえ, 次のような処理を行います:
巨大なヘッダーによるバッファーオーバーフロー発生の脆弱性については対応が行われており, 次のような処理を行います: