|
공급망 공격으로 이어지는 VSCode Extension 버그 침해사고분석팀 2021.05.31 |
|
|
인기 있는 Visual Studio Code extension에서 발견된 심각한 보안 결함은 공격자들이 개발자 통합 개발 환경(IDE)를 통해 빌드 및 배포 시스템 뿐만 아니라 로컬 머신을 손상시킬 수 있게 한다.
취약한 extension은 개발자의 시스템에서 원격으로 임의 코드를 실행하도록 익스플로잇 될 수 있는데, 이를 통해 궁극적으로 공급망 공격으로 연결될 수 있다.
문제의 몇몇 extension은 LaTeX Workshop, Rainbow Fart, Open in Default Browser, Instant Markdown으로, 모두 누적 설치 횟수가 2백만 건에 이른다.
"개발자 머신은 중요한 크리덴셜을 가지고 있는데, 이는 개발자들이 제품의 많은 부분과 상호작용할 수 있도록 한다. 개발자의 개인키를 유출하는 것은 악의적인 이해관계자가 중요한 코드의 일부를 복제하거나, 심지어 서버에 접속할 수 있게 한다."라고 오픈소스 보안 플랫폼 Snyk의 연구원은 말헀다.
브라우저 add-ons와 같이 VS Code extensions을 이용하면 개발자들이 추가적인 기능을 통해 Microsoft Visual Studio Code 소스 코드 편집기를 강화할 수 있다.
VS Code는 1,400만 명의 사용자가 있기 때문에, 거대한 공격 surface가 될 수 있다. 공격 시나리오는 Snyk bank에 의해 고안되었다. 이는 설치된 extensions이 공금망 공격의 백터를 남용할 수 있는 가능성에 대해 고안한 공격 시나리오이다. 이를 위해 연구원들은 로컬 웹 서버의 취약한 구현을 가진 VS Code extension을 조사했다.
Snyk 연구원이 강조한 한 사례에서 Instant Markdown에서 식별된 경로 탐색 취약점은 로컬 웹 서버(localhost)에 액세스할 수 있는 악의적인 행위자가 개발자를 속여 악성 URL을 클릭하도록 속임으로써 컴퓨터에서 호스팅되는 모든 파일을 검색할 수 있도록 악용될 수 있다.
[ 그림1. 공격 시나리오 예시 ]
PoC 데모로서, 연구원들은 이 결함을 악용하여 VS Code를 실행하고 IDE에 설치된 기본 브라우저에서 Instant Markdown 또는 Open in Default Browser가 있는 개발자로부터 SSH 키를 훔칠 수 있음을 보여주었다. 반면 LaTeX Workshop은 악성 페이로드를 실행하기 위해 악용될 수 있는 부적절한 입력으로 인해 명령 주입 취약점에 취약한 것으로 밝혀졌다.
마지막으로 Rainbow Fart라는 확장명은 zip slip 취약점이 있는 것으로 확인되었고, 해당 취약점을 활용하면 공격자가 피해자의 컴퓨터에 있는 임의의 파일을 덮어 쓰고 원격 코드를 실행할 수 있다. 연구원들이 공식화한 공격에서 특별히 제작 된 ZIP 파일이 플러그인이 사용하는 "import-voice-package"엔드 포인트를 통해 전송되고 확장 프로그램의 작업 디렉토리 외부에 있는 위치에 기록되었다. 연구원들은 "해당 공격은 '.bashrc'와 같은 파일을 덮어 쓰고 원격 코드 실행을 얻는데 사용될 수 있다."라고 말했다.
출처 https://thehackernews.com/2021/05/newly-discovered-bugs-in-vscode.html https://www.securityweek.com/vulnerabilities-visual-studio-code-extensions-expose-developers-attacks |

