Chatgpt를 이용한 AsyncRAT 악성코드 분석 실습

악성코드, 특히 원격 액세스 트로이목마(RAT) AsyncRAT을 분석하는 데 ChatGPT가 어떻게 도움이 되는지 살펴보고, 네트워크 트래픽을 분석하고 명령 및 제어(C2) 인프라를 공개하여 위협 지표를 식별하는 데 ChatGPT가 어떻게 도움이 되는지 논의해 보세요.

사이버 위협이 계속 진화하고 더욱 정교해짐에 따라 보안 연구원과 전문가가 앞서가는 것이 중요합니다. 이 기사에서는 ChatGPT가 맬웨어, 특히 RAT(원격 액세스 트로이 목마) AsyncRAT 분석을 지원하는 방법을 살펴보고 ChatGPT의 기능을 자세히 살펴보고 네트워크 트래픽을 분석하고 명령 및 제어(C2)를 공개하여 식별을 지원하는 방법에 대해 논의합니다. ) 인프라 위협 지표. 계속하기 전에 ChatGPT에 대한 간략한 소개를 하겠습니다.

ChatGPT是由일체 포함(일체 포함)驱动的,于2022年11月由OpenAI推出的原型,旨在回答长篇复杂问题。ChatGPT的革命性在于它被训练学习问题背后的含义。因此,所报告的答案非常类似于人类的回答。目前尚不确定ChatGPT是否会在打击网络犯罪方面提供支持或构成挑战,但现在让我们专注于ChatGPT及其멀웨어 분석能力。

따라서 숙련된 보안 전문가이든 이제 막 시작하는 보안 전문가이든 이 기사는 악성 코드 분석에서 고급 언어 모델 사용에 대한 귀중한 통찰력을 제공할 것입니다.

시작하자!

ChatGPT의 기능을 이해하기 위해 AsyncRAT 분석을 시작했습니다. 우리는 이 최첨단 AI 기술이 이 악성 코드의 내부 작동 방식을 밝히는 데 어떻게 도움이 될 수 있는지, 그리고 잠재적으로 네트워크 트래픽을 분석하고 명령 및 제어(C2) 인프라를 공개하여 위협 지표를 식별하는 데 도움을 줄 수 있는지 궁금합니다.

연구 결과, 우리는 광범위한 난독화와 base64로 인코딩된 문자열을 포함하는 AsyncRAT의 1단계 로더 역할을 하는 다음 코드 조각을 발견했습니다. 코드는 Python으로 작성되었으며 CLR(공용 언어 런타임) 라이브러리를 활용하여 .NET Framework와 상호 작용하여 base64로 인코딩된 어셈블리를 로드하고 실행합니다.

추가 연구를 통해 ChatGPT는 AsyncRAT과 같은 악성코드를 분석하는 데 매우 유용하지만 일부 영역에서는 여전히 한계가 있음을 발견했습니다. 그럼에도 불구하고 우리는 ChatGPT와 같은 고급 언어 모델을 사용하는 것이 사이버 위협에 맞서는 데 있어서 유망한 발전이라고 믿습니다.

Chatgpt를 이용한 AsyncRAT 악성코드 분석 실습

여기서 우리는 이 코드를 ChatGPT에 대한 입력으로 사용하고 자세히 살펴보기로 결정했습니다.

Chatgpt를 이용한 AsyncRAT 악성코드 분석 실습

Chatgpt를 이용한 AsyncRAT 악성코드 분석 실습

제공된 코드는 문자열 길이 제한 및 수행할 수 있는 작업에 대한 제한으로 인해 ChatGPT가 디코딩할 수 없는 base64로 인코딩된 문자열을 사용합니다. 그러나 ChatGPT는 여전히 코드의 기능과 잠재적인 악의적 의도에 대해 이해하기 쉬운 설명을 제공합니다. ChatGPT는 강력한 언어 모델이지만 다른 방법 및 기술과 함께 사용해야 하며 악성 코드 분석과 관련된 모든 작업에 대한 만병통치약은 아닙니다.

Chatgpt를 이용한 AsyncRAT 악성코드 분석 실습

Chatgpt를 이용한 AsyncRAT 악성코드 분석 실습

이것이 우리가 Cyberchef를 사용하여 base64 문자열을 디코딩하는 이유이며, 이는 두 번째 단계 로더 Python 스크립트로 밝혀졌습니다.

Chatgpt를 이용한 AsyncRAT 악성코드 분석 실습

Chatgpt를 이용한 AsyncRAT 악성코드 분석 실습

