在開啟PDF檔案之前,請務必先檢查以下三點。

大多數人都知道在打開任何文件之前應該執行哪些基本檢查。這也適用於PDF檔案:務必確認寄件者身分合法,開啟或下載來不明的附件前要格外謹慎,並避免下載帶有雙重副檔名(例如.pdf.exe)的PDF檔案。這些都是非常好的習慣,能大幅降低落入低成本網路釣魚陷阱的風險。

在開啟PDF檔案之前,請務必先檢查以下三點。

然而,PDF攻擊手段不斷演變,並非總是能遵循可預測的路徑。這些文件是結構化的容器,能夠攜帶隱藏物件、數位簽章和加密元資料;它們還可以執行特定操作。將它們視為被動文件意味著在不了解其內容的情況下盲目信任,這非常危險。雖然現代PDF閱讀器可以抵禦某些風險,但它們並非萬無一失。在開啟任何PDF檔案之前,您都應該進行徹底的檢查,以識別潛在威脅。

開啟PDF文件前,請檢查該文件是否可以執行。

活動物件、自動化程序和嵌入式有效載荷

運行 pdfid 命令

PDF 檔案是一種基於物件的格式,它透過連結字典、表格、陣列和引用等物件來建立。這些文件支援腳本和嵌入式文件。它們可以作為特定操作的起點,並能自動觸發這些操作。 PDF 文件真正的危險不在於文件的內容,而在於它能做的事情。

收到 PDF 檔案後,首先要檢查它是否包含可執行檔。最好的方法是在安裝 Python 和命令列工具後執行以下命令。 PDFiD 基於 Python 的:

python pdfid.py C:UsersYouDownloadssuspicious.pdf

根據測試結果,如果下列任何物件的值不為零,則可能存在風險:

  • /JS 或 /JavaScript
  • /OpenAction
  • /發射
  • /AA(附加操作)
  • /嵌入式文件

下表說明了這些物件可能指涉的內容:

目的أهميته
/JS 或 /JavaScript用於偽裝和為剝削做準備
/OpenAction文件開啟時,程式碼可以自動運作。
/發射可以實施外部應用程式
/嵌入式文件它可以包含輔助載荷
/AA(附加操作)與 OpenAction 非常相似

大多數合法文件不需要這些物件。例如,`/Launch` 對發票來說毫無用處。不要指望任何靜態報告需要嵌入文件。大量上述物件並不一定意味著它是惡意軟體。但是,它們確實會將 PDF 文件從文件轉換為互動式容器。您應該使用工具來… pdf-parser.py 需要進一步調查以確定結果是否對所提及的任何主要物件都傳回非零值。

然而,一條基本的經驗法則是,如果您有任何疑慮,請在隔離環境或虛擬機器中開啟 PDF 檔案。此外,腳本並非總是顯而易見的,即使沒有腳本,也不代表惡意物件無法利用 PDF 讀取器中的漏洞。已有多個 CVE 案例源自於解析器缺陷,而沒有任何可見的腳本。 JavaScript 只是可執行能力的一個組成部分;另一個重要因素是檔案的複雜性及其執行的可能性。您絕不應該意外開啟任何可能執行、取得或儲存惡意程式碼的檔案。

在信任文件之前,請先驗證其加密完整性。

數位簽章、憑證鍊和簽章後修改

顯示 PDF 檔案的電子簽名

僅在 PDF 文件上顯示徽標或可見簽名並不能保證其完整性。只有存在數位簽章才能驗證完整性。加密簽章依賴公鑰基礎設施 (PKI),可以確認 PDF 文件的三個資訊:文件未被篡改(完整性)、簽署者身分(真實性)以及文件來源(不可否認性)。

如果任何 PDF 檔案聲稱具有授權,您可以執行先前探索過的 PDFiD 檢查,並尋找 /AcroForm 值。任何大於零的值都表示存在簽名表單欄位。然後,您可以單獨開啟該文件。 Adobe Reader 或任何其他進階 PDF 工具 請檢查簽名欄是否包含以下內容:

  • 簽名有效嗎?
  • 它是否源自可信的根權威機構?
  • 該證書是否已過期或已被失效?
  • 文件簽署後是否已修改過?
  • 是否有可靠的時間戳?

這項檢查是必要的,因為文件可能顯示簽名,但實際上並沒有加密簽名。此外,由於 PDF 檔案在簽名後可以附加修訂版本,因此您應特別注意增量更新。如果讀者在簽名後指出修改之處,您應格外謹慎。下表提供了一個簽章完整性檢查範例。

簽名狀態意義
良好可靠安全狀況良好,地點身分已核實
有道理,但有自利成分。安全無虞,但身分存疑
損壞或改裝安全面臨風險
無簽名加密沒有絕對的保證。

無數合法的PDF文件都沒有簽名,這完全正常。但是,一旦文件聲稱具有權威性,例如銀行通知、法律文件和公司合同,如果缺少簽名,就值得關注了。聲稱具有權威性的文件應該能夠透過數學方法證明其合法性。

在與文件互動之前,請先驗證文件來源和結構一致性。

元資料對齊、交付鏈驗證和結構異常

即使不可執行,來源不明且未簽署的 PDF 文件也可能有風險。為了保護自身安全,您需要檢查檔案的傳遞路徑。應檢查以下三個值:SPF(寄件者政策框架)、DKIM(基於網域的郵件驗證)和 DMARC(基於網域的郵件驗證、報告和合規性)。這些電子郵件驗證協定用於驗證電子郵件是否確實來自其聲稱的網域。若要檢查這些路徑,請依照下列步驟操作:

  1. 開啟包含PDF附件的電子郵件。
  2. 點擊電子郵件右上角的三個點,然後點擊 查看原文.
  3. 檢查值 SPF و 德基姆 و DMARC如果這些值是 通過來源已核實。

您也可以快速查看電子郵件詳情,將顯示的名稱與實際的傳送網域進行比較。但更重要的是,如果檔案是透過連結下載的,請檢查重定向字串。為此,請複製連結並將其貼上到類似這樣的工具中。 網址掃描 要查看文件經過的每一步,包括原始鏈接,您可以透過執行以下命令來檢查鏈接是否有效。 VirusTotal 的 URL 檢查器接下來,檢查該文件。您可以安裝它。 Exif工具 執行以下命令以尋找檔案值,例如作者、建立者、生產者、建立日期和修改日期。

exiftool 可疑.pdf

取得這些值後,將它們與 PDF 文件中的資訊進行比較。例如,如果 PDF 文件應該是您跨國銀行 2026 年的發票,但產品資訊顯示是舊版 LibreOffice 消費者版,則表示有問題。最後,運行以下命令。 qpdf 這是為了保持結構一致性。

qpdf --檢查可疑的.pdf

多個日期遞增、物體過度流動、奇怪的壓力層以及相互參照的異常,可能是內部正在發生有害事情的跡象。

將PDF文件視為可執行容器,而不是被動式文件。

雖然列印出來的 PDF 檔案看起來像一張普通的紙,但實際上它更像是一個包裝好的容器。它可以有效地執行某些操作。為了安全起見,您應該仔細檢查文件底層的機制。

使用安全應用程式是確保線上安全的一種方法。但是,在開啟 PDF 檔案之前暫停並檢查一下的習慣,可以在應用程式發生故障時保護您。

轉到頂部按鈕