나는 PDF 보안에 대한 내 생각을 영원히 바꾼 전화 통화를 아직도 기억한다. 2019년 3월의 화요일 오전 2시 47분, 나는 340,000명 이상의 환자의 기록을 관리하는 중형 의료 제공업체에서 정보 보안 이사로 근무하고 있었다. 우리의 CISO가 전화를 걸어왔고, 조절된 공포감으로 목소리가 떨렸다: "우리에겐 문제가 발생했습니다. 환자 기록이 노출되었습니다. 우리가 안전하다고 생각했던 PDF입니다." 그날 밤, 나는 23,000개의 이른바 "비밀번호로 보호된" PDF 파일이 검색 엔진에 인덱스되었고, 그 내용이 인터넷 연결이 있는 누구에게나 완전히 읽히는 것을 알게 되었다. 비밀번호는? 기술적으로 적용되어 있었지만, 구현이 너무 형편없어서 봉투 밖에 크레용으로 쓴 것과 다름없었다.
💡 주요 사항 정리
- PDF 보안 현황: 문서가 생각보다 더 취약한 이유
- PDF 암호화 이해: 모든 보호가 동등하게 만들어진 것은 아니다
- 비밀번호 전략: 실제로 작동하는 방어 구축
- 인증서 기반 암호화: 기업 솔루션
그 사건은 우리에게 수정, 규제 벌금 및 법적 비용으로 120만 달러의 비용이 들었다. 더 중요한 것은 신뢰를 잃었다는 것이다. 그러나 그것은 나에게 매우 귀중한 것을 가르쳐주었다: PDF 보안은 단순히 체크박스를 확인하거나 기능을 적용하는 것이 아니다. 실제 위협 모델, 현실 세계의 공격 벡터 및 보안 기능이 실패할 수 있는 때로는 반직관적인 방식에 대한 이해가 필요하다. 지난 14년 동안 문서 보안에서 일하면서—처음엔 의료 분야에서, 그 다음 법률 기술에서, 현재는 독립 컨설턴트로서—나는 상상할 수 있는 모든 실수를 목격했고, PDF를 보호하는 것은 대부분의 사람들이 문제에 접근하는 방식과는 근본적으로 다른 사고방식을 요구한다는 것을 배웠다.
PDF 보안 현황: 문서가 생각보다 더 취약한 이유
불편한 진실부터 시작하자: 평균 조직은 민감한 정보가 포함된 PDF가 얼마나 있는지, 이러한 PDF가 어디에 저장되어 있는지, 누가 접근할 수 있는지를 전혀 알지 못한다. 2023년에 나는 Fortune 500 금융 서비스 회사에 대한 감사를 실시했는데, 우리는 그들의 네트워크에서 847,000개의 PDF 파일을 발견했다. 그 중 34%는 개인 식별 정보(PII)를 포함하고 있었고, 12%는 비공식적 자료로 간주될 수 있는 재무 데이터를 포함하고 있으며, 3%는 생산 시스템에 접근할 수 있는 자격 증명이나 API 키가 포함되어 있었다. 문제는? 민감한 PDF 중 단 8%만이 어떤 보안 제어가 적용되었다는 것이다.
PDF는 여러 위협 벡터의 교차점에 존재하기 때문에 보안 관점에서 독특한 문제를 가진다. 그것들은 문서이기 때문에 사람들이 편하게 다룬다—이메일로 보내거나 클라우드 저장소에 업로드하거나 메시지 앱을 통해 공유한다. 그러나 그것들은 또한 자바스크립트, 임베디드 파일, 데이터를 제출하는 양식 및 외부 리소스에 대한 링크를 포함할 수 있는 실행 가능 컨테이너이다. 동시에 믿기 너무 신뢰가 가지 않고 신뢰가 가지 않다. 사용자는 PDF를 확인도 없이 열지만, 그것의 진위를 검증하거나 변조되었는지 확인하지는 않는다.
PDF 사양 자체는 756페이지의 문서(현재 PDF 2.0 기준)이며, PDF 기능을 구현하는 대부분의 개발자는 약 15%만 이해하고 있다. 이는 엄청난 공격 표면을 생성한다. 나는 개인적으로 잘못된 객체 스트림을 사용하여 PDF 리더를 공격하고, 내용을 숨기기 위해 교차 참조 테이블을 조작하며, 다른 리더에 따라 서로 다른 내용을 표시하는 문서를 만들기 위해 증분 업데이트를 사용한 사례도 있다. 그리고 나는 특별히 정교한 공격자가 아니다—나는 가능한 것을 이해하려는 방어자일 뿐이다.
사람들이 PDF를 만들고 보호하기 위해 사용하는 도구는 수천 달러에 달하는 엔터프라이즈 솔루션에서 데이터를 수확할 수도 있는 무료 온라인 변환기까지 다양하다. 내 경험에 따르면 약 60%의 조직은 최소 세 가지 다른 PDF 생성 도구를 사용하며, 그들 간에 일관된 보안 정책을 거의 갖추고 있지 않다. 한 부서는 적절한 암호화를 사용하여 Adobe Acrobat을 사용하고, 다른 부서는 모든 보안을 제거하는 인쇄-투-PDF 드라이버를 사용하며, 세 번째 부서는 데이터 보호 법률이 의심스러운 관할권에 서버에 모든 것을 업로드하는 온라인 도구를 사용하고 있을 수 있다.
PDF 암호화 이해: 모든 보호가 동등하게 만들어진 것은 아니다
대부분의 사람들이 PDF 보안에 대해 생각할 때, 그들은 암호화에 대해 생각한다. 그러나 "암호화된 PDF"는 "잠긴 문"이라는 표현만큼 구체적이다—여러 가지 종류의 자물쇠가 있으며, 그 중 일부는 종이 클립으로 따낼 수 있고, 일부는 산업용 절단 장비가 필요하다. PDF 사양은 여러 가지 암호화 알고리즘을 지원하며, 그들 간의 차이는 학문적이지 않다—이는 실제 보안과 보안 극장이 다르다는 것을 의미한다.
"PDF 보안은 단순히 체크박스를 확인하거나 기능을 적용하는 것이 아니다—실제 위협 모델, 현실 세계의 공격 벡터 및 보안 기능이 실패할 수 있는 때로는 반직관적인 방식을 이해하는 것이 중요하다."
현재 사용되고 있는 가장 오래된 암호화 방법은 40비트 키를 사용하는 RC4로, 1990년대에 도입되었을 때 약했으며 현재는 완전히 깨졌다. 나는 무료로 제공되는 도구를 사용하여 내 노트북에서 30초도 안에 40비트 RC4로 암호화된 PDF를 깨뜨릴 수 있다. 그럼에도 불구하고, 나는 이러한 파일을 종종 목격하며, 주로 10년 동안 업데이트되지 않은 레거시 시스템 또는 구식 소프트웨어로 인해 생성된 것이다. 한 기억에 남는 사례로, 한 법무법인은 2004년의 문서 관리 시스템이 다른 것을 지원하지 않기 때문에 합의서에 RC4-40 암호화를 사용하고 있었다. 그들은 그들의 "안전한" 문서가 기본적인 기술 기술만으로도 열릴 수 있다는 것을 알게 되어 충격을 받았다.
현재 표준은 AES-256 암호화이며, 실제로 안전해야 하는 모든 것에 대해 사용해야 한다. AES-256은 비밀 정보에 대해 미국 정부가 사용하는 것과 동일한 암호화 표준이다. 적절한 강력한 비밀번호로 올바르게 구현되면, 현재 기술로는 사실상 깨지지 않는다—우리는 2^256개의 가능한 키에 대해 이야기하고 있으며, 이는 관측 가능한 우주에 있는 원자 수보다 많다. 그러나 여기서 중요한 문구는 "강력한 비밀번호로 올바르게 구현될 때"이다.
대부분의 PDF 암호화가 실제로 실패하는 것은 비밀번호 때문이다. 나는 수천 개의 암호화된 PDF를 분석했으며, 가장 일반적인 비밀번호는 예측 가능한 패턴이다: "password", "123456", 회사 이름, 문서 이름 또는 다양한 형식의 날짜들. 내가 지난해 실시한 침투 테스트에서, 나는 10,000개의 일반 비밀번호 사전을 사용하여 암호화된 PDF의 67%를 깨뜨릴 수 있었다. 암호화는 기술적으로 강력했으나—AES-256—비밀번호가 너무 약해서 암호화가 존재하지 않는 것과 다름없다.
PDF에서 사용자 비밀번호와 소유자 비밀번호 간에도 중요한 구분이 있다. 사용자 비밀번호(오픈 비밀번호라고도 함)는 문서를 열기 위해 반드시 필요하다. 소유자 비밀번호(권한 비밀번호라고도 함)는 문서를 열었을 때 무엇을 할 수 있는지를 제어한다—인쇄, 텍스트 복사, 편집 등. 문제는 소유자 비밀번호가 근본적으로 깨져 있다는 것이다. 실제로 콘텐츠를 암호화하지 않으며, 단지 규정 준수를 지키는 PDF 리더가 동의하는 플래그를 설정하는 것이다. 규정 준수를 중시하지 않는 PDF 리더는 이 제한을 간단히 무시할 수 있다. 나는 어떤 무료 도구를 사용해도 PDF의 소유자 비밀번호 제한을 약 5초 안에 제거할 수 있다.
비밀번호 전략: 실제로 작동하는 방어 구축
비밀번호 보호를 사용할 것이라면—많은 사용 사례에 대해 여전히 가장 실용적인 옵션이다—기술적 현실과 인간적 요소를 모두 인정하는 비밀번호 전략이 필요하다. 나는 "상황적 비밀번호 강도"라는 프레임워크를 개발했으며, 이는 콘텐츠의 민감도, 배포 방법 및 문서의 예상 수명에 따라 요구 사항을 조정한다.
| 보안 방법 | 보호 수준 | 사용 사례 | 한계 |
|---|---|---|---|
| 비밀번호 보호만 | 낮음 | 기본 파일 접근 제어 | 쉽게 우회 가능, 콘텐츠 암호화 없음, 무차별 대입 공격에 취약함 |
| 40비트 RC4 암호화 | 매우 낮음 | 레거시 호환성 | 몇 초 안에 깨질 수 있음, 사용 중단된 표준, 허위 안전 감각 제공 |
| 128비트 AES 암호화 | 중간-높음 | 표준 비즈니스 문서 | 올바르게 구현되면 안전하나, 약한 비밀번호에 취약함 |
| 256비트 AES 암호화 | 높음 | 민감/규제된 데이터 | 강력한 보호, 적절한 키 관리 및 비밀번호 정책 필요 |
| 삭제 + 암호화 | 매우 높음 | 법적, 의료, 기밀 문서 | 적절한 삭제 도구 사용 필요, 메타데이터 제거 중요, 인적 오류 위험 |
매우 민감한 문서—개인 식별 정보, 재무 데이터, 영업 비밀 또는 규제되는 데이터를 포함하는 모든 것—에 대해...