2020.12.23

단순하지만 효과적인 공격 수법 ‘타이포스쿼팅’의 모든 것

Dan Swinhoe | CSO
타이포스쿼팅(typosquatting) 공격, URL 하이재킹, 스팅 사이트, 가짜 URL은 모두 동일한 소셜 엔지니어링의 한 유형을 가리킨다. 공격자가 사기 또는 악성코드 확산과 같은 악의적인 목적으로 정상적인 도메인을 가장하는 수법이다. 이들은 목표로 삼은 신뢰성 높은 기업의 정상적인 도메인과 비슷한 도메인 이름을 등록해두고, 이를 정상적인 도메인이라고 착각하는 피해자가 걸려들기를 기다린다.


타이포스쿼팅 공격 방식

공격자는 다음과 같은 수법을 사용해 도메인을 가장한다.
  • 대상 도메인의 오탈자(예를 들어, csoonline.com 대신 csonline.com)
  • 다른 최상위 도메인(.co.uk 대신 .uk 사용)
  • 관련 단어를 도메인에 조합(csoonline-cybersecurity.com)
  • URL에 구두점 추가(cso.online.com)
  • 비슷하게 생간 문자를 사용해 가짜 도메인 숨기기(ÇSÓOnliné.com)

.uk 도메인 등록 기관 역할을 하는 노미넷(Nominet)의 CEO 러셀 하워스는 “goggle.com과 google.com의 차이를 알아 볼 수 있는가?”라며, “타이포스쿼팅은 사람들을 속여 가짜 웹페이지로 유도하기 위한 목적으로 한 두개의 다른 문자를 사용하는 비슷하게 보이는 도메인”이라고 설명했다.
 
ⓒ Getty Images Bank


도메인 등록은 간단하고 빠르며, 공격자는 정상적인 대상 도메인의 여러 변형을 동시에 등록할 수 있다. 타이포스쿼팅 도메인은 그 자체로 공격이 될 수도 있고, 다음과 같은 목적을 가진 더 큰 캠페인의 일부일 수도 있다.
 
  • 부당 이득 : 타이포 도메인을 브랜드 소유자에게 되판다.
  • 광고 사기 : 부정확한 철자를 통해 방문한 방문자를 이용해 도메인 광고로 수익을 얻고, 사용자를 경쟁사로 리디렉션하거나 제휴 링크를 통해 트래픽을 브랜드 자체로 리디렉션해서 매 클릭에 대해 수수료를 얻는다.
  • 정보 절도 : 피싱 이메일 또는 복사된 사이트의 로그인 페이지를 통해 인증 정보 및 민감한 정보를 수확하거나 주소를 잘못 입력한 이메일 메시지를 수확한다.
  • 악성코드 전송 : 악성코드를 설치하거나 악성 소프트웨어 다운로드를 제안한다. 
  • 행동주의 : 대상 도메인 소유자에게 부정적인 이미지를 입힌다. 정치 분야에서 특히 타이포스쿼팅이 자주 사용된다.

도메인툴스(DomainTools)의 보안 에반젤리스트인 팀 헬밍은 “지정학적 동기도 무시할 수는 없지만, 최종적인 동기는 거의 항상 금전적 이득이다. 마지막 단계는 보통 금전, 지적 재산, 또는 판매나 몸값 요구가 가능한 기타 가치 있는 데이터를 훔치는 것이다. 타이포스쿼팅된 도메인이 지정학적 목적을 달성하기 위한 네트워크 침입이나 데이터 유출과 같은 다양한 공격 캠페인 단계에 사용되는 경우도 있다”라고 말했다.
 

타이포스쿼팅은 얼마나 보편적인가?

