Govulncheck로 패키지 취약성 측정하기

Sangdae Nam·2023년 8월 2일
0
post-thumbnail
  1. Google I/O에 참석하면서 알게된 govulncheck에 대해 정리하고 회사에 도입하게 된 과정에 대해 간단하게 정리한다.

  2. 패키지 취약성이란
    현재 만들어진 라이브러리, 패키지, 서비스 등 중에 독자적인 코드들로만 이루어진 경우는 거의 없다. 모든 서비스들은 여러 패키지들을 사용하며, 이때 여러 패키지들끼리의 의존관계가 얽히게 된다. 패키지는 개발 생산성을 높여주지만 이러한 의존관계가 꼬이거나 특정 패키지에 취약성이 문제를 발생시키면 모든 패키지들이 영향받아 결과적으로 서비스 자체의 panic으로 elevate 된다.

  3. govulncheck
    Govulncheck이란 golang에서의 패키지 취약성을 진단해주는 도구이다. 관련 내용은 https://go.dev/blog/govulncheck 에서 확인 가능하다. 사용 방법도 간단하다.

go install golang.org/x/vuln/cmd/govulncheck@latest
govulncheck ./...

두 줄의 코드만 있으면 간단하게 패키지 취약성 진단이 가능하다. 이때 주의할 점은 govulncheck의 target path를 적어준 뒤 /... 를 붙여줘야 해당 path의 패키지들을 모두 진단해준다. (ex. something_dir/...)

  1. 활용 방안
    해당 govulncheck를 회사에서 어떻게 써먹을 수 있을까 하다가 Slack bot으로 만들어서 Dev, Prod 서버 내 패키지들을 주기적으로 진단할 수 있도록 하였다. go의 Slack 패키지를 사용해서 PostWebHook으로 패키지 진단 내용을 특정 채널로 쏴주는 테스트를 만들었고 해당 모듈을 배치잡으로 걸어서 배포해두었다. 그리고 Slack Bot 채널을 따로 만들어서 이걸 붙어야 하는데 해당 내용은 이후에 go에서의 Slack 관련 내용 정리할 때 함께 진행하겠다.

  2. 추가로 사실 패키지 취약성이 아예 존재하지 않는 프로그램들은 없을 것이다. 때문에 해당 모듈을 통해서 취약성이 발견되었다면 이를 팀원들과 논의하고 패키지에 대한 업그레이드를 할지 등을 함께 논의하는 것이 중요하다.

profile
AI+Backend

1개의 댓글

comment-user-thumbnail
2023년 8월 2일

유익한 글이었습니다.

답글 달기