취약점을 발견하는 것은 쉬운 일입니다. 보안 작업의 핵심은 해당 수정을 병합하고 배포하는 것이므로, 취약한 종속성의 경우 Coroid가 직접 업그레이드 pull request를 생성하며, 귀사의 팀이 이를 검토하고 병합합니다.
Coroid가 업그레이드를 생성할 때
다음 기능과 함께 사용하면취약한 종속성 수정기능을 활성화하면 심각도가 ‘높음’ 이상인 종속성 문제가 해당 프로젝트에 수정 작업으로 등록됩니다:
- 패키지당 하나의 작업과 pull request해당 패키지에 영향을 주는 모든 권고 사항을 포함합니다.
- 우선적으로 치명적인 문제부터 처리그 다음으로 심각도가 높은 문제를 처리합니다.
- 프로젝트당 동시에 열리는 수정용 Pull 요청은 최대 5개입니다기본적으로 5개이며 최대 50개까지 가능합니다. 다음 수정 작업은 슬롯이 확보될 때까지 대기합니다.
소유자와 관리자는 또한수정기능을 사용하여 공개된 권고 사항이 있는 열린 종속성 문제에 대해 직접 수정 작업을 생성할 수 있습니다. 고정 버전이 아직 출시되지 않은 경우에는 대신 완화 작업이 제공됩니다: 패키지를 제거하거나 교체하고, 패치된 포크를 고정하거나 취약한 호출 부분을 보호하는 방식입니다.
현재 npm 프로젝트에서는 자동 업그레이드 기능이 지원됩니다. 다른 환경의 경우에는 ‘해당 환경에 대한 자동 수정 기능은 아직 제공되지 않습니다’라는 메시지가 표시되며, 완화 작업이 제공됩니다.
비용은 어떻게 처리되나요?
수정 작업은 AI 모델을 사용하므로 다른 작업과 마찬가지로 에이전트 시간이 소모됩니다. 이 작업들은 모든 조직에 기본적으로 적용되는보안 수정명령에 따라 실행됩니다:
- 범위: 종속성 업그레이드와 보안 완화 작업만 해당하며 그 외에는 포함되지 않습니다.
- 예산: 오직 에이전트 시간만 사용되며, 기본적으로는 월간 플랜에서 할당된 에이전트 시간의 4분의 1입니다. 소유자는 보안 → 설정 → 취약한 종속성 수정 메뉴에서 사용 시간과 주 단위 또는 월 단위 적용 여부를 변경할 수 있습니다.
- 검토 기한은 없습니다.이는 갱신이 필요한 별도의 설정이 아닌 상시 적용되는 기본값입니다.
- 우선순위: 보안 수정 작업이 다른 자발적 작업보다 먼저 처리됩니다.
조직 기본 설정에서 ‘취약한 종속성 수정’ 기능을 비활성화하면 해당 명령이 일시 중단됩니다. 이 명령은품질 관리 → 명령.
이미 연결된 저장소를 보유한 조직이 Security 기능을 사용하기 시작하면 소유자에게 알림이 발송됩니다: “보안 수정 기능이 7일 후에 시작됩니다”. 수정 작업은 해당 알림이 전달된 후 7일째 되는 날부터 시작되므로 소유자는 첫 번째 pull request가 생성되기 전에 이 기능을 비활성화할 수 있습니다. 신규 조직의 경우에는 즉시 적용됩니다.
수정 작업이 지연될 수 있는 이유
문제의 수정 섹션에 지연 사유가 명시되어 있습니다. 일반적인 이유는 다음과 같습니다:
- 프로젝트에 허용된 개방형 pull request 수가 초과된 경우;
- 명령에 할당된 예산이나 플랜의 에이전트 시간이 소진된 경우(탐지는 계속 진행됨);
- Mission Control에서 에이전트 작업이 일시 중단되었거나 사용 가능한 에이전트 슬롯이 없는 경우;
- 7일간의 알림 기간이 아직 끝나지 않은 경우;
- 호환 가능한 수정 버전이 아직 출시되지 않았거나 해당 환경에서 자동 수정 기능을 지원하지 않는 경우;
- '취약한 종속성 수정' 기능이 비활성화된 경우.
업그레이드가 선택되는 방식
취약한 패키지가 설치된 각 위치에서 Coroid는 설치된 버전보다 높으면서도 모든 관련 권고 사항을 해결할 수 있는 가장 작은 버전을 선정하며, 선언된 범위와 주요 버전 내에서만 선택합니다. 절대 다운그레이드하지는 않습니다. 한 주요 버전을 필요로 하는 작업 영역과 다른 주요 버전을 필요로 하는 작업 영역은 각각 별도의 패치된 버전을 가지며, 이 모두가 동일한 pull request에 포함됩니다. 전이적 패키지는 상위 패키지의 업그레이드나 패키지 관리자의 재정의를 통해 업데이트됩니다. 주요 변경이나 단일 버전으로의 통합이 이루어질 경우 그 사유가 pull request에 기재됩니다. 단일 업그레이드로 모든 문제를 해결할 수 없다면 Pull 요청에서 가능한 부분만 수정하고 나머지는 수정되지 않았다고 표시합니다.
pull request에 포함되는 내용
- 해당 권고 사항과 그 심각도입니다.
- 패키지 목록변경 전후의 목록변경 후에는 취약한 버전이 제거된 것을 확인할 수 있습니다.
- 귀사 프로젝트의 검사 항목: 프로젝트의 Delivery 그래프에 실행 가능한 검사 항목이 있을 경우, 푸시된 변경 사항에 대해 'GO AHEAD' 결과가 나와야만 Coroid가 pull request를 생성합니다; 그렇지 않으면 해당 작업은 사유와 함께 종료됩니다. 프로젝트에 검사 항목이 구성되어 있지 않은 경우에도 pull request는 생성되며, Coroid가 프로젝트 검사를 수행하지 않았고 저장소 자체의 CI가 pull request에서 실행되며, 품질 관리에서 검사 항목을 구성하는 방법이 안내됩니다.
- 주요 변경이나 범위 변경의 사유입니다.
- 수정할 수 없었던 모든 권고 사항은 ‘수정되지 않음’으로 표시됩니다.
마지막 구절은 다음과 같습니다: "사람들이 검토하고 병합합니다. 배포 상태는 배포된 리비전을 스캔한 결과에 따라서만 결정됩니다." 이 발견 사항은 다음 전체 인벤토리부터 코드에 반영되며, 각 환경에서 실행되는 리비전을 스캔하여 해당 환경에 맞게 수정됩니다. 자세히 보기발견 사항 및 그 라이프사이클.
코드 발견 사항
코드 발견 사항의 경우,수정는 해당 프로젝트 내에서 이를 수정하기 위한 작업을 생성합니다. 소유자와 관리자는 모든 열린 코드 발견 사항에 대해 이 기능을 사용할 수 있습니다. 이 작업은 개발자가 커밋 메시지와 pull request에 공격 내용이 아닌 수정 방법을 기술하도록 요구하며, 회귀 테스트도 추가해야 합니다. 이 작업은 다른 작업과 동일한 규칙을 따르며 에이전트 시간을 소모합니다.
공개 저장소이거나 Coroid가 가시성을 확인할 수 없는 저장소의 경우, 아직 공개되지 않은 발견 사항에 대한 수정 사항은 해당 저장소에 커밋되지 않습니다. Coroid는 소유자나 관리자가 게시할 수 있도록 준비된 변경 사항을 비공개로 보관합니다. 자세히 보기공개.
유출된 비밀번호
유출된 인증 정보는 교체하여 수정하는데, 이 작업은 Coroid가 대신 수행해주지 않습니다. 비밀번호 발견 사항의 경우 수정 시 체크리스트 작업이 생성됩니다. 자세히 보기유출된 비밀번호.