개요

오픈 소스를 활용해서 제품이나 서비스를 만드는 것은 검증된 외부 기술과 제품을 이용하여 우리가 만들려는 제품 본질에 집중할 수 있게 해주는 좋은 방법론입니다.

이제는 Software 개발의 Supply Chain 이 중요해졌으므로 모든 걸 직접 다 만들겠다고 하면 야크털만 열심히 깎다가 정작 제품을 못 만들 소지가 크므로 적극적으로 오픈 소스나 third party 기술을 사용하는 것이 필요합니다.


하지만 오픈소스도 SW 이기때문에 버그나 보안 취약점(security vulnerability)이 존재해도 너무나 복잡한 의존성과 바쁜 개발 일정때문에 개발자들은 취약점이 발표되도 모를 수밖에 없습니다.

예로 A 라는 library 만 프로젝트에 사용하는데 A 는 B 를 사용하고 B 는 C 를 사용하는데 C 가 의존하는 D 라이브러리에 취약점이 발견됐다면 복잡한 공급사슬로 인해 개발자가 취약점있는 library 를 사용한 다는 사실을 알수가 없습니다.


그래서 안전하지 않은 외부 라이브러리나 컴포넌트로 인한 보안 문제도 상당히 많이 발생하며 이때문에 OWASP의 2020 년 10대 취약점에 "A9. Using Components with known vulnerabilities" 항목이 있을 정도입니다.


snyk 란

snyk 는 SW 개발 tool chain 에 연동하여 commit 이나 build, CI/CD 시 프로젝트의 의존성을 검사해서 보안 취약점이 있는 외부 open source 를 사용하는지 알려주는 보안 도구입니다.

현대의 운영 환경에 맞게 container image 도 검사하며 더불어 비즈니스에 위협적인 오픈 소스 라이센스(GPL, AGPL 등)인 제품이 있는지도 검사해 줍니다.


Sonatype nexus 의 상용 버전과 유사한 역할을 수행하나 설치형이 아닌 Cloud 기반의 SaaS 서비스를 제공한다는 특징이 있습니다.

snyk 는 Atlassian 사의 Devops 플랫폼인 Open Devops(링크) 의 보안 부분 통합 파트너(링크)이기도 합니다.



기업에서 사용하려면 구독해야 하는데 요금제는 사용하려는 기능에 따라 다르며 Terra form 이나 kubenetes 같은 현대적인 Infrastructure as Code 도구와 연동해서 사용하려면 별도로 협의해야 합니다.

Ref