코드 분석 (Breakdown of Code analysis)
리포지토리를 가져오면 가 가져온 코드 내의 취약점을 자동으로 테스트합니다. 단일 리포지토리의 모든 파일에서 감지된 취약점은 Snyk 프로젝트로 편성되어 Code Analysis로 라벨이 붙습니다. Code Analysis는 특정 리포지토리에 대한 테스트 결과를 제공하며, 해당 리포지토리 소스 코드에서 발견된 모든 취약점이 나열됩니다.

코드 분석 구성 요소
이 표는 코드 분석 프로젝트의 요소를 요약한 것입니다.
헤더
가져온 리포지토리의 세부 정보를 포함하며 Git 리포지토리 내 리포지토리로의 링크, 프로젝트 이름 및 프로젝트 탭: 개요, 이력, 및 설정을 보여줍니다.
프로젝트 요약 정보 영역
리포지토리 가져오기 및 마지막 테스트 날짜, 온디맨드 테스트 옵션을 위한 다시 테스트하기, 리포지토리를 가져온 사용자 이름, 프로젝트 소유자의 이름 및 분석된 코드 파일 수 및 분석되지 않은 파일 수를 표시합니다. 코드 리포지토리 재테스트하기 보기
표시된 문제를 필터링하기 위한 사전 정의된 기준 세트를 포함합니다.
취약점 문제
가져온 리포지토리에서 가 발견한 취약점을 포함합니다.
코드에서 문제의 오염된 흐름을 표시합니다.
발견된 취약점 유형에 대한 추가 정보를 제공하며, 이 문제를 방지하는 데 가장 좋은 방법과 수정의 코드 예제를 제공합니다.
CWE
특정 취약점 유형의 CWE (Common Weakness Enumeration) ID와 이 취약점 유형이 설명된 CWE 웹사이트로의 링크를 포함합니다. 예: CWE-22: 경로 이탈 보기
즉시 해결을 위한 통합된 Git 리포지토리로의 빠른 액세스 기능을 제공합니다.
가져온 사용자
분석된 리포지토리를 가져온 Git 리포지토리 사용자 이름입니다.
조직 내 프로젝트의 주인을 식별하는데 사용되며, 이는 Snyk 프로젝트에는 영향을 주지 않습니다. 필수 사항은 아니며 기본적으로 비어 있습니다.
환경 속성은 클라이언트 측(Frontend)부터 서버 측(Backend)까지의 소프트웨어 컨텍스트를 설명하며, 모바일, 클라우드(SaaS), 온프레미스, 호스팅 서비스 및 분산 시스템과 같은 플랫폼을 포함합니다.
수명 주기 속성은 Pro, 개발 또는 샌드박스를 구분합니다.
Snyk 프로젝트 태그 기능을 사용하여 사용자 정의 메타데이터 태그를 추가, 제거 및 사용하여 프로젝트를 구성하고 필터링할 수 있습니다. 이는 프로젝트 관리 및 탐색을 단순하게 해줍니다.
분석 요약
리포지토리에서 분석된 코드 파일 수 및 분석된 파일의 총 리포지토리 코드 파일 중 분석된 파일의 백분율을 표시합니다.
리포 분해
분해된 파일: 에서 검토된 파일을 포함하여 인식된 확장자 및 프로그래밍 언어를 포함합니다.
분해 안된 파일: 지원되지 않는 언어 또는 확장자로 인해 아직 분석되지 않은 텍스트 파일을 포함합니다.
알 수 없음: 인식된 확장자가 없는 파일로, 멀티미디어 콘텐츠(사진 및 비디오), 이진, 자사 포맷 파일 또는 의 관심 영역 밖의 다른 형식을 포함할 수 있습니다.
데이터 흐름
데이터 흐름은 코드에서 발견된 문제의 위치 및 응용 프로그램 전반에 걸쳐 흘러가는 방식을 보여줍니다. 코드에서 문제의 오염된 흐름을 보여주며, 소스에서 싱크로, 코드 흐름의 모든 단계의 코드 라인을 제시합니다.
소스는 잠재적인 문제의 입력 지점입니다. 이것은 사용자 또는 외부 장치가 데이터를 입력할 수 있는 애플리케이션의 지점으로, 이는 애플리케이션의 보안을 위반할 가능성이 있는 데이터를 입력해야 합니다. 예를 들어 SQL Injection 문제의 경우, 소스는 사용자가 입력하는 양식 또는 다른 데이터 입력 영역일 것입니다.
싱크는 코드에서 문제가 실행되는 연산입니다. 이 지점은 깨끗한 입력을 받아야 하며, 그렇지 않으면 악용될 수 있습니다. 예를 들어 SQL Injection 문제의 경우, 싱크는 DB에게 받은 입력에 따라 특정 조치를 수행하는 내부 작업일 것입니다.
Snyk Code가 발견한 모든 문제에는 데이터 흐름이 있습니다. 예를 들어 하드코딩된 비밀 정보의 경우 문제의 소스가 데이터 흐름 페이지에 표시됩니다.
데이터 흐름 보기
Snyk 웹 UI에 로그인하고 그룹 및 조직을 선택합니다.
프로젝트로 이동하고 리포지토리 프로젝트를 포함하는 대상 폴더를 선택합니다.
코드 분석 프로젝트를 엽니다.
(옵션) 특정 취약점 문제를 검색하거나 필터링합니다.
취약점 문제를 선택하고 전체 세부 정보 > 데이터 흐름으로 이동합니다.
데이터 흐름 분석의 일환으로 다음 작업을 수행할 수 있습니다:
코드에서 소스에서 싱크로의 문제의 오염된 흐름을 보기. 데이터 흐름 분석 예 보기
무시 버튼을 사용하여 열린 취약점 문제를 무시합니다. 문제 무시 보기
데이터 흐름 분석 예시
다음 경로 이탈 문제에서 개발자는 입력을 살균하지 않았습니다. 이는 공격자가 파일 시스템의 모든 파일, 비밀번호 파일과 같은 민감한 데이터에 액세스하도록 경로 이탈 공격을 수행할 수 있게 합니다.