이 코드를 다시 ChatGPT에 대한 입력으로 사용하고 그것이 무엇을 말하는지 살펴보겠습니다.

Chatgpt를 이용한 AsyncRAT 악성코드 분석 실습

다시 말하지만, Cyberchef를 사용하여 디코딩해야 하는 긴 base64 인코딩 문자열이 있습니다.

Chatgpt를 이용한 AsyncRAT 악성코드 분석 실습

이 문자열은 PE 파일로 밝혀졌습니다. PE 파일을 ChatGPT로 전달할 수 없으므로 PE 파일 분석 관점에서는 도움이 되지 않습니다. 하지만 우리는 PE 파일의 내용을 계속 살펴보기로 결정했습니다.

Chatgpt를 이용한 AsyncRAT 악성코드 분석 실습

우리는 Dnspy를 사용하여 이 바이너리를 디컴파일할 것입니다.

Chatgpt를 이용한 AsyncRAT 악성코드 분석 실습

 

보시다시피, base64 디코딩 기능의 출력은 압축 해제 기능의 입력으로 전달됩니다.

Chatgpt를 이용한 AsyncRAT 악성코드 분석 실습

위의 코드는 "gzip"이라는 바이트 배열을 압축 해제하는 것으로 보이는 C# 함수입니다. 이 함수는 GZipStream 클래스를 사용하여 새 스트림을 생성하고 "gzip" 바이트 배열을 사용하여 생성된 MemoryStream 객체를 전달합니다. 그런 다음 GZipStream을 사용하여 4096바이트 청크로 압축된 데이터를 읽고 이를 새 MemoryStream 개체에 씁니다. 그런 다음 함수는 MemoryStream 개체의 ToArray 메서드를 사용하여 압축이 풀린 데이터를 바이트 배열로 반환합니다.

간단히 말해서 이 함수는 압축된 바이트 배열을 가져와서 Gzip 알고리즘을 사용하여 압축을 풀고 압축이 풀린 데이터를 바이트 배열로 반환합니다. 이 기능은 이전에 Gzip 알고리즘을 사용하여 압축된 데이터의 압축을 풀 때 사용할 수 있습니다.

이번에도 우리는 디코딩을 위해 Cyberchef를 사용하기로 결정했습니다.

Chatgpt를 이용한 AsyncRAT 악성코드 분석 실습

이것은 분석 당시 .NET 어셈블리인 PE 파일입니다. 우리는 이를 분석하기 위해 Dnspy를 사용합니다.

Chatgpt를 이용한 AsyncRAT 악성코드 분석 실습

이 바이너리에는 base64로 인코딩된 문자열이 있지만 마지막 단어를 주의 깊게 살펴보면 디코딩 시 base64 문자열이 powershell 스크립트로 바뀌는 것을 알 수 있습니다.

Chatgpt를 이용한 AsyncRAT 악성코드 분석 실습

보시다시피 powershell은 매우 모호하므로 ChatGPT가 이를 디코딩할 수 있는지 확인하기로 결정했습니다. 아래는 출력입니다.

Chatgpt를 이용한 AsyncRAT 악성코드 분석 실습

Chatgpt를 이용한 AsyncRAT 악성코드 분석 실습

그러한 스크립트의 기능이 무엇인지 물었을 때 수신된 출력은 다음과 같습니다.

Chatgpt를 이용한 AsyncRAT 악성코드 분석 실습

.NET 어셈블리에는 추가 base64로 인코딩된 문자열이 있습니다. 먼저 매개변수가 암호의 키인 cipher라는 함수에 전달됩니다.

Chatgpt를 이용한 AsyncRAT 악성코드 분석 실습

Chatgpt를 이용한 AsyncRAT 악성코드 분석 실습

그래서 우리는 Cipher 함수의 논리가 무엇인지 알아보기로 했습니다.

Chatgpt를 이용한 AsyncRAT 악성코드 분석 실습

이제 이 코드를 ChatGPT에 대한 입력으로 사용하고 비밀번호를 인식하도록 요청하기로 결정했습니다.
이 결과는 우리를 놀라게 했습니다.

Chatgpt를 이용한 AsyncRAT 악성코드 분석 실습

다음 단계로 넘어가기 위해 동일한 논리를 Python으로 구현했습니다.
이것이 출력입니다. 최종 PE 파일:

Chatgpt를 이용한 AsyncRAT 악성코드 분석 실습

이것은 다시 .NET 파일입니다. Dnspy를 체크인하면 이것이 우리가 얻는 것입니다.

Chatgpt를 이용한 AsyncRAT 악성코드 분석 실습