타이포스쿼팅은 새로운 공격이 아니며, 견고한 디지털 경제 탓에 이 유형의 공격에 대한 관심은 줄어들지 않았다. 헬밍은 도메인툴스에서 매일 수백 건의 도메인 스쿼팅 시도를 확인한다면서 “지난 24시간 동안 11개의 도메인이 아이클라우드(iCloud)를 스푸핑하는 것을 확인했고, 이 중에는 “support”라는 단어가 포함된 경우가 여럿 있었다. 이는 인증 정보 수확을 노린다는 강력한 신호다. 아이클라우드는 하나의 예다. 잘 알려진 수많은 회사 이름을 고려하면, 이 공격 활동이 얼마나 광범위하게 퍼져있는지 짐작이 갈 것이다. 규모에 관계없이 모든 기업에 영향을 미칠 수 있으므로 수십만 개의 회사가 가짜 도메인으로 인한 피해에 노출되어 있다”라고 말했다.

2020년에는 코로나19 팬데믹과 관련된 도메인 스푸핑 시도가 많았다. 도메인툴스는 2019년 12월 이후 15만 개의 새로운 고위험 코로나19 관련 도메인이 등록됐다고 보고했다. 노미넷의 하워스는 “인터넷에서 가장 가치가 큰 영역은 .com이다. 즉, 타이포스쿼팅을 시도하기에도 가장 유망한 영역”이라면서, “업계에서 타이포스쿼팅으로 노리기에 가장 매력적인 도메인은 금융 기관 또는 의약품 판매 조직이다. 움직임이 빠른 소비자 소매 부문 역시 많이 이용되므로, 이와 같은 유형의 사이트에 로그인하거나 사이트에 연결되는 이메일을 수신할 때 특별히 주의를 기울여야 한다”라고 말했다.

올해 미국 대통령 선거도 많은 스쿼팅의 목표가 됐다. 디지털 섀도우(Digital Shadows)의 한 보고서에 따르면, 대통령 후보자들과 관련된 스쿼팅된 도메인은 500개를 넘었다.66개가 동일한 IP 주소에 호스팅됐다는 사실은 한 사람이 운영했을 가능성이 높으며, 이런 공격을 강행하기가 무척 쉽다는 것을 보여준다. 보고서에서 6개 도메인은 “파일 변환기” 또는 “안전한 브라우징”을 위한 구글 크롬 확장 프로그램으로 연결됐다. 이런 프로그램은 다운로드 및 설치되는 경우 투표자의 사생활을 침해하고 악성코드를 배포할 가능성도 있다.

헬밍은 최근 몇 년 동안 도메인 스쿼팅 방식은 거의 바뀌지 않았다고 말했다. HTTPS로 전환되면서 타이포스쿼팅된 도메인을 운영하는 공격자에게 약간의 부담이 더해졌지만 셀프 서비스 인증서가 있으므로 크게 어렵지는 않다. 일반 최상위 도메인이 도입되면서 스쿼팅을 위한 네임스페이스는 더 커졌지만 대체로 부자연스럽게 보이므로 성공 가능성은 줄어들 수 있다.
 

타이포스쿼팅 공격을 막는 방법

타이포스쿼팅은 사람들에 의존해서 잘못된 도메인을 식별해야 한다는 사실로 인해 대응하기가 어려울 수 있다. CISO는 직원들이 타이포스쿼팅 문제를 인식하고 관련 교육을 통해 어떤 부분을 조심해야 하는지, 주요 도메인(회사 자체 도메인과 회사 공급망에 포함된 조직의 도메인)이 어떻게, 왜 스푸핑될 수 있는지를 알도록 해야 한다.

헬밍은 도메인 등록소와 등록기관에는 악의적인, 비슷하지만 철자가 다른 도메인 등록을 막을 “보호막”이 없으므로 등록은 간단하고 비용도 저렴하다면서 “자세히 살펴봐도 정상적인 이름과 시각적으로 거의 구분이 불가능한 이름을 등록할 수 있다”고 말했다.

몇몇 벤더는 스푸핑 가능성이 있는 도메인을 찾아주는 서비스를 제공한다. 세계 지적 재산 기관(WIPO)은 상표 소유자가 타이포스쿼터를 대상으로 이의를 제기하고 도메인을 회수할 수 있도록 하는 통일도메인이름분쟁해결정책(UDRP)을 두고 있다. 헬밍은 UDRP가 등록한 행위자를 직접 제재하지는 못하지만 등록기관이 불법적 도메인에 대한 통제력을 가질 수 있게 해준다고 설명했다.

