해커들은 악성 코드를 숨긴 프로젝트로 GitHub을 채웁니다

해커들은 악성 코드를 숨긴 프로젝트로 GitHub을 채웁니다

9 hardware

사이버 범죄자들은 “보이지 않는” 유니코드 문자를 사용해 악성 코드를 은폐합니다

Aikido Security의 새로운 연구에 따르면 3월 초 GitHub에 스파이 코드가 숨겨진 151개의 프로젝트가 등장했습니다. 악성 패키지는 인간에게는 공백이나 빈 줄처럼 보이는 유니코드 문자를 사용하지만, 일반적인 JavaScript 실행 시 바이트코드로 변환되어 `eval()` 함수에 전달됩니다.

공격 방식
1. 라이브러리 이름
패키지는 “React”나 “Node.js” 같은 유명 상용 솔루션과 동일한 이름을 사용합니다. 이는 개발자들이 실수로 안전하다고 판단하도록 유도합니다.

2. “읽기 쉬운” 코드 + 숨겨진 조각
대부분의 코드는 일반적인 읽기 쉬운 프로그램처럼 보입니다. 내부에는 보이지 않는 문자가 채워진 블록이 존재하며, 수동으로 보면 사라지고 실행 시 활성화됩니다.

3. 테스트 리포지토리
이러한 악성 패키지는 GitHub뿐 아니라 NPM, Open VSX 및 Visual Studio Code 마켓플레이스에서도 발견되었습니다.

왜 눈에 잘 띄지 않는가
- 프로젝트의 변경 사항은 버전 업데이트, 버그 수정, 리팩터링처럼 보입니다.
- 전문가들은 공격자들이 대형 언어 모델을 활용해 코드를 자동으로 변조한다고 보고 있습니다. 이를 통해 수작업 없이 150개 이상의 프로젝트를 빠르게 준비할 수 있습니다.

문자 역사
라틴 알파벳에 대응하는 유니코드 문자는 수십 년 전 시스템에 추가되었습니다. 2024년부터 해커들은 챗봇과 리포지토리에서 악성 요청을 은폐하기 위해 이를 사용해 왔습니다. 기존 정적 분석 도구는 이를 감지하지 못하며, JavaScript 실행 시 작은 디코더만이 실제 바이트코드를 드러냅니다.

개발자에게 권장 사항
1. 종속성 검사 – 외부 라이브러리를 연결하기 전에 소스 코드와 변경 이력을 면밀히 검토합니다.
2. 자동화된 검사 – 리너, “보이지 않는” 문자 스캐너 및 동적 행동 분석 도구를 사용합니다.
3. 업데이트 – 패키지가 다운로드 후 삭제되는 경우를 주시합니다; 이는 숨겨진 위협을 시사할 수 있습니다.

전망
AI가 이 과정에 활용된다면 이러한 공격을 탐지하고 제거하는 것이 점점 더 어려워질 것입니다. 그럼에도 불구하고 소스 코드와 종속성 검증에 대한 의식적인 접근은 여전히 가장 효과적인 방어책입니다.

댓글 (0)

의견을 남겨 주세요. 예의를 지키고 주제에서 벗어나지 말아 주세요.

아직 댓글이 없습니다. 댓글을 남기고 의견을 공유해 주세요!

댓글을 남기려면 로그인해 주세요.

댓글을 남기려면 로그인