Snyk 웹훅 연결 테스트
Snyk 웹훅은 새 취약점이 발견될 때만 업데이트되지만, Postman을 사용하여 구현을 테스트할 수 있습니다.
만약 Postman이 없다면 무료로 설치할 수 있습니다.
연결을 테스트하려면 AWS API Gateway에 샘플 페이로드를 포함한 POST 요청을 보내는 방법이 있습니다. 이때 API 토큰으로 보안되어야 합니다.
연결을 테스트하기 위해 다음 단계를 따르세요:
Postman을 설치합니다.
컬렉션을 만듭니다.
새 Postman 컬렉션 만들기 API 토큰(비밀 문자열)을 컬렉션의 환경 변수로 추가합니다. 변수 이름을
x-hub-signature
로 지정하여 페이로드의 무결성을 확인하는 데 변수를 사용할 수 있습니다. API 토큰을 찾는 방법은 Snyk 웹훅 설정을 참조하세요.새 Postman 컬렉션 만들기 컬렉션 내에 새 HTTP 요청을 생성합니다.
Postman API 요청 생성 방법을 POST로 변경하고 API Gateway URL 또는 기능 URL을 추가합니다. URL을 찾는 방법은 AWS API Gateway: Slack에 Snyk를 연결하는 POST 방법 추가을 참조하세요.
Postman POST 방법에 AWS API Gateway URL 추가 사전 요청 스크립트를 다음 코드처럼 설정합니다. 이 스크립트는 API 토큰을 가져와 Lambda 함수가 페이로드를 해독할 수 있도록 보안합니다. 아래의 코드를 따라 작성하되, '
your-secret-string-here'
부분에 당신의 API 토큰을 입력하세요.postman.setEnvironmentVariable('x-hub-signature', CryptoJS.HmacSHA256(request.data, 'your-secret-string-here').toString(CryptoJS.digest)); postman.setEnvironmentVariable('x-hub-signature', 'sha256='+ postman.getEnvironmentVariable('x-hub-signature'));
\Postman 사전 요청 스크립트 헤더를 추가하세요: Content-Type: application/json x-hub-signature ``: (단계 3에서 만든 API 토큰(비밀 문자열) 환경 변수입니다.
Postman POST 요청 헤더 본문에 유효한 페이로드를 추가합니다. 아래 예제와 같이 작성하되 보기 좋게 포매팅하지 않으세요. 읽기 쉬울수록 동작하지 않습니다:
{"project":{"id":"bc75a806-0893-4ccf-84c5-8fde48a88df8","name":"snyk/juice-shop:frontend/package.json","created":"2022-06-17T06:54:21.326Z","origin":"github","type":"npm","readOnly":false,"testFrequency":"daily","totalDependencies":1216,"issueCountsBySeverity":{"low":2,"high":16,"medium":17,"critical":0},"imageTag":"12.3.0","imagePlatform":"","lastTestedDate":"2022-06-29T05:45:12.569Z","browseUrl":"https://app.snyk.io/org/api-test/project/bc75a806-0893-4ccf-84c5-8fde48a88df7","importingUser":null,"owner":null,"tags":[],"isMonitored":true,"attributes":{"criticality":[],"lifecycle":[],"environment":[]},"branch":"master"},"org":{"id":"570a1e02-8774-4697-80fc-129f5c5195a1","name":"API","slug":"api-quc","url":"https://app.snyk.io/org/api-test","group":null,"created":"2022-05-25T06:29:29.833Z"},"newIssues":[{"id":"SNYK-JS-SCSSTOKENIZER-2339884","issueType":"vuln","pkgName":"scss-tokenizer","pkgVersions":["0.2.3"],"priorityScore":336,"priority":{"score":336,"factors":[{"name":"isFresh","description":"Recently disclosed"},{"name":"cvssScore","description":"CVSS 5.3"}]},"issueData":{"id":"SNYK-JS-SCSSTOKENIZER-2339884","title":"Regular Expression Denial of Service (ReDoS)","severity":"high","url":"https://snyk.io/vuln/SNYK-JS-SCSSTOKENIZER-2339884","description":"Long description","identifiers":{"CWE":["CWE-1333"],"CVE":["CVE-2022-25758"]},"credit":["Paul Bastide"],"exploitMaturity":"no-known-exploit","semver":{"vulnerable":["*"]},"publicationTime":"2022-06-29T10:29:38Z","disclosureTime":"2022-01-13T16:29:34Z","CVSSv3":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L","cvssScore":5.3,"functions":[],"language":"js","patches":[],"nearestFixedInVersion":"","isMaliciousPackage":false},"isPatched":false,"isIgnored":false,"fixInfo":{"isUpgradable":false,"isPinnable":false,"isPatchable":false,"isFixable":false,"isPartiallyFixable":false,"nearestFixedInVersion":"","fixedIn":[]],"removedIssues":[]}
유효한 페이로드가 포함된 Postman POST 요청 본문 URL 옆의 Send 버튼을 클릭합니다.
Postman 하단에 성공 메시지(
statusCode 200
)가 표시되는지 확인합니다.Postman 성공 메시지 Slack에 새로운 알림이 있는지 확인합니다: 새로운 Snyk 취약점 경로, 패키지 이름, scss-tokenizer, 심각도 레벨, 취약점 이름, 그리고 우선 순위 점수가 포함된 알림이 출력됩니다.
취약점 Slack 알림 다음에 Snyk이 새로운 취약점을 발견하면 Slack에서 Snyk로부터 알림을 받게 될 것입니다.
Last updated