4단계: 수정 전략 생성
통합을 설정하고, 조직을 생성하고, 프로젝트를 가져온 후에는 이제 비즈니스의 현재 취약점 백로그에 대한 가시성을 확보하게 되었습니다.
중요한 집중 영역 결정
특정 취약점을 살펴보기 전에 조직 및 리포지토리(Snyk의 타겟)를 고려하여 특별히 중요한 영역이 있는지 생각해보십시오. 1단계에서 수행한 비즈니스 크리티컬 애플리케이션 검색은 이 단계에서 정보를 제공하고 우선순위를 지정하는 데 도움이 될 수 있습니다. 예를 들어, 조직이 서로 다른 제품과 일치하는 경우 처음에 사용자가 가장 많거나 보안이 가장 중요한 제품 하나에 집중할 수 있습니다.
조직에서는 애플리케이션의 서로 다른 부분을 구성하는 리포지토리를 고려할 수 있습니다. 민감한 데이터를 처리하거나 외부에 노출된 영역은 보안을 유지하는 것이 더 중요할 수 있으므로, 이는 검토할 초기 프로젝트 목록을 좁히는 또 다른 방법이 될 수 있습니다.
**속성(Attributes)**을 사용하여 프로젝트에 메타데이터를 추가한 경우, 이는 고려 중인 프로젝트 수를 필터링하는 좋은 방법이 될 수 있습니다.
개발 팀별 작업 그룹화
우선순위를 지정할 프로젝트 세트를 줄인 후, 이를 서로 다른 개발 팀 간에 나눌 수 있습니다. 예를 들어, 오픈소스 및 자체 코드의 문제를 해결하는 개발 팀과 컨테이너 및 베이스 이미지 취약점을 담당하는 별도의 DevOps 팀이 있을 수 있습니다.
우선순위 지정 방법
어떤 문제를 더 시급하게 수정해야 하는지 우선순위를 정하는 데 도움이 되는 필터가 제공됩니다. 다음 검색 기준은 우선순위 계획을 세울 때 가장 흔히 사용되며, 결과를 분석할 때 반복적으로 또는 조합하여 사용할 수 있습니다.
심각도 (Start with High and Critical). 치명적(Critical) 심각도로 필터링하는 것이 일반적입니다. 하지만 Snyk Code는 높음(High)까지만 제공되므로, Snyk Code를 사용하는 경우 코드 분석 결과에 대해 거기서부터 시작하십시오.
익스플로잇 성숙도(Exploit Maturity) (Mature 또는 Proof of Concept가 있는 문제는 더 악용되기 쉽습니다). 이 필터를 선택하면 암시적으로 오픈소스로만 결과가 필터링됩니다.
수정 가능 여부 (패키지 업그레이드를 통해 수정이 가능한 경우 훨씬 더 빠르게 수정할 수 있습니다).
오픈소스 취약점에 대한 CVSS 점수
우선순위 점수(Priority Score) (위의 값들을 사용하여 이 점수를 계산합니다). 한 가지 전략은 점수가 900-1000점인 취약점을 제거한 다음 점수가 800-900점인 취약점으로 이동하는 식입니다.
수정 전략을 계획할 때 어떤 지표를 사용할지 결정하고 타임라인을 구체화하십시오. 예를 들어 심각도별로 수정하기로 선택한 경우, 심각도당 취약점을 해결하는 데 걸리는 시간을 추정하십시오. 수정 전략은 구체적으로 세우는 것이 권장됩니다.
예시
팀 규모와 업무량에 따라 치명적 심각도 문제가 50개, 높은 심각도 문제가 100개인 경우, 치명적 취약점을 수정하는 데 2주, 높은 심각도 문제를 수정하는 데 4주를 계획할 수 있습니다.
또는 문제 유형별로 수정할 수 있습니다.
문제 유형별 수정
처음에 특정 문제 유형(예: 오픈소스 취약점)에 집중하는 것도 흔한 일입니다. 그렇게 하면 서로 다른 프로젝트 간의 문제를 더 쉽게 비교할 수 있기 때문입니다.
다음은 서로 다른 유형의 팀이 수정을 주도하는 경우의 프로세스 예시입니다.
예시: 개발자 주도 우선순위
임원으로부터 라이선스 위험을 최소화하라는 지침을 받은 개발자 주도 구현:
Snyk 오픈소스에서 식별된 모든 라이선스 문제를 해결합니다.
Snyk 오픈소스에서 수정 가능한 모든 치명적 또는 높은 심각도 취약점을 해결합니다.
높은 심각도 문제부터 시작하여 코드 분석 프로젝트(Snyk Code 사용)로 초점을 옮깁니다.
애플리케이션/환경을 실행하는 데 사용하는 컨테이너 및 IaC 파일을 스캔합니다.
예시: DevSecOps 주도 우선순위
사용자 지정 이미지 및 환경 보안에 중점을 둔 DevSecOps 주도 구현:
개발 팀이 가져오는 모든 사용자 지정 베이스 이미지를 스캔하고 보안을 유지합니다.
컨테이너 레지스트리와 통합하고 개발 팀에 제공하는 이미지를 스캔합니다.
공통 내부 도구를 추가하고 이미지 매개변수를 표준화한 후 선택하여 빌드한 이미지를 스캔합니다.
개발자가 배포 전에 컨테이너가 안전하게 유지되도록 자체 도구/패키지를 추가한 후 컨테이너를 스캔하는지도 확인하십시오. 이 스캔은 애플리케이션 취약점도 감지합니다.
컨테이너의 보안을 확보한 후에는 보안 침해로 이어질 수 있는 잘못된 구성에 대해 IaC 파일과 클라우드 환경을 적극적으로 스캔하기 시작합니다.
애플리케이션 취약점을 줄이기 위해 오픈소스 및 코드를 스캔하도록 개발 팀에 Snyk을 도입합니다.
타겟팅된 취약점 캠페인
개발 프로세스에서 보안 테스트를 운영함에 따라 수정 전략의 또 다른 옵션은 SQL 인젝션과 같은 취약점 유형을 제거하기 위한 캠페인을 진행하는 것입니다. 검색 필터에서 CWE를 사용하는 것은 문제를 식별하고 기록하기 위한 보고에서 매우 유용할 수 있습니다.
타임라인 업데이트
수정 전략을 수립했다면 7단계의 타임라인을 업데이트하십시오.
Last updated