[사진=게티이미지]
[사진=게티이미지]

지난 글에 이어 이번 글에서는 소프트웨어 구성분석(Software Composition Analysis, SCA) 툴을 선택하는 방법과 애플리케이션 개발, 보안 및 지적재산팀과 협력하여 올바른 툴에 대한 합의에 이르는 방법에 대해 알아본다.

이전 기고문 확인하기
☞ 소프트웨어 구성분석(SCA)을 통해 오픈소스(OSS) 위험성을 관리하는 방법 ①

팀은 OSS가 개발자의 워크플로우에 들어갈 수 있는 다양한 방법을 처리할 툴을 선택해야 한다. 이는 다음과 같은 형식일 수 있다.

- 기업에 있는 모든 프로그래밍 시스템에 대한 패키지 관리자
- 기업 외부에서 아티팩트 직접 다운로드
- 데이터베이스·애플리케이션 라이브러리와 같이 사전패키징된 오픈소스 구성요소가 포함된 컨테이너
- 오픈소스 코드에서 코드를 복사하여 붙여넣기

세 팀(애플리케이션 개발, 보안 및 법률) 간의 문제 알림 및 문제 해결 워크플로우를 자동화하여 문제를 최대한 신속하게 해결해야 하며, 선택한 SCA 툴에 조직의 요구 사항에 가장 적합한 워크플로우 기능이 있는지 확인해야 한다.

보안 및 법무팀으로부터 기대하는 업무 할당량과 서비스 수준(예를 들면 응답시간)을 설정하는 것도 중요하다. 아쉽게도 가용 리스크 관리 전문가 수에 비해 개발자 수의 비율이 확대되고 있어, 인재 영입은 물론 필요한 자금을 확보해 팀원들이 필요에 따라 역량을 강화할 수 있도록 도와야 할 것으로 보인다. 

나중에 자세히 설명하겠지만, 애플리케이션 개발팀이 OSS 리스크 관리에서 자급자족할 수 있도록 최종 목표를 갖고 팀을 위한 OSS 보안 및 지적재산 학습 프로그램을 수립해야 한다.

SCA의 지속적인 적용을 보장하라
오픈소스 소프트웨어의 사용 위험을 최소화하려면 소프트웨어 개발을 담당하는 애플리케이션 리더가 SCA 툴이 조직 전체에 사용되도록 해야 한다. 개발자가 코드 작성을 시작하는 즉시 SCA 툴이 사용되도록 해야 한다. 

이러한 툴은 프로세스의 모든 단계에서 지속적으로 적용되어야 한다. 여기에는 통합개발환경(IDE) 플러그인을 통한 코딩, 지속적인 통합을 통한 통합 실행 및 지속적인 제공을 통한 배포 등 라이프 사이클의 모든 단계가 포함된다.

SCA 공급업체가 최근 실시한 설문조사에서 응답자의 81% 이상이 개발자가 애플리케이션 코드의 보안을 “소유”해야 한다고 말했다. 이러한 가정을 바탕으로, 애플리케이션 개발 리더는 그들의 코드가 의존하는 OSS 공급망을 보호하기 위한 툴의 조달 예산, 툴의 올바른 적용 및 유지 관리에 필요한 교육도 갖춰야 한다.

애플리케이션 개발 리더는 애플리케이션 개발을 위한 OSS 사용이 어디에나 존재하며, SCA와 같은 필수 툴은 오늘날 엔지니어링 툴킷에서 협상 대상이 될 수 없다는 점을 고려해야 한다. 

SCA 이니셔티브에 필요한 자금을 확보하기 위해 사용할 수 있는 4개 전략은 아래와 같다.

1. SCA가 수동적인 노동을 자동화하여 전반적인 비용절감을 가져오는 투자임을 보여라.
2. SCA가 오픈소스 구성 요소 사용에 대해 인지된 실제 두려움을 줄인다는 것을 증명하라.
3. SCA는 특정 연방, 주, 지역, 산업 또는 기업의 법률, 규제 정책 및 명령을 준수해야함을 알려라. 이것은 전형적으로 가장 성공적인 동기부여 전술이다. 
4. SCA가 경쟁업체보다 더 안전한 솔루션을 제공하는 데 도움이 되었음을 보여라.

SCA 툴은 비교적 새롭고 정교하며, 인터넷에서도 해당 주제에 대한 무료 자원이 전반적으로 부족하다. 따라서 기업이 선택한 SCA 공급업체에서 제공하는 교육에 액세스할 수 있도록 하여 팀이 툴킷을 마스터할 수 있도록 해야 한다. 

SCA 관련 교육 기회는 흔치 않지만 증가하고 있다. 리눅스 파운데이션(Linux Foundation)은 여러 보안 코딩 주제 중에서 SCA를 다루는 보안 소프트웨어 개발 인증서를 제공한다. 

게임화된 보안 코딩 마이크로 러닝 플랫폼인 시큐어 코드 워리어(Secure Code Warrior)는 최근 깃허브(GitHub) 코드 스캔에 상황별 학습을 제공하는 작업을 도입했다. 이 작업은 산업 표준인 SARIF 파일을 처리하고 SARIF 규칙 개체의 CWE 기반으로 학습 자료를 추가한다. 

즉, 개발자는 SCA 공급업체의 깃허브 작업을 사용하여 취약점을 찾은 다음 CWE와 관련된 학습 링크로 결과물을 보강할 수 있다.

 

글: 아룬 바츄(Arun Batchu) / 수석애널리스트 / 가트너

관련기사

저작권자 © ITBizNews 무단전재 및 재배포 금지