보안 팀을 위해 작성되었으며, 우리 자체 제품에 대해서도 다른 어떤 제품만큼이나 다룹니다.
소개
이 글은 무료 온라인 문서 뷰어의 블로그에 게시되었습니다. 첫 줄에 이를 명시하는 것이 중요합니다. 왜냐하면 이 글이 속한 장르—“무료 PDF 도구의 숨겨진 위험”—는 보통 실험복을 입은 영업 피치이기 때문에, 이 점을 염두에 두고 읽어야 합니다.
그래서 여기서 바로 고지를 합니다. Doconut.app 은 무료 호스팅 뷰어입니다. 이를 사용하면 PDF가 우리 서버에 업로드되고, 그곳에서 렌더링된 뒤, 보기 세션이 끝나면 삭제됩니다. 아래에서 다루는 다른 사람의 인프라에 문서를 업로드할 때 발생하는 구조적 위험은 우리에게도 동일하게 적용됩니다. 우리는 반대 의견을 제시하지 않을 것이며, 우리가 하는 일과 하지 않는 일을 구체적으로 밝히고, 어떤 문서가 여기서 다루어져야 하는지 스스로 판단하도록 하겠습니다.
1. 위험은 구조적이며, 이국적인 것이 아니다
흥미로운 위험은 제로데이(Zero‑day)가 아닙니다. 이는 파일이 여러분이 통제하지 못하는 곳에 존재하게 되는 일반적인 결과입니다.
업로드는 실제로 이루어집니다. 호스팅 뷰어는 문서를 렌더링하기 위해 반드시 해당 문서를 받아야 합니다. “파일이 절대 기기를 떠나지 않는다”는 주장을 하는 호스팅 서비스는 순수 클라이언트‑사이드 도구이거나 부정확하게 설명하고 있는 것입니다. Doconut.app에서는 업로드가 HTTPS를 통해 전송되어 전송 중에 보호되지만, 파일은 결국 우리 서버에 존재하게 됩니다. 왜냐하면 렌더링을 위해서는 반드시 서버에 있어야 하기 때문입니다.
보존은 약속일 뿐, 검증 가능한 메커니즘이 아닙니다. 우리는 세션이 끝나면 파일이 삭제된다고 말합니다. 이는 사실이지만 외부에서 확인할 방법은 없습니다. 이것이 모든 무료 뷰어, 특히 이 뷰어와 관련된 핵심 문제이며, 여러분은 계약이 없는 조직에 신뢰를 확대하고 있는 것입니다.
공유 인프라는 공유됩니다. 무료 공개 서비스는 공통 인프라에서 다수 고객의 문서를 처리합니다. 이는 자체 네트워크 내에서 소프트웨어가 실행되는 경우와는 다른 위험 태세를 의미합니다.
계약이 없으면 법적 근거도 없습니다. GDPR에 따라 개인 데이터를 처리하거나 HIPAA에 따라 PHI를 다루는 경우, 데이터 처리 계약(DPA)이나 비즈니스 연관 계약(BAA) 없이 파일을 프로세서에게 전송하는 것은 업로드 순간부터 문제가 됩니다— 실제로 침해가 발생했는지 여부와 관계없이. Doconut.app은 여러분과 DPA 및 BAA가 없습니다. 규제 대상 자료에 대해서는 이것이 전부이며, 암호화 정도와 관계없이 상황은 변하지 않습니다.
2. 우리가 하지 않는 것
이 글이 속한 장르는 모든 것을 약속하는 경향이 있습니다. 여기서는 오히려 부재에 초점을 맞추어 더 유용한 목록을 제공합니다.
- 보안 인증이 없습니다. ISO 27001, SOC 2, HIPAA 인증, PCI DSS 평가가 없습니다. 무료 사이트에도, SDK에도 적용되지 않습니다. 공급업체 설문에 인증서가 필요하다고 해도 우리는 보유하고 있지 않습니다.
- 감사 로그가 없습니다. Doconut.app에는 계정이 없으므로 접근을 추적하거나 로그를 제공할 수 없습니다.
- 메타데이터 제거가 없습니다. 문서를 그대로 렌더링합니다. 저자 이름, 수정 이력, 파일 내 주석 등은 파일에 그대로 남아 있습니다— 계약서를 전달하기 전에 알아두어야 할 사항이지만, 이 위험은 문서 자체에 귀속될 뿐 우리에게는 해당되지 않습니다.
- 휴식 중 암호화가 없습니다. 저장 자체를 제공하지 않기 때문에 암호화된 저장소도 제공하지 않습니다. 무언가를 보관하지 않는 것이 암호화하는 것보다 강력한 속성이지만, 이는 다른 속성이며 공급업체가 두 가지를 혼동하기도 합니다.
- 조정 가능한 보존 기간이 없습니다. 보존 시점은 우리에게 결정됩니다. 사용자가 조정할 수 있는 설정은 없습니다.
3. 우리가 하는 일
- 업로드는 HTTPS를 통해 수행됩니다.
- 문서는 우리 서버에서 렌더링되며, 브라우저는 원본 파일이 아니라 페이지를 받습니다.
- 렌더링은 실행이 아닙니다: Office 파일의 매크로는 실행되지 않으며, PDF 동작도 트리거되지 않습니다. 뷰어가 문서를 그립니다.
- 파일은 조회 세션이 종료될 때 삭제됩니다. 라이브러리도, 기록도, 계정도 없습니다.
- 업로더는 전송 전에 처리할 수 없는 파일을 거부합니다 — 70개 이상의 확장자를 고정 목록으로 두고, 형식별로 5 MB에서 25 MB까지 크기 제한을 둡니다.
- DICOM은 의도적으로 제외됩니다.
.dcm및.ima파일은 허용되지 않으며, 이는 DICOM 파일이 이미지와 함께 환자 식별자를 포함하고 공개 업로드 엔드포인트가 적절하지 않기 때문입니다.
4. 모든 무료 뷰어에 적용할 수 있는 테스트(이 뷰어 포함)
위협 목록 대신, 사용 가능한 것과 사용할 수 없는 것을 구분하는 네 가지 질문이 있습니다:
- 파일이 업로드되는지 명확히 표시하고 있나요? 답변이 모호하면 업로드된 것으로 간주하세요.
- 보존 기간을 구체적으로 명시하고 있나요? “세션 종료 시 삭제” 혹은 “60분 후 삭제”와 같은 답변이 해당됩니다. “귀하의 파일은 안전합니다”는 해당되지 않습니다.
- 계약서에 서명하나요? 규제 데이터의 경우 이것이 유일하게 중요한 질문이며, 무료 서비스는 거의 서명하지 않습니다. 우리는 서명하지 않습니다.
- 인증을 주장하나요? 그렇다면 인증서와 적용 범위를 요청하세요. 이 범주의 많은 주장들이 그 요청에 부합하지 못합니다.
Doconut.app에 적용하면: 업로드는 되며, 세션 종료 시 삭제가 이루어지고, DPA에 서명하지 않으며, 인증도 보유하지 않습니다. 이러한 조합은 대부분의 문서에 적합하지만 일부에는 부적합합니다. 중요한 점은 어느 쪽인지 판단할 수 있다는 것입니다.
5. 호스팅된 뷰어가 부적절한 경우
문서가 규정 준수 체계에 속하거나, 고객 비밀 유지 의무에 포함되거나, 사고 검토 시 설명하기 불편한 경우, 무료 호스팅 뷰어는 올바른 답이 아닙니다 — 우리 뷰어도 마찬가지입니다. 구조적인 해결책은 렌더링을 자체 네트워크 내에서 유지하는 것입니다.
이것이 바로 Doconut SDK입니다: 이 사이트 뒤에 있는 동일한 .NET 렌더링 엔진을 귀하의 환경에 설치합니다. 귀하의 서버에서 렌더링되며 우리에게 호출을 하지 않으므로, 문서는 아직 평가되지 않은 경계를 넘어가지 않습니다.
SDK가 제공하지 않는 부분도 명확히 알아두세요. 저장 시 암호화, 키 관리, ID 공급자 통합, 감사 로그를 제공하지 않으며, 귀하의 애플리케이션을 어떤 규정에도 준수하도록 만들 수 없습니다. 이러한 제어는 귀하에게 달려 있습니다 — 이것이 핵심이며, 이미 증명할 수 있는 부분이기도 합니다. 네트워크 내부에서 실행되고 외부에 호출하지 않는 구성 요소는 아키텍처적인 논거이며, 대부분의 보안 검토에서 제3자 인증서보다 더 유용합니다.
결론
무료 PDF 뷰어는 실제로 유용하며, 대부분 사람들이 다루는 문서는 민감하지 않습니다. 문제는 뷰어를 사용하지 않은 것이 아니라, 파일이 어느 카테고리에 속하는지 모른 채 사용하는 것입니다.
한 번만 읽어야 하는 일반 문서라면, 아무것도 저장하지 않는 뷰어가 합리적인 선택이며, 파일을 다운로드해 설치된 프로그램으로 여는 것보다 안전합니다. Doconut.app은 이를 무료로 제공하며, 계정 없이 사용하고 이후 파일을 삭제합니다.
책임을 지고 방어해야 할 의무가 있는 경우, 처리를 직접 제어할 수 있는 하드웨어에서 수행하세요.
즉시 수행할 작업
- 감사: 조직 내 PDF 워크플로를 검토하고 이미 사용 중인 무료 도구를 목록화하세요 — 보통 예상보다 더 많습니다.
- 분류: 어떤 문서 유형이 호스팅 서비스에 올릴 수 있는지 결정하세요. 이는 기술적인 문제가 아니라 정책적인 결정입니다.
- 내부로 이전: Doconut SDK 또는 동등한 솔루션을 사용해 나머지를 자체적으로 운영하고, 감사인이 요구할 증거를 보관하세요.
