암호화된 PDF 문서를 해킹하는 PDFex

암호로 보호된 pdf 문서의 내용을 외부로 유출할 수 있는 취약점이 발견됐다. 이를 이용한 공격 방법을 PDFex라고 하는데, 암호 자체를 알아내거나 암호화를 해제하는 것이 아니다. pdf 암호화 규격의 취약점을 이용해 우회하는 것이다.

pdf 문서 규격의 암호화 표준에는 2가지 문제점이 있다. 우선 부분적인 암호화(partial encryption)를 지원하는 것이 문제다. 암호화된 pdf 문서 내에는, 문서의 구조를 정의하는 개체(objects)가 암호화되지 않은 상태로 포함될 수 있다. 즉 암호화된 본문(ciphertexts)과 평문(plain texts) 개체가 공존할 수 있다. 여기에 해커가 평문으로 악성코드를 삽입할 수 있는 틈이 생긴다.

다음으로 암호화된 부분이 조작될 수 있다는 점이다(ciphertext malleability). 부분 암호화된 문서가 아니거나 pdf 뷰어가 부분 암호화를 지원하지 않는 경우에는 이 취약점을 이용한다. pdf가 사용하는 CBC 암호화 모드는 무결성 검사(integrity check)를 하지 않는다. 따라서 해커는 CBC gadget을 이용해, 암호화된 부분을 변경하거나 아예 새로 만들어서 악성코드를 삽입할 수 있다.

이런 취약점을 이용해 암호화된 문서에 무단으로 삽입된 악성코드는, 피해자가 문서를 열면 그 내용을 평문으로 해커의 서버로 전송한다. 암호를 알 필요도 없이, 내용을 그대로 볼 수 있는 것이다.

이 연구에서는 많이 쓰이는 pdf 뷰어 27가지를 대상으로 테스트했는데, 모두 성공했다. 여기에는 Adobe Reader, Foxit Reader, 크롬 브라우저, 사파리 브라우저 등이 포함된다.

그런데 PDFex의 실용성에는 의문이 든다. 문서 암호화는 단순히 파일이 통째로 유출됐을 때를 대비하는 것이 주 용도다. 악성코드나 해킹을 통해 원격으로 유출됐거나, 직접 PC나 하드 드라이브를 훔쳐갔거나 하는 경우 말이다.

그러나 PDFex 공격을 하려면 먼저 그 문서에 악성코드를 삽입해야 한다. 그리고 피해자가 정당한 암호를 입력해 그 문서를 열어야먄 한다. 결국 먼저 피해자의 PC를 해킹해야 하고, 피해자의 도움이 있어야 한다는 것이다.

이미 피해자의 PC를 해킹했다면 PDFex 공격 같은 것을 할 필요가 없다고 생각한다. 파일을 아무리 강력하게 암호화 했다고 하더라도, 그것을 사용하려면 암호화를 해제해야 한다. 암호화된 문서를 열어 작업을 하면, 평문으로 메모리에 로드된다. 즉 사용 중에는 무방비로 노출된다는 것이다.

따라서 피해자의 PC를 이미 해킹한 경우라면, 메모리의 내용을 감시하고 유출하는 악성코드를 심는 것이 훨씬 효율적이다. 이런 악성코드는 많이 있다. 일단 심어 놓으면 pdf 뿐만 아니라 MS Office 문서, 가상화폐, 사진 등 어떠한 종류의 파일이라도 훔칠 수 있다.

결론적으로 PDFex 공격은 애초에 파일 암호화의 임무 범위를 벗어나는 것이라고 생각한다.


참고 자료
  1. Researchers Find New Hack to Read Content Of Password Protected PDF Files

댓글

이 블로그의 인기 게시물

마이크로소프트 4K 무선 디스플레이 어댑터(MS WDA 3) 리뷰

와이파이(Wi-Fi) 보안 설정

엑셀 필터 상태에서 복사와 잘라내기