스푸핑된 도메인을 내리기 위해서는 법적인 조치가 필요한 경우가 많다. 마이크로소프트는 2018년 러시아의 팬시 베어(Fancy Bear) 그룹(APT28로도 알려짐)이 운영하는 것으로 추측되는, 정치적 그룹을 가장한 도메인을 내리도록 하는 법원 명령을 받아냈다. 올해 미국 법무부는 팬데믹 관련 사기성 도메인 수백 개를 폐쇄 조치했다고 밝혔다.

헬밍은 “이 범죄자들은 법적 조치에 거의 반응을 하지 않는다”고 말했다. “행위자를 특정하기는 매우 어렵고, 이들은 꼬리를 밟히지 않는 방법을 잘 안다. 적대적 도메인을 호스팅하는 인프라 기업을 상대로 한 법적인 조치나 그러한 조치에 대한 위협이 더 효과적인 경우도 있다”고 말했다.

또한 기업은 스쿼팅 공격을 사전에 방지하고 사용자들을 올바른 URL로 리디렉션하기 위해 자체 도메인과 비슷한 여러 도메인을 등록하는 방법도 고려할 수 있다. 하워스는 “일반적으로 방어적 등록이라고 하며 합법적인 형태의 타이포스쿼팅이다. 예를 들어 마이크로소프트는 이러한 공격을 차단하기 위해 브랜드 이름의 여러 변형으로 구성된 십여 개의 도메인을 소유하고 있다”고 설명했다.
 

타이포스쿼팅 오픈소스 라이브러리

비교적 새로운 유형의 타이포스쿼팅은 오픈소스 라이브러리의 소프트웨어 공급망을 악용하는 방법이다. 공격자는 합법적 패키지와 비슷하게 보이는 악성 패키지를 만든 다음 예를 들어 NPM 다운로드 리포지토리에 업로드한다. 시놉시스(Synopsys) 사이버 보안 연구 센터의 수석 보안 전략가인 팀 맥키는 “(이 분야에서) 타이포스쿼팅은 드물지만 그 영향은 클 수 있다. 따라서 악성 오픈소스 구성요소를 만드는 방법은 공격자에게 유력한 공격 패턴”이라고 말했다.

예를 들어 특정 프레임워크를 위해 만들어진 애플리케이션의 운영 환경을 설정하는 데 사용되는 “set-env”라는 오픈소스 구성요소가 있다면 악의적인 그룹이 비슷한 이름의 “setenv”라는 프로젝트를 만들어 악성 코드를 집어넣을 수 있다. 맥키는 “공격자는 팀 내에서 익숙하지 않은 개발 프레임워크를 공격 목표로 삼아 표면적으로는 유효한 문제를 해결하는 것처럼 보이는 구성요소를 만든다. 그런 다음 악성 요소를 이 코드에 내장해서 구성요소를 홍보하고, 개발자가 이 구성요소를 발견해서 사용하기를 기다린다”고 말했다.

두 프로젝트가 거의 똑같이 보인다면 누구나 헷갈리기 쉽고, 공격은 사실상 잘못된 소프트웨어 구성을 공격 목표로 삼는다. 손상된 구성요소가 사용될 수도 있는 상황을 인지하기는 어렵다. 게다가 공격자가 유명 패키지 관리 리포지토리에 악성 구성요소를 출시할 수도 있으므로 이 경우는 알아차리기가 더욱 쉽지 않다.

소나타입(Sonatype)의 선임 보안 연구원 액스 샤마는 “공격자들은 가장 일반적으로 사용되는 소프트웨어 패키지를 연구한다. 그런 다음 악성 앱을 만들어서 그 인기 있는 패키지와 같은 이름으로 오픈소스 소프트웨어 리포지토리에 게시한다. 기술 수준이 높은 공격자는 악성 코드를 모호화하거나 눈에 띄지 않는 JS 파일에 숨기는 등의 부가적인 회피 전술을 사용할 수도 있으며, 악성 모조 앱에서 타이포스쿼팅 대상인 합법적인 패키지를 종속 요소로 풀링하도록 해서 탐지를 피하는 방법까지 사용한다”고 말했다.

