Industry Issue

안전한 소프트웨어 공급망의 중요한 측면

Software Risk Analysis
작성자
관리자
작성일
2024-03-12 12:44
조회
64

안전한 소프트웨어 공급망의 중요한 측면

 

Log4J 제로데이 취약점, SolarWinds 공격, Alex Birsan의 애플과 마이크로소프트 해킹의 공통점은 무엇일까요?

답은 간단합니다. 바로 소프트웨어 공급망 보안입니다. 하지만 위에 언급한 각 사례는 소프트웨어 공급망 보안의 다른 측면을 강조합니다.

소프트웨어 공급망의 정의는 누구와 어떤 맥락에서 이야기하는지에 따라 다르지만, 간단히 말해서 소프트웨어 공급망을 보호한다는 것은 외부 소스의 소프트웨어를 분석하는 것을 의미합니다. 여기에는 오픈 소스 코드, 상용 기성품(COTS) 소프트웨어, 펌웨어, 컨테이너 이미지, API 및 자체 개발하지 않은 기타 모든 리소스가 포함될 수 있습니다. 언뜻 보기에는 공급망이 손상되면 가장 큰 영향을 받을 수 있는 소프트웨어 소비자에게만 해당되는 문제처럼 보일 수도 있겠지만 사실은 그렇지 않습니다. 다운스트림 위험으로부터 애플리케이션을 보호하고 소비자에게 보안 노력에 대한 투명성을 제공하기 위해 필요한 조치를 취하는 것은 소프트웨어 생산자의 책임이기도 합니다.

외부 소프트웨어 분석에는 위험을 줄이기 위해 사전 예방적, 그리고 사후 대응적 노력이 포함되어야 합니다. 즉, 안전한 코드를 작성하고, 취약한 종속성을 애플리케이션 수명 주기에서 제외하며, 새로운 취약점을 지속적으로 모니터링 해야 합니다. 뿐만 아니라 상태가 좋지 않은 종속성을 피하고, 악성 코드나 멀웨어의 주입으로부터 전체 개발 수명 주기를 보호하는 등의 노력을 기울여야 합니다. 이 모든 작업은 소프트웨어 소비자가 현재 시행 중인 관행과 위험을 초래할 수 있는 애플리케이션의 내용에 대해 문의할 것이라는 예상을 바탕으로 수행되어야 합니다.

애플리케이션 보안 테스트를 위한 핵심 역량 보고서에서는 소프트웨어 공급망 보안 사용 사례를 나열하고 모든 조직이 소프트웨어 공급망 보안을 위해 고려해야 할 사항을 공유합니다. 이러한 핵심 역량을 다음과 같이 자세히 살펴보겠습니다.

 

소프트웨어 공급망 보안

Gartner는 소프트웨어 공급망 보안을 공급망 보안의 가장 중요한 역량으로 꼽았습니다. 혼란스럽거나 중복되어 보일 수 있지만, 소프트웨어 공급망 보안은 사용 사례 또는 창의적인 활용법에 대한 소프트웨어 공급망 보안 설명과 특징 및 기능의 그룹화로서의 소프트웨어 공급망 보안 설명에는 차이가 있습니다. 우리는 전자를 달성하기 위해 후자를 사용하는 것에 대해 이야기하고 있습니다.

이 기능과 관련된 기능은 팀이 외부 소프트웨어로 인한 위험을 사전에 완화할 수 있도록 지원하는 기능으로 분류할 수 있습니다. 팀은 제대로 유지 관리되지 않는 프로젝트, 부적절한 보안 제어, 취약점 또는 악성 코드의 이력, 유지 관리자의 낮은 평판 등과 같은 문제가 있는 지표로 소프트웨어에 대해 평가함으로써 사전 예방적 조치를 취할 수 있습니다. 여기에는 소비자가 공급자가 구축한 소프트웨어의 보안을 자체적으로 평가하는 데 사용할 수 있는 아티팩트를 생성하고 관리하는 작업도 포함됩니다. 이는 소프트웨어 자재 명세서(SBOM) 또는 소프트웨어가 조직에 초래하는 위험의 정도를 더 잘 이해하는 데 사용할 수 있는 보안 관행 증명서의 형태로 제공될 수 있습니다.

 

소프트웨어 구성 분석



애플리케이션을 구축하는 데 사용되는 모든 외부 종속성을 식별하는 것을 어려울 수 있습니다.

