アカウント名:
パスワード:
アンチウィルスがSMBサーバからファイルをダウンロード。アンチウィルスがチェック後、ローダーに渡すという順序になっているものだとばかり思っていました。ローダーが改めてダウンロードし直すのはダウンロードを2回やってて無駄な動作じゃないでしょうか?
通常はファイルがオープンされた後、メモリにマップされて、実行時に随時ロードという形だと思うし、それに加えてカーネル/ユーザ領域とかもあると思うので、ウィルスチェックのフックは別途とした方が実装しやすいんじゃない?でも、キャッシュしないんだろうかってのはある。
フック云々のタイミングをdl後にすればいいだけなのでは?前半の内容は何の説明にもなってないような。
メモリマップだとオープンしたときには特に読み込みが起きず、該当メモリへのアクセスがあった際にデータがメモリ上に読まれて居なければデータを読み込み、メモリ管理の都合でページアウトしてたらページフォルトの際に再度読み込みが行われる。つまり、プログラムの実行中ずっと走りっぱなしで、通常は実行ファイルが実行中に変化しないにも関わらず読み込みのたびに再スキャンすることになる。
そしてここにフックを仕掛けるとローレベルのストレージアクセスないしはページフォルト管理システムに割り込む必要がある。前者の時点で結構コアな部分だし後者は完全にカーネルのコアな部分で、そんな場所にアンチウィルスなんてデカイもの突っ込めないというか突っ込んだらパフォーマンスが尋常じゃなく低下する。
なおキャッシュするというのも、サイズ数GBのインストーラのようなものであれば現実的ではない。ネットワーク上の実行ファイルを実行する主要なケースにはネットワークインストールも含まれるだろうし、これを想定から漏らすのは適切ではない。
SMBアクセスだけは例外的に細かいリードアクセス単位でスキャンするとかじゃないと対応不能っぽい。でも対応した所で状況自体がほとんど手遅れだから対応する意義があまり大きくはないという。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
身近な人の偉大さは半減する -- あるアレゲ人
なんで2回アクセスするんだろ? (スコア:0)
アンチウィルスがSMBサーバからファイルをダウンロード。アンチウィルスがチェック後、ローダーに渡すという順序になっているものだとばかり思っていました。ローダーが改めてダウンロードし直すのはダウンロードを2回やってて無駄な動作じゃないでしょうか?
Re: (スコア:0)
通常はファイルがオープンされた後、メモリにマップされて、実行時に随時ロードという形だと思うし、それに加えてカーネル/ユーザ領域とかもあると思うので、ウィルスチェックのフックは別途とした方が実装しやすいんじゃない?
でも、キャッシュしないんだろうかってのはある。
Re: (スコア:0)
フック云々のタイミングをdl後にすればいいだけなのでは?
前半の内容は何の説明にもなってないような。
Re:なんで2回アクセスするんだろ? (スコア:0)
メモリマップだとオープンしたときには特に読み込みが起きず、
該当メモリへのアクセスがあった際にデータがメモリ上に読まれて居なければデータを読み込み、
メモリ管理の都合でページアウトしてたらページフォルトの際に再度読み込みが行われる。
つまり、プログラムの実行中ずっと走りっぱなしで、
通常は実行ファイルが実行中に変化しないにも関わらず読み込みのたびに再スキャンすることになる。
そしてここにフックを仕掛けるとローレベルのストレージアクセスないしはページフォルト管理システムに割り込む必要がある。
前者の時点で結構コアな部分だし後者は完全にカーネルのコアな部分で、
そんな場所にアンチウィルスなんてデカイもの突っ込めないというか突っ込んだらパフォーマンスが尋常じゃなく低下する。
なおキャッシュするというのも、サイズ数GBのインストーラのようなものであれば現実的ではない。
ネットワーク上の実行ファイルを実行する主要なケースにはネットワークインストールも含まれるだろうし、
これを想定から漏らすのは適切ではない。
SMBアクセスだけは例外的に細かいリードアクセス単位でスキャンするとかじゃないと対応不能っぽい。
でも対応した所で状況自体がほとんど手遅れだから対応する意義があまり大きくはないという。