Enterprise Ethereum Allianceは、スマートコントラクトのセキュリティに関して一貫性を確保するためのスマートコントラクトセキュリティ監査仕様を公開しました。
イーサリアムのエコシステムでは、個人や組織がトークン契約を展開し、プールに流動性を追加し、幅広いビジネスモデルをサポートするためにスマートコントラクトを展開する動きが活発化しています。しかし、このような成長にはセキュリティ上の問題があり、分散型金融(DeFi)プロトコルはハッキングや詐欺に対して脆弱なままになっています。
例えば、暗号情報企業Chainalysisの最近の調査結果によると、暗号関連のハッキングは年初から2022年7月までに58.3%増加しました。さらに、この期間中に19億ドルがハッキングによって失われたことを指摘しています。この数字には、2022年8月1日に発生した1億9000万ドルのNomad bridgeハッキングは含まれていないとのことです。
オープンソースコードはブロックチェーン業界にとって有益かもしれませんが、残念ながら悪用しようとするサイバー犯罪者によって簡単に研究されてしまう可能性が残ります。スマートコントラクトのセキュリティ監査は、これらの課題を解決することを目的としていますが、この手順には業界標準がないため、複雑さが生じています。
この記事の構成
スマートコントラクトのセキュリティを確保するための業界標準
エンタープライズ・イーサリアム・アライアンス(EEA)でEthTrust Security Levels Working Groupの議長を務めるクリス・コーディ氏はコインテレグラフに対し、イーサリアム・ブロックチェーン業界の成長に伴い、スマートコントラクトのセキュリティを評価する成熟したフレームワークの必要性が高まっていると語った。
これに対応するため、コーディは監査やセキュリティの専門知識を持つ複数のEEAメンバー代表とともに、2020年11月にEthTrust Security Levels Working Groupの設立を支援しました。以来、同組織は、スマートコンタクトのバックグラウンドにあるセキュリティの向上を目的としたスマートコントラクト仕様、すなわち業界標準のドラフト文書の作成に取り組んできました。
直近では、同ワーキンググループは「EthTrust Security Levels Specification v1」の公開を発表しました。 EEAの技術プログラムディレクター、チャールス・ネヴィル氏はコインテレグラフに対し、この仕様には適切なセキュリティ監査が必要とするスマートコンタクトの脆弱性についての記述があると述べました。品質の最低限の尺度としては以下のようになります。
開発者がコーディング言語としてSolidityを使用する、すべてのEVMベースのスマートコントラクトプラットフォームに関連するものである。Splunkによる最近の分析では、EVMベースはメインネットコントラクトの3/4をはるかに超えています。しかし、イーサリアムの技術スタックをベースとしながらも、独自のチェーンを稼働させているプライベートネットワークやプロジェクトも存在します。この仕様は、メインネットユーザーと同様に、彼らの作業の安全性を確保するために有用です」。
技術的な観点から、ネヴィル氏は、新しい仕様が、組織がスマートコントラクトのセキュリティ監査を行う際に考慮すべき3つのレベルのテストの概要を説明しています。
“レベル[S]は、Solidityの共通機能がよく知られたパターンに従って使用されているほとんどのケースで、テスト済みのコードが自動化された「静的解析」ツールによって認証できるように設計されています。”と彼は述べました。
さらに、レベル[M]テストでは、より厳格な静的解析を義務付けており、これには、機能の使用が必要かどうか、コードのセキュリティ特性に関する主張が正当化されるかどうかを人間の監査員が判断することが期待される要件が含まれていると指摘しました。
さらにNevile氏は、レベル[Q]テストは、テストされたコードが実装するビジネスロジックの分析を提供すると説明した。”これは、コードが既知のセキュリティ脆弱性を示さないことを確認すると同時に、主張していることを正しく実装していることを確認するためである “と述べた。また、スマートコントラクトの背後にあるセキュリティを強化するのに役立つ、オプションの「推奨グッドプラクティス」テストも用意されています。Nevile氏は次のように述べています。
「最新のコンパイラを使用することは、「推奨されるグッドプラクティス」の1つです。ほとんどの場合、かなりわかりやすいものですが、コントラクトが最新バージョンでデプロイされていない理由はたくさんあるのです。その他のグッドプラクティスとしては、仕様のアップデートで対応できるように新しい脆弱性を報告することや、読みやすいきれいなコードを書くことなどがあります。」
全体として、仕様書全体の中には107の要件がある。Nevile氏によると、このうち約50件は、Solidityコンパイラのバグに起因するレベル[S]の要件であるという。
業界標準は組織や開発者の助けになるのか?
Nevile氏は、EthTrust Security Levels仕様の最終的な狙いは、監査人が業界として適切なレベルで運用していることを顧客に証明できるようにすることだと指摘します。「監査人は、この業界標準を示すことで、基本的な信頼性を確立することができるようになる」と述べました。
これに光を当てたのは、ブロックチェーンセキュリティ企業CertiKのCEO兼共同創業者のRonghui Gu氏で、Cointelegraphに対し、このような標準があることで期待されるプロセスやガイドラインを確保することができると述べています。ただし、こうした標準は決してスマートコントラクトが完全に安全であることを示す「ゴム印」ではないとも指摘した。
「重要なのは、スマートコントラクトの監査人は皆、同じではないことを理解することです。スマートコントラクトの監査は、スマートコントラクトが監査される特定のエコシステムと、使用されている技術スタックおよびコード言語に対する理解と経験から始まります。すべてのコードやチェーンが同じというわけではありません。ここでは、カバレッジと調査結果のために経験が重要です。」
このことから、スマートコントラクトの監査を受けたいと考えている企業は、監査人が主張する認定を越えて、監査人の品質、規模、評判を考慮する必要があるとGu氏は考えています。この規格はガイドラインであるため、Gu氏は、この仕様が良い出発点になると考えていると発言しています。
開発者の立場からすると、この仕様は非常に有益なものです。ブロックチェーンベースの新興ソーシャルネットワークであるMycoの共同創業者であるMark Beylin氏はCointelegraphに対し、スマートコントラクト開発者がセキュリティ監査に何を期待すべきかをより理解するために、これらの規格は非常に価値があるだろう、と語りました。同氏は次のように述べています。
「現在、スマートコントラクトのセキュリティに関する多くのリソースが散在していますが、プロジェクトのセキュリティを評価する際に監査人が従うべき特定のルールブックは存在しません。この仕様を使いることで、セキュリティ監査人とそのクライアントの両方が、どのようなセキュリティ要件がチェックされるのかについて、同じ見解を持つことができます。」
開発者で仕様の貢献者であるMichael Lewellen氏は、さらにCointelegraphに対して、この仕様はチェックすべき既知のセキュリティ問題のチェックリストを提供することで役立っていると述べています。「Solidity開発者の多くは、Solidity開発のセキュリティ面について、最近の正式な教育やトレーニングを受けていませんが、それでもセキュリティは期待されているものです。このような仕様があることで、より安全なコードを書く方法を容易に把握することができます」と述べています。
また、Lewellen氏は、仕様要件のほとんどがわかりやすく書かれているため、開発者が理解しやすいと指摘。ただし、なぜその要件が含まれているのかが明確でない場合もあるとコメントしています。「脆弱性の外部文書へのリンクがあるものもあれば、ないものもあるのです。準拠したコードと非準拠のコードがどのようなものか、より明確な例があれば、開発者はより理解しやすくなるでしょう。」
スマートコントラクトのセキュリティ規格の進化
すべてを考慮すると、セキュリティレベルの仕様は、スマートコントラクト監査のガイドラインを確立することで、イーサリアムのエコシステムの発展に寄与しています。しかし、Nevile氏は、今後の最も困難な側面は、悪用がどのように発生するかを予想することであると指摘しました。彼は次のように述べています。
「この仕様は、そのような課題を完全に解決するものではありません。しかし、この仕様が行うのは、アーキテクチャやコントラクトの背後にあるビジネスロジックを文書化するなど、徹底したセキュリティ監査を可能にするために重要な特定のステップを特定することです。」と述べています。
また、Gu氏は、Web3の進展に伴い、さまざまなチェーンが同様の標準を開発し始めるだろうと考えています。例えば、Ethereum業界の一部の開発者は、他の開発者を支援するために、独自のスマートコントラクトの要件を打ち出しています。例えば、RTFKTの最高技術責任者であるSamuel Cardillo氏は最近、開発者が開発の観点から良い要素と悪い要素に基づいてスマートコントラクトを公に評価するシステムを作成したとツイートしています。
Few days ago I started a little Google Sheet to rate publicly smart contracts in order to raise awareness and help both collectors and developers – it wil also contain do and don’t for when developing a contract.
https://t.co/2ixBpkNeoc— SamuelCardillo.eth – RTFKT (@CardilloSamuel) August 15, 2021
これらはすべて正しい方向への一歩だが、Gu氏は、標準が広く採用されるには時間がかかると指摘。さらに、Nevile氏は、セキュリティは決して静的なものではないとしたうえで、個人が仕様を書いたワーキンググループに質問を送ることは可能ですと説明しました。Nevile氏は、「我々は仕様を更新することを期待しているので、そのフィードバックを受けると同時に、より広いパブリックスペースでどのような議論が行われているかを見ることになる」と述べました。また、新バージョンは6カ月から1年半の間に作成される予定だといいます。