최근의 예로, 여러 악성 자바스크립트 패키지가 NPM 포털에 업로드됐다. 이 악성 패키지는 패키지를 프로젝트로 가져온 개발자의 컴퓨터에서 셸을 열었다. 맥키는 문제의 plutov-slack-client가 Node.js 애플리케이션을 위한 자바스크립트 슬랙(Slack) 인터페이스를 제공한다고 주장했지만, 실상은 공격자가 애플리케이션을 실행하는 서버로 진입할 수 있도록 외부 연결을 여는 역할을 했다면서 “plutov-slack-client는 불과 몇 주 동안만 올라와 있었지만 수백 번 다운로드됐으므로 공격자가 수백 명의 피해자 데이터에 접근했을 가능성이 있다”고 말했다.

의도를 단정할 수는 없지만 맥키는 위협 행위자가 이와 같은 유형의 공격을 사용해서 예를 들어 신용카드 스키밍(skimming) 코드를 실행하고 스팸을 전송하거나 피싱 캠페인을 실행할 수 있다고 말했다. 지난 9월에는 깃허브 페이지에 사용자 세부 정보를 업로드한 악성 패키지가 발견됐으며 NPM은 데이터를 수집하는 트로이 목마가 포함된 디스코드(discord) 패키지를 비롯해 최근 몇 개월 사이에 발견된 악성 패키지에 관한 여러 공지를 게시했다. 작년에는 일반적으로 사용되는 젬의 이름을 모조한 타이포스쿼팅 루비젬(RubyGem)이 700개가 넘게 발견됐다.

소나타입의 샤마는 성공적인 공격은 심각한 피해를 유발할 수 있는 오픈소스 생태계 오염으로 이어질 수 있다고 경고했다. 샤마는 공격이 성공적일 경우 많은 피해자에게 위협 행위자의 맬웨어가 하향식으로 배포될 수 있다면서 “영향은 타이포스쿼팅 패키지를 빌드에 다운로드한 개발자만이 아니라 그보다 훨씬 더 넓은 범위로 확산될 수 있다. 타이포스쿼팅된 모조품이 포함된 그 개발자의 패키지를 설치한 고객도 영향을 받게 된다”고 말했다.

이러한 공격을 방어하기는 어려울 수 있다. 특히 소규모 팀 또는 개별 개발자들이 운영하는, 잠재적으로 문제가 있는 도메인을 추적하거나 그에 대응한 조치를 취할 리소스가 부족한 오픈소스 프로젝트의 경우에는 더 어렵다. 맥키는 “대부분의 오픈소스 소프트웨어는 독립 개발자가 기술적인 문제를 해결하기 위해 만든다. 소프트웨어가 충분한 인기를 얻어 주요 재단에 포함되기 전까지는 프로젝트가 형성하는 브랜드를 관리할 기술도, 시간도 없는 경우가 대부분”이라고 말했다.

맥키는 “오픈소스 커뮤니티와 패키지 관리 리포지토리 유지관리 기관은 악성 구성요소에 대해 알게 될 경우 조치를 취하지만 공격자들은 공격이 시작되는 시점과 대중이 악성 구성요소를 인지하게 될 때까지 존재하는 기회의 창을 이용해 이득을 극대화한다”고 말했다.

맥키는 기업의 모든 소프트웨어에 사용되는 구성요소가 무엇인지 포괄적인 인벤토리를 유지하고 감사를 통해 승인된 구성요소만 사용되는지 확인할 수 있어야 한다고 조언했다. 조직에 유입되는 모든 새로운 구성요소를 대상으로 이 인벤토리 작업과 감사를 통한 검증이 수행되어야 한다. editor@itworld.co.kr
 


