web-dev-qa-db-ja.com

VMで実際のファームウェアを実行するなど、実際のネットワークプリンターをエミュレートすることは可能ですか?

1つのセキュリティコースをたどりながら、ネットワークプリンターの悪用に関するセクションにたどり着きました。 「ネットワークプリンター」では、ポート9100でリッスンし、ネットワーク経由でアクセスできるいくつかの管理インターフェイス(web、snmp、ベンダーのカスタムアプリ)を備えた、専用のイーサネット\ワイヤレスリンクを備えたスタンドアロンデバイスを理解しています。私が本当に再現したいいくつかの攻撃がありましたが、私は間違いなくそれらすべてを購入したくありません(実際、それらのいくつかは私に運命を要します)。しかし、最近のこれらのデバイスのほとんどは、何らかの種類のLinuxをファームウェアとして実行しているようで(少なくともそれらのデバイスの中で最も高価)、このファームウェアは簡単に入手できます。そのため、それらのいくつかをエミュレートすることを目的としたプロジェクトが存在する可能性があると考えました(CiscoにはGNSがあるので、なぜですか?)。

私は明確にする必要があります:私は、MS Windowsホストから共有されている仮想プリンターや、ポート9100でリッスンしている汎用印刷デーモンを備えた汎用Linuxボックスについて話しているのではありません。一種の機械。実際に何かを(ファイルなどに)印刷する必要はありませんが、他のすべての観点からは、実際の接続と同様にすべての接続と要求を処理する必要があります。

何卒よろしくお願いいたします。

8
tis

VirtutechのSIMICSソフトウェアをお勧めします。 VirtutechはIntelに買収され、その子会社であるWind Riverに割り当てられたことに注意してください。

SimicsはSIMULATORであり、EMULATOR(qemuなど)とは重要な違いがあります。違いの詳細については https://stackoverflow.com/questions/1584617/simulator-or-emulator-what-is-the-difference を参照してください。

Simicsは、多数(数百?)のアーキテクチャをシミュレートします。関心のある特定の1つ(この場合は、目的のプリンターで使用されているアーキテクチャー)を選択し、simics内でその環境をロードします。次に、テストするソフトウェア(OSがある場合はカーネルとOS)をロードします。その後、simicsを実行すると、ネイティブハードウェアで実行されるように、ターゲットソフトウェアexactlyが起動して実行されます。これは、シミュレーターとエミュレーターの主な利点です。

Simicsを使用すると、実行を一時停止し、カーネルにブレークポイントを設定して、クラッシュを元に戻すことができます。実際、クラッシュに遭遇した後、効果的に逆に実行して、クラッシュの原因を理解することができます。エミュレータでこれを簡単に行うことはできません。たとえそれを試みたとしても、エミュレータの内部状態はターゲットの実際のハードウェアアーキテクチャとは異なるため、結果はさまざまです。

BLUF:エミュレータではなくシミュレータが必要です。

[編集]:シミック情報へのリンク: http://www.windriver.com/products/simics/

3
Nick