Snyk C/C++용 지침

이 페이지는 사용자의 기술 스택에 Snyk을 효과적으로 적용할 수 있도록 언어 및 패키지 관리자에 대한 고려 사항을 검토합니다.

코드 분석

  • Snyk은 분석을 수행하기 위해 컴파일을 하거나 빌드를 요구하지 않습니다.

  • Snyk Code는 소스 코드를 직접 분석합니다.

  • 구성 요소를 사전 컴파일하는 경우, 스캔 중에 소스 코드를 사용할 수 있도록 하십시오.

오픈소스 및 라이선스

npm이나 Maven과 같은 패키지 관리자의 경우, Snyk은 전통적으로 snyk testsnyk monitor의 관리형 오픈소스 기능을 사용합니다. C/C++의 경우, Snyk은 --unmanaged 옵션을 추가하여 비관리형(unmanaged) 종속성을 지원합니다.

circle-info

Snyk은 빌드에 연결하거나 스캐닝을 수행하기 위해 빌드에 의존하지 않습니다. Snyk은 소스 코드로부터 분석을 수행합니다.

  • 오픈소스 소스 코드가 존재해야 합니다.

  • Snyk은 파일의 지문(fingerprint)을 생성하고 이를 Snyk 데이터베이스와 비교하여 패키지, 버전, 라이선스 및 취약점을 식별합니다.

Snyk 통합 및 일반적인 사용 패턴

IDE

Snyk Code 사용 시

추가 옵션이 필요하지 않습니다. Snyk 플러그인에는 결과를 표시하기 위한 IDE 내 보기가 있습니다.

Snyk 오픈소스 사용 시

IDE 설정의 Additional Parameters 아래에 --unmanaged 옵션을 입력하여 C/C++ 오픈소스 종속성을 스캔합니다.

종속성 스캔
종속성 스캔

CLI 팁 및 요령

코드베이스 (Codebase)

Snyk은 분석을 수행하기 위해 빌드에 의존하지 않습니다. 소스 코드만 있으면 됩니다.

터미널에서 소스 코드 디렉토리를 열고 다음 명령을 실행하십시오.

circle-info

구성 요소를 사전 컴파일하는 경우, 최상의 결과와 커버리지를 얻기 위해 소스 코드가 여전히 존재해야 합니다.

보고를 위해, snyk-to-html 플러그인을 사용하여 보고 아티팩트를 생성할 수 있습니다. 또한, --json--sarif 옵션을 각각 사용하여 결과에 프로그래밍 방식으로 액세스할 수 있는 JSON 및 SARIF 내보내기 기능이 있습니다. 자세한 내용은 테스트 결과를 JSON 또는 SARIF 파일로 내보내기를 참조하십시오.

오픈소스 라이브러리

C/C++ 오픈소스의 경우, --unmanaged 옵션을 사용하여 라이선스 준수 문제와 오픈소스와 연관된 알려진 보안 문제를 분석하십시오.

자세한 내용은 C/C++용 Snyk을 참조하십시오.

  • 테스트하려면 오픈소스 소스 코드가 존재하는지 확인하십시오. 이는 vendor 폴더에 위치할 수 있습니다.

  • 오픈소스를 사전 컴파일하는 경우에도 오픈소스 코드는 여전히 존재해야 합니다. Snyk이 기존 지식 베이스와 정확하게 비교하기 위해서는 오픈소스 코드가 유지되어야 합니다.

마찬가지로, 모니터링 및 보고서 공유를 위해 다음 명령을 사용하십시오.

여기서 org-id는 Snyk 웹 인터페이스의 조직 설정에서 찾을 수 있습니다. 조직 ID가 필수 사항은 아니지만 사용을 강력히 권장합니다. Snyk Code와 마찬가지로, snyk-to-html 플러그인을 사용하여 보고 아티팩트를 생성할 수 있습니다.

  • 개인별 스캔의 경우, CLI 또는 IDE를 사용하고 snyk monitor --unmanaged 명령을 사용하여 결과를 업로드하십시오.

    • 그러나 Snyk은 이러한 결과를 개인 폴더로 보내고 프로젝트 설정에서 예약된 스캐닝을 비활성화하여 개별 스캔이 노이즈를 발생시키지 않도록 할 것을 권장합니다.

    • 이를 통해 라이선스 및 정책 정보를 볼 수 있는 상태로 제공합니다.

  • CI/CD와 같은 자동화된 스캔의 경우, snyk monitor --unmanaged를 사용하고 원하는 조직으로 결과를 보내십시오. 이를 통해 라이선스 및 정책 정보를 볼 수 있는 상태로 제공합니다.

종속성 목록

오픈소스 스캔을 수행할 때 --print-deps를 사용하여 코드베이스에서 발견된 종속성과 그 출처에 대한 상세 목록을 얻으십시오.

C/C++에서 이는 지정된 일치 항목의 신뢰 수준을 식별하는 추가적인 이점이 있습니다. 신뢰도가 크게 떨어지는 경우(< 90% 신뢰도) 파일이 수정되었을 가능성이 높으며 원본 소스가 아닐 수 있습니다. 그런 경우 조사를 고려하십시오.

목록은 아래 이미지와 같이 이슈 목록 앞에 인쇄됩니다.

종속성 목록 보기
종속성 목록 보기

라이선스 정책

이 기능을 통해 회사는 오픈소스 애플리케이션에 대한 라이선스 정책을 생성하여 사용이 승인되지 않은 라이선스가 무엇인지 표시할 수 있습니다. Snyk이 승인되지 않은 라이선스와 일치하는 항목을 감지하면 알림을 보냅니다. 이 알림에는 라이선스 이름과 라이선스 정책 텍스트가 포함됩니다.

라이선스 정책 텍스트는 관리자에 의해 라이선스 이슈와 연관됩니다. 이 텍스트는 수행할 작업이나 라이선스 이슈가 정책에 위배되는 이유에 대한 사용자 정의 지침을 제공합니다.

다음은 화면 하단에 표시되는 라이선스 정책 텍스트 예시로, 라이선스가 발견될 경우 수행할 작업에 대한 지침을 제공합니다.

라이선스 정책 텍스트 예시
라이선스 정책 텍스트 예시

대체 테스트 옵션

고급 종속성 관리 전략을 개발하는 경우 표준적이고 자주 사용되는 패키지 관리자를 사용하지 않을 수도 있습니다. 이러한 이유로 Snyk은 테스트 API를 제공합니다. C++의 경우 애플리케이션에 포함된 오픈소스 패키지와 버전을 알고 있지만 소스 코드가 없는 경우, 패키지 문제 목록(List issues for a package) 엔드포인트를 사용하여 분석을 수행할 수 있습니다.

옵션 및 플러그인

  • 로컬 또는 빌드 시 보고서를 생성하는 데 도움이 필요하면 snyk-to-html 플러그인을 참조하십시오.

  • 프로그래밍 방식으로 액세스할 수 있는 출력을 생성하려면 --json--sarif 옵션을 참조하십시오.

  • 고급 필터링 옵션은 snyk-filter를 참조하십시오.

Last updated