2020.12.23

단순하지만 효과적인 공격 수법 ‘타이포스쿼팅’의 모든 것

Dan Swinhoe | CSO
타이포스쿼팅(typosquatting) 공격, URL 하이재킹, 스팅 사이트, 가짜 URL은 모두 동일한 소셜 엔지니어링의 한 유형을 가리킨다. 공격자가 사기 또는 악성코드 확산과 같은 악의적인 목적으로 정상적인 도메인을 가장하는 수법이다. 이들은 목표로 삼은 신뢰성 높은 기업의 정상적인 도메인과 비슷한 도메인 이름을 등록해두고, 이를 정상적인 도메인이라고 착각하는 피해자가 걸려들기를 기다린다.


타이포스쿼팅 공격 방식

공격자는 다음과 같은 수법을 사용해 도메인을 가장한다.
  • 대상 도메인의 오탈자(예를 들어, csoonline.com 대신 csonline.com)
  • 다른 최상위 도메인(.co.uk 대신 .uk 사용)
  • 관련 단어를 도메인에 조합(csoonline-cybersecurity.com)
  • URL에 구두점 추가(cso.online.com)
  • 비슷하게 생간 문자를 사용해 가짜 도메인 숨기기(ÇSÓOnliné.com)

.uk 도메인 등록 기관 역할을 하는 노미넷(Nominet)의 CEO 러셀 하워스는 “goggle.com과 google.com의 차이를 알아 볼 수 있는가?”라며, “타이포스쿼팅은 사람들을 속여 가짜 웹페이지로 유도하기 위한 목적으로 한 두개의 다른 문자를 사용하는 비슷하게 보이는 도메인”이라고 설명했다.
 
ⓒ Getty Images Bank


도메인 등록은 간단하고 빠르며, 공격자는 정상적인 대상 도메인의 여러 변형을 동시에 등록할 수 있다. 타이포스쿼팅 도메인은 그 자체로 공격이 될 수도 있고, 다음과 같은 목적을 가진 더 큰 캠페인의 일부일 수도 있다.
 
  • 부당 이득 : 타이포 도메인을 브랜드 소유자에게 되판다.
  • 광고 사기 : 부정확한 철자를 통해 방문한 방문자를 이용해 도메인 광고로 수익을 얻고, 사용자를 경쟁사로 리디렉션하거나 제휴 링크를 통해 트래픽을 브랜드 자체로 리디렉션해서 매 클릭에 대해 수수료를 얻는다.
  • 정보 절도 : 피싱 이메일 또는 복사된 사이트의 로그인 페이지를 통해 인증 정보 및 민감한 정보를 수확하거나 주소를 잘못 입력한 이메일 메시지를 수확한다.
  • 악성코드 전송 : 악성코드를 설치하거나 악성 소프트웨어 다운로드를 제안한다. 
  • 행동주의 : 대상 도메인 소유자에게 부정적인 이미지를 입힌다. 정치 분야에서 특히 타이포스쿼팅이 자주 사용된다.

도메인툴스(DomainTools)의 보안 에반젤리스트인 팀 헬밍은 “지정학적 동기도 무시할 수는 없지만, 최종적인 동기는 거의 항상 금전적 이득이다. 마지막 단계는 보통 금전, 지적 재산, 또는 판매나 몸값 요구가 가능한 기타 가치 있는 데이터를 훔치는 것이다. 타이포스쿼팅된 도메인이 지정학적 목적을 달성하기 위한 네트워크 침입이나 데이터 유출과 같은 다양한 공격 캠페인 단계에 사용되는 경우도 있다”라고 말했다.
 

타이포스쿼팅은 얼마나 보편적인가?

