アカウント名:
パスワード:
江添亮も言及している [blogspot.com]ように
MSのアンチマルウェアソフトウェアには、NScriptというJavaScript風のインタープリターが入っている。これによってあるJavaScriptコードが既知の悪意あるソフトウェアのパターンに一致するかどうかを調べている。JavaScriptはいくらでも同等内容になるように変形可能なので、実際に実行しなければパターンに一致するかどうかわからない。したがってこのように実際に実行して挙動がパターンに一致するかどうか調べる仕組みが必要になる。
問題は、このインタープリターは極めて強い権限で実行され、サンドボックス化もされていない。これはセキュリティソフトウェアとして問題外の実装だ。任意の悪意ある可能性があるコードの挙動を実際に実行して調べるのに、不必要な権限の放棄や適切なサンドボックス化を行っていないのはありえない。
かつ、MSのアンチマルウェアソフトウェアはファイルシステムの変更を監視していて、ファイルシステムのどこに書き込まれようと、JavaScriptっぽいコードは全部、このNScriptインタープリターで実行して、パターン検出を行おうとする。これは任意のブラウザーなどのソフトウェアのキャッシュなどにも対応できるための実装だ。しかし、これによって、ファイルシステムにさえかきこめれば、どのような方法であっても脆弱性をつくコード実行が可能になる。
結果として、マイクロソフトのアンチマルウェアの脆弱性を悪用するには、悪意あるJavaScriptコードをメールで送る、Webブラウザーで閲覧させるなどの何らかの方法で、ファイルシステム上に書き出させればよい。ユーザーがメールを実際に閲覧するとかソフトウェアを実行するといった操作は必要がない。
あるJavaScriptコードが悪意あるものであるかどうかを実際に実行して調べるセキュリティ対策のソフトウェアが存在するせいで強い権限による任意のコード実行につながるというのは、極めて皮肉だ。
問題はそのマルウェア判定インタプリタの設計だろ?
当該部分の修正をする前に、まずdjb教にでも入信 [qmail.jp]して設計から根本的にやり直して欲しいレベル。
実装クソでしょってのはその通りだと思うんですが、
>ファイルシステムのどこに書き込まれようと、JavaScriptっぽいコードは全部、このNScriptインタープリターで実行して、パターン検出を行おうとするこれは本当なんでしょうか?手元の環境だとnscript-type-confusion.zipを保存しただけでは何も起こらず、ダブルクリックした段階でようやくMsMpEngが死んだんですが…
初期設定だと圧縮されたファイルは中身を展開する段階まで放置だったと思いますよ。
ご指摘ありがとうございました。仰る通り拡張子がZIPだったから保存時のスキャンを免れていただけでした。
# 非常に恥ずかしい
zipになってりゃ無害だろつーか一時的にしろ展開しなけりゃ実行も検査もできないダブルクリックでそれが起こったと、普通は考える罠(拡張子擬装はまたべつの話)
いや、該当コンテキストの権限ドロップが最優先。自社製じゃないんじゃないのかと思わせる品質の悪さ。msmpeng には、記憶が確かなら(古い解析によると)、ネイティブコードの試し実行もある。バグが出て当たり前の複雑さだろう、突破されたときの対策がないなんて傲慢にもほどがある。
リンク先にあるdjb教の7番目って、これ一番やっちゃいかん奴じゃね?
私はCの標準ライブラリをほとんど使っていません。その多くの便利な機能、とくに標準入出力(stdio)はバグを入れ易くする ように思えます。qmailのかなりの部分は ここ数年の間に各種アプリケーションのために私が開発した基本的なCライブラリ を流用したものです。
「7.虫のないコードを書く」
書こうと思って書けるなら苦労せんわ!!!
djbだけは良いんですよ。他の人がやったらアホを見るけど。
Cライブラリの代替品をわざわざ自己開発してメンテ出来るほどの能力があればいいんじゃね。stdioがバグを誘発しやすい、出来るだけ使うな、というのは実際そうなんだし。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
犯人はmoriwaka -- Anonymous Coward
「2日で修正(キリッ」などとドヤってる場合か? (スコア:0)
江添亮も言及している [blogspot.com]ように
MSのアンチマルウェアソフトウェアには、NScriptというJavaScript風のインタープリターが入っている。これによってあるJavaScriptコードが既知の悪意あるソフトウェアのパターンに一致するかどうかを調べている。JavaScriptはいくらでも同等内容になるように変形可能なので、実際に実行しなければパターンに一致するかどうかわからない。したがってこのように実際に実行して挙動がパターンに一致するかどうか調べる仕組みが必要になる。
問題は、このインタープリターは極めて強い権限で実行され、サンドボックス化もされていない。これはセキュリティソフトウェアとして問題外の実装だ。任意の悪意ある可能性があるコードの挙動を実際に実行して調べるのに、不必要な権限の放棄や適切なサンドボックス化を行っていないのはありえない。
かつ、MSのアンチマルウェアソフトウェアはファイルシステムの変更を監視していて、ファイルシステムのどこに書き込まれようと、JavaScriptっぽいコードは全部、このNScriptインタープリターで実行して、パターン検出を行おうとする。これは任意のブラウザーなどのソフトウェアのキャッシュなどにも対応できるための実装だ。しかし、これによって、ファイルシステムにさえかきこめれば、どのような方法であっても脆弱性をつくコード実行が可能になる。
結果として、マイクロソフトのアンチマルウェアの脆弱性を悪用するには、悪意あるJavaScriptコードをメールで送る、Webブラウザーで閲覧させるなどの何らかの方法で、ファイルシステム上に書き出させればよい。ユーザーがメールを実際に閲覧するとかソフトウェアを実行するといった操作は必要がない。
あるJavaScriptコードが悪意あるものであるかどうかを実際に実行して調べるセキュリティ対策のソフトウェアが存在するせいで強い権限による任意のコード実行につながるというのは、極めて皮肉だ。
問題はそのマルウェア判定インタプリタの設計だろ?
当該部分の修正をする前に、まずdjb教にでも入信 [qmail.jp]して設計から根本的にやり直して欲しいレベル。
Re: (スコア:0)
実装クソでしょってのはその通りだと思うんですが、
>ファイルシステムのどこに書き込まれようと、JavaScriptっぽいコードは全部、このNScriptインタープリターで実行して、パターン検出を行おうとする
これは本当なんでしょうか?
手元の環境だとnscript-type-confusion.zipを保存しただけでは何も起こらず、ダブルクリックした段階でようやくMsMpEngが死んだんですが…
Re: (スコア:0)
初期設定だと圧縮されたファイルは中身を展開する段階まで放置だったと思いますよ。
Re: (スコア:0)
ご指摘ありがとうございました。
仰る通り拡張子がZIPだったから保存時のスキャンを免れていただけでした。
# 非常に恥ずかしい
Re: (スコア:0)
zipになってりゃ無害だろつーか
一時的にしろ展開しなけりゃ実行も検査もできない
ダブルクリックでそれが起こったと、普通は考える罠
(拡張子擬装はまたべつの話)
Re: (スコア:0)
いや、該当コンテキストの権限ドロップが最優先。自社製じゃないんじゃないのかと思わせる品質の悪さ。
msmpeng には、記憶が確かなら(古い解析によると)、ネイティブコードの試し実行もある。
バグが出て当たり前の複雑さだろう、突破されたときの対策がないなんて傲慢にもほどがある。
Re: (スコア:0)
リンク先にあるdjb教の7番目って、これ一番やっちゃいかん奴じゃね?
私はCの標準ライブラリをほとんど使っていません。
その多くの便利な機能、とくに標準入出力(stdio)はバグを入れ易くする ように思えます。
qmailのかなりの部分は ここ数年の間に各種アプリケーションのために私が開発した基本的なCライブラリ を流用したものです。
Re:「2日で修正(キリッ」などとドヤってる場合か? (スコア:1)
「7.虫のないコードを書く」
書こうと思って書けるなら苦労せんわ!!!
Re: (スコア:0)
djbだけは良いんですよ。他の人がやったらアホを見るけど。
Re: (スコア:0)
Cライブラリの代替品をわざわざ自己開発してメンテ出来るほどの能力があればいいんじゃね。
stdioがバグを誘発しやすい、出来るだけ使うな、というのは実際そうなんだし。