데이터 흐름 외부 링크 열기
Git 리포지토리에서 표시된 소스 코드를 열려면 오른쪽 패널 위의 파일 이름을 선택합니다. 이 예에선 파일 이름이 routes/profileImageUrlUpload.ts입니다.

소스 코드는 통합된 Git 리포지토리에 나타나며, 취약점을 수정해야 하는 정확한 위치를 보여줍니다. 코드를 수정하여 취약점을 해결할 수 있습니다.

고치기 분석
고치기 분석을 통해 코드에서 발견된 취약점 문제를 해결할 수 있습니다. 발견된 취약점 유형에 대한 세부 정보, 이 문제를 방지하는 데 사용할 수 있는 모범 사례 및 전역 오픈 소스 커뮤니티의 코드 예제가 제공됩니다.
특정 취약점을 확인하는 더 자세한 정보를 찾으려면 CWE 링크를 열어 해당 취약점 유형에 대해 자세히 알아볼 수 있습니다. CWE-22 및 CWE-601 예시를 참조하세요.
일부 취약점은 이해, 해결 및 방지하는 대화형 레슨에 대한 링크도 포함합니다. Snyk Learn를 참조하세요.

고치기 분석 보기
Snyk 웹 UI에 로그인하고 그룹 및 조직을 선택합니다.
프로젝트로 이동하고 리포지토리 프로젝트를 포함하는 대상 폴더를 선택합니다.
코드 분석 프로젝트를 엽니다.
(옵션) 특정 취약점 문제를 검색하거나 필터링합니다.
취약점 문제를 선택하고 전체 세부 정보 > 고치기 분석으로 이동합니다.
고치기 분석의 일환으로 다음 작업을 수행할 수 있습니다:
발견된 문제를 보고 방지 방법을 살펴봅니다.
전역 오픈 소스 커뮤니티의 코드 예제를 검토하고 검토하고 코드 샘플을 살펴봅니다.
통합된 Git 리포지토리에 나타나는 고치기 예제의 코드 차이를 보려면 데이터 흐름 분석 외부 링크 열기를 참조하세요.
무시 버튼을 사용하여 열린 취약점 문제를 무시합니다. 문제 무시를 참조하세요.
고치기 분석 페이지를 통해 다음을 수행할 수 있습니다:
고치기 분석 외부 링크 열기
Git 리포지토리에서 취약점에 대한 코드 Snyk 취약점 데이터베이스에서 유사한 취약성을 식별한 점수
질적인 요소
소스의 심각성, 직접적인지 간접적인지
싱크의 보편성과 영향
보안팀 경험 및 연구
고객 피드백
예: CWE-22: 경로 이탈
CWE-22 경로 이탈의 경우, 취약성이 테스트에서 발생하면 낮은 심각성입니다. 테스트에서 발생하지 않고 직접 소스에서 유래한 경우, 심각성은 높습니다. 그렇지 않으면 낮은 심각성입니다.

예: CWE-601: 오픈 리디렉션
CWE-2601 오픈 리디렉션의 경우, 취약성이 테스트에서 발생하면 낮은 심각성입니다. 테스트에서 발생하지 않고 직접 소스에서 유래한 경우, 중간 심각성입니다.

Last updated