NPM 사용 중인 개발자 노리는 가짜 패키지

NPM 사용 중인 개발자 노리는 가짜 패키지
Photo by Patrick Martin / Unsplash
💡
Editor's Pick
- 유명 왓츠앱의 비공식 API인 베일리즈
- 이 베일리즈의 포트 중 하나로 위장된 로터스베일
- 로터스베일, 사실은 각종 민감 정보 훔치는 멀웨어

악성 패키지가 공공 리포지터리인 NPM에서 발견됐다. 크리덴셜 및 각종 데이터를 훔치는 기능을 내포하고 있는 이 패키지의 이름은 로터스베일(Lotusbail)이며, 이미 널리 사용되고 있는 유명 패키지인 베일리즈(Baileys)의 포크다. 베일리즈는 ‘세계의 카카오톡’인 왓츠앱과 관련된 비공식 API 라이브러리라는 점 때문에 파급력이 크다고 할 수 있다.

베일리즈와 로터스베일

로터스베일을 먼저 발견한 보안 기업 코이시큐리티(Koi Security)는 “베일리즈는 인기가 많은 편인데다가 원래 포크가 많기도 해서 개발자들이 ‘로터스베일 포크’에 대한 경계심이 그리 높지 않다”고 설명한다. “또한 왓츠앱이 공식 API를 엄격해 통제하기도 합니다. 비공식 클라이언트는 자주 차단하고 프로토콜을 자주 변경하기도 하지요. 그래서 개발자들은 이런 조치들을 피하기 위해 포크를 자주 만드는 편입니다. 로터스베일도 그런 포크 중 하나라고 받아들일 수밖에 없는 맥락이지요.”

이런 ‘숨기 좋은 환경’ 덕분인지 로터스베일은 이미 6개월 넘게 배포돼 왔다고 코이시큐리티는 설명한다. “그 기간 동안 5만6천 회 이상 다운로드 되었습니다. 왓츠앱 메시지의 송수신을 지원하는 기능을 가지고 있으며, 모든 왓츠앱 메시지들이 제일 먼저 이 패키지들을 통과하도록 되어 있습니다. 이러한 구조 덕분에 공격자는 정보를 은밀하게 수집할 수 있습니다.”

은밀히 정보를 빼돌리는 로터스베일이지만, 그런 악성 기능만 가지고 있는 건 아니다. 정상적으로 작동하는 왓츠앱 API로서의 기능들도 탑재돼 있다. 그래서 개발자들은 더더욱 의심하기가 힘들다고 코이시큐리티는 강조한다. “로터스베일은 베일리즈의 포크인 척 흉내만 내지 않습니다. 실제로 베일리즈를 기반으로 만들어져 있습니다.”

또한 로터스베일은 훔친 데이터를 RSA 알고리즘으로 암호화 하는 과정부터 진행한다. 게다가 로터스베일과 연결돼 있는 서버의 정보는 난독화 되어 있기도 하다. “이런 장치들도 로터스베일에 수상한 장치들이 있다는 걸 숨기는 데 큰 역할을 합니다.”

로터스베일에 당하면 어떤 피해 입나?

로터스베일에 당하면 무슨 일이 일어날까? 먼저 로터스베일이 NPM 패키지로서 유포됐다는 건, 피해자가 대부분 개발자라는 의미다. 개발자가 사용하는 왓츠앱 메시지를 중간에서 가로챌 수 있는 로터스베일에 감염될 경우, 개발과 관련된 여러 민감 정보가 공격자의 손에 넘어갈 수밖에 없다. 소프트웨어가 중시되는 시기에 개발자가 다루는 정보의 중요도가 매우 높다는 걸 감안하면, 이는 중대한 피해가 아닐 수 없다.

“하지만 가장 심각한 건 공격자가 피해자의 왓츠앱 계정을 완전히 탈취할 수 있게 된다는 겁니다. 큐알코드를 통해 사용자의 왓츠앱 계정과 장비가 페어링 되는 게 왓츠앱의 특성 중 하나인데, 로터스베일이 이 과정을 공략하기도 합니다. 즉, 공격자가 자신이 지정한 장비를 통해 아주 자연스럽게 피해자 계정으로 로그인 할 수 있게 된다는 뜻이지요.” 코이 측의 설명이다.

이는 공격자가 피해자의 모든 과거 메시지를 읽을 수 있게 될 뿐만 아니라, 피해자가 주고 받는 모든 대화를 실시간으로 파악하는 것도 가능하다는 뜻이 된다. 왓츠앱을 통해 교환되는 음성, 영상, 이미지 파일들 모두 가로챌 수 있다. 연락처 정보에 접근하는 것도 가능하다. 사실상 왓츠앱 계정 소유권을 피해자와 공격자가 공유하는 것과 같은 상태가 된다고 결론을 내릴 수 있다.

왓츠앱 삭제하면 되나?

로터스베일의 진짜 무서운 점은 왓츠앱을 삭제해도 공격이 끝나지 않는다는 것이라고 코이시큐리티는 경고한다. “왓츠앱이 뭔가 이상하게 작동한다는 걸 눈치 챌 수도 있습니다. 상황이 심각하다고 느낄 수도 있고, 심지어 로터스베일의 존재를 파악해 패키지를 삭제할 수도 있습니다. 하지만 그렇다고 해서 상황이 종료되는 건 아닙니다. 공격자가 이미 자신의 장비를 통해 피해자 왓츠앱에 로그인을 해봤다면, 그 로그인 상태가 유지되거든요. 피해자가 자신의 왓츠앱 설정에 들어가 수동으로 모든 기계들의 로그인 현황을 확인한 뒤 일일이 로그아웃 하기 전까지는요.”

