- PR -

.NET Frameworkをターゲットとするウイルス

投稿者投稿内容
小川誉久
@ITエディタ
会議室デビュー日: 2001/07/27
投稿数: 111
お住まい・勤務地: 東京都小平市
投稿日時: 2002-01-11 02:55
 1月9日付けの米Symantec社のレポートによれば、.NET Frameworkを組み込んだWindows 2000、Windows XPをターゲットとするウイルスが登場したとのことです。

http://securityresponse.symantec.com/avcenter/venc/data/w32.donut.html

 これによれば、MSILをネイティブに実行できない既存のWindows 2000/XP+
.NET Framework環境において、.NETプログラムを起動可能にするために組み込まれたプラットフォーム依存の5バイトのスタブコード(mscoree.dllの_CorExeMain()を実行する)を攻撃して、システムの制御権を獲得し、ファイルの改ざんなどを行って感染を広げるとのことです。

 従って、将来的にOSが.NET Framework対応になり、MSIL実行ファイルをネイティブに起動できるようになれば無効な手法です。またこのウイルスは、感染力もシステムの破壊力も弱く、「.NET Frameworkをターゲットにしたウイルスも作成可能」だということを主張する目的で作成されたとレポートされています。

 いずれにせよ、ウイルス開発者は.NET Frameworkにも触手を伸ばしつつあることを意識する必要はありそうですね。

 お知らせまで。
NothingBut.NETFX
大ベテラン
会議室デビュー日: 2001/09/13
投稿数: 102
投稿日時: 2002-01-11 12:22
こんなのどうにも試しようがないんで、サンプル持っているAnti-Virusベンダーの方にぜひ確認したいんですが...。ってここで言ってもしょうがないけど。

.NET Framework SDK : Late-Breaking known issuesの、
Security Guidelines - System loader dependencies
の説明に従えば、このウィルスはWindows XP環境下では実行されないと思われます。が、いくつかの報道では、Windows XPではメッセージボックスが表示される、と書いてあります。本当のところどうなんでしょうね??

小川誉久
@ITエディタ
会議室デビュー日: 2001/07/27
投稿数: 111
お住まい・勤務地: 東京都小平市
投稿日時: 2002-01-11 20:24
 Nothingbut.NETFWさん、こんにちは。

 この件についてマイクロソフトさんより公式なコメントをいただきました。要約しようかとも思ったのですが、作業の過程で間違うといけないので、原文をそのままフォワードさせていただきます。ただし英文です。

 追って日本語訳(参考訳)したものを投稿しようと思います。少々お待ちください。

 以下、マイクロソフトから送付された今回のウイルス情報に関するコメント
----------------------------------------------------
First, this is not a ".NET virus." It's a standard Windows virus written largely in assembler that happens to locate and modify .NET Framework(MSIL PE)files. So claims that this is the "first .NET virus" are basically inaccurate. We need to be clear about this because this kind of fear, uncertainty, and doubt could cause customers to delay adoption needlessly.

