세상에 나쁜 코드는 없다
Snyk 알아보기 본문
Snyk은 프로젝트의 코드와 의존하는 외부 라이브러리 등에서 자동으로 보안 취약점을 찾아주고, 그에 대한 해결책을 제공해주는 서비스이다.
개발자 친화적인 소프트웨어를 개발하기 위해 Synk 는 제공하는 서비스를 자체 웹사이트 뿐만아니라 다양한 IDE 환경, 자체 API, CLI에서도 사용할 수 있게 했다.
https://app.snyk.io/org/sbslc2000/integrations
Snyk 의 기능들과 간단한 시연을 아래 유튜브에서 볼 수 있었다.
https://www.youtube.com/watch?v=1w1B0b8_xnI
사용 방식이 직관적이어서 경험이 적은 나도 쉽게 기능을 사용해볼 수 있었다. 다양한 과금 플랜이 제공되고 있고 무료 플랜도 있어 기존에 제작하고 있던 프로젝트를 스캔해보았다.
간단하게 스프링부트만 사용했던 프로젝트라 많은 취약점이 발생되지 않았는데, 만약 도커나 쿠버네티스를 사용하고 있다면 그 각각의 취약점들을 구분해서 확인할 수 있다. 위의 경우 상단의 오류는 Gradle에서 의존하고 있는 프레임워크와 라이브러리에서 발견된 취약점이고, 아래는 코드 자체의 취약점이다.
취약점 우측의 SYNK-JAVA-ORG... 을 누르면 취약점에 대한 추가적인 정보와 해결방법을 확인할 수 있다.
org.springframework:spring-beans 를 상위버전으로 업데이트하면 해당 취약점 문제가 해결된다. 이러한 각각의 취약점들을 관리하기위해 Synk 은 발견된 취약점을 Github 의 Pull Request에 넣어주고, 개발자는 PR을 확인하여 리뷰 후 해결책을 프로젝트에 반영시킬 수 있다. 취약점 자동 PR 기능을 쓰면 개발자는 매번 확인할 필요 없이 Snyk 으로 부터 메일이 왔을때 깃헙에 들어가 PR만 확인하면 된다!
이 부분은 코드부분 취약점에서 가져왔는데, 나의 코드가 XSS 공격을 받을 수 있다는 내용이다. 눌러서 더 자세히 확인해보면
어떤 부분이 문제가 있는지 하이라이트로 보여주고, 우측 Fix Analysis 를 누르면
위와 같이 어떻게 수정해야하는지 샘플 코드로 알려준다. XSS를 방지하는 방법을 3가지 패턴을 통해 확인할 수 있었다.
보안 취약점에 대해 깊은 이해가 있지 않아도 쉽게 사용할 수 있는 소프트웨어라 앞으로도 애용하게 될 것같다.
'웹개발 > 백엔드' 카테고리의 다른 글
프론트엔드 개발 이해를 돕기 위한 백엔드 지식 (0) | 2022.12.30 |
---|---|
Application Error Handling Design: REST API 에러 핸들링 설계 (0) | 2022.12.30 |
[웹개발 토이 프로젝트] Tipple 중간 회고록 (0) | 2022.05.16 |
오류 org.springframework.jdbc.CannotGetJdbcConnectionException 해결방법 ( 초보 웹개발자를 위한 스프링5 프로그래밍 입문) (3) | 2022.03.11 |
[Goorm.io] Goorm ide 에서 mysql 한글 깨짐 현상 해결하기 (0) | 2022.01.25 |