첫 번째 취약점 수정 - 심층 분석

이 섹션은 수정 프로세스에 대해 자세히 살펴보며 더 전형적인 해결 과정을 반영하기 위해 다양한 시나리오를 탐구합니다.

예시 프로세스 플로차트

아래는 문제가 발생할 때 팀이 문제를 다룰 수 있는 방법을 보여줍니다:

단계 진단 프로세스를 팀의 프로세스에 사용하라
자체 프로세스에 이 예시 단계 진단 프로세스를 사용하라

문제 해결을 위한 견고한 시스템을 구축하기 위해 귀하의 팀을 위한 동등한 프로세스를 작성하는 것을 권장합니다.

업그레이드 수정: 수정 테스트

Snyk이 의존성을 업그레이드하는 수정 PR을 자동으로 생성하는 경우, 어떤 변경도 그렇듯이 그 PR을 조사하고 테스트해야 합니다. 의존성을 업그레이드하는 것은 특히 중대한 경우 변경으로 인해 코드의 다른 부분이 손상될 수 있습니다. 이러한 PR을 단순히 취약점 수정을 클릭하고 PR을 제출해서는 안됩니다.

일반적인 코드 유지보수 작업 중의 하나로 규칙적인 업그레이드를 수행하여 사용하는 패키지를 최신 상태로 유지함으로써 중대한 변경이 필요한 경우를 최소화하고 코드에 미치는 영향을 줄일 수 있습니다.

따라서 수정의 일환으로 업그레이드의 영향을 이해하여 중대한 변경으로 인해 애플리케이션을 손상시키지 않음을 보장해야 합니다.

영향 조사

수정을 완전히 이해하기 위해 변경 사항을 연구하고 영향을 조사하고 있는 경우 코드 자체를 검토하여 필요한 보조 변경을 수행하여 업그레이드가 문제를 일으키지 않도록 해야 합니다. 이를 위해 코드를 직접 검토해야 합니다.

중요한 업그레이드의 경우, 업그레이드의 영향을 이해하기 위해 일시적으로 취약점을 무시할 수 있습니다(예: 30일간), 그 시간 동안 업그레이드의 영향을 이해할 시간을 갖게 됩니다.

코딩 환경에서 작업

물론 개발자들은 GitHub만 사용하는 것이 아니라 자체 IDE(예: JetBrains)를 사용합니다:

IDE 내에서 코드 검사를 통해 PR 영향을 확인하세요
IDE 내에서 코드 검사를 통해 PR 영향을 확인하세요

관련 Snyk IDE 확장 프로그램이 설치되어 있으면(Snyk for IDEs 참조), 해당 IDE에서 취약점을 검토하여 자체 코드 환경에서 변경 사항의 영향을 검사할 수 있습니다. 그런 다음 해당 변경 사항을 IDE에서 관리하고 GitHub으로 푸시할 수 있습니다.

업그레이드 수정 처리

업그레이드를 처리하는 방법(Snyk Fix PR 조언이 실제 제출된 PR이 되는지 여부)은 자체 팀 프로세스에 따라 다를 수 있습니다. 고려해야 할 요소에는 업그레이드 수준(주 버전/부 버전/패치), 팀 코드 프로세스 및 영향을 받는 코드 영역이 포함됩니다.

예를 들어:

  • 성숙 프로세스와 출시된 애플리케이션을 유지해야 하는 대규모 팀은 모든 개발자가 항상 모든 업그레이드를 확인하고 테스트하는 관행을 갖고 있을 수 있습니다.

  • 개발 중인 출시되지 않은 응용 프로그램을 갖는 스타트업 팀은 모든 개발자가 작은 변경이나 패치 업그레이드를 처리할 수 있도록 할 수 있습니다.

  • 귀하의 팀은 부록이 없이 변경 사항을 만들기 전에 후배 개발자들이 변경을 실행하기 전에 시니어 멘토들이 모두 변경 사항을 검토해야 한다는 정책을 갖고 있을 수 있습니다. 하지만 시니어 개발자들은 변경 사항에 대해 더 많은 자유롭게 활동할 수도 있습니다.

  • 귀하의 팀은 규모에 따라 서로 다른 수준의 감독/검토를 의무화하는 프로세스를 갖고 있을 수 있습니다.

위험을 감수할 수 있는 것으로 간주되는 것으로 볼 때, 코드 저장소 통합 설정을 구성하여 Snyk의 수정 PR을 열기 위한 능력을 비활성화할 수 있습니다. 이렇게 하는 것을 위험하다고 볼 때에는 GitHub 통합을 참조하세요.

오픈 소스 / 애플리케이션 코드용 PR

  • 오픈 소스 라이브러리의 취약점({Snyk Open Source에 의해 스캔됨)을 수정하는 것은 일반적으로 기존 패키지를 업그레이드하는 것을 포함합니다. 검토 후, 다른 파일에서 영향(변경 사항)을 발견할 수 있습니다. 그런 경우 해당 파일에 대한 추가 변경이 PR이 필요합니다.

  • 자체 애플리케이션 코드의 취약점({Snyk Code에 의해 스캔됨)을 수정하는 것은 특정 영역에서 품질을 향상하는 것을 포함합니다. “이 코드 줄을 수정하라” 이러한 변경 사항은 일반적으로 손상을 일으키는 가능성이 적을지라도 추가 PR을 만들 필요가 없을 수 있습니다.

수정 제안이 없는 취약점 수정하기

수정 방법이 제공되지 않는 경우, Snyk은 추천을 제공할 수 없습니다.

이러한 경우, 개발자는 취약점을 해결할 대체 솔루션을 제공해야 합니다. 가능한 조치는 다음과 같습니다:

  • 일정 기간 동안 취약점을 무시하여 위험을 수용합니다. 예를 들어, 이 취약점이 현재 애플리케이션에서 낮은 위험으로 평가된다면:

취약점을 임시로 무시하기
취약점을 임시로 무시하기
  • 수정 방법이 제공될 때까지 취약점을 무시합니다:

수정 방법이 제공될 때까지 취약점 무시
수정 방법이 제공될 때까지 취약점 무시
  • 취약점이 잘못된 긍정일 가능성을 조사하여, 그렇다면 영구적으로 무시할 수 있습니다:

잘못된 긍정이라면 취약점을 무시하기
잘못된 긍정이라면 취약점을 무시하기
  • 코드를 변경하여 취약점을 해결합니다. 이때, 취약점을 해결하는 코드 솔루션을 작성하고, 이를 오픈 소스 코드에 대한 제안으로 제공하여 오픈 소스 커뮤니티에 기여할 수 있습니다.

  • 취약한 의존성을 다른 코드로 교체합니다.

요약 및 다음 단계

애플리케이션의 의존성을 업그레이드하면 깨지는 변경이 발생할 수 있습니다. Snyk은 모든 코드를 자동으로 수정하지 않습니다. 변경 사항을 적용하기 전에 해당 변경이 적절하게 이해되었는지 확인해야 합니다.

단일 취약점을 이해하고 해결하는 방법을 보셨습니다.

이제 수정 작업 할당보고서를 사용한 팀 작업 관리를 살펴보며 이 작업이 어떻게 관리되고 모든 식별된 취약점에 대해 애플리케이션에 할당될 수 있는지 확인하십시오.

Last updated