Replicated

소프트웨어 공급망 공격과 SBOM, CC 인증 본문

소프트웨어 보안개발방법론

소프트웨어 공급망 공격과 SBOM, CC 인증

라구넹 2025. 6. 12. 17:08

소프트웨어 공급망 (Software Supply Chain) 공격

- 소프트웨어가 개발되어 최종 사용자에게 전달되기까지의 전체 과정에서..

- 소프트웨어 복잡도 증가로 인해 서드 파티 라이브러리와 컴포넌트 사용

- 하나의 소프트웨어 모듈 취약점이 전체 시스템에 영향

-> 개발부터 배포까지 각 단계가 공격 대상 .. 공격 표면이 확대

 

유형

- 공개 SW 보안 취약점

- 타사 의존성

- 공용 리포지토리

- 변환 시스템

- 업데이트 가로채기

- 공급사 및 협력사

 

소프트웨어 공급망 보안 필요성

- 다양한 기능을 가진 현대 소프트웨어는 수많은 외부 라이브러리 컴포넌트로 구성

- 1개의 어플리케이션에 많은 종속성 존재 가능

- 소프트웨어 공급망 공격은 피해가 광범위하고 지속적으로 발생 가능

- 소프트웨어 공급망 공격을 체계적으로 대응하기 위한 보안 강화 조치 필요

 

 

소프트웨어 공급망 보안을 위한 역할별 보안 활동

개발사 보안 활동

- SW 설계, 구현, 검증 등의 개발 단계에서 보안 활동을 통해 보안 취약점을 최소화

- SW에 포함된 라이브러리와 빌드 및 배포 체계의 보안성 확보


공급사 보안 활동

- 제공되는 SW 무결성 유지

- 보안 취약점 관리 및 대응, 운영사 및 개발사 통보

 

운영사 보안 활동

- 보안 및 공급망 위험 관리 요구사항 정의 및 평가

- 안전한 제품 설치 및 보안 모니터링 수행

- 지속적인 제품 패치 및 업그레이드 일정 수립 및 진행

- SW 및 관련 시스템의 안전한 운용을 위한 교육 및 훈련 진행


 

SBOM (Software Bill of Material)

- 전통적인 제조업에서 사용하던 BOM 개념을 소프트웨어 영역에 적용

- 소프트웨어 구성요소 명세서 .. 소프트웨어를 구성하는 모든 컴포넌트의 상세 목록

- 소프트웨어 구성요소를 기술한 일종의 메타 데이터

- 소프트웨어 전체 구성 요소를 목록화

- 라이선스 정보, 버전 정보, 구성 요소의 세부 정보 및 공급 업체 정보 등이 포함

- 현대 소프트웨어 개발 환경의 복잡성과 보안 위협의 증가에 대응하기 위한 방안

- 소프트웨어 공급망의 투명성과 보안성 확보를 위해 도입

 

SBOM 구성

- 컴포넌트와 의존성 정보: 모든 소프트웨어는 컴포넌트와 의존 관계로 구성

- 라이선스와 버전 정보: 소프트웨어 관리 및 무결성 유지에 중요한 정보

    - 컴포넌트 정보: 이름, 버전, 공급자, 라이선스

    - 의존성 정보.. 의존성 관계에 대한 정보

 

 

효율적 SBOM을 위한 최소 요건

- SBOM에 포함될 정보는 아직 명확하게 정의되지 않음

- 미국 CISA에서 SBOM 최소 요건 세 가지를 제정 후 개정 작업 진행 중

 

1. 데이터 필드

- 공급자명, 타임스탬프, 저작권자, 구성요소명, 버전, 고유 식별자, 종속성 관계

 

2. 자동화 지원

- 수작업 없이 자동화 툴 등을 이용하여 SBOM 생성 가능해야 함

- 표준화된 데이터 포맷 사용

 

3. 관행 및 프로세스

- SBOM을 업데이트하고 제공해야 하는 방법과 시기와 관련된 6가지 요구사항

- Frequency: 새롭게 빌드 또는 릴리즈되는 경우 새로운 SBOM을 반드시 생성

- Depth: SBOM 작성자는 최상위 구성요소부터 하위 구성요소까지 포함하여 모든 종속성을 표시

- Known Unknowns: SBOM에 종속성이 표시되지 않는 경우에 표기

- Distribution and Delivery: SBOM을 적절한 접근 권한과 방식을 통하여 제공

- Access Control: SBOM 공개 범위에 따라 적절한 접근제어 조건을 지정

- Accomandation of Mistake: SBOM 생성은 아직 초기 단계로 SBOM 수요자는 의도하지 않은 오류 또는 누락을 용인

 

 

SBOM의 효과와 한계

효과

- 투명성: 고객 및 사용자가 안전한 소프트웨어를 구매할 수 있도록 투명성 제공

- 책임성: 개발자와 제조사에게 책임을 부여하고 SW 품질 향상에 도움

- 식별성: SW의 보안 취약점, 라이선스 이슈 및 법령 준수 관리

- 보안관리: 복잡한 SW 공급망 위험성 평가 관리

 

개발자

-> 공개 SW 및 타사 SW 구성요소를 이용하여 개발을 진행할 경우, 해당 구성요소의 버전 식별 및 보안 취약점에 신속하게 대응 가능

 

구매자

-> 제품의 전반적인 위험 수준 평가에 활용 가능

 

운영자

-> 새로 발견된 보안 취약점에 대한 빠른 인지 및 관리

 

한계

- 추적의 한계 존재

- SBOM 표준 및 도구 부족

- 추가적인 전문 인력 및 추가 리소스가 필요하여 중소기업 등에 적용이 어려움


CC (Common Criteria) 인증이란?

- 정보 보호 제품의 보안성을 평가하는 국제 표준 평가 인증 제도

 

CC 인증 대상 상품군

- 네트워크 보안 제품: FW, VPN IPS, VPN 등

- 시스템 보안 제품: Secure OS, Anti-Virus, 매체제어 솔루션 등

- 데이터 보안 제품: DB 보안, 문서보안(DRM), 데이터 유출 방지(DLP) 등

- 기타 보안 관련 제품

 

CC 인증 특징

- 각 제품군에 대한 고유한 보안 요구사항과 평가 기준 정의

- 필요에 따라 검증필 암호모듈 탑재 필수

- EAL1~7 까지 7단계 보증 등급 구분

 

CC 인증 항목

 

보안 기능 요구사항

- 보안 감사: 감사 데이터 생성 및 저장 등

- 암호 및 데이터 보호: 키 생성/관리, 암호 연산 및 암호 데이터 보호 등

- 식별 및 인증: 사용자 식별, 인증 메커니즘, 인증 실패 처리 등

 

개발 환경 평가

- 개발 환경 평가: 물리적 보안, 절차적 보안 등

- 생명 주기 평가: 형상 관리, 배포 절차, 도구 및 기법 등

 

설계 평가

- 아키텍처 및 기능 명세: 구조 설계, 보안 메커니즘, 인터페이스 정의 등

- 구현 평가: 소스코드, 하드웨어 설계, 펌웨어 등

 

취약성 평가

- 취약점 분석: 오픈소스 버전, 정적 분석

 

운영 환경

- 구성 관리: 안전한 설치 및 운영 환경 등