보이지 않는 유니코드 공격, 개발자들의 눈을 속이다!

by DD
2개월 전
조회수 28

Glassworm 공격이 GitHub, npm, VS Code 등 오픈소스 생태계를 위협하며 재발함

보이지 않는 유니코드 문자를 활용하여 악성 페이로드를 삽입하는 방식

GitHub는 해당 취약점에 대해 수정을 거부했으나, 커뮤니티는 적극적인 대응을 촉구함

LLM(대규모 언어 모델)을 활용한 공격의 고도화 가능성에 대한 우려 제기

유니코드 공격의 기술적 원리

공격은 보이지 않는 유니코드 문자(Invisible Unicode Characters)를 활용하여 코드 내에 악성 페이로드를 숨기는 방식으로 진행된다. 공격자는 텍스트 편집기, 터미널, 코드 리뷰 인터페이스에서 보이지 않는 문자를 사용하여 빈 문자열처럼 보이게 만들고, 런타임 환경에서 이를 디코딩하여 `eval()` 함수를 통해 실행한다. 특히, 솔라나(Solana)를 활용한 토큰 탈취, 자격 증명 획득 등 2차 공격으로 이어질 수 있다.

GitHub의 대응 방식과 커뮤니티의 비판

GitHub는 해당 유니코드 공격에 대한 보고를 받았으나, 유효한 보안 위험으로 간주하지 않아 수정하지 않았다. 댓글에서는 GitHub가 제공하는 시크릿 스캐닝(Secret Scanning)과 유사하게, 유니코드 문자를 감지하여 경고하는 기능을 제공해야 한다는 의견이 제기되었다. 또한, 코드 리뷰(Code Review)의 중요성을 강조하며, `eval()`과 같은 위험한 함수 사용에 대한 경각심을 가져야 한다고 지적했다.

공격의 확산과 멀티 플랫폼 전략

Glassworm 공격은 GitHub뿐만 아니라 npm, VS Code 마켓플레이스까지 확산되고 있다. 이는 공격자가 다중 생태계(Multi-Ecosystem)를 대상으로 공격을 수행하는 전략을 보여준다. 특히, 공격자들은 AI 기반의 코드 생성(AI-Assisted Code Generation)을 통해 표적 프로젝트에 맞는 코드를 생성하여, 탐지를 더욱 어렵게 만들고 있다. Aikido Safe Chain과 같은 공급망 공격 방지 도구(Supply Chain Malware Prevention Tool)의 필요성이 강조된다.

개발 환경 설정 및 보안 강화 방안

개발자들은 유니코드 모드 비활성화(Non-Unicode Mode), ASCII 사용, 특수 문자 이스케이프 처리 등을 통해 공격을 완화할 수 있다. 또한, 코드 편집기에서 보이지 않는 문자를 시각적으로 표시하는 기능을 활성화하여, 코드 리뷰 시 주의를 기울여야 한다. LLM(대규모 언어 모델) 기반의 코드 리뷰어(Code Reviewer)를 활용하여, 잠재적인 보안 취약점을 사전에 탐지하는 방법도 제시되었다.

Glassworm Is Back: A New Wave of Invisible Unicode Attacks Hits Repositories

댓글 0

첫 번째 댓글을 남겨보세요!