Snyk Language Server
Snyk은 IDE 통합을 제공하여 통합 개발 환경 또는 편집기에서 Snyk의 기능을 사용할 수 있도록 합니다. 이 페이지에서는 언어 서버 프로토콜을 지원하는 모든 IDE 또는 편집기에 진단을 제공할 수 있는 Snyk 언어 서버를 설명합니다. 모든 IDE 플러그인 및 확장 프로그램과 그 사용에 대한 정보는 Snyk IDE 플러그인 및 확장 프로그램을 참조하십시오.
Snyk 언어 서버는 취약점, 오픈소스 라이선스 문제 및 인프라 잘못된 구성을 스캔하고 문제 유형 및 심각도별로 분류된 보안 문제가 있는 결과를 반환합니다.
오픈소스의 경우 직접 및 전이 종속성 모두에 대해 자동화된 알고리즘 기반 수정 제안을 받습니다.
Snyk 언어 서버는 다음 유형의 문제를 스캔합니다.
코드 보안 - 코드의 보안 취약점. Snyk 코드 설명서도 참조하십시오.
코드형 인프라(IaC) 보안 - IaC 템플릿(Terraform, Kubernetes, CloudFormation 및 Azure Resource Manager)의 구성 문제. Snyk 코드형 인프라 설명서도 참조하십시오.
언어 서버를 설치하고 구성한 후 실행할 때마다 파일을 열거나 저장할 때 Snyk은 프로젝트의 매니페스트 파일, 독점 코드 및 구성 파일을 스캔합니다. Snyk은 실행 가능한 취약점, 라이선스 또는 잘못된 구성 문제 세부 정보를 제공하고 LSP를 지원하는 편집기 또는 IDE 내에서 결과를 기본적으로 표시합니다.
이 페이지는 지원되는 환경, 지원 및 피드백 제공에 대해 설명하며 설치 지침을 제공합니다.
지원되는 운영 체제 및 아키텍처
Snyk 플러그인은 배포업체에서 수명 종료(EOL)에 도달한 운영 체제에서는 지원되지 않습니다.
다음 환경에서 언어 서버를 사용할 수 있습니다.
Linux: AMD64 및 ARM64
Linux Alpine: 386 및 AMD64
Windows: 386, AMD64, 386 호환성을 통한 ARM
macOS: AMD64 및 ARM64
언어 서버 (Snyk CLI)를 다운로드할 수 있는 곳
Snyk 언어 서버는 현재 Snyk CLI에 포함되어 있습니다. CLI는 Snyk IDE 플러그인을 사용할 때만 자동으로 다운로드됩니다.
설치 및 수동 다운로드 지침은 snyk-cli를 참조하십시오.
Snyk 언어 서버 사용
언어 서버 모드에서 Snyk CLI 시작
Snyk LSP 명령줄 플래그
-d 디버그 수준 로그 출력
-c <파일>은 다른 모든 파일보다 먼저 로드할 구성 파일을 지정할 수 있습니다.
-l <로그 수준>은 로그 수준(trace, debug, info, warn, error, fatal)을 지정할 수 있습니다. 기본 로그 수준은 info입니다.
-o <형식>은 문제에 대한 출력 형식(md 또는 html)을 지정할 수 있습니다.
-f <파일>은 콘솔에 로깅하는 대신 로그 파일을 지정할 수 있습니다.
-licenses는 언어 서버에서 사용되는 라이선스를 표시합니다.
LSP 초기화 옵션
initializationOptions?: LSPAny; 내의 초기화 메시지의 일부로 Snyk은 다음 설정을 지원합니다.
모든 .NET 프로젝트의 경우 Snyk은 --all-projects 추가 매개변수를 추가하는 것을 권장합니다.
Snyk 언어 서버 인증
Snyk 언어 서버가 시작되면 initializationOption token에서 토큰을 확인합니다. 토큰이 없으면 Snyk 언어 서버는 토큰을 검색하고 인증을 시도합니다. CLI도 인증되지 않은 경우 Snyk 언어 서버는 인증을 위해 브라우저 창을 엽니다. 웹 브라우저에서 성공적으로 인증되면 Snyk 언어 서버는 OAuth2 또는 API 토큰 인증 방법의 경우 CLI에서 Snyk 인증 토큰을 자동으로 검색하지만 세션에 대해서만 검색합니다.
Snyk 언어 서버용 환경 변수
Snyk 언어 서버 및 Snyk CLI는 기능을 위해 특정 환경 변수를 지원하고 필요로 합니다.
HTTP_PROXY,HTTPS_PROXY및NO_PROXY는 사용할 http 프록시를 정의합니다.JAVA_HOME은 Snyk CLI를 통해 Java JVM 기반 프로젝트를 분석합니다.PATH는 Maven 프로젝트 분석 시maven을 찾고python등을 찾습니다.SNYK_LOG_LEVEL은 로그 수준(trace, debug, info, warn, error)을 강제합니다. 기본값은 info 수준입니다.
Snyk 언어 서버용 환경 변수 자동 구성
이러한 변수를 환경에 자동으로 추가하기 위해 Snyk 언어 서버는 다음 파일을 검색하며, 순서가 우선 순위를 결정합니다. 실행 파일이 이미 구성된 환경(예: zsh -i -c 'snyk-ls'를 통해)에서 호출되지 않은 경우, -c 명령줄 플래그를 사용하여 필요한 변수를 설정하는 구성 파일을 지정할 수도 있습니다. Snyk 언어 서버는 주어진 우선 순위 및 순서로 다음 파일을 읽으며, 이미 로드된 변수를 덮어쓰지 않습니다.
VARIABLENAME=VARIABLEVALUE 형식의 환경 변수가 포함된 모든 줄은 이미 환경에 없는 경우 자동으로 환경에 추가됩니다. 이는 dotenv 형식을 준수합니다. .profile, .zshrc 등과 같이 변수가 직접 내보내진 경우(예: export VARIABLENAME=VARIABLEVALUE를 통해) 로드되지 않습니다. 내보내기는 분할되어 자체 줄에 있어야 합니다. 예를 들어
PATH 변수는 다른 모든 변수와 다르게 취급됩니다. 파일 및 환경에서 발견된 모든 PATH 변수의 집합입니다. 또한 현재 작업 디렉토리 .는 자동으로 경로에 추가되므로 LSP 클라이언트가 현재 작업 디렉토리로 Snyk CLI를 다운로드하면 언어 서버에 대해 발견된 Snyk CLI가 생성됩니다.
구성 파일을 통해 변수를 구성하는 것 외에도 Snyk 언어 서버는 Linux 및 macOS의 경로에 다음 디렉토리를 추가합니다.
/bin
$HOME/bin
/usr/local/bin
$JAVA_HOME/bin
JAVA_HOME이 설정되지 않은 경우 Snyk 언어 서버는 먼저 path에서 java 실행 파일을 자동으로 검색한 다음 다음 디렉토리에서 검색하고 상위 디렉토리의 상위 디렉토리를 JAVA_HOME으로 추가합니다. 다음 디렉토리는 재귀적으로 검색됩니다.
/usr/lib
/usr/java
/opt
/Library
$HOME/.sdkman
C:\Program Files
C:\Program Files (x86)
동일한 디렉토리에서 Maven 실행 파일을 검색하고 상위 디렉토리가 경로에 추가됩니다.
폴더 신뢰
Snyk은 취약점 코드베이스를 검사하는 과정에서 분석을 위한 추가 데이터를 얻기 위해 컴퓨터에서 코드를 자동으로 실행할 수 있습니다. 여기에는 Snyk 오픈소스에 대한 종속성 정보를 얻기 위해 패키지 관리자(예: pip, Gradle, Maven, Yarn, npm 등)를 호출하는 것이 포함됩니다. 악성 구성이 있는 신뢰할 수 없는 코드에서 이러한 프로그램을 호출하면 시스템이 악성 코드 실행 및 익스플로잇에 노출될 수 있습니다.
신뢰할 수 없는 폴더에서 언어 서버를 사용하는 것을 방지하기 위해 Snyk 언어 서버는 이러한 폴더에 대해 스캔을 실행하기 전에 폴더 신뢰를 요청합니다. 확실하지 않은 경우 신뢰를 부여하지 마십시오.
신뢰 기능은 기본적으로 활성화되어 있습니다. 폴더가 신뢰되면 모든 하위 폴더도 신뢰됩니다. 폴더가 신뢰되면 Snyk 언어 서버는 신뢰할 수 있는 폴더 경로 목록이 포함된 사용자 지정 $/snyk.addTrustedFolders 알림을 언어 서버 클라이언트에 알립니다. 이를 기반으로 클라이언트는 이 알림을 가로채고 IDE 또는 편집기 저장 메커니즘에서 결정 및 신뢰를 유지하는 논리를 구현할 수 있습니다.
초기화 옵션에서 enableTrustedFoldersFeature를 false로 설정하여 신뢰 대화 상자를 비활성화할 수 있습니다. 이렇게 하면 모든 신뢰 프롬프트 및 확인이 비활성화됩니다.
initializationOptions에서 trustedFolders를 경로 배열로 설정하여 초기 신뢰할 수 있는 폴더 세트를 제공할 수 있습니다. 이러한 폴더는 시작 시 신뢰되며 사용자에게 신뢰를 요청하지 않습니다.
원격 측정
Snyk은 IDE 플러그인 및 CLI에서 원격 측정을 수집합니다. 자세한 내용은 IDE 및 CLI 사용량 원격 측정을 참조하십시오.
Snyk 언어 서버 지원 정책
Snyk은 기능 및 성능을 보장하는 최신 12개월 동안의 LS 버전을 지원합니다. 오래된 버전은 지원 종료(EOS)로 간주되며 버그 수정 또는 문제 해결 지원을 받지 않습니다.
Snyk은 새로운 버전에서만 수정 사항을 제공하며 오래된 버전을 수정할 수 없습니다. 고객은 개선 사항을 활용하려면 업그레이드해야 합니다.
이 정책은 리소스를 최적화하면서 혁신을 촉진합니다.
도움이 필요하면 Snyk 지원팀에 요청을 제출하십시오.
Last updated