Chatgpt를 이용한 AsyncRAT 악성코드 분석 실습

기능을 살펴보면 이 파일의 기능, 즉 안티 분석 기술 및 레지스트리 기능 등을 명확하게 이해할 수 있습니다. ChatGPT가 이 코드의 목적을 이해하고 어떤 유형의 악성코드인지 식별할 수 있을지 궁금합니다.

Chatgpt를 이용한 AsyncRAT 악성코드 분석 실습

코드의 핵심 기능은 시작 시 지정된 파일을 설치하고 실행하는 역할을 담당하는 것으로 보이는 "Install" 메서드입니다.
"FileInfo" 개체는 코드가 설치하고 실행하려는 파일을 지정하는 데 사용됩니다.
"Process.GetCurrentProcess().MainModule.FileName" 및 "fileInfo.FullName"은 현재 실행 중인 프로세스가 지정된 파일과 동일한지 확인하는 데 사용됩니다.
"Process.GetProcesses()" 메서드는 실행 중인 모든 프로세스의 목록을 가져오는 데 사용되며 코드는 해당 프로세스를 반복하여 지정된 파일과 동일한 파일 경로를 가진 모든 프로세스를 중지합니다.
"Methods.IsAdmin()" 메서드는 사용자에게 관리자 권한이 있는지 확인하는 데 사용됩니다.
"schtasks" 명령은 로그인 시 지정된 파일을 실행하기 위해 예약된 작업을 생성하는 데 사용됩니다(사용자에게 관리자 권한이 있는 경우).
“Registry.CurrentUser.OpenSubKey”方法用于打开HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRun键,“registryKey.SetValue”方法用于将键值设置为指定文件路径文件(如果用户没有管理员权限)。
"File.Exists" 메서드는 지정한 파일이 이미 존재하는지 확인하는 데 사용되며, "File.Delete" 메서드는 해당 파일이 있으면 삭제하는 데 사용됩니다.
"FileStream" 개체는 지정된 파일 경로 아래에 새 파일을 만들고 현재 실행 중인 프로세스의 파일 내용을 해당 파일에 쓰는 데 사용됩니다.
"Methods.ClientOnExit()" 메서드를 실행합니다.
"Path.GetTempFileName()" 메서드는 임시 .bat 파일을 만드는 데 사용되고 "StreamWriter" 개체는 해당 파일에 일련의 명령을 쓰는 데 사용됩니다.
"Process.Start" 메서드는 .bat 파일을 시작하는 데 사용되고 "Environment.Exit(0)" 메서드는 현재 프로세스를 종료하는 데 사용됩니다.

이 코드를 보면 해당 코드는 시작 시 특정 파일을 설치 및 실행하려고 시도하는 것으로 유추할 수 있으며, 시작 시 지정된 파일이 실행되도록 하고, 관리자 권한으로 실행되도록 설계되어 있는 것으로 보입니다. 또한 이 코드는 원본 파일을 삭제하고 동일한 이름과 내용으로 새 파일을 생성하려고 시도합니다. 이는 원본 파일을 악성 버전으로 바꾸려고 한다는 의미일 수 있습니다. 사용자에게 관리자 권한이 있는지 확인하고, 예약된 작업 생성 및 레지스트리 키 수정과 같은 방법을 사용하면 가능할 때마다 시작 시 파일을 실행하려고 한다는 것을 나타냅니다. 파일 실행을 숨기는 방법도 박쥐 파일을 생성해 숨김 모드로 실행한 뒤 실행 후 해당 박쥐 파일을 삭제하는 등 다양한 방법이 있다.

Chatgpt를 이용한 AsyncRAT 악성코드 분석 실습

코드가 악성이라는 것을 이해하고 이를 원격 액세스 도구(RAT)로 올바르게 식별합니다.

이 교육을 통해 우리는 ChatGPT의 암호를 더 잘 해독하고 이것이 맬웨어 분석에 어떻게 도움이 되는지 이해할 수 있었습니다. ChatGPT는 기본 기능을 시연했지만 현재는 보다 포괄적인 인간 지능 기반 악성 코드 분석과 비교할 수 없습니다. 우리는 ChatGPT를 계속 모니터링하고 향후 더 많은 업데이트를 공유하여 기능과 성능을 향상시킬 것입니다.

원문, 저자: 최고보안책임자, 재인쇄할 경우 출처를 밝혀주세요: https://cncso.com/kr/asyncrat-analytic-with-chatgpt.html

좋다 (58)
이전의 2023년 3월 20일 오후 10:33
다음 2023년 7월 5일 오전12:33

관련 제안