연구원에 따르면, 2월 한 주 동안 악성 패키지들이 업로드됐다. 이 악성 패키지에는 윈도우 컴퓨터에 실행할 때, 암호화폐 트랜잭션을 하이재킹하는 악성 스크립트가 포함되어 있었다. 수령인의 지갑 주소를 공격자가 통제하는 주소로 바꾸는 스크립트다.
최근 몇 년, 서드파티 컴포넌트 및 라이브러리를 통한 공급망 공격이 오픈소스 컴포넌트 리포지터리 사용자들에게 많은 피해를 줬다. 자바스크립트 및 파이썬 개발자들이 각각 사용하는 NPM과 PyPI(Python Package Index) 공격을 예로 들 수 있다.
가장 최근 루비젬스 공격에도 사용됐던 공격 기법 가운데 하나는 타이포스쿼팅(Typosquatting)이다. 이는 기존 패키지와 유사한 이름을 갖고 있지만, 실제는 개발자가 패키지 이름을 수동으로 입력하면서 잘못 입력해 발생하는 흔한 오자들을 이름으로 사용하는 악성 패키지를 퍼블리싱하는 공격 기법이다. 예를 들어, rspec-mocks 대신 rspec-mokcs를 사용하는 방식이다.
보호책이 거의 없는 소프트웨어 리포지터리
위협 인텔리전스 업체인 레버싱랩스(ReversingLabs) 공동 창업자 토미슬라프 페리신은 본지에 “소프트웨어 개발자가 리포지터리에서 다운로드받아 설치한 패키지에 악성코드가 포함되어 있지 않도록 만들 보호책이 거의 없다. 악성코드 탐지가 전문인 소프트웨어 공급업체들은 통상 개발자 환경과 통합되어 있지 않다. 현재 악성코드 탐지 임무는 엔드포인트 보호 솔루션으로 아웃소싱 되는데, 이런 솔루션은 최종 사용자를 표적으로 하는 여러 종류의 악성코드에 초점이 맞춰져 있다. 시장에 허점이 있고, 악성코드 개발자들이 이를 악용한다”라고 설명했다.공격자가 암호화폐를 훔치는 데 관심을 뒀던 이번 공격의 경우에도, 이들이 사용한 클립보드 하이재킹 스크립트를 손쉽게 바꿔 피해자가 자신의 컴퓨터에 복사해 붙여넣은 로그인 정보를 훔칠 수 있다.
이런 공격은 다양한 내부 개발, 소프트웨어 구축 환경을 이용하는 개발자들을 표적으로 삼는다. 따라서 피해가 중대할 수 있고, 이들이 만든 소프트웨어를 사용하는 사용자를 대상으로 하는 공급망 공격으로 확대될 수 있다.
루비젬스 공격 방식
현대적인 애플리케이션은 오리지널 코드의 비중이 크지 않다. 코드베이스의 대부분은 다른 사람이 개발, NPM, PyPi, 루비젬스 같은 리포지터리에 퍼블리싱한 재사용이 가능한 컴포넌트에 토대를 두고 있다. 이는 소프트웨어 개발 프로세스를 단순화시키고, 그 속도를 높이는 방식이다. 그러나 코드 무결성 및 보안과 관련된 보안 문제를 초래한다. 업계는 이 문제를 아직 해결하지 못한 상태다.루비 프로그래밍 언어로 쓰인 컴포넌트를 젬(gems)이라 부른다. 기본적으로 특정 디렉터리 구조를 갖고 있는 TAR 아카이브이다. 매니페스트 파일, 바이너리, 라이브러리, 테스트로 구성되어 있다. 흥미로운 특징은 실행 코드 형식의 확장자를 포함할 수 있는 것이다. 이번에 공격자들이 악용한 기능성이다.
레버싱랩스가 발견한 악성 젬은 2개 계정으로부터 업로드됐으며, /ext/trellislike/unflaming/waffling/ 디렉터리 경로 아래 aaa.png라는 확장자를 포함하고 있었다. PNG 이미지로 가장하고 있었지만, 실제는 윈도우 PE(Portable Executable)였다. 이 공격은 윈도우를 개발 환경으로 사용하는 루비 개발자가 표적이었다.
이 악성 패키지에 포함된 생성 파일(Makefile)은 루비 설치 도구가 설치 동안 aaa.png를 aaa.exe로 이름을 바꿔 실행하도록 명령했다. 이는 사용자의 개입 없이 이뤄지는 작업이었다. Aaa.exe는 Ruby2Exe로 만든 루비 프로그램으로 난독화 VBS(Visual Basic Script)를 배포했다. VBScript는 윈도우 시스템에서 기본으로 지원되는 스크립팅 언어다.
VBS 파일은 프로그램 데이터 디렉터리에 Software Essentials.vbs로 저장되었으며, 시스템을 리부트할 때마다 자동으로 시작되도록 설정되어 있었다. 계속해서 컴퓨터 클립보드를 감시, 비트코인 지갑 주소와 일치하는 문자열 패턴을 찾아, 이 문자열을 공격자에게 속한 지갑 주소로 대체하도록 만들어진 스크립트였다.
피해자가 비트코인 거래를 하면서 웹사이트 등에서 수령자의 지갑 주소를 복제할 때마다 복사한 주소가 공격자의 것이 되었다는 의미다. 과거에도 암호화폐 사용자를 표적으로 한 클립보드 하이재킹 공격이 있었다. 그러나 이 경우에는 큰 성공을 거두지 못해 악성 지갑에서 거래가 발생하지 않았다.
하지만 감염을 시킨 방법 자체가 효과적이지 않았다는 의미는 아니다. 공격이 제한적이었다. 마침 레버싱랩스가 루비젬스를 분석한 것, 공격자의 표적이 윈도우 시스템을 사용하고, 비트코인 거래를 한 루비 개발자가 된 이유다.
타이포스쿼팅 방어책을 무력화한 공격
atlas-client(하이픈 부호)라는 악성 잼은 2,100여 차례 다운로드됐다. atlas_cleint(밑줄 부호)라는 적법한 젬의 총 다운로드 횟수의 약 1/3에 해당한다. 700여 악성 패키지 모두 공격자가 적법한 패키지 이름을 복사해, 하이픈 부호를 밑줄 부호로 바꾼, 또는 밑줄 부호를 하이픈 부호로 바꾼 오자 이름을 갖고 있었다.과거 사고에 대한 대응책으로 편집 거리(Levenshtein distance) 규칙이 추가된 타이포스쿼팅 방지책을 사용하고 있던 루비젬스가 패키지를 차단하지 않은 이유가 여기에 있다. 레버싱랩스가 발견한 악성 잼들의 다운로드 횟수는 9만 5,000여 건에 달한다.
페리신은 “현재 탐지 기능이 도입되어 있을 수 있지만, 공격자가 알고리즘이 놓친 패턴을 발견한 것으로 판단된다. 루비젬스 리포지터리에서 이런 공격을 탐지한 것이 3번째이다. 우리는 소프트웨어 공급망을 보안 통제책이 필요한 아주 큰 공격 표면으로 판단하고 있다. 이번 사고는 개발자가 표적이 될 수 있다는 것을 확인시켜줬다. 의심하지 않는 사용자를 표적으로 하는 공격을 감행할 때 매개체, 수단으로 이용할 수 있는 표적이다”라고 말했다. editor@itworld.co.kr
함께 보면 좋은 콘텐츠
Sponsored
Surfshark
“유료 VPN, 분명한 가치 있다” VPN 선택 가이드
ⓒ Surfshark VPN(가상 사설 네트워크, Virtual Private Network)은 인터넷 사용자에게 개인 정보 보호와 보안을 제공하는 중요한 도구로 널리 인정받고 있다. VPN은 공공 와이파이 환경에서도 데이터를 안전하게 전송할 수 있고, 개인 정보를 보호하는 데 도움을 준다. VPN 서비스의 수요가 증가하는 것도 같은 이유에서다. 동시에 유료와 무료 중 어떤 VPN을 선택해야 할지 많은 관심을 가지고 살펴보는 사용자가 많다. 가장 먼저 사용자의 관심을 끄는 것은 별도의 예산 부담이 없는 무료 VPN이지만, 그만큼의 한계도 있다. 무료 VPN, 정말 괜찮을까? 무료 VPN 서비스는 편리하고 경제적 부담도 없지만 고려할 점이 아예 없는 것은 아니다. 보안 우려 대부분의 무료 VPN 서비스는 유료 서비스에 비해 보안 수준이 낮을 수 있다. 일부 무료 VPN은 사용자 데이터를 수집해 광고주나 서드파티 업체에 판매하는 경우도 있다. 이러한 상황에서 개인 정보가 유출될 우려가 있다. 속도와 대역폭 제한 무료 VPN 서비스는 종종 속도와 대역폭에 제한을 생긴다. 따라서 사용자는 느린 인터넷 속도를 경험할 수 있으며, 높은 대역폭이 필요한 작업을 수행하는 데 제약을 받을 수 있다. 서비스 제한 무료 VPN 서비스는 종종 서버 위치가 적거나 특정 서비스 또는 웹사이트에 액세스하지 못하는 경우가 생긴다. 또한 사용자 수가 늘어나 서버 부하가 증가하면 서비스의 안정성이 저하될 수 있다. 광고 및 추적 위험 일부 무료 VPN은 광고를 삽입하거나 사용자의 온라인 활동을 추적하여 광고주에게 판매할 수 있다. 이 경우 사용자가 광고를 보아야 하거나 개인 정보를 노출해야 할 수도 있다. 제한된 기능 무료 VPN은 유료 버전에 비해 기능이 제한될 수 있다. 예를 들어, 특정 프로토콜이나 고급 보안 기능을 지원하지 않는 경우가 그렇다. 유료 VPN의 필요성 최근 유행하는 로맨스 스캠은 인터넷 사기의 일종으로, 온라인 데이트나 소셜 미디어를 통해 가짜 프로필을 만들어 상대를 속이는 행위다. 이러한 상황에서 VPN은 사용자가 안전한 연결을 유지하고 사기 행위를 방지하는 데 도움이 된다. VPN을 통해 사용자는 상대방의 신원을 확인하고 의심스러운 활동을 감지할 수 있다. 서프샤크 VPN은 구독 요금제 가입 후 7일간의 무료 체험을 제공하고 있다. ⓒ Surfshark 그 외에도 유료 VPN만의 강점을 적극 이용해야 하는 이유는 다음 3가지로 요약할 수 있다. 보안 강화 해외 여행객이 증가함에 따라 공공 와이파이를 사용하는 경우가 늘어나고 있다. 그러나 공공 와이파이는 보안이 취약해 개인 정보를 노출할 위험이 있다. 따라서 VPN을 사용하여 데이터를 암호화하고 개인 정보를 보호하는 것이 중요하다. 서프샤크 VPN은 사용자의 개인 정보를 안전하게 유지하고 해킹을 방지하는 데 유용하다. 개인정보 보호 인터넷 사용자의 검색 기록과 콘텐츠 소비 패턴은 플랫폼에 의해 추적될 수 있다. VPN을 사용하면 사용자의 IP 주소와 로그를 숨길 수 있으며, 개인 정보를 보호할 수 있다. 또한 VPN은 사용자의 위치를 숨기고 인터넷 활동을 익명으로 유지하는 데 도움이 된다. 지역 제한 해제 해외 여행 중에도 한국에서 송금이 필요한 경우가 생길 수 있다. 그러나 IP가 해외 주소이므로 은행 앱에 접근하는 것이 제한될 수 있다. VPN을 사용하면 지역 제한을 해제해 해외에서도 한국 인터넷 서비스를 이용할 수 있다. 따라서 해외에서도 안전하고 편리하게 인터넷을 이용할 수 있다. 빠르고 안전한 유료 VPN, 서프샤크 VPN ⓒ Surfshark 뛰어난 보안 서프샤크 VPN은 강력한 암호화 기술을 사용하여 사용자의 인터넷 연결을 안전하게 보호한다. 이는 사용자의 개인 정보와 데이터를 보호하고 외부 공격으로부터 사용자를 보호하는 데 도움이 된다. 다양한 서버 위치 서프샤크 VPN은 전 세계 곳곳에 여러 서버가 위치하고 있어, 사용자가 지역 제한된 콘텐츠에 액세스할 수 있다. 해외에서도 로컬 콘텐츠에 손쉽게 접근할 수 있음은 물론이다. 속도와 대역폭 서프샤크 VPN은 빠른 속도와 무제한 대역폭을 제공하여 사용자가 원활한 인터넷 경험을 누릴 수 있도록 지원한다. 온라인 게임, 스트리밍, 다운로드 등 대역폭이 필요한 활동에 이상적이다. 다양한 플랫폼 지원 서프샤크 VPN은 다양한 플랫폼 및 디바이스에서 사용할 수 있다. 윈도우, 맥OS, iOS, 안드로이드 등 다양한 운영체제 및 디바이스에서 호환되어 사용자가 어디서나 안전한 인터넷을 즐길 수 있다. 디바이스 무제한 연결 서프샤크 VPN은 무제한 연결을 제공하여 사용자가 필요할 때 언제든지 디바이스의 갯수에 상관없이 VPN을 사용할 수 있다.