인기 소스코드 저장소 깃허브는 지난 4월 중순 발생한 보안 침해 사고 당시, 해커가 도난된 오쓰(OAuth) 토큰을 이용해 약 10만 개의 npm(노드패키지매니저)계정의 로그인 정보를 훔쳐간 것을 확인했다고 26일(현지시간) 블로그 공지(☞링크)를 통해 밝혔다.
오쓰 토큰은 사용자가 크리덴셜을 공유하지 않으면서 다른 애플리케이션에 접근할 수는 권한을 부여해주는데, 깃허브는 지난 4월 12일 헤로쿠와 트래비스CI에 발급된 오쓰 토큰이 도난당했고 이 손상된 오쓰 토큰을 활용한 공격이 있었다는 사실을 발견했다. 헤로쿠는 세일즈포스가 제공하는 클라우드 서비스형플랫폼(PaaS)이고, 트래비스CI는 깃허브에서 제공하는 무료 지속적통합 서비스다.
깃허브 조사에 따르면 공격자는 훔친 오쓰 토큰을 사용해 여러 프라이빗 npm 리포지토리를 다운로드한 후, 획득한 손상된 AWS 액세스키를 사용해 접근권한을 상승시켰다.
침해 사고가 발견된 후 깃허브, 트래비스 CI, 헤로쿠는 추가 공격을 차단하기 위해 모든 오쓰 토큰을 취소했다.
깃허브는 이후 npm에 미치는 영향을 계속 조사했고 그 결과 공격자가 훔친 오쓰 토큰을 가지고 약 10만 개의 npm 계정의 로그인 정보를 훔치고, 일부 프라이빗 리포지토리에 침입해 데이터를 탈취하는 데 성공한 사실을 확인했다.
깃허브 제품 보안 엔지니어링 수석 이사인 그렉 오즈는 블로조를 통해 "조사 중에 공격자가 npm 클라우드 스토리지에서 데이터를 훔쳤다는 사실을 발견했다"고 밝혔다.
해당 공격으로 ▲2015년 사용자 정보 아카이브에서 사용자 이름, 패스워드 해시, 이메일 주소 등이 포함된 약 10만 개 계정의 로그인 정보 ▲2021년 4월 7일부터 모든 프라이빗 페키지 메니페스트, 메타데이터 ▲2022년 4월 10일부터 모든 프라이빗 페키지의 게시된 버전 이름과 semVer ▲두 개 기업의 프라이빗 패키지 등이 침해당했다.
사용자 정보 내 포함된 패스워드 해시가 약한 해싱 알고리즘을 사용해 생성됐을 경우 암호를 제거(크랙)해 정보를 탈취할 가능성이 있지만, 지난 3월 모든 npm 계정에 이메일 2중 인증이 도입돼 침해 시도를 차단할 수 있게 됐다.
관련기사
- "공개SW 덕분에 새로운 경험...깃허브 트렌드서 1위도"2022.01.13
- 소스코드 공유 플랫폼 깃허브, '보안' 최대 숙제 됐다2021.05.28
- 깃허브 "코드 자동화와 재사용, 개발 생산성 증가"2021.11.19
- "2시간 걸리던 코딩 2분 만에"...AI 기반 개발 시대 열려2022.05.25
모든 npm 패키지 버전에 대한 로그 및 이벤트 분석과 해시 확인 후 깃허브는 "현재 공격자가 레지스트리 내 퍼블리쉬된 패키지를 수정하지 않았거나, 기존 패키지에 새 버전을 게시하지 않았다"고 확신했다.
깃허브는 영향을 받는 npm 사용자의 모든 패스워드를 리셋하고, 공격자가 데이터에 액세스한 것으로 확인된 조직과 사용자에게 침해 사실을 공지했다.