글로벌 칼럼 | ‘뛰는’ 리눅스 배포판 위에 ‘나는’ 보안 취약점 있다
어디에나 오픈소스가 있다. 시놉시스(Synopsys) 보고서를 보면 모든 소프트웨어 코드의 96%에 오픈소스 소프트웨어가 포함돼 있다.
반가운 소식이지만 오픈소스의 대중화에 따르는 위험을 감안하면 걱정스러운 소식이기도 하다.
수십년 전 독점 기업은 오픈소스 보안에 대해 의문스러운 공포감과 불확실성, 의심을 퍼뜨린 적이 있는데,
어쩌면 그 말이 이제야 맞아 들어가는 것일지도 모르겠다.
그것도 한때 비평가들이 헛짚었던 개별 프로젝트 수준이 아니라 공급망 수준에서 말이다.
실제로 솔라윈즈(SolarWinds), Log4j 같은 대규모 취약점은 오픈소스 보안에서 여전히 해결해야 할 필수 과제가 남아 있음을 알려 준다.
대부분 기업은 네트워크 및 경계 보안에서 상당히 성숙한 수준에 이르렀지만, 오픈소스의 출처와 소프트웨어 공급망 보안에 대한 이해와 대응 체계는 여전히 미진하다.
해커는 개별 오픈소스 프로젝트 자체의 보안뿐만 아니라 소프트웨어 아티팩트 간의 허점, 즉 추이 종속성과 빌드 시스템의 약점을 집중적으로 파고들고 있다.
이 문제는 개별 프로젝트 수준에서 대응할 수 없다. 배포판 수준에서 해결해야 한다.
타이밍이 모든 것
체인가드(Chainguard)의 CEO이자 창업자인 댄 로렝은 인터뷰에서 “기본적으로 오픈소스의 인기는 전보다 훨씬 더 높아졌다.
이제 정문을 부수고 들어가기가 더 어려워진 공격자는 뒷문을 노리고 있다”고 말했다.
즉, 공격자는 코드를 표적으로 삼을 필요 없이 대부분이 존재하는지 조차 모르는 종속성 중 하나를 공격할 수 있다.
오픈소스의 인기에 따른 대가는 많은 신뢰 메커니즘이 처음부터 제대로 구축되지 않았다는 점이다.
리눅스 및 기타 배포판은 오픈소스 패키징과 빌딩, 서명이라는 많은 힘든 일을 수행함으로써 역사적으로 오픈소스 도입에서 중요한 역할을 했다.
데비안, 알파인, 젠투와 같은 배포판은 권위 있는 배포판으로 평판이 높기 때문에 사용자가 무턱대고 여러 배포판을 설치할 필요가 없으며, 얼마간의 안전장치도 보장돼 있다.
그러나 새로운 오픈소스 패키지가 등장하는 속도는 이미 배포판이 따라잡을 수 있는 수준을 훨씬 넘어섰다.
예를 들어 자바스크립트의 npm 같은 인기 있는 레지스트리 한 곳에서만 매일 1만 종의 새로운 패키지가 나온다.
새로운 오픈소스 기술의 빠른 속도와 상대적으로 느린 배포판 속도 간의 이 기본적인 불일치에 따른 결과는 개발자가 배포판 밖으로 나가게 된다는 것이다.
이들은 최대한 빨리 최신, 최고의 기술을 얻기 위해 패키지를 설치하지만 이 과정에서 신뢰성에 대한 보장을 잃게 된다.
물론 배포판이 의도적으로 속도를 늦춘 것은 아니다.
이들은 업데이트 속도와 배포 안정성 사이에서 균형을 맞춰야 한다.
그러나 개발자의 조급함을 고려할 때, 배포판은 업데이트 속도를 높여 걷잡을 수 없을 정도로 확산되는 오픈소스 소프트웨어 도입과 보안 유지에 더 보조를 맞춰야 할 필요가 있다.
보안은 어렵다
공통 취약점 등급 시스템(CVSS), 그리고 오픈SSF 스코어카드와 같은 기타 신호는 특정 취약점 및 그 심각도에 대한 유용한 지표를 제공한다.
그러나 최신 운영체제 배포판에는 너무 많은 패키지가 사전 설치돼 있어 평균적인 운영체제에는 이런 취약점이 넘쳐난다.
자동차의 엔진 점검 표시등이 항상 켜져 있다면 진짜 정비소를 찾아가야 하는 상황이 와도 어떻게 알겠는가? 리눅스 배포판도 마찬가지다.
취약점이 너무 난무하다 보니 다 무시하기가 쉽다.
또 다른 문제는 개발자가 오픈소스를 배포판과 패키지 데이터베이스 외부에 설치할 때 발생하는 의미상의 차이다.
최신 보안 스캐너는 모두 이 메타데이터에 의존하기 때문에 배포판 또는 패키지 데이터베이스 외부에 설치되는 오픈소스의 경우 보안 취약점이 탐지되지 않는다.
그렇다면 이 같은 성장통의 대안은 무엇일까
미니멀리즘 및 모듈성에 맞게 설계되는 배포판은 전체적인 오픈소스 보안을 개선하는 데 도움이 될 수 있다.
배포판은 작업에 필요한 것 이외의 요소를 포함하지 않음으로써 공격 표면을 줄이고 더 안전한 공급망을 만들 수 있다.
이것이 오픈소스 보안을 대폭 개선하기 위한 출발점이다.
개발자 워크플로우와 툴의 발전
오픈소스 프로젝트의 보안은 지난 몇 년 동안 상당한 진전을 이뤘다.
앞서 언급한 SSDF 프레임워크부터 시그스토어(Sigstore) 및 SLSA에 이르기까지, 상호 보완적인 여러 프로젝트를 통해 오픈소스 출처, 변조 여부 등을 확인할 수 있는 더 신뢰성 높은 개발자 툴체인을 만들었다.
이를 전반적으로 “기원(provenance)”이라고 하며, 이런 오픈소스 프로젝트는 npm, 메이븐, 파이파이와 같은 주요 프로그래밍 언어 레지스트리에 적극적으로 반영됐다.
또한 쿠버네티스 자체도 시그스토어를 사용한 소프트웨어 서명을 지원한다.
eBPF 및 실리움(Cilium)과 같은 추상화는 소프트웨어 공급망 보안 가시성과 구현을 리눅스 커널 더 가까이 가져오고 있다.
오픈소스 생태계는 이런 방식으로 개발자 워크플로우 전반에서 오픈소스 구성요소의 기원을 더욱 네이티브하게 만들기 위한 기본 요소를 강화하고 있다.
특히 주목할 만한 기술은 체인가드가 만들고 유지보수하는 오픈소스 배포판인 울피(Wolfi)다.
체인가드는 시그스토어와 SLSA의 공동 설립자들이 만들었다.
울피는 배포판의 군더더기를 빼서 가장 필수적인 구성요소만 포함하며, 업데이트된 패키지만 다운로드할 수 있도록 하는 독창적인 롤링 릴리스 케이던스를 채택했다.
개발자는 더 이상 배포판 외부에서 오픈소스 소프트웨어를 다운로드할 필요가 없다.
이 배포판은 필수적이지 않은 모든 패키지를 없애므로 CVE 또는 CVSS 점수가 실질적인 취약점을 나타내며 거짓 음성(false negative)을 놓칠 일이 없다.
배포판의 코드와 버그, 취약점이 더 줄어든 만큼 울피는 사용자에게 더 많은 심각도 수준 데이터 CVSS 점수를 제공할 수 있고 새로운 버전의 오픈소스 소프트웨어 패키지를 지원한다.
1주년을 맞은 울피는 1,300개의 패키지 구성을 지원하며, 도커 스카우트(Docker Scout), 그라이프(Grype), 스니크(Snyk), 트리비(Trivy), 위즈(Wiz), 프리즈마 클라우드( Prisma Cloud)와 같은 주요 컨테이너 보안 업체의 스캐너도 울피를 지원한다.
로렝은 “과거 오픈소스는 소스코드의 무료 복사본을 영구적으로 갖는다는 것을 의미했다.
더 이상 소프트웨어는 그렇게 작동하지 않는다.
취약점이 발견되는 속도가 빠른 만큼 소프트웨어의 모든 부분을 지속적으로 업데이트할 계획을 세워야 한다.
소프트웨어는 만료된다. 더 이상 정적인 문제가 아니라 동적인 문제다”라고 말했다.
앞으로 몇 년은 오픈소스 보안의 책임 구도가 바뀌고 배포판이 속도를 우선시함으로써 더 뛰어난 보안을 제공할 수 있는 잠재력을 보여주는 흥미로운 기간이 될 것이다.
기업 역시 사용하는 오픈소스에 대해 훨씬 더 까다로워지는 동시에, 이미 존재할 수 있는 취약점을 찾아서 수정하는 데 있어 더 민첩해져야 한다.
이게 효과가 있을까?
충분하다고는 할 수 없겠지만, 적어도 한 가지는 확실하다.
기업이 필요로 하는 오픈소스 보안을 제공하지 못하는 배포 패턴에 더는 의존할 수 없다는 사실이다.
출처 : https://www.itworld.co.kr/news/311126
위 포스팅이 문제될 시 삭제하겠습니다.
댓글 없음:
참고: 블로그의 회원만 댓글을 작성할 수 있습니다.