취약점 공개
더 많은 작업
- Vulnerability Disclosure; 취약점 공개, 윤리적 공개(ethical disclosure), 책임 있는 공개, 조율된 취약점 공개(CVD)
- 제품이나 서비스의 보안 취약점을 발견한 사람이 그 사실을 누구에게, 언제, 얼마나 자세히 알릴지에 관한 원칙과 절차. 이용자가 공격에 노출되는 시간을 최소로 줄이는 것이 목적이다
취약점 정보는 양날의 칼이다. 너무 빨리 자세히 공개하면 패치가 나오기 전에 공격자가 먼저 쓰고, 너무 오래 숨기면 제조사가 고치지 않은 채 이용자만 위험해진다. 그래서 발견자, 제조사(공급자), 조정 기관이 정보를 주고받는 시점과 방식에 대한 관행과 표준이 생겼다.
CISSP 6.4(테스트 결과 분석과 보고)는 "윤리적 공개(ethical disclosure)"를 다룬다. 조직이 모의 침투 테스트나 취약점 평가 중에 다른 회사 제품의 새 취약점을 찾았을 때 어떻게 해야 하는지, 그리고 조직이 외부 연구자의 신고를 받는 쪽일 때 어떤 체계를 갖춰야 하는지가 핵심이다. 이 판단에는 ISC2 윤리 강령의 "사회와 공공의 이익 보호" 원칙이 바탕이 된다.
| 구분 | 전면 공개(full disclosure) | 책임 있는 공개(responsible disclosure) | 조율된 취약점 공개(CVD, Coordinated Vulnerability Disclosure) | 비공개(non-disclosure) |
|---|---|---|---|---|
| 방식 | 발견 즉시 세부 내용을 대중에 공개 | 먼저 제조사에 비공개로 알리고, 패치나 정해진 기한 이후 공개 | 발견자·제조사·조정 기관(CERT 등)이 함께 일정과 내용을 맞춰 공개 | 제조사에만 알리거나 아무에게도 알리지 않음 |
| 장점 | 제조사에 강한 압박, 이용자가 즉시 대응책 마련 가능 | 패치 전 악용 위험을 줄인다 | 여러 제조사·이해관계자가 얽힌 취약점도 질서 있게 처리. 현재 국제 표준과 정부 기관이 권장하는 방식 | 공격자에게 정보가 가지 않는다 |
| 단점 | 패치 전에 공격자가 악용(제로데이) | 제조사가 기한을 무시하면 해결이 늦어질 수 있다 | 조정에 시간이 걸린다 | 제조사가 고치지 않아도 이용자는 모른다. 취약점 매매로 이어질 수 있다 |
| 이용자 보호 | 낮음(단기) | 높음 | 가장 높음 | 낮음 |
"책임 있는 공개"라는 말은 공개를 늦추지 않는 연구자를 무책임하다고 보는 뉘앙스가 있어, 최근 표준과 정부 기관은 "조율된 공개"라는 표현을 주로 쓴다. 두 용어는 실무에서 거의 같은 뜻으로 쓰인다.
| 주체 | 기한 정책 | 내용 |
|---|---|---|
| 구글 Project Zero | 90+30 정책 | 제조사에 알린 뒤 90일 안에 패치를 내도록 한다. 90일 안에 패치가 나오면 패치 배포 30일 뒤 세부 내용을 공개하고, 90일 안에 패치가 없으면 90일이 끝날 때 공개한다. 14일 추가 유예 규정도 있다 |
| 미국 CISA | 상황에 따라 결정 | 공개 여부·영향·제조사 대응·완화책 유무에 따라 일정을 정한다. 제조사가 응답하지 않거나 합리적인 조치 일정을 정하지 않으면, 처음 연락을 시도한 날부터 45일 뒤에 패치 여부와 관계없이 공개할 수 있다 |
기한은 법이 아니라 각 기관의 정책이다. 이미 실제로 악용되고 있는 취약점은 더 짧은 기한을 적용하는 것이 일반적이다.
| 표준 | 대상 | 내용 |
|---|---|---|
| ISO/IEC 29147:2018 (Vulnerability disclosure) | 제조사·서비스 제공자 | 외부에서 취약점 신고를 받는 방법, 신고자와의 소통, 권고문(advisory) 발행 등 공개 측면 |
| ISO/IEC 30111:2019 (Vulnerability handling processes) | 제조사·서비스 제공자 | 신고된 잠재 취약점을 내부에서 처리(검증, 원인 분석, 조치, 배포)하는 프로세스의 요구사항과 권고 |
두 표준은 짝을 이룬다. 29147이 "바깥과 어떻게 소통하는가", 30111이 "안에서 어떻게 고치는가"를 다룬다.
취약점 공개 정책(VDP, Vulnerability Disclosure Policy)은 조직이 외부 연구자에게 "어떤 범위를, 어떤 방법으로 시험해도 되고, 어디로 신고하면 되며, 선의의 연구에 대해서는 법적 조치를 하지 않는다"고 알리는 공개 문서이다. 미국 CISA는 구속력 있는 운영 지침 BOD 20-01(2020년 9월)로 연방 기관이 VDP를 만들어 공개하도록 했다. VDP에는 보통 다음이 들어간다.
- 허용 범위(대상 시스템)와 금지 행위(서비스 거부, 데이터 유출·변경, 사회공학)
- 신고 방법과 필요한 정보
- 선의의 연구에 대한 면책(safe harbor) 약속
- 응답 기한과 진행 상황 공유 방식
- 공개 시점에 대한 협의 원칙
security.txt는 RFC 9116(2022년 4월)이 정한 파일 형식으로, 웹 사이트의 /.well-known/security.txt 위치에 보안 연락처와 정책을 기계가 읽을 수 있게 적어 둔다. 연락처(Contact)와 만료일(Expires) 항목은 반드시 있어야 하고, 만료일은 1년 이내로 두는 것이 권장된다. 정책(Policy) 항목에는 VDP 주소를 적는다.
버그 바운티는 VDP에 보상을 더한 제도이다. VDP가 "신고해도 처벌하지 않는다"는 약속이라면, 버그 바운티는 "신고하면 보상한다"는 약속이다. 보상이 있으므로 범위·중복 처리·보상 기준을 더 엄격하게 정해야 한다.
국내에서는 한국인터넷진흥원(KISA)이 보안 취약점 신고포상제를 운영한다. 최신 버전 소프트웨어에 영향을 주는 신규 취약점을 사이버 보안 취약점 정보 포털(knvd.krcert.or.kr)로 신고받아 위험도·파급도·발굴 난이도를 평가하고, 분기별로 건당 최대 1,000만 원까지 포상금을 지급한다. 신고 자격은 국내외에 거주하는 한국 국적자이며, 운영 중인 웹 사이트의 취약점은 정보통신 관련 법률 문제로 평가·포상 대상에서 제외된다.
- 테스트 중 다른 회사 제품의 새 취약점을 찾으면 가장 먼저 그 제조사(공급자)에 비공개로 알린다. 즉시 공개(전면 공개)나 무시는 오답이다. 제조사가 응답하지 않으면 CERT 같은 조정 기관을 통한다.
- 윤리적 공개의 목적은 이용자 보호이다. 발견자의 명성이나 보상보다 이용자 위험 최소화가 우선이다.
- ISO/IEC 29147은 공개(외부 소통), ISO/IEC 30111은 처리(내부 프로세스)이다.
- VDP는 선의의 연구자에게 범위와 면책을 알리는 정책이고, 버그 바운티는 여기에 보상을 더한 것이다.
- 조직 내부 테스트 결과(우리 시스템의 취약점)는 공개 대상이 아니라 내부 보고와 취약점 관리 대상이다. 둘을 혼동하지 않는다.