바로 가기

소프트웨어 공급망 보안이란?

URL 복사

소프트웨어 공급망 보안은 위험 관리와 사이버 보안 분야의 모범 사례를 결합하여 잠재적 취약점으로부터 소프트웨어 공급망을 보호하도록 지원합니다. 소프트웨어 공급망은 애플리케이션 개발에서 CI/CD 파이프라인 및 배포에 이르는 소프트웨어 개발 라이프사이클(Software Development Lifecycle, SDLC)에서 코드를 수정하는 모든 사용자와 요소로 구성됩니다. 

이러한 공급망에는 구성 요소(예: 인프라, 하드웨어, 운영 체제(Operating System, OS), 클라우드 서비스 등), 작성자, 출처(예: 레지스트리, GitHub 리포지토리, 코드베이스 또는 기타 오픈소스 프로젝트) 등 소프트웨어에 대한 정보 네트워크가 포함됩니다. 소프트웨어 보안에 부정적인 영향을 줄 수 있는 모든 취약점도 여기에 포함되기 때문에, 소프트웨어 공급망 보안이 필요합니다.  

 

오늘날 대부분의 소프트웨어는 처음부터 새로 작성하는 대신 오픈소스 소프트웨어가 포함된 소프트웨어 아티팩트를 조합해 만듭니다. 그러나 이러한 소프트웨어 아티팩트에 취약점이 발생할 수 있으며 시간이 지날수록 개발자가 제3자의 소스 코드 또는 소프트웨어 아티팩트 변경 사항을 제어하기 어려워집니다. 패치가 적용되지 않은 소프트웨어는 보안 문제에 더 취약하다는 점에 유의해야 합니다. 소프트웨어는 일상적인 비즈니스 운영에 필수적이기 때문에 공급망 보안은 모든 조직과 보안 팀의 중요한 업무입니다.

2020년에 소프트웨어 회사 SolarWinds에서는 대기업과 정부 기관에서 사용하는 플랫폼인 Orion IT 모니터링 및 관리 소프트웨어를 통해 공격자가 악성 코드를 실행하면서 해킹이 발생했습니다. 해커는 공급망을 공격하여 SolarWinds뿐만 아니라 SolarWinds의 고객사에도 침투했습니다. Log4j는 일반적으로 사용되지만 널리 악용될 수 있는 오픈소스 소프트웨어로, 수많은 사용자와 조직을 데이터 침해와 공격에 취약하게 만들었습니다. 2021년 미국 대통령은 공급망사이버 보안에 관한 두 건의 백악관 행정 명령을 통해 소프트웨어 공급망과 보안의 중요성을 강조했습니다.

소프트웨어 공급망 구성 요소에 대한 위험은 해당 공급망 구성 요소를 사용하는 모든 소프트웨어 아티팩트가 잠재적으로 위험할 수 있음을 나타냅니다. 이러한 위험은 해커가 맬웨어, 백도어 또는 기타 악성 코드를 삽입하여 구성 요소 및 연결된 공급망을 손상시킬 수 있는 기회를 제공합니다. 일반적으로 영리를 추구하는 위협 행위자와 국가 행위자의 소프트웨어 공급망 공격이 늘어나고 있으며, 이는 디지털 환경과 실제 환경 모두에 심각한 영향을 미칠 수 있습니다. 이러한 공격은 일반적으로 다음 네 가지 위험 유형 중 하나에 해당합니다.

  • 취약점: 소프트웨어 코드의 결함으로, 악용되면 침해로 이어질 수 있습니다. 소프트웨어 아티팩트에 패치와 업데이트를 적용하면 이러한 위험을 최소화할 수 있습니다.
  • 라이센싱: 라이센스를 받은 소프트웨어 아티팩트를 오픈소스로 만들고 특허권을 무효화하도록 강제할 수 있는 법적 위험입니다. 이 분야의 법률 전문가와 상담하세요.
  • 제3자 종속성: 소프트웨어 공급망에 포함된 모든 외부 조직에 대한 종속성으로, 파악하기가 어렵습니다. 모든 제3자 코드를 분석하고 공급업체에 문의하여 보호 방법을 확인하세요.
  • 프로세스 및 정책: 없는 경우 문제가 됩니다. 취약점에 대응해야 하는 경우 개발자 및 프로세스(또는 플레이북)에 대한 정책을 생성하세요.

일반적인 공격 벡터로는 업데이트 하이재킹, 코드 서명 훼손, 오픈소스 코드 손상이 있습니다. 

DevSecOps는 문화, 자동화, 소프트웨어 설계에 대한 접근 방식으로, 전체 IT 라이프사이클에 걸쳐 보안을 공동의 책임으로 통합합니다. DevSecOps는 처음부터 애플리케이션과 인프라 보안을 고려해야 함을 의미합니다. 이는 또한 DevOps 워크플로우가 느려지지 않도록 일부 보안 게이트를 자동화해야 한다는 의미이기도 합니다. 보안 기능을 갖춘 통합 개발 환경(Integrated Development Environment, IDE) 사용에 동의하는 등 지속적인 보안 통합을 위한 적합한 툴을 선택하면 이러한 목표 달성에 도움이 될 수 있습니다.

