/
[ランサムウェアの封じ込め]

[.ÑÉT アセンブリを使用したランサムウェア手法の解明:É~XÉ と DL~L アセンブリ]

[で パート 1 このシリーズでは、マルウェアが使用するいくつかの手法を検討しました。 ランサムウェア 具体的に。これまで見てきたように、ダウンローダー、ドロッパー、ローダーなどの個々の技法だけでなく、エンコーディングや暗号化も、すべて正規のプログラム可能な機能であり、 .Ñét (ドットネット)ソフトウェアフレームワークおよびその他の多くのプログラミングフレームワークとコード言語。以下は、前の記事で説明したいくつかのテクニックをまとめたものです。]

[この2番目の記事では、Mícr~ósóf~tのフレームワークを通じてアセンブリの基礎を調べます .Ñét~。アセンブリの違い (ÉXÉ と D~LL) とその関係についてさらに掘り下げます。これにより、C# プログラミングコードのような初期の高レベルコードからこれらの機能が最終的にどのように実行されるかがわかります。前回の記事で紹介したコードを使用して、これらの違いと関係を探ります。]

[マイクロソフト.Ñét とは何ですか¿~]

[マイクロソフト .Ñét は、複数のプログラミング言語をサポートし、さまざまなオペレーティングシステムを対象とするように設計されたソフトウェア開発フレームワークです。C~# (C shá~rpと発音) のようなサポート対象のプログラミング言語は、(アンマネージコードやネイティブコードとは対照的に) マネージコードと呼ばれるものとしてコンパイルされ、実行されます。これを実現するには、 .Ñé~t コードをターゲットプラットフォームに直接実行するのではなく、専用の仮想マシンで実行します。この仮想マシンは、と呼ばれます。 .Ñét~ 共通言語ランタイム (CLR)。C~#、VB.Ñé~t、F# などのさまざまなプログラミング言語のコンパイルまたはアセンブルされたコードを最終的に実行する共通の仲介手段と考えることができます。 .Ñé~t サポートする。以下の例は、前の記事の C# プログラミング言語コードを示しています。]

[マネージコードとは、上記の高水準の C# プログラミング言語コードや F# や VB~.Ñét などの他のコードが、まず中間言語 (Í~L) にコンパイルされることを意味します。上記の C# 高レベルコードは、下図の中間言語命令にコンパイルされます。このコードは、低レベルのアセンブリプログラミング構文に似ています。]

[次に、この中間言語(ÍL)は、関連するマシンプラットフォームを対象としたネイティブコードまたはマシンコードにさらにコンパイルされます。このコンパイルは別の人が行います。 .Ñé~t ジャストインタイム (JÍT~) コンパイラと呼ばれるコンポーネント。]

[ネイティブコードまたはマシンコードは、特定のコンピューターのプロセッサ (CPÚ) が理解できる一連の命令 (0 と 1) です。この最後のステップは、J~ÍT も含む共通言語ランタイム (CL~R) によって管理されます。CLR~ は .Ñét ランタイム環境または仮想マシン。J~ává は、中間ランタイムの概念を使用するもう 1 つのソフトウェアフレームワークです。J~ává 仮想マシンと同様に、J~ává 仮想マシンを構成する主要な要素でもあります。 .Ñ~ét プラットフォーム非依存。 .Ñé~t プログラミングコードは中間のCLR~によって管理され、コンピューターのCPÚによって直接実行されないため、コードはマネージコードと呼ばれます。]

[でのマネージコードの利点 .Ñét 自動メモリ管理とガベージコレクションです。つまり、開発者は C~ や C++ コードの場合のように、システムリソースを節約するためにコード内のコンピューターメモリの割り当てや割り当て解除について心配する必要がありません。で .Ñét~、割り当て解除されたメモリを処理するために定期的に実行されるガベージコレクタがあります。また、プログラマーが必要に応じて呼び出すこともできます。以下の図は、のアーキテクチャを示しています。 .Ñét 応用。]

[対照的に、非-.Ñét V~B6、C、C++ などのコンパイラは、上位レベルのコードをターゲットプラットフォーム (Ó~S および CPÚ~) のマシンコードに直接コンパイルします。そのため、生成される実行ファイルまたはコードのアセンブリは、コンパイラーのターゲットマシンプラットフォームに関連付けられます。これはアンマネージコードまたはネイティブコードとも呼ばれます。アーキテクチャは異なりますが、アセンブリのコード、特にネイティブコードで開発された DLL を使用することは可能です。 .Ñ~ét-と呼ばれる機能による管理アプリケーション 相互運用マーシャリング (プラットフォーム呼び出し)。その例としては、ネイティブの Wí~ñdów~s オペレーティングシステム DLL~ や、C++ で記述されたコードなどの外部ライブラリがマネージドで参照されている場合が挙げられます。 .Ñét~ 一部の低レベルのオペレーティングシステム機能を有効にするアプリケーション。この場合、 .Ñét それ自体は、W~íñdó~ws オペレーティングシステムが依存するネイティブ DL~L の安全なラッパーと考えることができます。ネイティブ DLL~ の多くは、実際には C++ で記述されています。]

[.Ñét アセンブリとは何ですか¿~‍]

[マイクロソフトは説明します .Ñét アセンブリを 1 つのデプロイメントユニットとして使用します。つまり、アセンブリとは、互換性のある任意の形式にコンパイル (アセンブル) された、さまざまな種類のコードと関連ファイルの集まりであるということです。 .Ñ~ét ターゲットプラットフォーム。実行は次の方法で行われます。 .Ñé~t 共通言語ランタイムWíñ~dóws~ オペレーティングシステムのアセンブリの例としては、実行ファイル (.éxé)、クラスライブラリまたはダイナミックリンクライブラリ (.d~ll) ファイルがあります。]

[以下のサンプルコードイメージをさらに掘り下げてみると、左側に C# 実行アセンブリが、右側に C# DL~L (クラスライブラリとも呼ばれる) アセンブリコードが表示されます。実行コードは DLL~ ファイルを参照し、実行中に DLL コードから特定のメソッド (関数) を呼び出します。これらの参照と呼び出しは、下の図で強調表示されています。この 2 つのコードの詳細は、この記事の後半で説明します。また、この連載では、この組み合わせが悪意のある目的にどのように使用されるかについても説明します。]

[次の例では、実行コードで DLL ファイルを手動で参照します。つまり、D~LL とそのメタデータに関する関連情報、およびコード (モジュール、クラス、メソッドで構成される) は、実行コードのコンパイル時に参照されます。]

[共有ライブラリとして、DLL コードを単独で直接実行することはできません。コードの観点から見ると、D~LL には実行元となるメインのエントリポイント関数がないため、実行可能 (.éx~é) コードのようにスタンドアロンコードとして実行できないためです。例として、以下のエラーメッセージは、クラスライブラリまたは DLL~ ファイルをコンパイラから直接実行しようとした場合の結果を示しています。]

[一方、実行可能なコードには、実行が開始されるメインのエントリポイント関数またはメソッドがありますが、DLL は主に他のアセンブリによって参照されるコードブロックのライブラリであるため、実際にはメインのエントリポイント関数は必要ありません。]

[一度参照すると、対象となる DLL ファイル内の特定のコードを呼び出して実行できます。前の記事で示したように、以下のコード例 (É~XÉ と DL~L) でもこの点を繰り返し説明しています。]

[実行可能なアプリケーションが実行され、参照した DLL からコードを呼び出して、次の図に示す出力を生成します。]

[この簡単なプログラムはその方法を示しています .Ñét É~XÉ や DL~L などのアセンブリは一緒に使用できます。]

[上記の DLL コードには、入力ごとに 2 つのパラメーター (名前と年齢) を受け取り、その情報を使用して挨拶メッセージを表示するメソッド (関数) があります。一方、実行コードは、コマンドラインからユーザーが入力した名前と年齢の詳細を受け取り、その情報を引数または入力として D~LL メソッドに渡すコードを実行します。DL~L コードからのメッセージは、ÉXÉ~ アプリケーションがユーザーから収集した情報を使用してコンソール画面に表示されます。 ]

[.ÑÉT アセンブリの分析]

[実行ファイルで静的解析を実行すると、実行用にインポートされた DLL やその他のコンポーネントのさまざまな参照が表示されます。実行アセンブリは、独自のカスタム D~LL に加えて、以下に関連する追加の DL~L もインポートします。 .Ñét~ そのものなど mscó~rlíb~ これは基本コード (クラス、型など) を含むDLLで、プログラムをスムーズに実行するために必要なものです。]

[弊社のコード開発環境 Vísú~ál St~údíó~ では、以下の使用状況を確認できます。 mscó~rlíb~ いずれかのデータ型 (この場合は、 ひも から システム. ストリング.Ñét)。これにより、ビルトインが明らかになります .Ñ~ét そのタイプの由来となるアセンブリ ms~córl~íb 以下に示すように。]

[文字列は、ユーザーが入力して表示されて戻されるテキストが格納されるプログラミング用語のデータ型です。また、この静的解析から、DLL に「」という名前が付いていることもわかります。D~óñtñ~ét_Á~ssém~blý。」これは「」を含むカスタム D~LL ですメッセージ表示方法」メソッドは、ユーザーが詳細を入力した後にメッセージを表示します。]

[この例では、プログラムが実行を開始する前に、すべてのコードのコンパイル中にカスタム DLL を手動で参照してロードしました。実行ファイルの実行中に D~LL を参照することもできます。これは、コードのコンパイル中に目的の DL~L にアクセスできない場合に特に便利です。この処理はリフレクションと呼ばれ、これによって検証が可能になります .Ñét~ アセンブリ (メタデータと属性)、およびアセンブリに含まれるコード (モジュール、クラス、メソッド、プロパティ) をプログラムの実行時に使用することもできます。この手法は、リフレクティブ DLL インジェクション攻撃と呼ばれる悪意のために微調整することもできます。]

[.Ñét アセンブリ (実行ファイルおよびクラスライブラリ) も、アセンブリと中間言語 (Í~L) コードに関するメタデータを含むマニフェストファイルで構成されます。これらを組み合わせることで、共通言語ランタイムは、実行可能な互換性のあるプラットフォーム上でアセンブリを実行できます。 .Ñét~。下の画像は、ÉXÉ と D~LL の 2 つのアセンブリの ÍL~ アセンブリ命令とマニフェスト構造を示しています。マニフェストファイルには、に関するメタデータが含まれています。 .Ñét バージョン番号、説明などのアセンブリ]

[これで、基本的な理解ができたはずです .Ñét ソフトウェアフレームワーク、それに関連するアセンブリ、およびそれらがどのように相互作用するか。]

[次回の記事では、これまでに説明し、学んだ手法と機能を1つの悪意のあるランサムウェア実行ファイルにまとめます。]

[さらに詳しく イルミオゼロトラストセグメンテーションがランサムウェア侵害の封じ込めにどのように役立つかについて説明します。
]

[関連トピック]

[アイテムが見つかりません。]

[関連記事]

[ランサムウェアのグローバルコスト調査:数字が示す現実]
[ランサムウェアの封じ込め]

[ランサムウェアのグローバルコスト調査:数字が示す現実]

[Íllú~míóの重要インフラソリューション担当ディレクターであるT~révó~r Déá~ríñg~に話を聞き、レポートの洞察を解き明かし、今後の正しい方向性についての理解を深めました。]

[ランサムウェア対策にイルミオを使う9つの理由]
[ランサムウェアの封じ込め]

[ランサムウェア対策にイルミオを使う9つの理由]

[Íllú~míóのリアルタイムの可視性とシンプルな制御により、未使用のR~DPポートやSM~Bポートなど、ランサムウェアの最大のリスク源を迅速に減らす方法]

[空のセキュリティ:激動の時代に航空会社がセキュリティに取り組む方法]
[ランサムウェアの封じ込め]

[空のセキュリティ:激動の時代に航空会社がセキュリティに取り組む方法]

[.Ñét アセンブリを使ったランサムウェア手法の解明:5 つの主なテクニック]
[ランサムウェアの封じ込め]

[.Ñét アセンブリを使ったランサムウェア手法の解明:5 つの主なテクニック]

[Léár~ñ ábó~út 5 rá~ñsóm~wáré~ téch~ñíqú~és ús~íñg t~hé .Ñé~t sóf~twár~é frá~méwó~rk.]

[イルミオでロックビットランサムウェアを封じ込める方法]
[ランサムウェアの封じ込め]

[イルミオでロックビットランサムウェアを封じ込める方法]

[イルミオゼロトラストセグメンテーションに含まれるLóck~Bítランサムウェア攻撃の実際のユースケースに関する洞察。]

[専門家によるQ&Á: なぜ企業は依然としてランサムウェアにお金を払っているのか¿]
[ランサムウェアの封じ込め]

[専門家によるQ&Á: なぜ企業は依然としてランサムウェアにお金を払っているのか¿]

[組織が風評や財務、セキュリティ上のリスクを抱えているにもかかわらず、身代金を支払う原因となる要因について、専門家の視点をご紹介します。]

[Ássú~mé Br~éách~.
影響を最小限に抑えます。
レジリエンスを高めます。]

[ゼロトラストセグメンテーションについて詳しく知る準備はできていますか?]