평균 애플리케이션 코드의 75% 이상이 오픈 소스 프로젝트에서 가져온 것입니다. 개발 팀에게 어떤 종속성을 사용하는지 수동으로 추적하도록 요청하는 것은 최신 개발 관행과 패키지 관리자 및 종속성 트리의 작동 방식이 현실과 동떨어져 있음을 보여줍니다. 하지만 이러한 종속성에 대한 완전한 가시성이 없으면 애플리케이션에 영향을 미치는 공급망 위협을 추적할 수 없습니다. 소프트웨어 구성 분석(SCA)이 소프트웨어 공급망 보안에서 매우 중요한 역할을 하는 이유가 바로 여기에 있습니다.

SCA 도구는 DevOps 통합을 통해 개발 파이프라인에 직접 구축하여 오픈 소스(때로는 상용 및 사용자 지정 구성 요소)를 자동으로 감지할 수 있습니다. 또한 보안 영역, 라이선스 및 모든 상태 위험과 연결하여 정책을 시행하고 필요에 따라 문제를 해결할 수 있도록 도와줍니다.

SCA 도구는 종속성을 식별하고 팀이 위험에 대처할 수 있도록 지원할 뿐만 아니라, 소프트웨어 소비자에게 공급망 투명성을 제공하기 위해 팀이 애플리케이션과 함께 제공할 수 있는 SBOM을 생성합니다.

 

컨테이너 보안 스캔

애플리케이션을 구축하고 컨테이너에 패키징하는 것은 널리 사용되는 배포 방법이 되었습니다. 이를 통해 팀은 수요에 맞게 배포를 쉽게 확장하고, 다양한 배포 환경과 관련된 문제를 극복하고, 애플리케이션 개발에 대한 마이크로서비스 접근 방식을 구현할 수 있습니다. 하지만 컨테이너를 보호할 때 최신 앱보안 방식만으로는 충분하지 않습니다.

기본 이미지는 컨테이너에서 취약점을 스캔하기 가장 쉬운 부분입니다. 실제로 많은 컨테이너 레지스트리가 자체적으로 어느 정도 기본 이미지를 처리합니다. 그러나 기본 이미지 위에 무수히 많은 레이어가 추가되어 숨겨진 문제가 있을 수 있습니다. 위험에 대해 실제 상황을 파악하려면 컨테이너 이미지가 구축된 후 스캔해야 합니다. 따라서 보안팀은 컨테이너 이미지를 구성하는 파일 구조를 분석하여 종속성과 관련 위험을 식별할 수 있는 솔루션의 우선순위를 정해야 합니다. 그렇지 않으면 컨테이너가 소프트웨어 공급망의 약한 연결고리가 될 수 있습니다.

 

정적 애플리케이션 보안 테스트

개발 및 보안 팀은 외부 위협으로부터 애플리케이션을 보호하는 데 수많은 시간과 비용을 투자할 수 있지만, 자체 코드를 안전하게 작성하지 않는다면 이 모든 것이 무용지물이 될 것입니다. 전통적으로 코드 리뷰는 이를 위한 것이지만 이러한 수동 작업은 비효율적이고 시간이 많이 소요될 수 있습니다.

정적 애플리케이션 보안 테스트(SAST) 도구는 소스 코드를 자동으로 스캔하여 버퍼 오버플로, SQL 인젝션, 크로스 사이트 스크립팅과 같은 문제를 일으킬 수 있는 잠재적인 보안 취약점을 평가합니다. 이러한 유형의 결함은 육안으로 탐지하기 어려울 수 있지만, SAST는 정확하고 빠르게 일정한 주기로 탐지할 수 있습니다. 데이터 삭제와 같은 단순한 결함으로 인해 심각도가 높은 취약점이 무수히 발생할 수 있는 경우, SAST 도구를 사용하면 개발 팀이 업스트림 위험에 빠지지 않도록 하는데 큰 도움을 줄 수 있습니다.

 

애플리케이션 보안 상태 관리

소프트웨어 공급망을 보호한다는 것은 전체 애플리케이션 수명 주기에 걸쳐 위험을 관리한다는 것을 의미합니다. 이를 위해서는 다양한 도구와 프로세스가 필요하며, 이로 인해 필연적으로 다양한 결과를 낳게 됩니다. 애플리케이션 보안 태세 관리(ASPM) 도구는 수명 주기 전반에 걸쳐 모든 다양한 테스트를 자동화하는 동시에 각 테스트의 결과를 수집하는 데 도움이 됩니다.

ASPM의 이점은 두 가지입니다. 첫째, 스캔이 수행되기 전에 팀은 ASPM을 사용하여 모든 테스트 유형에 대한 정책을 정의하고 각 테스트가 수행되는 시기와 어떤 결과가 어떠한 워크플로를 트리거해야 하는지 구성할 수 있습니다. 둘째, 결과가 생성되면 ASPM 도구는 결과를 상호 연관시키고 분석하여 팀에 문제를 분류하고 해결하기 위한 단일 대시보드를 제공합니다. 간단히 말해, ASPM은 개발 중인 모든 애플리케이션의 전체 소프트웨어 공급망에 걸쳐 위험에 대한 단일한 그림을 제공합니다.

 