타이포스쿼팅은 새로운 공격이 아니며, 견고한 디지털 경제 탓에 이 유형의 공격에 대한 관심은 줄어들지 않았다. 헬밍은 도메인툴스에서 매일 수백 건의 도메인 스쿼팅 시도를 확인한다면서 “지난 24시간 동안 11개의 도메인이 아이클라우드(iCloud)를 스푸핑하는 것을 확인했고, 이 중에는 “support”라는 단어가 포함된 경우가 여럿 있었다. 이는 인증 정보 수확을 노린다는 강력한 신호다. 아이클라우드는 하나의 예다. 잘 알려진 수많은 회사 이름을 고려하면, 이 공격 활동이 얼마나 광범위하게 퍼져있는지 짐작이 갈 것이다. 규모에 관계없이 모든 기업에 영향을 미칠 수 있으므로 수십만 개의 회사가 가짜 도메인으로 인한 피해에 노출되어 있다”라고 말했다.

2020년에는 코로나19 팬데믹과 관련된 도메인 스푸핑 시도가 많았다. 도메인툴스는 2019년 12월 이후 15만 개의 새로운 고위험 코로나19 관련 도메인이 등록됐다고 보고했다. 노미넷의 하워스는 “인터넷에서 가장 가치가 큰 영역은 .com이다. 즉, 타이포스쿼팅을 시도하기에도 가장 유망한 영역”이라면서, “업계에서 타이포스쿼팅으로 노리기에 가장 매력적인 도메인은 금융 기관 또는 의약품 판매 조직이다. 움직임이 빠른 소비자 소매 부문 역시 많이 이용되므로, 이와 같은 유형의 사이트에 로그인하거나 사이트에 연결되는 이메일을 수신할 때 특별히 주의를 기울여야 한다”라고 말했다.

올해 미국 대통령 선거도 많은 스쿼팅의 목표가 됐다. 디지털 섀도우(Digital Shadows)의 한 보고서에 따르면, 대통령 후보자들과 관련된 스쿼팅된 도메인은 500개를 넘었다.66개가 동일한 IP 주소에 호스팅됐다는 사실은 한 사람이 운영했을 가능성이 높으며, 이런 공격을 강행하기가 무척 쉽다는 것을 보여준다. 보고서에서 6개 도메인은 “파일 변환기” 또는 “안전한 브라우징”을 위한 구글 크롬 확장 프로그램으로 연결됐다. 이런 프로그램은 다운로드 및 설치되는 경우 투표자의 사생활을 침해하고 악성코드를 배포할 가능성도 있다.

헬밍은 최근 몇 년 동안 도메인 스쿼팅 방식은 거의 바뀌지 않았다고 말했다. HTTPS로 전환되면서 타이포스쿼팅된 도메인을 운영하는 공격자에게 약간의 부담이 더해졌지만 셀프 서비스 인증서가 있으므로 크게 어렵지는 않다. 일반 최상위 도메인이 도입되면서 스쿼팅을 위한 네임스페이스는 더 커졌지만 대체로 부자연스럽게 보이므로 성공 가능성은 줄어들 수 있다.
 

타이포스쿼팅 공격을 막는 방법

타이포스쿼팅은 사람들에 의존해서 잘못된 도메인을 식별해야 한다는 사실로 인해 대응하기가 어려울 수 있다. CISO는 직원들이 타이포스쿼팅 문제를 인식하고 관련 교육을 통해 어떤 부분을 조심해야 하는지, 주요 도메인(회사 자체 도메인과 회사 공급망에 포함된 조직의 도메인)이 어떻게, 왜 스푸핑될 수 있는지를 알도록 해야 한다.

헬밍은 도메인 등록소와 등록기관에는 악의적인, 비슷하지만 철자가 다른 도메인 등록을 막을 “보호막”이 없으므로 등록은 간단하고 비용도 저렴하다면서 “자세히 살펴봐도 정상적인 이름과 시각적으로 거의 구분이 불가능한 이름을 등록할 수 있다”고 말했다.

몇몇 벤더는 스푸핑 가능성이 있는 도메인을 찾아주는 서비스를 제공한다. 세계 지적 재산 기관(WIPO)은 상표 소유자가 타이포스쿼터를 대상으로 이의를 제기하고 도메인을 회수할 수 있도록 하는 통일도메인이름분쟁해결정책(UDRP)을 두고 있다. 헬밍은 UDRP가 등록한 행위자를 직접 제재하지는 못하지만 등록기관이 불법적 도메인에 대한 통제력을 가질 수 있게 해준다고 설명했다.

