【ITニュース解説】Expense Report Fraud Detection: The Altered Receipt PDF Your Controls Never Inspect
2026年08月24日に「Dev.to」が公開したITニュース「Expense Report Fraud Detection: The Altered Receipt PDF Your Controls Never Inspect」について初心者にもわかりやすく解説しています。
ITニュース概要
経費精算のレシート詐欺は、改ざんされたPDFファイルが原因で発生しやすい。従来のシステムは内容しか確認せず、ファイル自体の不正を見落とす盲点があった。HTPBEなどの新技術は、PDFの内部構造変化を検知し、レシートが発行後に編集されたかを特定する。これにより、システムで詐欺対策を強化できる。
ITニュース解説
経費精算は企業活動に不可欠なプロセスだが、残念ながらこの領域で深刻な不正が多発しているという現実がある。企業から年間平均4万ドルもの損失が発生し、その詐欺が発覚するまでに平均2年もかかると言われている。この長い発見までの期間は偶然ではなく、現在の経費精算システムが抱える構造的な盲点の結果なのだ。
多くの企業では、従業員が提出する旅費や交際費の精算において、さまざまなチェック体制を設けている。例えば、経費申請ツールに領収書をアップロードし、上司が承認し、経理部門が抜き打ちで確認する。大規模な企業であれば、米国の企業改革法であるSOX(サーベンス・オクスリー法)に準拠するため、さらに厳格な「探知コントロール」を導入している場合もある。これには、サンプル抽出による検査、同じ内容の重複申請がないかのチェック、規定の金額を超えていないかのフラグ設定、そして「三者照合」と呼ばれる有名な照合プロセスなどが含まれる。
しかし、これらのコントロールは、領収書から抽出された「データ」を対象にしている点が共通している。例えば、三者照合は、商品やサービスの購入の際に作成される発注書と、実際に商品やサービスを受け取った際の記録、そしてベンダー(仕入れ先)からの請求書、これら三つの書類の情報を突き合わせて金額が一致しているかを確認するものだ。これは仕入れに関する不正を防ぐには非常に有効だが、従業員が提出する経費精算とは性質が異なるため、直接的な効果はない。従業員の経費精算は、多くの場合、個人が少額の申請を繰り返し行うため、大規模な仕入れのように発注書や入庫記録が存在しない。そのため、三者照合の対象外となり、他のチェックでも金額が小さいために承認の閾値や抜き打ち検査の対象外とされ、見過ごされてしまうケースが多いのだ。
なぜ領収書の改ざんが既存のチェックをすり抜けてしまうのか、それにはいくつかの理由がある。まず、不正が行われる金額が、多くのチェック体制で設定されている「レビューの閾値」を下回るように調整されていることが多い。少額の改ざんを繰り返すことで、目立つことなく不正を継続できる。次に、従業員が領収書を提出するプロセスは「自己申告」が基本だ。ベンダーからの請求書のように、発行元から直接企業に届くわけではない。従業員がアップロードしたファイルが本物であるかどうかを、システムが発行元と照合する仕組みはほとんどない。さらに、マネージャーや経理担当者による目視でのチェックでは、微妙な改ざんを見破るのは非常に難しい。たとえば、ホテル代の金額がこっそり変更されていたり、ミニバーの費用が追加されていたり、出張期間外の個人的な日付が業務期間内に書き換えられていたりしても、元の領収書と見比べるものがなければ、人間が見分けるのは不可能に近い。光学文字認識(OCR)技術を使った重複検知なども、表示された数字を読み取るだけで、その数字が元々印刷されていたものなのか、後から改ざんされたものなのかを区別することはできない。
そして、正規の領収書自体も、形式が多岐にわたるため、比較の基準が曖昧だ。スマートフォンで撮影した写真、スキャンした画像、航空会社から送られてきたPDF、ホテルごとに異なるシステムで生成された宿泊明細など、様々な形式が存在する。このような状況が、改ざんされた領収書が本物の中に紛れ込む完璧な隠れ蓑となってしまうのだ。結果として、領収書PDFファイルは、経費精算のプロセス全体において、誰もその「ファイルそのものの構造」を検査しない唯一の文書でありながら、精算の正当性を証明する上で最も重要な文書であるという、逆説的な状況が生まれている。
具体的な領収書の改ざん手口は、シンプルだが効果的だ。例えば、84ドルの夕食代を184ドルに水増しする。レストラン名、日付、使用したカードの下4桁は正しいままで、合計金額だけを編集するのだ。ホテルの宿泊明細では、割引料金の明細書を開き、1泊あたりの料金や宿泊日数を増やす。ライドシェアや航空券の領収書でも同様に、PDF形式で保存したファイルを編集し、運賃を高くしたり、個人的な移動経路を業務のものに見せかけたりする。日付の変更も一般的な手口で、金額は変えずに日付だけをずらすことで、本来精算できない個人的な費用を承認された出張期間内に含めるのだ。これらの不正の共通点は、詐欺師が「本物の文書を基にして」改ざんを加えていることにある。この点が非常に重要で、今回紹介する「構造的改ざん検知」という技術がまさにこのパターンを捉えるために作られている。元のファイルは正規のシステムによって生成されており、その後の編集は通常、一般的なPDF編集ソフトウェアで行われる。この編集と保存の過程で、PDFファイルの内部構造に必ず痕跡が残るのだ。
そこで登場するのが、HTPBEというファイル整合性チェックの技術だ。この技術は、領収書に書かれている金額が妥当かどうか、ホテルの宿泊料金がいくらだったかといった「コンテンツ(内容)」は判断しない。また、提出者が本人かどうかといった本人確認ツールでもない。HTPBEが行うのは、PDFファイルが「どのように作られ、変更されたか」というその「構造」を分析することだ。具体的には、ファイル内部の構成情報(クロスリファレンステーブル)、変更が加えられた際に生成される「増分更新レイヤー」(元のファイルを全部作り直すのではなく、変更点だけを付け加えるような記録)、デジタル署名の状態、そしてファイルがいつ、どのソフトウェアによって作成または変更されたかを示すメタデータなどを詳細に調べる。その結果、ファイルが「改ざんされていない (intact)」「改ざんされている (modified)」「判断不能 (inconclusive)」のいずれかであるという判断と、検知された具体的な異常を示すマーカーのリストを返す。
例えば、正規のホテルシステムによって発行された宿泊明細書が、一般的なデスクトップPDF編集ソフトウェアで開かれ、宿泊料金が変更されて保存された場合を考えてみよう。この編集ソフトウェアは、ファイルに変更を加える際に、元のファイルを完全に作り直すのではなく、変更内容を新しい「増分更新レイヤー」として追加する。同時に、ファイルが最後に保存されたツールとして自身の情報をメタデータに記録する。つまり、「ホテルシステムによって生成された」と主張している宿泊明細書なのに、内部の構造には「消費者向けPDF編集ソフトウェアで変更された」という痕跡が残っていることになる。これは、見た目だけでは分からない、ファイル内部の構造的な矛盾であり、HTPBEはこの矛盾を検出する。
HTPBEのAPIを使ってファイルを分析すると、以下のような情報が得られることがある。ステータスが「modified」であれば、改ざんの可能性が高いことを示している。そして、「modification_markers」という項目には、具体的な改ざんの兆候を示すマーカーがリストアップされる。例えば、「HTPBE_MULTIPLE_REVISION_LAYERS」はファイルに複数の改訂履歴が残っていることを、つまり一度作成された後に変更が加えられたことを意味する。「HTPBE_EDITING_TOOL_FINGERPRINT」は、一般的なPDF編集ツールの痕跡が検出されたことを示す。ホテルシステムが直接生成したファイルには、通常このような痕跡は残らない。「HTPBE_DATES_DISAGREE」は、ファイルの作成日と最終変更日に不一致があることを報告する。これらのマーカーが単独で見つかるだけなら、偶然の可能性もゼロではない。しかし、これらが組み合わさって検出された場合、そのファイルが発行された後に開かれ、編集されて保存されたという「高い確信度」で判断できるのだ。
ただし、HTPBEが返す「判断不能 (inconclusive)」という結果については、特に注意が必要だ。これは経費精算の領収書を扱う上で最も重要なポイントの一つと言える。ベンダーからの請求書とは異なり、従業員が提出する正当な領収書の多くは、実は消費者向けのソフトウェアで生成されている。例えば、Uberの電子領収書はHTMLメールをPDFに変換したものだし、レストランの電子レシートはカード決済端末のサービスから発行される。紙の領収書をスマートフォンで撮影した写真もそうだ。これらは、銀行の明細書や公的な証明書のような、厳格な構造を持つ「企業が発行する文書」とは異なる。
HTPBEは、比較すべき元の構造情報がない、つまり消費者向けソフトウェアでクリーンに生成された単一リビジョンの文書を見た場合、「判断不能」と判断する。この「判断不能」は、失敗を意味するものでも、不正の兆候でもない。それは、そのファイルが消費者向けソフトウェアで作られたため、その構造の整合性を証明も反証もできない、ということを意味する。もし、経費精算のワークフローで「判断不能」とされた領収書をすべて不正として却下してしまうと、多くの正直な領収書を拒否してしまい、このツールの利点を生かせないことになるだろう。
「判断不能」を正しく活用するには、「領収書が何であると主張しているか」という情報と組み合わせて判断する必要がある。たとえば、ホテルや航空券の電子チケットのように、本来は構造的に特徴的な出力を持つはずの文書が「判断不能」と判断された場合、それは少し不自然であるため、詳細な確認が必要かもしれない。一方、レストランのレシートやライドシェアの領収書、あるいは紙の領収書の写真が「判断不能」と判断された場合は、それが「通常の結果」であるため、特に問題ないと判断して次に進むべきだ。「改ざんされている (modified)」という結果は「保留してレビューする」というシグナルであり、「判断不能 (inconclusive)」は「発行元と照らし合わせてルーティングを判断する」というヒントとして、それぞれ異なる意味で扱うことが、このツールを有効に活用する上で極めて重要となる。
このHTPBEのような構造的改ざん検知の仕組みは、経費精算のワークフローに簡単に組み込める。従業員が領収書をアップロードする時点で、保存されたファイルへのURLをHTPBEのAPIに送信する。するとAPIは一意のIDを返し、そのIDを使って分析結果を取得できる。結果のステータスが「改ざんされていない (intact)」であれば、通常の承認プロセスに進める。「改ざんされている (modified)」であれば、その明細項目にフラグを立てて、レビュアーによる詳細な確認を促す。「判断不能 (inconclusive)」であれば、前述した「主張された発行元による判断ルール」を適用し、必要に応じて確認を行う。APIは具体的な数値リスクスコアを返すのではなく、明確な判断結果と具体的なマーカーのリストを返すため、いつ、どのマーカーによってどのような判断が下されたかという監査証跡として利用できる。これはSOXのような厳格なコンプライアンス環境において、非常に価値のある証拠となる。
ただし、この構造的改ざん検知にも正直な限界があることを理解しておく必要がある。HTPBEは「本物の文書が改ざんされた」ケースを検出することに特化しているため、「ゼロから捏造された領収書」や「AIによって生成された領収書」は検出できない。もし詐欺師が、既存の領収書を編集するのではなく、デザインツールやオンラインの領収書ジェネレーターサイトを使って、全く新しい偽造領収書を作成した場合、そのファイルには「以前の構造」が存在しないため、矛盾が生じることはない。HTPBEは、このようなファイルに対しても、正規の消費者向けソフトウェアで生成された領収書と同じく、「判断不能 (inconclusive)」と判断する。AIが完全に新しい合成領収書を生成した場合も同様だ。これらの「ゼロからの偽造」や「AI生成」の不正を検出するには、領収書に記載されている取引内容を、発行元のデータやカード会社の記録、予約システムなどと照合するような、別の種類の「コンテンツ層」の検証ツールが必要となる。HTPBEは、本物の領収書を改ざんする、という最も一般的で巧妙な不正手口を確実に捕捉するためのツールであり、企業の不正対策における重要な「防御層」の一つとして機能する。既存のポリシーによるコントロール、高額な申請に対する発行元とのクロスチェック、そして人間による最終的なレビューと組み合わせることで、より強固な不正対策体制を構築できるだろう。この技術は、既存の経費精算システムが長年抱えてきた「領収書PDFファイルそのものの検査」というギャップを埋める、新しいソリューションと言える。