Red Hat Advanced Cluster Security for Kubernetes는 소프트웨어 공급망과 개발자 워크플로우에 보안 점검을 통합하여 고위험 보안 문제를 감지하고 해결하는 데 도움을 줍니다. 또한 개발자에게 기존 워크플로우에서 보안 컨텍스트를 제공하여 DevOps에서 보안을 자동화합니다. 

소프트웨어 공급망은 코드를 수정하는 모든 요소와 사용자로 구성되지만 애플리케이션 보안은 공격과 취약점으로부터 코드 자체를 보호합니다. 소프트웨어 공급망 보안과 마찬가지로 애플리케이션 보안을 개발의 모든 단계에서 적용해야 합니다. 

애플리케이션 보안은 시스템에 대한 무단 액세스를 방지하고 독점 데이터를 보호하기 위해 소프트웨어 개발 라이프사이클에서 시작하여 애플리케이션 라이프사이클 전체로 확장됩니다. 공급망 무결성을 강화하면 애플리케이션 보안을 강화할 수 있습니다. 구성 강화, 공격 표면 최소화, 권한 제한, 소프트웨어 서명, 시스템의 다양한 영역에 빌드 배포 등은 모두 공격자가 애플리케이션을 손상하는 것을 막기 위해 수행할 수 있는 방법입니다. 

소프트웨어 공급망 보안은 조직, 고객, 오픈소스 기여를 활용하는 모든 조직에 중요합니다. 보안 침해를 원하는 조직은 없지만, 다른 조직에서 유사 사건이 발생하는 것에 대해서도 책임지고 싶어하지 않는 것은 마찬가지입니다. 소프트웨어 공급망을 위한 보호 기능은 반드시 구현해야 합니다.  

다음은 보안 팀이 고려해야 할 몇 가지 보안 모범 사례입니다.

  • 공급망 전체에 걸쳐 리소스(예: 개발자 툴, 소스 코드 리포지토리, 기타 소프트웨어 시스템)에 대한 최소 액세스 권한을 제공하고, 다단계 인증(MFA)과 강력한 암호 사용
  • 직원을 대상으로 정기적인 보안 교육 실시
  • 연결된 모든 기기와 민감한 데이터에 대한 보안 강화
  • 티어 1 공급업체를 시작으로 공급업체 및 비즈니스 상대 확인. 위험 평가를 실시하여 취약점에 대한 각 공급업체의 사이버 보안 상태 및 공공 정책 평가.
  • 취약한 시스템의 정기적 검사 및 패치 적용

또한 개발자는 다음과 같이 잠금 파일 및 기타 보안 중심 이니셔티브를 사용하여 보안 코딩 사례를 고려해야 합니다.

  • 체크섬의 유효성 검사
  • 소스 제어에 벤더 종속성 포함
  • SBOM(Software Bill of Material) 게시 및 사용
  • 다음을 포함하는 SLSA(Supply-chain Levels for Software Artifacts, 소프트웨어 아티팩트를 위한 공급망 수준) 채택
    • 출처 인증을 위해 소프트웨어 아티팩트에 디지털 기술로 서명하는 기능
    • 프로세스 및 정책에 자동화 활용
  • SCA(Software Composition Analysis), SAST(Static Application Security Testing), DAST(Dynamic Application Security Testing)와 같이 자동화된 보안 테스트 툴로 소프트웨어 검사

Red Hat은 소프트웨어 개발 라이프사이클 초기에 소프트웨어 구성 요소와 종속성을 보호해야 하는 필요성을 알고 DevSecOps 사례를 사용하여 모든 단계에서 보안 통합을 자동화합니다.Red Hat은 업스트림 공급망을 이해하고 1년 365일 지원을 통해 고객이 믿고 비즈니스를 맡길 수 있는 제품을 제공해 드립니다. Red Hat과 파트너는 전문성과 통합적인 DevSecOps 에코시스템을 지원하며, 조직이 소프트웨어 개발 라이프사이클 전반에서 소프트웨어 공급망 보안을 구현하도록 지원하는 기능을 제공합니다.

추가 자료

문서

DevSecOps란?

DevOps의 민첩성과 대응 능력을 최대한 활용하려면 IT 보안 팀이 애플리케이션의 전체 라이프사이클에서 주요 역할을 해야 합니다.

문서

클라우드 보안은 무엇이 다른가요?

매우 심각한 보안 문제는 기존 IT는 물론 클라우드 시스템에도 영향을 미칩니다. 차이점을 알아보세요.

문서

SOAR란?

SOAR은 사례 및 워크플로우 관리, 태스크 자동화, 중앙에서 위협 인텔리전스에 액세스하여 쿼리 및 공유할 수 있는 기능 등 보안 팀에서 사용하는 세 가지 주요 소프트웨어 기능을 가리킵니다.

보안에 대한 자세한 내용

제품

사용자 아이덴티티를 관리하고 커뮤니케이션을 비공개로 유지하는 보안 프레임워크입니다.

클라우드 네이티브 애플리케이션을 더 안전하게 빌드, 배포 및 실행할 수 있도록 지원하는 엔터프라이즈 수준의 쿠버네티스 네이티브 컨테이너 보안 솔루션입니다.

소프트웨어 개발 팀이 소프트웨어 공급망에서 취약점을 조기에 발견할 수 있도록 자동화된 통합 검사를 통해 보안을 강화하는 데 도움을 주는 기술 세트

빌트인 보안 정책을 갖춘 단일 콘솔로 쿠버네티스 클러스터와 애플리케이션을 관리합니다.

리소스