Claude로 코드 공격 표면 줄이기
원제 Using Claude to reduce the attack surface of code
105 포인트댓글 71

Key Point
OpenSSH 같은 최고 수준의 감시 코드에서도 불필요한 공격 표면이 발견되며, 개발자는 Claude를 사용해 자신의 소프트웨어 공격 표면을 체계적으로 줄일 수 있다.
핵심 요약
- Anthropic이 AI 모델을 사용하여 소프트웨어의 불필요한 공격 표면을 자동으로 찾아내고 제거하는 방법을 연구했다.
- 개별 취약점 수정보다 코드 도달 가능성을 줄이면 알려지지 않은 취약점의 심각도를 낮출 수 있다.
- Claude가 25개 오픈소스 프로젝트(C, C++, Java, PHP, Python, 500만 줄 이상)를 분석해 493개 문제를 발견했다.
- 기본 설정, 설정 상호작용, 조기 도달 가능성 등 세 가지 기법으로 17,000개 설정 옵션 중 3,842개의 보안 관련 옵션을 검토했다.
- 11개 Gated 프로젝트(인증 필요)에서 93개의 불필요한 사전인증 표면, 37개의 인증 전 실행 지점, 61개의 보안 제어 우회 설정 조합을 찾았다.
- 162개의 보안 민감 설정 조합이 경고 없이 받아들여졌으며, 이 중 94개는 보안 제어를 자동으로 비활성화했다.
- DNS 역조회 미활성 상태에서 호스트명 기반 접근 규칙이 실패해 deny 리스트가 열린 상태로 작동하는 패턴이 4개 프로젝트에서 독립적으로 발견됐다.
- OpenSSH 10.4에서 Claude는 기본 설정에서 인증되지 않은 클라이언트가 도달 가능한 4,500줄의 ML-DSA-44 양자후 서명 알고리즘 코드를 발견했다.
- OpenSSH 10.5 수정 후에도 클라이언트가 광고한 알고리즘과 실제 전송 키 타입 불일치, 인증서의 CA 서명 검증이 설정 확인 전에 실행되는 두 가지 간격을 찾았다.
- 최종 수정(10.6)으로 파서 내부에 검사를 배치하여 인증되지 않은 클라이언트가 도달 가능한 코드를 약 20% 줄였다.
- Anthropic은 세 가지 기법을 OSS-Scanner에 통합할 재사용 가능한 Claude 스킬로 만들었으며, 각 패스는 빈 컨텍스트 윈도우에서 시작한다.
- 기본 설정 발견 시 수정사항을 구현하고 프로젝트의 테스트 스위트로 회귀 테스트를 수행하여 기본 동작 변화가 없음을 확인한다.