세계 보안 엑스포  전자정부 솔루션 페어  개인정보보호 페어  국제 사이버 시큐리티 컨퍼런스  세계 태양에너지 엑스포  스마트팩토리  세계 다이어트 엑스포  INFO-CON
개발자는 속이기 쉽다? 자바스크립트 저장소 npm 감염되다
  |  입력 : 2017-08-07 16:46
페이스북 보내기 트위터 보내기 네이버 밴드 보내기 카카오 스토리 보내기
40개 넘는 자바스크립트 패키지 이미 감염...개발자 크리덴셜 노려
한 사용자는 악성 패키지 배포해 추방...한 사용자는 이상 현상 미리 알려


[보안뉴스 문가용 기자] 해커들에게 공격 툴이 있는 것처럼 개발자들에게도 소프트웨어 개발 툴이 있다. 그리고 그런 개발 툴들을 단위 단위로 묶어서 관리하는 체계도 있다. 자바스크립트라는 프로그래밍 언어의 패키지를 공식으로 관리하는 서비스 중 npm이라는 것이 있다. 자바스크립트의 런타임 환경인 Node.js의 디폴트 패키지 관리자이기도 하다.

▲ 여기, 의외로 허술하다 [이미지 = iclickart]


그런데 최근 사이버 범죄자들이 이 npm을 노리고 침해한 사건이 발생했다. 침해 사실을 발견했을 당시 이미 40개가 넘는 패키지가 감염되어 있었다고 한다. 감염된 상태의 패키지를 다운로드 받고 설치하면 해당 시스템에 침투하여 다양한 정보를 탈취하거나 해킹 공격을 감행할 수 있게 된다. 개발자들의 컴퓨터에는 민감한 정보들이 다량으로 저장되어 있는 경우가 많고, 툴 자체에 대해서는 ‘악성 공격’을 의심하지 않는 것이 보통이기 때문에 개발 툴에 대한 공격은 효율이 뛰어난 것으로 알려져 있다.

아직 정체가 밝혀지지 않은 npm 공격자들은 타이포스쿼팅(typosquatting)이라는 공격법을 활용한 것으로 나타났다. 타이포스쿼팅이란, 타이핑을 할 때 스스로 어떤 글자를 치고 있는지 잘 눈여겨보지 않는 일부 사용자들을 노리는 공격법으로, 미리 그런 사람들이 낼 법한 오타로 콘텐츠를 미리 등록시켜 실제로 해당 오타를 통해 사용자가 접속했을 때 공격을 감행하는 것이다. 공격자들은 npm 패키지가 가진 원래 이름을 아주 살짝 비틀어 악성 패키지를 등록했다. “자기가 오타를 냈다는 걸 모르고 패키지를 다운로드 받는 사람들이라면 이 공격에 당했을 겁니다.”

공격자들의 목표는 당연히 쓸모 있는 데이터를 훔쳐내는 것이라고 npm은 분석했다. “핵태스크(hacktask)라는 아이디를 사용하는 한 사용자가 악성 라이브러리를 7월 19일에 발표, 공개했습니다. 여기에는 인기가 높은 cross-env를 흉내 낸 라이브러리 두 개도 포함되어 있습니다. 이 악성 라이브러리는 8월 1일 강제 삭제되기 전까지 약 700회 다운로드 되었습니다. 다행히 사용자들의 50%가 설치 과정 중에 이상한 걸 눈치 채 설치를 하지 않았습니다.”

npm에 이상한 점이 있다는 걸 제일 처음 발견해 보고한 건 스웨덴의 한 npm 사용자였다. 트위터를 통해 잘못된 cross-env 패키지에 대해 알려왔고, 수상한 활동들이 이어지고 있다고 보고한 것이다. “해당 패키지를 다운로드 받았거나, 받은 것으로 의심된다면 쉘 환경에서 사용하고 있던 크리덴셜을 취소시키거나 변경할 것을 권고합니다.” npm의 설명이 이어졌다.

npm은 핵태스크라는 사용자를 영구 추방 조치했다. 또한 앞으로 비슷한 공격이 일어날 것에 대한 대응책을 강구하는 중이라고 발표했다. 특히 타이포스쿼팅처럼 경우의 수가 너무 많아 사실상 전부 대응하는 게 어려운 공격을 어떻게 효율적으로 탐지해내는가에 대해 내부에서 심도 있는 토론이 이어지고 있다고 한다.

2015년 9월 애플의 앱 스토어에서도 비슷한 사건이 있었다. 엑스코드(Xcode)라는 애플의 앱 개발 툴의 하나인데, 이와 비슷한 엑스코드고스트(XcodeGhost)가 개발자들 사이에서 유포되기 시작한 것이다. 개발을 위해, 아무런 의심 없이 ‘비슷한 툴’을 다운로드 받은 개발자들은 자기들도 모르게 악성 앱을 만들어 앱 스토어에 올려놓게 되었고, 발견 당시 이미 39 종류의 앱이 감염된 상태였다. 해당 앱에는 사용자 풀이 대단히 넓은 위챗(WeChat)과 같은 것들도 포함되어 있었다.

당시 ‘개발자를 속이는 게 생각보다 쉽다’는 점에서 액스코드고스트는 큰 화제가 되었고, 코드를 작성하는 중간중간, 그리고 완성한 후에 보안 점검을 하는 것이 얼마나 중요한지 역시 새롭게 부각되었다. 그러면서 오픈소스 등에 대한 보안 점검 역시 애플리케이션 보안의 중요한 요소로서 언급되기 시작했다.

npm 역시 이번 일을 교훈 삼아 타이포스쿼팅과 같은 공격에 대한 ‘프로그램 가능한 대처법’을 적용 검토 중에 있다고 밝혔다. “오타 가능성을 전부 대비하는 건 힘들겠지만, 효율적인 방어 기법도 존재합니다. 내부적으로는 이 방법을 사용해 포스팅 게재를 차단하는 것도 고려 중에 있습니다.”
[국제부 문가용 기자(globoan@boannews.com)]

<저작권자: 보안뉴스(www.boannews.com) 무단전재-재배포금지>



보안 전문가 2명 중 1명은 주말에도 일합니다. 여름 휴가도 마찬가지일 것 같은데요. 보안 인력의 휴식권에 대해 어떻게 생각하시나요?
제대로 쉬려면 보안 인력을 늘리는 수밖에 없다
보안 업무의 특성상 휴식권을 보장하기 어렵다. 감수해야 한다
국가적 차원에서 보안 인력의 근로 조건을 개선해야 한다
제대로 못 쉬는 대신 금전적으로 보상하면 된다
보안 인력에 대한 인식과 처우가 낮다는 게 근본적인 문제다
기타(댓글로)