소프트웨어 공급망에서의 비밀스러운 만남

모든 게시물

소프트웨어 공급망의 위험 중 하나는 비밀 유출입니다. 비밀은 소프트웨어 공급망 곳곳에 있습니다. 개발자와 CI\CD 파이프라인은 비밀을 사용하여 SCM, 파이프라인, 아티팩트 레지스트리, 클라우드 환경 및 외부 서비스에 액세스해야 합니다. 그리고 비밀이 도처에 널려 있는 경우, 그것이 누출될 때까지는 시간 문제입니다. 

이 위험은 잘 식별되어 있으며 많은 소프트웨어 공급망 프레임워크에서는 비밀 검색 및 비밀 자체 만료를 요구하여 이를 해결합니다.

그렇다면 보안 실무자로서 이러한 가드레일을 설치했다면 어떤 문제가 발생할 수 있습니까? 

이번 주에 비밀 스캐닝 도구를 조사하던 중 한 가지 답을 발견했습니다. 대답은 간단합니다. 비밀 스캐너는 비밀 패턴을 검색하므로 비밀 형식이 변경되면 탐지가 실패할 수 있습니다. 이것이 바로 GitHub가 새로운 보안 기능을 도입했을 때 일어난 일입니다. 세분화된 토큰. 이 베타 기능은 비밀 유출 위험을 줄이는 GitHub의 방법 중 하나입니다. 개인용 액세스 토큰의 권한을 제한하면 이러한 비밀이 손상되었을 때 발생할 수 있는 위험도 제한됩니다.

GitHub 스크린샷

새 토큰의 형식은 약간 다른 반면 이전 토큰의 형식은 다음과 같습니다.

ghp_123456789012345678901234567890123456

새로운 토큰 형식은 다음과 같습니다:

github_pat_123456789012345678901234567890123456789012345678901234567890…

접두사와 비밀의 길이는 모두 다릅니다. 

실제로 일부 비밀 스캐너는 새로운 형식을 감지하지 못합니다.

실험을 위해 Trivy 작업을 실행하는 작업 흐름과 비밀이 포함된 Dockerfile을 사용하여 저장소를 만들었습니다. 실험 시작 시 Dockerfile은 다음과 같습니다.

GitHub 스크린샷

다음은 새로 형식화된 비밀을 감지하는 GitHub Secret Scanner의 스냅샷입니다.

GitHiub 스크린샷

보시다시피 GitHub의 비밀 스캐너는 비밀을 감지하지만 코드 스캔 섹션에는 경고가 표시되지 않습니다.

도구가 올바르게 설정되었는지 확인하기 위해 이제 Dockerfile에 클래식 비밀을 추가하고(아래 참조) 스캔을 다시 실행하겠습니다. 이제 우리는 코드 스캔 경고를 받습니다(클래식 비밀에만 해당됩니다!)

GitHub 스크린샷

반면 Github의 스캐너는 이제 두 가지 비밀을 감지합니다.

GitHub 스크린샷

Trivy에 대한 보안 문제를 열었습니다. Trivy 팀은 이것이 취약점이나 보안 문제가 아니라고 응답했습니다. 이제 남은 일은 이슈를 여는 일뿐이었습니다. 

이 실험은 많은 우려를 불러일으킵니다.

  • GitHub 사용자가 새로운 기능으로 인해 토큰 형식이 수정될 것이라고 의심해야 하는 이유는 무엇입니까? 
  • 비밀이 임의의 문자열처럼 보인다면 GitHub 사용자가 비밀의 형식에 신경을 써야 하는 이유는 무엇입니까?
  • GitHub는 이러한 변경 사항에 대해 고객에게 업데이트를 담당해야 합니까? 
  • 이 비밀 탐지 실패는 GitHub의 세분화된 비밀의 취약점인가요, Trivy의 취약점인가요, 아니면 Aqua Security가 보는 것처럼 전혀 취약점이 아닌가요? 
  • Trivy를 개발한 Aqua Security가 업데이트를 책임져야 할까요? 
  • Trivy는 있는 그대로 제공되는 오픈 소스 프로젝트이므로 Trivy가 보호하는 파이프라인에서 비밀이 유출된 경우 누구에게나 책임이 있습니까? 누구일까요? GitHub? 아쿠아 시큐리티? Trivy 사용자인가요? 
  • 이 실험은 소프트웨어 공급망을 보호하기 위해 설치된 보안 도구를 신뢰하는 것에 대해 무엇을 가르쳐 줍니까? 

이 질문은 열어 두겠습니다.

하지만 한 가지는 분명합니다. 소프트웨어 공급망을 보호하는 것은 복잡하며 이 작업을 지속적으로 성공하려면 고도로 전문적인 커뮤니티가 필요합니다.

이 게시물은 Avi Waxman, Scribe Security 인턴

이 콘텐츠는 소프트웨어 공급망 전반에 걸쳐 코드 아티팩트와 코드 개발 및 전달 프로세스에 최첨단 보안을 제공하는 선도적인 엔드투엔드 소프트웨어 공급망 보안 솔루션 제공업체인 Scribe Security에서 제공합니다. 자세히 알아보기.