サイバー脅威は進化し続け、より高度になるため、セキュリティ研究者や専門家が時代の先を行くことが重要です。この記事では、ChatGPT がマルウェア、特にリモート アクセス トロイの木馬 (RAT) AsyncRAT の分析をどのように支援するかを調査し、ChatGPT の機能を詳しく説明し、ネットワーク トラフィックを分析してコマンド アンド コントロール (C2) を明らかにすることで特定をどのように支援できるかについて説明します。 ) インフラストラクチャ、脅威指標。続ける前に、ChatGPT について簡単に説明します。
ChatGPTは以下によって所有・運営されています。AI(AIChatGPTは、質問の背後にある意味を学習するように訓練されているという点で画期的である。その結果、報告される回答は人間の回答に非常に似ている。ChatGPTがサイバー犯罪との闘いを支援するのか、それとも難題を突きつけるのかは不明だが、今はChatGPTとそのマルウェア解析能力だ。
したがって、経験豊富なセキュリティ専門家であろうと、初心者であろうと、この記事はマルウェア分析における高レベル言語モデルの使用についての貴重な洞察を提供します。
はじめましょう!
ChatGPT の能力と機能を理解するために、AsyncRAT の分析を開始しました。私たちは、この最先端の AI テクノロジーがどのようにしてこのマルウェアの内部動作を明らかにし、ネットワーク トラフィックを分析してコマンド アンド コントロール (C2) インフラストラクチャを明らかにすることで脅威の兆候を特定するのにどのように役立つのかに興味があります。
調査の結果、AsyncRAT のステージ 1 ローダーとして機能する次のコード スニペットを発見しました。これには広範な難読化と Base64 でエンコードされた文字列が含まれています。コードは Python で記述されており、共通言語ランタイム (CLR) ライブラリを利用して .NET Framework と対話し、base64 でエンコードされたアセンブリを読み込んで実行します。
さらに調査を進めた結果、ChatGPT は AsyncRAT などのマルウェアの分析に非常に役立つことがわかりましたが、一部の領域ではまだ制限があることもわかりました。それにもかかわらず、ChatGPT などの高級言語モデルの使用は、サイバー脅威と戦う上で有望な発展であると信じています。
ここでは、このコードを ChatGPT への入力として使用し、詳しく見てみることにしました。
提供されたコードは、文字列長の制限と実行が許可されている操作の制限により、ChatGPT がデコードできない Base64 でエンコードされた文字列を使用します。ただし、ChatGPT は、コードの機能と潜在的な悪意についてのわかりやすい説明を提供します。 ChatGPT は強力な言語モデルですが、他の方法やテクニックと組み合わせて使用する必要があり、マルウェア分析に関連するすべてのタスクの万能薬ではないことに注意してください。
これが、Cyberchef を使用して Base64 文字列をデコードする理由です。これは、第 2 段階のローダー Python スクリプトであることが判明します。
このコードを再度 ChatGPT への入力として使用して、何が表示されるかを見てみましょう。
ここでも、Base64 でエンコードされた長い文字列があり、Cyberchef を使用してデコードする必要があります。
この文字列は PE ファイルであることが判明しました。 PE ファイルを ChatGPT に渡すことはできないため、PE ファイル分析の観点からは役に立ちません。しかし、PE ファイルの内容を引き続き確認することにしました。
Dnspy を使用してこのバイナリを逆コンパイルします。
ご覧のとおり、base64 デコード関数の出力は、入力として解凍関数に渡されます。
上記のコードは、「gzip」と呼ばれるバイト配列を解凍しているように見える C# 関数です。この関数は、GZipStream クラスを使用して新しいストリームを作成し、「gzip」バイト配列を使用して構築された MemoryStream オブジェクトをそれに渡します。次に、GZipStream を使用して、4096 バイトのチャンク内の圧縮データを読み取り、新しい MemoryStream オブジェクトに書き込みます。次に、関数は MemoryStream オブジェクトの ToArray メソッドを使用して、解凍されたデータをバイト配列として返します。
簡単に言うと、この関数は圧縮されたバイト配列を受け取り、Gzip アルゴリズムを使用してそれを解凍し、解凍されたデータをバイト配列として返します。この関数を使用すると、Gzip アルゴリズムを使用して以前に圧縮されたデータを解凍できます。
ここでもデコードに Cyberchef を使用することにしました。
これも PE ファイルであり、分析時点では .NET アセンブリです。分析には Dnspy を使用します。
このバイナリには、base64 でエンコードされた文字列が含まれていますが、最後の単語を注意深く見ると、デコードされると、base64 文字列が PowerShell スクリプトに変わることがわかります。
ご覧のとおり、powershell は非常にわかりにくいため、ChatGPT がそれをデコードできるかどうかを確認することにしました。以下は出力です。
このようなスクリプトの機能を尋ねると、次のような出力が返されます。
.NET アセンブリには、追加の Base64 エンコード文字列があります。これはまず、引数が暗号のキーである cipher という関数に渡されます。
そこで、Cipher 関数のロジックが何であるかを確認することにしました。
ここで、このコードを ChatGPT への入力として使用し、パスワードを認識するように依頼することにします。
この出力は私たちを驚かせました。
次の段階に進むために、同じロジックを Python で実装しました。
これが出力です。最終的な PE ファイル:
これも .NET ファイルです。 Dnspy でチェックインすると、次のような結果が得られます。
機能を見ることで、このファイルの機能、つまり解析防止技術やレジストリ機能などを明確に理解できます。 ChatGPT がこのコードの目的を理解し、それがどのような種類のマルウェアであるかを特定するかどうかに興味があります。
コード内の重要な機能は「Install」メソッドで、起動時に指定されたファイルをインストールして実行する役割を担っているようです。
「FileInfo」オブジェクトは、コードがインストールして実行しようとしているファイルを指定するために使用されます。
「Process.GetCurrentProcess().MainModule.FileName」および「fileInfo.FullName」は、現在実行中のプロセスが指定されたファイルと同じであるかどうかを確認するために使用されます。
"Process.GetProcesses()" メソッドは、実行中のすべてのプロセスのリストを取得するために使用され、コードはそれらを反復処理して、指定されたファイルと同じファイル パスを持つプロセスを停止します。
「Methods.IsAdmin()」メソッドは、ユーザーが管理者権限を持っているかどうかを確認するために使用されます。
「schtasks」コマンドは、ログイン時に指定されたファイルを実行するスケジュールされたタスクを作成するために使用されます (ユーザーが管理者権限を持っている場合)。
HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRunキーを開くには、"Registry.CurrentUser.OpenSubKey "メソッドを使用します。registryKey.SetValue」メソッドを使用して、指定されたファイル パス ファイルにキー値を設定します (ユーザーに管理者権限がない場合)。
指定したファイルが既に存在するかどうかを確認するには「File.Exists」メソッドを使用し、存在する場合は「File.Delete」メソッドを使用して削除します。
「FileStream」オブジェクトは、指定されたファイル パスの下に新しいファイルを作成し、現在実行中のプロセスのファイルの内容をそのファイルに書き込むために使用されます。
「Methods.ClientOnExit()」メソッドを実行します。
"Path.GetTempFileName()" メソッドは一時的な .bat ファイルを作成するために使用され、"StreamWriter" オブジェクトはそれに一連のコマンドを書き込むために使用されます。
"Process.Start" メソッドは .bat ファイルを開始するために使用され、"Environment.Exit(0)" メソッドは現在のプロセスを終了するために使用されます。
このコードから、このコードは起動時に特定のファイルをインストールして実行しようとしていることが推測でき、指定されたファイルが起動時に確実に実行され、管理者権限で実行されるように設計されているようです。また、このコードは元のファイルを削除し、同じ名前と内容で新しいファイルを作成しようとします。これは、元のファイルを悪意のあるバージョンに置き換えようとしていることを示している可能性があります。ユーザーに管理者権限があるかどうかの確認、スケジュールされたタスクの作成、レジストリ キーの変更などの方法を使用すると、可能な限り起動時にファイルを実行しようとしていることがわかります。ファイルの実行を非表示にする方法としては、bat ファイルを作成し、隠しモードで実行し、実行後に Bat ファイルを削除するなど、さまざまな方法があります。
コードが悪意のあるものであることを理解し、それをリモート アクセス ツール (RAT) として正確に識別します。
このトレーニングを通じて、ChatGPT をより適切に復号化し、それがマルウェア分析にどのように役立つかを理解することができました。 ChatGPT はその基本的な機能を実証していますが、現時点では、より包括的な人間の知能によるマルウェア分析には匹敵しません。私たちは引き続き ChatGPT を監視し、将来的にはさらに多くのアップデートを共有して、その機能とパワーを強化していきます。
元記事はChief Security Officerによるもので、転載の際はhttps://cncso.com/jp/chatgpt-htmlによる非同期解析。