web-dev-qa-db-ja.com

WindowsマルウェアをWineで実行すると、Linuxコンピューターに害を及ぼす可能性がありますか?

私は(Ubuntu)Linuxユーザーです。 Windows実行可能ファイルを実行するためにWineを使用する必要がある場合があります。

Windowsマルウェア(ウイルス、トロイの木馬、ワームなど)、つまりLinuxでWineを実行したときに害を及ぼすことを意図していないマルウェアがLinuxシステムに害を及ぼす可能性があるかどうかを知りたいです。私は標準のWineインストールを使用しています。 Wineがスーパーユーザーとして実行されることはありません。

私のフォルダからファイルを読み取り/書き込み/削除し、インターネットに接続できると思います。

ソフトウェアをインストールできないと思いますが、よくわかりません。有害な(Firefox)プラグインをインストールできますか?

25
Martin Thoma

特に、ホームフォルダーはデフォルトで書き込み権限でマップされているため、ファイルシステムとインターネットへのアクセスは適切です。これはドキュメントをいじるもできることを意味します。たとえば、Open Officeドキュメントにマクロを追加したり、mp3ファイルを削除したり、興味のあるファイルをインターネット上の誰かに送信したりします。

そして、はい、それはあなたのFirefoxプロファイルに書き込み、アドオンをインストールできます。

インターネットに接続するということは、コンピュータをドローンに変えるためにC&Cサーバーからコマンドを取得するできることを意味します。

一部の男性ウェアは、標準のWindowsフォルダー以外の場所を見つけることができないでしょう。しかし、他の人はすべてのドライブをスキャンする興味深い場所を探します。

16

理論的にはそうです。

まず、Wineについて少し説明します。 Wineは、Windows実行可能ファイルを実行するための 実行可能ローダー を提供します。また、オプションでインストールまたは使用されるbinfmtハンドラー ここで説明 です。これは、Linuxカーネルが実行するローダーを推定する方法です。たとえば、カーネルのどこかに組み込まれているのは、LinuxのELFファイル用のbinfmtハンドラーです。 。これらの実行可能ファイルからの関数呼び出しは、Wineランタイムによって同等のLinuxシステム呼び出しに変換されます。 Wine FAQは ワインがエミュレータであるという問題)を扱います

では、あなたの質問に戻りましょう-WindowsマルウェアがLinuxボックスに感染する可能性はありますか?私は理論的にはそう言った-あなたが直面するさまざまな脅威はここにあります:

  • フォーマットハンドラのバグ。特別に細工された実行可能ファイルによってWineがPEファイルを誤ってロードした場合、それを悪用できる可能性があります。
  • Wineの関数翻訳のバグ。これは、「Windows APIのバグ」と言ったのと同じです。たとえば、Wineで変換された特定の関数がバッファオーバーフローなどの影響を受けやすい場合、それらを悪用することができます。
  • 関数呼び出しが変換されるという事実。この事実自体が、悪意のある活動が発生する可能性があることを意味しています。
  • Wineインストールのセットアップと制限。どのファイルシステムをマッピングしましたか?実行可能ファイルはこの「chroot」をエスケープできますか?

ここで重要な条件が1つあります。Wineに感染することを知っている、または計画することです。マルウェアがWineで実行される可能性があることを想定して作成されている場合、Wine固有のエクスプロイトの使用を開始でき、Z:が/にマップされていることを検出し、適切なアクションを実行する可能性があります。上記の私のリストの初期のポイントは最も可能性が低いですが、それらが発生した場合に最も有害です。

ただし、ほとんどのマルウェアはWine用に作成されていません。 Wineは、Windows APIの実装方法とWindowsがAPIを実装する方法が異なるため、ほとんど別のビルドターゲットと考えることができます。ほとんどのマルウェアは真っ向からWindowsを狙っているため、被害は「Windows」のインストールにのみ発生すると予想します。実際、Wine開発者がAPI関数の厳密な使用を想定しており、Windowsが何か別のものを許可している場合、一部のマルウェアが実行されない可能性があります。

したがって、長い話を簡単に言うと、Wineは任意のWindowsプログラムを実行できるようにすることで、攻撃面をかなり大きくします。すべてのソフトウェアに適用されるのと同じ一般的なルールがWineに適用されます。

  • それが必要ですか?そうでない場合は、インストールしないでください。
  • 最新ですか?そうでない場合は、更新してください。
  • 何を実行するかに注意してください。ダウンロード、アクセス、実行に注意することの代わりにはなりません。
15
user2213

C構造化例外(MS固有ですがWineでエミュレート)を実行してから長い時間が経過しましたが、構文はこれに近いものです。これを使用している人は、Zがマップされていなくても多くの楽しみを持つことができます。

bool isLinux = 0;
__try {
    asm {
        mov AL, 172
        int 80h
    }
    isLinux = 1;
} __except {}
if (isLinux)
   asm {
      /* Linux shellcode here */
   }
3
Joshua