스푸핑된 도메인을 내리기 위해서는 법적인 조치가 필요한 경우가 많다. 마이크로소프트는 2018년 러시아의 팬시 베어(Fancy Bear) 그룹(APT28로도 알려짐)이 운영하는 것으로 추측되는, 정치적 그룹을 가장한 도메인을 내리도록 하는 법원 명령을 받아냈다. 올해 미국 법무부는 팬데믹 관련 사기성 도메인 수백 개를 폐쇄 조치했다고 밝혔다.

헬밍은 “이 범죄자들은 법적 조치에 거의 반응을 하지 않는다”고 말했다. “행위자를 특정하기는 매우 어렵고, 이들은 꼬리를 밟히지 않는 방법을 잘 안다. 적대적 도메인을 호스팅하는 인프라 기업을 상대로 한 법적인 조치나 그러한 조치에 대한 위협이 더 효과적인 경우도 있다”고 말했다.

또한 기업은 스쿼팅 공격을 사전에 방지하고 사용자들을 올바른 URL로 리디렉션하기 위해 자체 도메인과 비슷한 여러 도메인을 등록하는 방법도 고려할 수 있다. 하워스는 “일반적으로 방어적 등록이라고 하며 합법적인 형태의 타이포스쿼팅이다. 예를 들어 마이크로소프트는 이러한 공격을 차단하기 위해 브랜드 이름의 여러 변형으로 구성된 십여 개의 도메인을 소유하고 있다”고 설명했다.
 

타이포스쿼팅 오픈소스 라이브러리

비교적 새로운 유형의 타이포스쿼팅은 오픈소스 라이브러리의 소프트웨어 공급망을 악용하는 방법이다. 공격자는 합법적 패키지와 비슷하게 보이는 악성 패키지를 만든 다음 예를 들어 NPM 다운로드 리포지토리에 업로드한다. 시놉시스(Synopsys) 사이버 보안 연구 센터의 수석 보안 전략가인 팀 맥키는 “(이 분야에서) 타이포스쿼팅은 드물지만 그 영향은 클 수 있다. 따라서 악성 오픈소스 구성요소를 만드는 방법은 공격자에게 유력한 공격 패턴”이라고 말했다.

예를 들어 특정 프레임워크를 위해 만들어진 애플리케이션의 운영 환경을 설정하는 데 사용되는 “set-env”라는 오픈소스 구성요소가 있다면 악의적인 그룹이 비슷한 이름의 “setenv”라는 프로젝트를 만들어 악성 코드를 집어넣을 수 있다. 맥키는 “공격자는 팀 내에서 익숙하지 않은 개발 프레임워크를 공격 목표로 삼아 표면적으로는 유효한 문제를 해결하는 것처럼 보이는 구성요소를 만든다. 그런 다음 악성 요소를 이 코드에 내장해서 구성요소를 홍보하고, 개발자가 이 구성요소를 발견해서 사용하기를 기다린다”고 말했다.

두 프로젝트가 거의 똑같이 보인다면 누구나 헷갈리기 쉽고, 공격은 사실상 잘못된 소프트웨어 구성을 공격 목표로 삼는다. 손상된 구성요소가 사용될 수도 있는 상황을 인지하기는 어렵다. 게다가 공격자가 유명 패키지 관리 리포지토리에 악성 구성요소를 출시할 수도 있으므로 이 경우는 알아차리기가 더욱 쉽지 않다.

소나타입(Sonatype)의 선임 보안 연구원 액스 샤마는 “공격자들은 가장 일반적으로 사용되는 소프트웨어 패키지를 연구한다. 그런 다음 악성 앱을 만들어서 그 인기 있는 패키지와 같은 이름으로 오픈소스 소프트웨어 리포지토리에 게시한다. 기술 수준이 높은 공격자는 악성 코드를 모호화하거나 눈에 띄지 않는 JS 파일에 숨기는 등의 부가적인 회피 전술을 사용할 수도 있으며, 악성 모조 앱에서 타이포스쿼팅 대상인 합법적인 패키지를 종속 요소로 풀링하도록 해서 탐지를 피하는 방법까지 사용한다”고 말했다.

