저자: 23pds & Thinking
배경
최근 몇 년 동안 LinkedIn 플랫폼에서 블록체인 엔지니어를 대상으로 한 피싱이 발생하고 있으며, 어제 저희는 @_swader_의 게시물을 발견했습니다. 이 사건은 사실 블록체인 엔지니어 채용을 노린 피싱의 축소판이라고 할 수 있는데, 그 사례를 분석해 보겠습니다.

(https://x.com/_swader_/status/1900116168544817589)
프로세스 strong>
Bruno의 설명에 따르면, 그는 프로젝트 관계자라고 주장하는 사람으로부터 연락을 받았고, 그는 프로젝트에 대한 매우 긴 설명을 보냈습니다.

내용은 주로 블록체인 Socifi 게임과 서약 스마트 컨트랙트 플랫폼에 대한 구인 공고였습니다.
프로젝트 개요
이 프로젝트는 Socifi 게임을 기반으로 하는 서약 스마트 컨트랙트 플랫폼입니다. 핵심 기능은 다음과 같습니다 :
- 탈중앙화 거래소
- 게임
- 멀티 게임 커뮤니티 기능
- NFT 및 토큰
- 라이브 스트리밍 서비스
- NFT 및 토큰
- NFT 및 토큰
모집 의도
- 프로젝트에 함께할 개발자를 찾고 있습니다.
- 이미 백엔드 및 스마트 컨트랙트 개발자를 채용 중입니다.
- 프로젝트 매니저/프론트엔드 개발 팀장으로 Bruno Skvorc를 추천합니다.
MVP 디자인
- 발신자는 MVP v2 버전을 가리키는 Figma 디자인 링크를 제공했습니다.
채용 프로세스
백그라운드 확인
온라인 프로그래밍 테스트
기술 면접
처음에 채용 담당자는 모호한 태도를 보이다가 브루노에게 전화를 걸어 긴박감과 중요성을 전달하기 시작했고, 즉시 리포지토리 링크를 제공했습니다: https://bitbucket[.] org/ventionteam/gameplatform/src/main/.

코드 제출 사용자 및 시간:

다음으로 악성 코드를 분석합니다.
기법
코드에 대한 설명을 살펴봅시다:

이것이 실제로 하는 일인가요?
먼저 package.json을 살펴보세요:

악성 써드파티 모듈은 발견되지 않았으므로 악성 NPM 패키지를 통해 공격이 수행되고 있지는 않은 것으로 보입니다. 분석을 계속 진행하면서, 주의를 기울이지 않으면 47번째 줄에 도달할 수 있는데, 언뜻 보기에는 별다른 특이점이 없는 것 같습니다.

그러나 46줄을 자세히 살펴보면, 무엇이 있을까요? ? 아주 작은 가로 스크롤바가 있는데, 이는 오른쪽에 무언가가 있다는 뜻입니다! 이쪽으로 드래그해서 살펴봅시다:

이것은 암호화된 악성 페이로드입니다. 페이로드인데, 정확히 어떤 기능을 하나요? 코드를 살펴보겠습니다.

(위 이미지는 코드의 일부입니다)
이것은 암호화된 코드이며, 여러 계층의 base64 암호화가 있습니다.
npm 시작을 실행하면 작동하는데, 페이로드는 무엇일까요?
가상 머신에서 실행하여 테스트해 봅시다.

이 공격은 혼란스러운 공격이며 해독하기가 약간 까다롭다는 것을 발견했습니다. 이 공격은 혼란스럽고 해독하기 까다롭기 때문에 Hook 메서드를 통해 C2 링크를 직접 캡처하겠습니다.

악성 IP 탐지 성공:
216.173.115[.] 200
95.179.135[.] 133
45.59.163[.] 56
45.59.1[.] 2
5.135.5[.] 48

악성 요청: http://216.173.115[...] 200:1244/s/bc7302f71ff3. 흥미롭게도 이 악성 요청은 리틀스니치의 모니터링 탐지를 우회했습니다.

공격자는 두 개의 파일을 다운로드하고 실행합니다. test.js와 .npl입니다.

이것은 .npl 트로이 목마는 주로 권한 유지에 사용됩니다.

이것은 다음과 같습니다. .npl이 디코딩하는 내용:

위 코드는 다음과 같은 작업에 사용됩니다. pay라는 파이썬 프로그램을 다운로드하고 다음과 같이 디코딩합니다.

공격자는 파이썬을 사용하여 .npl을 실행하여 권한을 유지했습니다.

test.js는 주로 플러그인 지갑과 같은 브라우저 데이터(예: 플러그인 지갑 데이터, 브라우저에 저장된 계정 비밀번호 등)

(text-align. 왼쪽;">(test.js 코드 일부 스니펫)
복호화(스니펫):


마지막으로는 분석에 따르면 피해자가 코드를 실행하면 페이로드는 다음을 수행합니다.
1. 시스템/환경 데이터(홈 디렉토리, 플랫폼, 호스트 이름, 사용자 이름 등)를 수집합니다.
2. 추가 데이터 또는 유효한 페이로드를 위해 원격 서버에 HTTP 요청을 합니다.
3. 가져온 유효한 페이로드를 로컬 파일 시스템(일반적으로 홈 디렉터리에 있음)에 씁니다.
4. 노드의 child_process.exec를 사용하여 이러한 유효한 페이로드를 실행합니다.
5. 계속해서 시스템 데이터를 C2에 다시 연결하거나 "백포트"합니다. " 시스템 데이터를 C2 서버에 연결합니다.
6. 하트비트 패킷을 유지하면서 이 활동을 일정한 간격으로 반복하고 첫 번째 시도가 실패하면 여러 번 시도합니다.
7. 특정 디렉토리 /Library/Keychains/(macOS 키 저장 경로)를 읽으려는 코드, SSH 개인 키 탈취, 브라우저 플러그인 데이터, 브라우저에 저장된 계정 비밀번호 탈취 등 암호화된 자산 탈취에 대비하여 사용자 동작을 조용히 모니터링합니다.
한편 @blackbigswan은 동일한 사용자를 발견했습니다:
https:// github[.] com/DavidDev0219
https://github[.] com/vention-dev
https://github[...] com/FortuneTechWorld
저자는 동일한 공격자라고 추측하며 중복 분석하지 않을 것입니다.
대응 제안
공격자는 보통 텔레그램, 디스코드, 링크드인을 통해 악성 파일을 보냅니다. 이러한 피싱 공격에 대응하기 위해 사용자와 기업의 관점에서 다음과 같은 조언을 제공합니다:
사용자
- 이것은 가장 일반적인 피싱 공격입니다. align: left;">구인 공고나 GitHub와 같은 플랫폼에서 코드를 다운로드하거나 실행하도록 요청하는 의심스러운 아르바이트에 주의하세요. 회사의 공식 웹사이트와 공식 이메일 주소를 통해 발신자의 신원을 우선적으로 확인하고 '시간 제한, 고임금 과제'와 같은 유혹에 속지 마세요.
외부 코드를 다룰 때는 프로젝트의 출처와 작성자의 배경을 엄격하게 검토하고, 검증되지 않은 고위험 프로젝트는 실행하지 않으며, 의심스러운 코드는 가상 머신이나 샌드박스 환경에서 실행하여 위험을 격리하는 것이 좋습니다.
텔레그램, Discord 등과 같은 플랫폼에서 받은 파일이 오용되지 않도록 주의 깊게 살펴야 합니다, 디스코드 및 기타 플랫폼에서 자동 다운로드를 비활성화하고 파일을 수동으로 검사하며 '기술 테스트'라는 명목의 악성 스크립트 실행 요청에 주의하세요.
다중 인증을 활성화하고 강력한 비밀번호를 정기적으로 변경하여 교차 사이트 악용을 방지하세요. 강력한 비밀번호를 정기적으로 변경하여 여러 플랫폼에서 재사용되지 않도록 하세요.
엔터프라이즈
정기적인 조직화 직원들이 피싱 공격 시뮬레이션 훈련에 참여하여 스푸핑된 도메인 이름과 비정상적인 요청을 식별하도록 교육하고,
악성 첨부파일을 차단하는 이메일 보안 게이트웨이를 배포하고,
코드 모니터링 실시
피싱 사고에 대한 긴급 대응 메커니즘을 구축하고, 기술적 보호와 직원 인식을 결합한 다차원 전략을 통해 데이터 유출 및 자산 손실 위험을 줄입니다.