TL;DR
- 오픈소스 소프트웨어(OSS)에서는 기존 코드뿐 아니라 새로 업로드되는 코드에서도 CVE가 발견되므로, 보안 문제가 해결됐다고 볼 수 없으며 지속적인 검토가 필요함
- 보안 검토 주체로 대형 언어 모델(LLM), 보안에 관심 있는 동료, 생태계별 엔지니어링 프로그램, 인간 검토자를 모두 활용할 수 있음
- LLM은 익스플로잇을 잘 찾는 동시에 취약점도 만들 수 있으므로 방어 도구를 일관되게 사용하고 별도의 검토를 병행해야 함
- 새 코드를 작성할 때 전문 보안 검토용 에이전트를 호출하는 습관이 검토 품질을 높이는 방법이 될 수 있음
- 기존 코드에도 LLM 스캐너를 적용하고 Drupal, FreeBSD, Node.js, Perl/CPAN, PHP Foundation, Ruby, Rust 생태계 또는 보안 연구자에게 검토를 요청할 수 있음
보안 검토가 필요한 이유
- 최근 몇 달 동안 오픈소스 소프트웨어(OSS) 보안 상황을 자세히 살펴보면서 취약점이 실제로 어디에서 발생하는지 확인함
- 특히 취약점이 레거시 코드에만 나타나는 것이 아니라, 현재 새로 업로드되는 코드에서도 CVE가 발견된다는 점이 두드러짐
- 사용할 수 있는 도구가 많아졌다고 해서 보안 문제가 해결된 것은 아님
- 문제를 해결하는 방법으로 검토가 중요하지만, 누가 검토할지는 별도 문제임
- LLM을 활용하는 방법
- 보안에 관심 있는 친구에게 요청하는 방법
- 소속 생태계의 엔지니어에게 검토를 요청하는 프로그램을 이용하는 방법
- 위 방법을 모두 사용하는 방법
LLM은 양면성을 가짐
- LLM은 익스플로잇을 찾는 데 매우 뛰어나지만, 인간과 마찬가지로 익스플로잇을 만드는 데도 매우 뛰어남
- 냉소적인 관점에서는 바이브 코딩으로 만든 소프트웨어가 오류로 가득할 수밖에 없다고 보지만, 바이브 코더도 방어 도구를 사용할 수 있음
- 방어 도구를 일관되게 사용하지 않거나, 도구를 통과해 문제가 남는 상황이 발생함
- 매우 성가시고 철저한 동료에게 보안 검토를 받아도 무언가를 놓칠 가능성이 있는 것과 같은 양상임
보안 검토를 습관화함
- LLM을 사용한다면 새 코드에 전문 보안 검토 에이전트를 호출하는 습관을 들이는 것이 성공 가능성을 높이는 방법 중 하나임
- 보안 검토 방식을 찾는 데 참고할 수 있는 표준
security-review.md를 보유하고 있음 - 결과는 LLM 스킬이 에이전트에 무엇을 찾도록 지시하는지와 그 스킬을 구현하는 데 사용하는 모델에 따라 달라짐
- 사용하는 모델에 따라 개념 증명(proof of concept)을 요청하는 방식은 피하는 편이 나을 수 있음
- 특정 Claude 모델은 해당 요청을 거부하거나 계정 접근을 차단하는 것으로 알려져 있으며, 직접 겪은 경험에 기반한 사례도 있음
- 보안 연구를 진지하게 수행하고 Claude를 사용한다면 Anthropic Cyber Verification Program을 살펴볼 수 있음
기존 코드도 스캔함
- 기존 코드에 LLM 스캐너를 적용하는 실험을 권장함
- 예상보다 많은 문제를 발견할 수 있으며, 보안 연구자가 발견하기 전에 수정 사항을 배포할 가능성도 있음
- 최근 관련 없는 변경 작업을 진행하던 중
diff-lockfiles에서 보안 강화가 필요한 부분을 발견한 사례가 있음
도움을 요청함
- 사용하는 생태계에 이미 활용할 수 있는 보안 검토 프로그램이 있을 수 있음
- Drupal
- FreeBSD
- Node.js
- Perl/CPAN
- PHP Foundation
- Ruby
- Rust
- 해당 생태계에 관여하고 있거나 이미 알고 지내는 보안 연구자가 있다면 코드 스캔을 요청하고 결과를 받을 수 있음
- 인간에게 전통적인 방식으로 검토를 요청하는 방법도 있으며, 수십 년 동안 작동해 온 여전히 유효한 선택지임
관련 문서
- Pinning Claude Code
- Claude Code: Anatomy of a Misfeature
- The dot claude Attack Surface
- Claude Will Find a Way
댓글 (0)
로그인하면 이 기사에 내 생각을 남길 수 있어요