최근의 예로, 여러 악성 자바스크립트 패키지가 NPM 포털에 업로드됐다. 이 악성 패키지는 패키지를 프로젝트로 가져온 개발자의 컴퓨터에서 셸을 열었다. 맥키는 문제의 plutov-slack-client가 Node.js 애플리케이션을 위한 자바스크립트 슬랙(Slack) 인터페이스를 제공한다고 주장했지만, 실상은 공격자가 애플리케이션을 실행하는 서버로 진입할 수 있도록 외부 연결을 여는 역할을 했다면서 “plutov-slack-client는 불과 몇 주 동안만 올라와 있었지만 수백 번 다운로드됐으므로 공격자가 수백 명의 피해자 데이터에 접근했을 가능성이 있다”고 말했다.

의도를 단정할 수는 없지만 맥키는 위협 행위자가 이와 같은 유형의 공격을 사용해서 예를 들어 신용카드 스키밍(skimming) 코드를 실행하고 스팸을 전송하거나 피싱 캠페인을 실행할 수 있다고 말했다. 지난 9월에는 깃허브 페이지에 사용자 세부 정보를 업로드한 악성 패키지가 발견됐으며 NPM은 데이터를 수집하는 트로이 목마가 포함된 디스코드(discord) 패키지를 비롯해 최근 몇 개월 사이에 발견된 악성 패키지에 관한 여러 공지를 게시했다. 작년에는 일반적으로 사용되는 젬의 이름을 모조한 타이포스쿼팅 루비젬(RubyGem)이 700개가 넘게 발견됐다.

소나타입의 샤마는 성공적인 공격은 심각한 피해를 유발할 수 있는 오픈소스 생태계 오염으로 이어질 수 있다고 경고했다. 샤마는 공격이 성공적일 경우 많은 피해자에게 위협 행위자의 맬웨어가 하향식으로 배포될 수 있다면서 “영향은 타이포스쿼팅 패키지를 빌드에 다운로드한 개발자만이 아니라 그보다 훨씬 더 넓은 범위로 확산될 수 있다. 타이포스쿼팅된 모조품이 포함된 그 개발자의 패키지를 설치한 고객도 영향을 받게 된다”고 말했다.

이러한 공격을 방어하기는 어려울 수 있다. 특히 소규모 팀 또는 개별 개발자들이 운영하는, 잠재적으로 문제가 있는 도메인을 추적하거나 그에 대응한 조치를 취할 리소스가 부족한 오픈소스 프로젝트의 경우에는 더 어렵다. 맥키는 “대부분의 오픈소스 소프트웨어는 독립 개발자가 기술적인 문제를 해결하기 위해 만든다. 소프트웨어가 충분한 인기를 얻어 주요 재단에 포함되기 전까지는 프로젝트가 형성하는 브랜드를 관리할 기술도, 시간도 없는 경우가 대부분”이라고 말했다.

맥키는 “오픈소스 커뮤니티와 패키지 관리 리포지토리 유지관리 기관은 악성 구성요소에 대해 알게 될 경우 조치를 취하지만 공격자들은 공격이 시작되는 시점과 대중이 악성 구성요소를 인지하게 될 때까지 존재하는 기회의 창을 이용해 이득을 극대화한다”고 말했다.

맥키는 기업의 모든 소프트웨어에 사용되는 구성요소가 무엇인지 포괄적인 인벤토리를 유지하고 감사를 통해 승인된 구성요소만 사용되는지 확인할 수 있어야 한다고 조언했다. 조직에 유입되는 모든 새로운 구성요소를 대상으로 이 인벤토리 작업과 감사를 통한 검증이 수행되어야 한다. editor@itworld.co.kr
 


X