By LILY HAY NEWMAN, WIRED US
2020년, 러시아 해커 조직이 널리 보급된 IT 관리 플랫폼에 슬쩍 보안 피해가 발생한 업데이트를 적용한 솔라윈즈(SolarWinds) 사이버 스파이 사태로 일련의 소프트웨어 공급망 공격이 추가로 발견됐다. 결과적으로 소프트웨어를 격리하여 차단할 필요성이 시급하다는 점을 계속 강조하는 추세이다. 특히, 프로젝트가 본질적으로 분산화돼 종종 필요할 때만 작업을 진행하는 오픈소스의 신속 업데이트 부담이 더 커졌다. 깃허브(GitHub)의 유명 npm 레지스트리(npm registry)에서 다운로드가 널리 이루어진 자바스크립트 소프트웨어 패키지 보안 손실을 둘러싼 일련의 우려가 이어졌다. 이후 깃허브가 오픈소스 보안 방어 수준 확장을 계획을 설명했다.
마이크로소프트 계열사인 깃허브는 8월 8일(현지 시각), 코드 서명 플랫폼 시그스토어(Sigstore)를 사용해, npm 소프트웨어 패키지에 일종의 디지털 봉인인 코드 서명을 지원할 계획이라고 발표했다. 여러 업계의 협력으로 발전한 시그스토어는 오픈소스 관리자의 생성 코드가 실제 전 세계 사용자가 내려받은 소프트웨어 패키지의 코드와 같다는 사실을 검증하는 과정을 훨씬 더 수월하게 진행하도록 돕는다.
깃허브 제품 관리 책임자 저스틴 허칭스(Justin Hutchings)는 “대다수 npm 패키지는 오픈소스이지만, 현재 npm 패키지가 이미 공개된 것과 같은 소스코드를 사용한다고 보장할 수 없다. 공급망 공격이 급격히 증가하는 추세이다. 소프트웨어의 출처와 개발 방법을 검증하는 오픈소스 패키지에 정보를 구축하고자 서명된 빌드 정보를 추가하는 것은 공격을 줄일 훌륭한 방법이다”라고 설명했다.
한마디로 말하자면, 통신 과정의 암호화 검증과 투명성을 생성이 핵심이다.
시그스토어 공동 개발사인 체인가드(Chainguard) CEO인 댄 로렌스(Dan Lorenc)는 깃허브가 유일한 오픈소스 생태계 구성요소는 아니지만, 오픈소스 커뮤니티의 중요한 광장이라고 강조했다. 오픈소스 프로젝트 대부분 깃허브에 저장하고 소스코드를 공개하기 때문이다. 실제로 개발자가 오픈소스 애플리케이션이나 툴을 내려받고자 한다면, 일반적으로 패키지 매니저를 사용한다.
로렌스는 “소스코드를 직접 설치하지 않고, 보통 압축 파일을 설치한다. 따라서 소스코드와 패키지 생성 과정 사이에 보안 위협이 발생한다. 지금까지 오픈소스 생태계에서는 전체 과정이 의문스럽고 복잡한 과정이었다”라며, “코드를 본 뒤 패키지를 내려받는다. 그러나 패키지가 설치 전 확인한 코드나 코드 개발 과정에 참여한 개발자가 생성한 것과 같은 코드로 생성된 것이 맞는지 증명하는 요소는 없다. 깃허브가 바로 잡고자 하는 부분이다”라고 설명했다.
시그스토어에 패키지 매니저를 제공하면서 소프트웨어 개발 전 과정의 투명성을 강화한다. 시그스토어 툴은 개발자 공급망을 통해 소프트웨어를 전달하면서 암호화 검증과 요구사항을 관리하도록 돕는다. 로렌스는 무결성 확인 과정이 이미 적용되지 않았으며, 대다수 오픈소스 생태계가 공급망 보안을 맹신한 사실에 많은 이들이 충격을 받았다고 전했다. 2021년 5월, 바이든 행정부는 소프트웨어 공급망 보안을 특별히 다루기 위한 행정명령을 시행했다.
로렌스는 “많은 이들이 이미 소프트웨어 패키지 공급 시 보안 관리 과정이 적용된 것이 아니냐는 의문을 제기한다. 코드가 존재하는 곳과 패키지가 존재하는 곳 사이에 보안 격차가 있다. 대부분 이를 믿지 않거나 사실을 알고 난 뒤 놀란다”라고 말했다.
시그스토어 개발 과정에는 리눅스 재단과 구글, 레드햇(Red Hat), 퍼듀대학교, 체인가드가 참여했다. 현재 오픈소스 소프트웨어 개발 플랫폼 쿠버티네스(Kubernetes)는 시그스토어를 지원하며, 시그스토어를 이용한 파이썬 패키지 배포 서명용 공식 툴도 있다.
허칭스는 “기존 서명 키 관리 방식은 오픈소스 커뮤니티의 순수 규모에 적합하게 확장되지 않았다. 게다가 소프트웨어 구축 과정을 상세히 분석한 심층 정보도 제공하지 않는다. 깃허브가 시그스토어의 특징 중 만족하는 부분은 최종 사용자의 제로 구성(zero-configuration)이라는 부분이다. 따라서 소스코드 실행 지점과 상관없이 개발자 생태계 보안 지원 규모를 확장할 수 있다”라고 설명했다.
비영리 단체 인터넷 시큐리티 리서치 그룹(Internet Security Research Group)의 렛츠 인크립트(Let's Encrypt)와 같은 툴로 광범위한 부분의 보안 관리를 지원하는 HTTPS 웹 암호화(HTTPS web encryption)를 널리 알리려는 업계의 대대적인 노력과 비슷하게 시그스토어는 많은 개발자의 채택 유도를 위해 무료와 손쉬운 활용성에 의존한다. 깃허브는 npm에 시그스토어를 적용하는 방식 제안부터 시작해, 정확한 툴 구축 방식을 두고 오픈소스 커뮤니티의 피드백을 받을 공개 코멘트 기간을 둘 예정이라고 밝혔다. 그러나 궁극적인 목표는 코드 서명을 오픈소스 생태계에 최대한 널리 배포하여 지금보다 공급망 공격이 훨씬 더 어려워지도록 하는 것이다.
허칭스는 “깃허브는 모든 소프트웨어를 서명하고 소스코드와 다시 연결하고자 한다. 시그스토어와 같은 공개 기술 스택을 구축해, 다른 패키지 저장소도 채택하도록 하는 것이 중요하다”라고 전했다.
** 위 기사는 와이어드US(WIRED.com)에 게재된 것을 와이어드코리아(WIRED.kr)가 번역한 것입니다. (번역 : 고다솔 에디터)
<기사원문>
GitHub Moves to Guard Open Source Against Supply Chain Attacks
2020년, 러시아 해커 조직이 널리 보급된 IT 관리 플랫폼에 슬쩍 보안 피해가 발생한 업데이트를 적용한 솔라윈즈(SolarWinds) 사이버 스파이 사태로 일련의 소프트웨어 공급망 공격이 추가로 발견됐다. 결과적으로 소프트웨어를 격리하여 차단할 필요성이 시급하다는 점을 계속 강조하는 추세이다. 특히, 프로젝트가 본질적으로 분산화돼 종종 필요할 때만 작업을 진행하는 오픈소스의 신속 업데이트 부담이 더 커졌다. 깃허브(GitHub)의 유명 npm 레지스트리(npm registry)에서 다운로드가 널리 이루어진 자바스크립트 소프트웨어 패키지 보안 손실을 둘러싼 일련의 우려가 이어졌다. 이후 깃허브가 오픈소스 보안 방어 수준 확장을 계획을 설명했다.
마이크로소프트 계열사인 깃허브는 8월 8일(현지 시각), 코드 서명 플랫폼 시그스토어(Sigstore)를 사용해, npm 소프트웨어 패키지에 일종의 디지털 봉인인 코드 서명을 지원할 계획이라고 발표했다. 여러 업계의 협력으로 발전한 시그스토어는 오픈소스 관리자의 생성 코드가 실제 전 세계 사용자가 내려받은 소프트웨어 패키지의 코드와 같다는 사실을 검증하는 과정을 훨씬 더 수월하게 진행하도록 돕는다.
깃허브 제품 관리 책임자 저스틴 허칭스(Justin Hutchings)는 “대다수 npm 패키지는 오픈소스이지만, 현재 npm 패키지가 이미 공개된 것과 같은 소스코드를 사용한다고 보장할 수 없다. 공급망 공격이 급격히 증가하는 추세이다. 소프트웨어의 출처와 개발 방법을 검증하는 오픈소스 패키지에 정보를 구축하고자 서명된 빌드 정보를 추가하는 것은 공격을 줄일 훌륭한 방법이다”라고 설명했다.
한마디로 말하자면, 통신 과정의 암호화 검증과 투명성을 생성이 핵심이다.
시그스토어 공동 개발사인 체인가드(Chainguard) CEO인 댄 로렌스(Dan Lorenc)는 깃허브가 유일한 오픈소스 생태계 구성요소는 아니지만, 오픈소스 커뮤니티의 중요한 광장이라고 강조했다. 오픈소스 프로젝트 대부분 깃허브에 저장하고 소스코드를 공개하기 때문이다. 실제로 개발자가 오픈소스 애플리케이션이나 툴을 내려받고자 한다면, 일반적으로 패키지 매니저를 사용한다.
로렌스는 “소스코드를 직접 설치하지 않고, 보통 압축 파일을 설치한다. 따라서 소스코드와 패키지 생성 과정 사이에 보안 위협이 발생한다. 지금까지 오픈소스 생태계에서는 전체 과정이 의문스럽고 복잡한 과정이었다”라며, “코드를 본 뒤 패키지를 내려받는다. 그러나 패키지가 설치 전 확인한 코드나 코드 개발 과정에 참여한 개발자가 생성한 것과 같은 코드로 생성된 것이 맞는지 증명하는 요소는 없다. 깃허브가 바로 잡고자 하는 부분이다”라고 설명했다.
시그스토어에 패키지 매니저를 제공하면서 소프트웨어 개발 전 과정의 투명성을 강화한다. 시그스토어 툴은 개발자 공급망을 통해 소프트웨어를 전달하면서 암호화 검증과 요구사항을 관리하도록 돕는다. 로렌스는 무결성 확인 과정이 이미 적용되지 않았으며, 대다수 오픈소스 생태계가 공급망 보안을 맹신한 사실에 많은 이들이 충격을 받았다고 전했다. 2021년 5월, 바이든 행정부는 소프트웨어 공급망 보안을 특별히 다루기 위한 행정명령을 시행했다.
로렌스는 “많은 이들이 이미 소프트웨어 패키지 공급 시 보안 관리 과정이 적용된 것이 아니냐는 의문을 제기한다. 코드가 존재하는 곳과 패키지가 존재하는 곳 사이에 보안 격차가 있다. 대부분 이를 믿지 않거나 사실을 알고 난 뒤 놀란다”라고 말했다.
시그스토어 개발 과정에는 리눅스 재단과 구글, 레드햇(Red Hat), 퍼듀대학교, 체인가드가 참여했다. 현재 오픈소스 소프트웨어 개발 플랫폼 쿠버티네스(Kubernetes)는 시그스토어를 지원하며, 시그스토어를 이용한 파이썬 패키지 배포 서명용 공식 툴도 있다.
허칭스는 “기존 서명 키 관리 방식은 오픈소스 커뮤니티의 순수 규모에 적합하게 확장되지 않았다. 게다가 소프트웨어 구축 과정을 상세히 분석한 심층 정보도 제공하지 않는다. 깃허브가 시그스토어의 특징 중 만족하는 부분은 최종 사용자의 제로 구성(zero-configuration)이라는 부분이다. 따라서 소스코드 실행 지점과 상관없이 개발자 생태계 보안 지원 규모를 확장할 수 있다”라고 설명했다.
비영리 단체 인터넷 시큐리티 리서치 그룹(Internet Security Research Group)의 렛츠 인크립트(Let's Encrypt)와 같은 툴로 광범위한 부분의 보안 관리를 지원하는 HTTPS 웹 암호화(HTTPS web encryption)를 널리 알리려는 업계의 대대적인 노력과 비슷하게 시그스토어는 많은 개발자의 채택 유도를 위해 무료와 손쉬운 활용성에 의존한다. 깃허브는 npm에 시그스토어를 적용하는 방식 제안부터 시작해, 정확한 툴 구축 방식을 두고 오픈소스 커뮤니티의 피드백을 받을 공개 코멘트 기간을 둘 예정이라고 밝혔다. 그러나 궁극적인 목표는 코드 서명을 오픈소스 생태계에 최대한 널리 배포하여 지금보다 공급망 공격이 훨씬 더 어려워지도록 하는 것이다.
허칭스는 “깃허브는 모든 소프트웨어를 서명하고 소스코드와 다시 연결하고자 한다. 시그스토어와 같은 공개 기술 스택을 구축해, 다른 패키지 저장소도 채택하도록 하는 것이 중요하다”라고 전했다.
** 위 기사는 와이어드US(WIRED.com)에 게재된 것을 와이어드코리아(WIRED.kr)가 번역한 것입니다. (번역 : 고다솔 에디터)
<기사원문>
GitHub Moves to Guard Open Source Against Supply Chain Attacks
저작권자 © WIRED Korea 무단전재 및 재배포 금지
저작권자 © WIRED Korea 무단전재 및 재배포 금지
이 기사를 공유합니다