プロトコルの監査状況の確認
- 執筆
- CRYPTO PORT 編集部
- 公開日
- 更新日
- 読了目安
- 6 分
結論
監査は、外部の専門家がある時点のコードを調べた記録であって、脆弱性が存在しないことの証明ではありません。確認すべきは「監査済み」の表示ではなく、誰が、いつ、どの範囲を調べ、指摘がどう扱われ、その後にコードが変更されていないかです。監査を受けたプロトコルでも流出は起きています。
要点
- 「監査済み」の表示だけでは情報量がない。報告書そのものを見る
- 監査した日付と、現在稼働しているコードの版が一致しているかを確認する
- 指摘事項が修正済みか、未対応のまま残っていないかを読む
- 監査を受けていても攻撃を受けた事例は多数ある。安全の保証ではない
定義
スマートコントラクトのコードについて、第三者の専門会社が脆弱性を調べた結果と、その報告書の内容・時期・範囲を利用者側で確認する作業のこと。
まず、監査が何をするものかを正確に把握してください。監査会社は、依頼された範囲のコードを読み、既知の脆弱性のパターンや設計上の問題を指摘します。作業には期限があり、対象も限定されます。したがって、監査は「見つかった問題の一覧」であって、「問題が無いことの証明」ではありません。この区別を曖昧にした宣伝が非常に多いため、最初に固定しておいてください。
確認の手順としては、まずプロジェクトの公式サイトやドキュメントから、監査報告書そのものへのリンクを探します。報告書が公開されていない、あるいは監査会社の名前だけが掲載されている場合は、その時点で確認できる情報が乏しいということです。監査会社の側にも報告書の一覧が公開されていることが多いので、突き合わせると、そもそも監査が実在するかが分かります。
報告書を開いたら、見るべき点は限られます。監査の実施日、対象となったリポジトリとコミット(コードの版)、監査の範囲、そして指摘事項の一覧とその対応状況です。特に重要なのが、実施日と版です。監査後にコードが大きく変更されていれば、報告書が対象としたものと、いま自分の資産を預けようとしているものは別物です。
指摘事項の読み方も要点があります。重大度が高い指摘が「修正済み」となっていれば、そこは対処されたということです。一方、「認識しているが対応しない」とされている項目があれば、その理由と影響を読んでください。設計上の判断として受け入れている場合もありますが、その判断のリスクを引き受けるのは利用者です。
最後に、監査以外の材料も並べておきます。バグ報奨金制度の有無と規模、稼働してからの期間と扱っている資産規模、過去の障害に対する事後報告の質。これらは、運営が問題にどう向き合うかを示します。ただし、いずれを積み上げても安全の証明にはなりません。監査を受けた著名なプロトコルが流出被害に遭った例は複数あります。確認は判断の材料を増やす作業であって、リスクを消す作業ではありません。
注意点
- · 監査を受けていたプロトコルでも、資産が全額流出した事例があります。監査は安全の保証ではありません
- · 監査後にコードが変更されている場合、報告書は現在稼働している版を対象としていません。日付と版を必ず確認してください
- · 存在しない監査会社の名前やロゴを掲載する偽プロジェクトがあります。監査会社側の公開情報と突き合わせてください
よくある質問
複数の監査を受けていれば安全と考えてよいですか?
監査の数は、確認された範囲が広いことを示しますが、安全の度合いを表す数値ではありません。実際に、複数回の監査を経たプロトコルが攻撃を受けた例があります。数を数えるより、直近の監査が現行のコードを対象としているか、指摘が解消されているかを読むほうが有益です。