개발자 지원

개발자는 공급망 위협에 있어 최전선에 있는 방어선입니다. 개발자는 애플리케이션을 구축하기 위해 어떤 타사 종속성을 활용할지 결정할 뿐만 아니라 이 블로그에서 언급한 도구로 식별된 문제를 해결해야 할 책임도 있습니다.

따라서 개발자가 이미 있는 곳에서 개발자를 만나는 것이 중요합니다. 보안팀은 코드 한 줄을 작성하기 전에 조직이 감당할 수 있는 위험의 정도에 맞춰 정책을 정의해야 합니다. 스캔은 IDE 및 SCM과 같은 개발 도구와 직접 연동하여 자동으로 정책을 트리거하고 시행해야 합니다. 또한 식별되어 개발팀으로 전송되는 모든 이슈에는 코드 위치, 이슈 유형, 해결 지침, 특정 이슈와 관련된 교육/훈련 옵션 등 해결 노력에 도움이 될 수 있는 최대한 많은 정보가 포함되어야 합니다. 공급망 초기에 문제를 발견할수록 문제를 더 빨리 해결할 수 있습니다. 이렇게 하면 위험을 줄이고 수정에 필요한 리소스에 대한 부담을 줄일 수 있습니다.

 

Synopsys의 지원 방법

12개 공급업체를 대상으로 실시한 Gartner 분석에서 소프트웨어 공급망 보안 사용 사례를 충족하는 능력으로 최고 점수를 받은 것을 자랑스럽게 생각합니다. 당사의 애플리케이션 보안 테스트(AST) 포트폴리오는 다양한 고객의 요구와 요구 사항을 충족하는 소프트웨어 공급망 보안 솔루션을 제공할 수 있습니다.

Synopsys SCA는 소프트웨어 공급망 보안 접근 방식의 기반을 제공합니다. 거의 모든 최신 애플리케이션은 어떤 형태의 오픈 소스 또는 외부 구성 요소를 사용하며, 이러한 구성 요소를 사용하는 조직의 통제를 완전히 벗어난 곳에서 개발되므로 자연스럽게 가장 큰 위험 영역을 나타냅니다. SCA 도구는 애플리케이션 개발 파이프라인에 직접 통합되어 소스 코드, 컨테이너 이미지, 펌웨어에서 오픈 소스 및 타사 구성 요소를 자동으로 스캔합니다. 그 결과 다양한 요구 사항을 충족하도록 구성하고 내보낼 수 있는 정확하고 완전한 SBOM이 생성됩니다. 식별되어 SBOM에 추가된 각 구성 요소는 보안 취약점, 악성 패키지, 상태 및 실행 가능성, 라이선스 충돌 여부도 평가됩니다.

당사의 SAST 솔루션은 타사 코드 사이의 공백을 메우고 사내에서 작성된 코드를 강화하기 위해 작동합니다. SCA와 마찬가지로 SAST는 표준 이벤트를 트리거로 사용하여 백그라운드에서 스캔을 실행하는 개발 및 구축 도구에 내장할 수도 있습니다. SAST 고객은 빠르고 정확한 결과를 통해 개발자에게 어떠 한 문제가 프로덕션에 적용되기 전에 수정하는 데 필요한 모든 정보를 제공 받을 수 있습니다.

저희는 팀에게 가장 필요한 것은 온보딩, 구성, 결과 활용을 위한 또 다른 도구라는 것을 잘 알고 있습니다. ASPM 솔루션인 Software Risk Manager를 통해 고객은 단일 대시보드에서 전체 소프트웨어 공급망 보안 솔루션(SCA, SAST, 컨테이너 스캐닝, 개발자 지원)을 이용할 수 있습니다. 즉, 보안 및 규정 준수 팀은 모든 AST 정책을 정의하고 동일한 위치에서 상호 연관된 결과를 소비하고 분류할 수 있습니다. 정의된 모든 정책은 SDLC 통합을 통해 자동으로 적용되므로 개발팀은 업스트림 위험으로부터 애플리케이션을 보호하면서 혁신에 집중할 수 있습니다.

Software Risk Manager 더 알아보기 CLICK!!!​

원문 게시일: 2023.11.07

원문 기고자: Mike McGuire

출처: https://www.synopsys.com/blogs/software-security/critical-capabilities-software-supply-chain.html

/about-us/inquiry/
https://www.youtube.com/@softflow2018
https://blog.naver.com/softflow_group
#