그렇기 때문에 뭔가 이상하다고 느낀 왓츠앱 사용자라면 제일 먼저 왓츠앱 모바일 앱에서 설정으로 들어가 연결된 모든 기기를 하나하나 클릭해 해제하는 작업부터 해야 한다. 그런 후에 로터스베일 패키지를 삭제하거나, 정 의심스러우면 기기 자체를 초기화 하는 것도 나쁘지 않다. 그런 후 왓츠앱을 다시 설치해 사용하는 편이 안전하다.

“기존의 보안 방법론으로는 로터스베일을 미리 잡아내지 못합니다. 예를 들어 정적 분석의 경우, 로터스베일이 정상적인 왓츠앱 API로서 기능을 하기 때문에 악성 여부를 판단하지 못합니다. 평판 조회라는 기법의 경우, 이미 로터스베일이 5만회 이상 다운로드 됐기 때문에 신뢰할 가능성이 높습니다. 그러므로 새로운 탐지 기법을 적용해야만 위험을 막을 수 있습니다.”

코이시큐리티가 말하는 ‘새로운 탐지 기법’이란, 행위 기반 분석이다. “패키지가 런타임 동안 실제로 무엇을 하는지 파악하는 게 더 중요합니다. 동적 분석을 해야 한다는 의미입니다.”

개발자들, 안전하게 NPM 사용하려면

이번 캠페인의 핵심은 개발자들이 로터스베일을 보고 수상함을 느끼기 힘들다는 데에 있다. 그렇다고 이런 악성 패키지의 존재 때문에 NPM을 사용하지 않을 수도 없는 일이다. 앞으로도 NPM을 꾸준히 이용해야 하는 개발자들은 어떤 것을 염두에 두어야 할까?

“유명 라이브러리의 포크라고 해서 신뢰하면 안 됩니다. 오히려 개발자들의 기본 디폴트 마인드는 ‘의심한다’로 조정되어야 합니다. 실제로 공격자들은 악성 요소가 최대한 눈에 덜 띄게 하기 위해 포크를 많이 만들어 활용합니다. 포크는 기본적으로 의심하면서 접근하는 게 맞습니다. 다운로드 수가 충분하다고 해서 신뢰하는 것도 위험합니다. 반드시 분리된 환경에서 다운로드 된 패키지를 ‘동적 분석’으로 파악한 뒤에 사용하는 것을 권합니다.”🆃🆃🅔

by 문가용 기자(anotherphase@thetechedge.ai)


NPM 패키지에서 악성 웜 빠르게 퍼지고 있어
💡Editor’s Pick - 9월 중순에 갑자기 등장한 웜 - 자가 증식으로 빠르게 퍼지며 비밀 탈취 및 공개 - 개발자들에게 경고하는 속도보다 확산 속도 더 빨라 새로운 컴퓨터 웜이 NPM에서 발견됐다. 누군가 개발자들을 노린 공급망 공격을 시도한 것으로 보인다. 보안 업체 리버싱랩스(ReversingLabs)가 제일 먼저 발견해 세상에 알렸다. “웜의 이름은
매주 수십억 회 다운로드 되는 NPM 패키지 침해되다
💡Editor’s Pick - 유명 NPM 계정 침해한 공격자 - 침해 후 수십억 회 씩 다운로드 되던 패키지 오염시켜 - 다행히 5분만에 탐지돼 막혔으나 위험은 끝나지 않아 어쩌면 최악의 공급망 사건이 될 뻔한 일이 벌어졌다. 보안 업체 아이키도시큐리티(Aikido Security)가 발견해 세상에 알린 것으로, 오랜 시간 npm에서 활동해 온 계정

Read more

[TE머묾] AI 시대에, 혐오 직업 보유자로 버티기

[TE머묾] AI 시대에, 혐오 직업 보유자로 버티기

💡Editor's Pick - 텍스트로 둘러싸인 더테크엣지 기자의 현장 - 인공지능 덕 좀 보려했지만, 퇴근 시간은 제자리걸음 - 인공지능과의 경쟁에서 기자가 앞서는 건 무엇일까 며칠 어지럼증이 심해졌다. 눈앞이 핑 돈다는 게 뭔지 살면서 처음 경험했다. 그건 비유가 아니었다. 사실에 충실한 표현이었다. 이미 수백 년 전 폐기된 천동설이 아직 살아남아

By 문가용 기자
제프리 엡스타인은 스캔들이 아니라 구조였다

제프리 엡스타인은 스캔들이 아니라 구조였다

💡Editor Pick - 2019년 사건은 개인을 향했고 2026년 문서 공개는 구조를 드러냄 - 국가는 어디까지 네트워크를 활용할 수 있으며, 감시 책임 주제는? - 정보가 소유되고 축적될 때 권력으로 발전 2019년의 사건, 2026년의 문서 공개, 그리고 ‘정보의 민영화’라는 질문 2019년 7월, 뉴욕에서 체포된 제프리 엡스타인(Jeffrey Epstein)은 미성년자 성착취

By Donghwi Shin, Jin Kwak