세상에 나쁜 코드는 없다

Snyk 알아보기 본문

웹개발/백엔드

Snyk 알아보기

Beomseok Seo 2022. 6. 10. 15:09

https://snyk.io/

 

Snyk | Developer security | Develop fast. Stay secure.

Snyk helps software-driven businesses develop fast and stay secure. Continuously find and fix vulnerabilities for npm, Maven, NuGet, RubyGems, PyPI and more.

snyk.io

Snyk은 프로젝트의 코드와 의존하는 외부 라이브러리 등에서 자동으로 보안 취약점을 찾아주고, 그에 대한 해결책을 제공해주는 서비스이다. 

 

개발자 친화적인 소프트웨어를 개발하기 위해 Synk 는 제공하는 서비스를 자체 웹사이트 뿐만아니라 다양한 IDE 환경, 자체 API, CLI에서도 사용할 수 있게 했다.

https://app.snyk.io/org/sbslc2000/integrations

 

Snyk - Log in or sign up to secure your projects

Log in to Snyk

app.snyk.io

 

Snyk 의 기능들과 간단한 시연을 아래 유튜브에서 볼 수 있었다.

https://www.youtube.com/watch?v=1w1B0b8_xnI 

 

사용 방식이 직관적이어서 경험이 적은 나도 쉽게 기능을 사용해볼 수 있었다. 다양한 과금 플랜이 제공되고 있고 무료 플랜도 있어 기존에 제작하고 있던 프로젝트를 스캔해보았다.

Snyk의 무료 플랜 기능
프로젝트의 취약점

간단하게 스프링부트만 사용했던 프로젝트라 많은 취약점이 발생되지 않았는데, 만약 도커나 쿠버네티스를 사용하고 있다면 그 각각의 취약점들을 구분해서 확인할 수 있다. 위의 경우 상단의 오류는 Gradle에서 의존하고 있는 프레임워크와 라이브러리에서 발견된 취약점이고, 아래는 코드 자체의 취약점이다.

 

Gradle 취약점

취약점 우측의 SYNK-JAVA-ORG... 을 누르면 취약점에 대한 추가적인 정보와 해결방법을 확인할 수 있다.

 org.springframework:spring-beans 를 상위버전으로 업데이트하면 해당 취약점 문제가 해결된다. 이러한 각각의 취약점들을 관리하기위해 Synk 은 발견된 취약점을 Github 의 Pull Request에 넣어주고, 개발자는 PR을 확인하여 리뷰 후 해결책을 프로젝트에 반영시킬 수 있다. 취약점 자동 PR 기능을 쓰면 개발자는 매번 확인할 필요 없이 Snyk 으로 부터 메일이 왔을때 깃헙에 들어가 PR만 확인하면 된다!

 

코드 부분 취약점

이 부분은 코드부분 취약점에서 가져왔는데, 나의 코드가 XSS 공격을 받을 수 있다는 내용이다. 눌러서 더 자세히 확인해보면

Data flow

어떤 부분이 문제가 있는지 하이라이트로 보여주고, 우측 Fix Analysis 를 누르면

Fix analysis

위와 같이 어떻게 수정해야하는지 샘플 코드로 알려준다. XSS를 방지하는 방법을 3가지 패턴을 통해 확인할 수 있었다.

 

보안 취약점에 대해 깊은 이해가 있지 않아도 쉽게 사용할 수 있는 소프트웨어라 앞으로도 애용하게 될 것같다.