本文へ移動
中級者使い方を調べる

監査報告書を読む

執筆
CRYPTO PORT 編集部
公開日
更新日
読了目安
6 分

結論

監査報告書で最初に見るのは、監査の対象となったコードの版と範囲、そして指摘事項が修正済みかどうかです。「監査済み」という言葉だけでは何も分かりません。監査後に変更されたコードや、範囲外の部分、依存する外部の仕組みは、報告書の保証の外にあります。

要点

  • 読む順序は、対象の版とコミット → 範囲 → 指摘の重大度 → 修正状況 → 監査後の変更
  • 報告書は監査時点のスナップショット。その後の変更には及ばない
  • 範囲外と明記された部分は、確認されていないという意味
  • 指摘ゼロの報告書は、脆弱性がないことの証明ではない

定義

外部の監査事業者が、指定された版のスマートコントラクトのコードを対象に検査を行い、発見した問題点と重大度、対応状況をまとめた文書のこと。

手順としては、まず報告書そのものを正しい場所から入手します。プロジェクトの公式ドキュメント、または監査事業者が公開している一覧から取得してください。プロジェクト側の紹介ページに書かれた要約だけを読むのでは、都合のよい部分だけを見ることになります。PDFの表紙にある監査事業者名と、その事業者の公式サイトの公開一覧が一致するかも確認できます。

次に見るのが、対象の特定です。報告書の冒頭には、監査したリポジトリ、コミットのハッシュ、対象ファイルの一覧が書かれているのが普通です。ここで確認するのは、その版が現在動いているコントラクトと同じかどうかです。デプロイ済みコントラクトの検証済みソースと突き合わせられれば理想ですが、少なくとも監査の日付と、コントラクトのデプロイ日・更新日の前後関係は確認できます。

続いて、範囲の記述を読みます。多くの報告書には、何を対象とし、何を対象外としたかが明記されています。対象外になりやすいのは、フロントエンド、オフチェーンの運用、鍵の管理、依存する外部プロトコルやオラクルです。範囲外の記述は、そこに問題がないという意味ではなく、見ていないという意味です。

そのうえで、指摘事項を重大度ごとに見ます。重大・高・中・低といった区分と、それぞれについてプロジェクト側がどう対応したかが記載されます。「修正済み」「承知のうえで受容」「議論中」のどれであるかが重要です。受容と書かれた項目は、リスクが残ったまま運用されているという意味になります。件数より、残っている項目の中身を読んでください。

最後に、監査の限界です。監査は決められた時間と範囲で行う検査であり、すべての欠陥の不存在を示す方法ではありません。実際に、監査を受けたプロトコルが後から攻撃を受けた例は複数あります。さらに、監査後にコードを差し替えられる構造であれば、報告書の対象はもう動いていないかもしれません。報告書の存在は確認材料の一つであって、安全の保証ではありません。

注意点

  • · 「監査済み」という記載だけでは、対象も範囲も分かりません。報告書本体を確認してください
  • · 監査後にコードが変更・アップグレードされていれば、報告書の対象外です
  • · 監査事業者名を騙り、存在しない報告書を掲げる例があります。事業者側の公開一覧と照合してください

よくある質問

  • 複数の監査を受けていれば安全ですか?

    確認の目が増えることは有利ですが、安全の保証にはなりません。重要なのは、監査の対象が現在稼働しているコードと一致しているか、指摘がどこまで修正されたか、範囲外が何かです。数を数えるより、中身を読んでください。

関連通貨

次に読む

仮想通貨診断

いくつかの質問に答えるだけ。結果はその場で表示されます。

診断をはじめる