Second, to be infected, a user would have to download an infected application to their system and run it locally: it cannot spread through Internet Explorer or through Outlook (which blocks potentially dangerous attachments). In fact, because of the security enhancements in Windows XP (specifically, that the XP loader natively recognizes MSIL PE files) it cannot even trigger and spread if you are running Windows XP no matter how hard you try. In addition, for downloaded code, additional safeguards for managed code also detect this virus and will not run it. In other words, users who are taking standard security precautions (like running the current operating system and not running code they don't know about) won't be infected.

Third, we have been working with antivirus vendors to make sure that they can scan for this particular attack. In fact, in our tests an infected file triggers today's anti-virus software normally -- the Computer Associates eTrust software we use at Microsoft catches it, for example. We're also talking with the press, analysts, and other industry influentials to ensure that they understand what's really going on and we can stop the sensationalist reporting occurring around this.

We stand behind the security work we've done with the .NET Framework. Ironically, the virus author even talks about how hard it would be to write a real ".NET virus" -- "How easy it sounded, so hard to code it was. C#, such like Java have VERY STRICT type checking. And I figured out that there's NO easy way how to work with stringz - once a string is defined, you CAN'T change it - and I needed to do that, becoz it was very important for viral functionality."
小川誉久
@ITエディタ
会議室デビュー日: 2001/07/27
投稿数: 111
お住まい・勤務地: 東京都小平市
投稿日時: 2002-01-11 23:22
 小川です。

 上記のコメントを翻訳してみました。原文は上にあるので、直訳というよりは、積極的に意訳して読みやすさを優先させています。ただしあわてて訳しているので、間違いがあるかもしれません。お気づきの点あらば遠慮なくご指摘ください(逆に言えば、誤訳が存在する可能性を否定せずにお読みください)。

以下、マイクロソフトからの上記コメントの参考訳
----------------------------------------------------
 まず第1に、これは「.NETウイルス」ではありません。これは主にアセンブラによって記述された.NET Frameworkファイル(MSIL PEファイル)の一部を改変するという、一般的なWindowsウイルスです。ですからこれを、「最初の.NETウイルス」だと呼ぶのは正確な表現ではありません。このような懸念や疑念は、顧客の方々による.NETの選択を誤って遅らせる要因になりますから、ここで問題の真相を明らかにする必要があるでしょう。

 第2に、このウイルスに感染するのは、すでに感染したアプリケーションをユーザーがシステムにダウンロードし、それをローカルで実行した場合に限られます。一般的なウイルスのように、Internet ExplorerやOutlookを介して被害が広がることはありません(Outlookは危険性のある添付ファイルをブロックします)。実際には、Windows XPのセキュリティ拡張(特にXPのローダーがMSIL PEファイルをネイティブに識別すること)により、Windows XP環境では、このウイルスを実行したところで、ウイルスが機能することも、感染が広がることもありえません。さらに言えば、マネージド・コードに追加されたダウンロード・コードに対する防衛機能により、このウイルスは実行されません。言い換えれば、標準的なセキュリティ上の防衛措置(現在のOSとは異なる未知のOS用コードを実行しないという措置)をとっているユーザーは感染しないということです。

 第3に、マイクロソフトはウイルス対策ソフトウェア・ベンダと協力し、こうした特定ウイルスの攻撃を検出できるようにしています。事実、マイクロソフトが行ったテストでは、特別な措置を講じない通常の状態でも、市販のウイルス対策ソフトウェアが感染ファイルを検出することを確認しました。具体的には、例えばComputer Associates社のeTrustで検出に成功しました。これに加えマイクロソフトは、報道関係者やアナリスト、その他影響力を持つ関係者が事の真相を理解できるように、情報提供を実施しています。こうした活動により、今回のような問題がセンセーショナルに取り上げられることを防止できると考えています。

 マイクロソフトは、.NET Frameworkに対し、数々の安全対策を施してきました。このため皮肉にもウイルスの開発者は、本当の「.NETウイルス」を作成することが極めて困難だと次のように語っています。「たとえ簡単に聞こえたとしても、実際にコーディングすることは至難のワザでした。C#言語は、Javaのように、極めて厳格な型チェックがなされます。stringzを扱うような簡単な方法は存在しません。文字列がいったん定義されたら、プログラマがそれを改ざんすることは許されないのです。本当はそれが可能であってほしかった。なぜならウイルスを機能させるために、それは極めて重要なことだからです」


[ メッセージ編集済み 編集者: 小川誉久 編集日時 2002-01-11 23:28 ]
小川誉久
@ITエディタ
会議室デビュー日: 2001/07/27
投稿数: 111
お住まい・勤務地: 東京都小平市
投稿日時: 2002-01-11 23:26
 ということですから、少なくともマイクロソフトの説明では、Windows XPでは実行されないとありますね > NothingBut.NETFWさん

 最後のクラッカーの発言を補足すると、「だから、本物の『.NETウイルス』ではなく、ヘッダを改ざんしたありきたりなWindowsウイルスしか作れなかったのだ」ということになりましょうか……。
NothingBut.NETFX
大ベテラン
会議室デビュー日: 2001/09/13
投稿数: 102
投稿日時: 2002-01-13 16:37
引用:
少なくともマイクロソフトの説明では、Windows XPでは実行されないとありますね


実は、これがWindows XPでは実行されないであろうことは、Visual StudioやDeveloper Studioなどのデバッガを利用して、CLRベースのEXEを実行すればわかります。Windows 2000上では、ステップインすると、スタブコードの先頭でとまります。5つめのjmp命令で、mscoree.dllの_CorExeMainが実行される様子も確認できます。今回のウィルスは、Symantecの説明によれば、このjmpの行き先をウィルスコードに置き換えることで感染・発症します。ところが、同じコードを同じ手順でWindows XP上でステップインしても、何もおきません。いきなりILコードが実行されて(当然JITとかありますが、そこは省略)、おしまいです。したがって、jmp命令を書き換える今回のウィルスは発症できないわけです。それがわかっていたので、一部の報道で、「Windows XPではメッセージボックスが表示される」っていうのが、ホントなのか疑問だったのです。でもすっきりしました。わざわざお調べいただいてありがとうございました。

引用:
「だから、本物の『.NETウイルス』ではなく、ヘッダを改ざんしたありきたりなWindowsウイルスしか作れなかったのだ」


正確を期すと...、ヘッダではなく、最初のスタブコードのx86命令を改ざんします(とSymantecのレポートには書いてあります)。これはこれまでの(マクロではない)ウィルスとなんら変わりがない動作です。ですから、これは.NETウィルスではないのだと思います。

ただし、この手のウィルスが作りやすいのは、スタブコードがまったくのお決まりだからでしょう。どこに書いてあるビット列をどう直せば、自分が指定する場所にjmpできるのかが簡単にわかりますから。ただそれだけだと思います。もしかすると、このウィルスの出現で、Windows 2000のSP3ではローダーがWindows XPのものと同じものに更新されるかもしれませんね。
小川誉久
@ITエディタ
会議室デビュー日: 2001/07/27
投稿数: 111
お住まい・勤務地: 東京都小平市
投稿日時: 2002-01-16 00:11
 NothingBut.NETFWさん、ご指摘ありがとうございました。

 ということで、今回の騒動は.NETとは無関係だということが分かりました。あまりに強い言葉なので参考訳では表現を変えましたが、まさに「煽情主義者」のしわざのようですね。

 ただ「.NETウイルス」と言うことで、これだけ注目を集めるのは、それだけ.NETが注目されているという証でもあろうと思います。
NothingBut.NETFX
大ベテラン
会議室デビュー日: 2001/09/13
投稿数: 102
投稿日時: 2002-01-17 18:30
RTM日本語版に関する情報を探してみたら、ウィルス情報の日本語版が。

http://www.microsoft.com/japan/developer/vstudio/nextgen/

スキルアップ/キャリアアップ(JOB@IT)