러시아에 항의한다면서 소프트웨어 공급망 공격을 한 리눅스개발자
노드아이피씨라는 유명 오픈소스 모듈의 관리자는 우크라이나가 침공당하자 화가 났다. 그래서 러시아 개발자들을 노리는 악성 코드를 자신이 관리하는 모듈에 삽입하고 하루 동안 유포했다. 그리고 다음 날에는 반전 메시지를 화면에 출력시키는 모듈을 등록했다. 반전주의자였던 그는 이틀 동안 공급망 공격을 하는 해커의 신분이었다.
[보안뉴스 문가용 기자] 윈도, 리눅스, 환경에서 널리 사용되는 오픈소스 모듈의 관리자가 최근 우크라이나에서 러시아가 전쟁을 일으킨 것에 항의한다는 의미로 악성 기능을 업로드한 사실이 밝혀지며 코드 디펜던시 체계가 가지고 있는 심각한 보안 위험성이 다시 한 번 수면 위로 드러났다.문제의 오픈소스 모듈은 노드아이피씨(node-ipc)이며, 이를 개발하고 관리하고 있던 사람은 브랜든 노자키 밀러(Brandon Nozaki Miller)라는 인물이다. 노드아이피씨는 자바스크립트 모듈로, 프로세스 간 통신을 가능하게 해 주기 때문에 전 세계 수백만 명의 개발자들이 소프트웨어 구축에 활용하고 있다. 밀러는 최근 이 노드아이피씨에 새로운 코드를 추가했는데, 위치 정보를 확인해 러시아와 벨라루스에 있는 컴퓨터에 설치될 경우 모든 파일을 삭제하는 기능을 가진 것이었다.
밀러는 조건부로 발동되기는 하지만 사실상 파괴형 멀웨어인 것을 npm이라는 유명 자바스크립트 리포지터리에 올려두었다가 삭제했다. 그 다음 또 다른 모듈인 피스낫워(peacenotwar)라는 새 모듈을 업로드하고, 이를 노드아이피씨의 디펜던시 중 하나로 만들었다. 이를 다운로드 할 경우 개발자들은 우크라이나-러시아 전쟁과 관련된 반전 메시지가 데스크톱에 도배되는 걸 지켜보는 수밖에 없었다. 노드아이피씨는 1주일에 100만 번 이상 다운로드 되던 모듈이었다.
애플리케이션 보안 업체 스나이크(Snyk)는 이 사건을 조사한 후 “전 세계적인 오픈소스 커뮤니티의 현재 상황을 적나라하게 보여 주는 사건”이라고 발표했다. “단 한 명의 관리자가 파일을 감염시킨 후 이 사실을 숨기고 유포되도록 방치했습니다. 물론 개발자가 전방위적으로 피해를 끼리쳐는 건 아니었고, ‘반전’이라는 나름의 메시지를 가지고 있다는 것은 사실입니다. 그렇지만 그 방법은 소프트웨어 공급망 공격 그 자체였습니다. 우리가 지금 소프트웨어를 개발하고 공유하는 방식에는 본질적인 취약점이 있습니다.” 리란 탈(Liran Tal)의 설명이다.
지난 1월에도 비슷한 사건이 있었다. 인기가 매우 높은 오픈소스 라이브러리인 colors.js와 faker.js의 관리자들이 의도적으로 새로운 코드를 삽입한 것이다. 새 코드가 삽입된 라이브러리를 그대로 사용하던 개발자들은 자신의 프린터를 통해 liberty라는 글자가 반복적으로 인쇄되는 것을 목격했다. 보안 업체 소나타입(Sonatype)이 이 사건을 분석한 결과 colors.js는 33억 회 다운로드 됐고, faker.js는 2억 7200만 회 다운로드 됐었다는 사실을 알 수 있었다. 참고로 이 두 모듈의 관리자들은 대기업들이 라이브러리를 활용하면서도 개발자인 자신과 수익을 나눠갖지 않는다는 사실에 분노하여 항의의 의미로 이 같은 일을 저질렀다고 밝혔다.
상세 사건 일지
스나이크가 이번 사건을 조사한 바에 의하면 밀러는 RIA에반젤리스트(RIAEvangelist)라는 닉네임으로 두 개의 노드아이피씨 버전들을 발표했다고 한다. 2021년 3월 7일, 10.1.1과 10.1.2 버전을 연달아 발표했는데, 둘 다 삭제 공격 코드가 포함되어 있었다. 이 두 가지 버전이 npm에 공개되어 있던 시간은 24시간이 채 되지 않았으며, 그 동안 높은 다운로드 회수가 기록됐다. 탈은 “분명 누군가는 피해를 입었을 것”이라고 보고 있다.
“삭제 코드를 포함하고 있는 10.1.1 버전과 10.1.2 버전의 경우, 저희가 다운로드 하기 전에 이미 npm에서 삭제된 상태였습니다. 하지만 이 사건이 벌어지기 전 노드아이피씨의 10.x 버전들은 일주일에 3천 회 이상 다운로드 되고 있었습니다. 아마 10.1.1 버전과 10.1.2 버전도 비슷한 다운로드를 기록하지 않았을까 생각됩니다.” 탈의 설명이다.
하루 후인 3월 8일 밀러는 ‘피스낫워’라는 패키지를 npm에 발표했다. 스나이크의 조사에 의하면 이 모듈은 파괴적인 기능을 가지고 있지는 않았다고 한다. “하지만 여전히 러시아의 우크라이나 침공에 대한 항의를 내포하고 있었습니다. 개발자가 예상 못한 기능을 발휘하고 있었다는 것이죠. 사전적 의미의 ‘피해’가 있지는 않았겠지만, 그럼에도 개발자가 의도하지 않은 방향으로 애플리케이션 개발이 이뤄짐을 막을 수 없었을 겁니다. 결국 어떤 개발자라도 자신이 사용하는 오픈소스 코드에 대해서 잘 이해하고 있어야만 안전할 수 있다는 뜻입니다.”
피스낫워 모듈의 경우 수백~수천 번 정도 다운로드 됐었다. 하지만 밀러가 이 모듈을 노드아이피씨의 디펜던시로 등록하자 갑자기 다운로드 수가 4만 번으로 증폭했다. 노드아이피씨가 그만큼 ‘주류 오픈소스 모듈’이었다는 뜻이다.
소나타입의 CTO인 브라이언 폭스(Brian Fox)는 “오픈소스 모듈을 사용하려고 할 때, 반드시 확인과 검사 과정을 거쳐야만 한다”고 주장한다. 그러면서 “재단 단위의 단체가 관리하는 오픈소스를 선택하는 것이, 개인이 관리하는 오픈소스보다 보편적으로 안전하다”고 추천했다. “한 명이 좌지우지 할 수 있는 모듈은, 여러 명이 합의 하에 코드에 변경을 가하게 되는 것보다 위험 가능성이 훨씬 높습니다. 이번 사건의 경우 밀러가 한 명이 아니라 여러 명이었다면, 아마 삭제 코드나 항의 메시지가 인쇄되는 코드가 삽입되지 않았을 겁니다.”
탈은 “2019년에 시행된 조사에 의하면 개발자들은 자신이 다운로드 받는 모듈이, 유명 모듈이나 라이브러리의 디펜던시일 경우 별도의 검사 없이도 신뢰하는 경우가 대부분이었다고 한다”며 “신뢰의 근거가 무엇인지 꼼꼼하게 검토하지 않으면 안 되는 소프트웨어 개발 환경에 우리가 지금 처해 있다는 걸 인지해야 한다”고 주장한다.
“소프트웨어 공급망이 가지고 있는 위험성은 이제 일개 개발자, 스타트업, 대기업 어느 하나 차별 없이 누구나 마음 한 켠에 가지고 있어야 하는 것입니다. 다운로드 받고자 하는 오픈소스의 관리자가 어떤 사람 혹은 단체인지, 어떤 라이선스를 가지고 있는지, 보안 취약점에 대한 히스토리가 있는지, 프로젝트의 관리 체계가 어떤 식으로 구성되어 있는지를 전부 파악하는 게 중요합니다.”
3줄 요약
1. 인기 높은 오픈소스 모듈인 노드아이피씨, 관리자는 단 한 사람.
2. 이 사람이 러시아의 우크라이나 침공에 분노해 이 노드아이피씨에 악성 코드를 주입.
3. 아무리 반전주의에 입각한 행동이라고 하더라도 소프트웨어 공급망 공격을 감행했다는 사실은 변하지 않음.
출처 : https://www.boannews.com/media/view.asp?idx=105567&page=1&kind=1
이 글이 문제가 될 시 삭제하겠습니다.
댓글 없음:
참고: 블로그의 회원만 댓글을 작성할 수 있습니다.