Skip to content

Latest commit

 

History

History
481 lines (383 loc) · 33.4 KB

File metadata and controls

481 lines (383 loc) · 33.4 KB

By: Kong'@SlowMist Security Team

中文版:慢雾(SlowMist)智能合约审计技能树
English version: SlowMist Learning Roadmap for Becoming a Smart Contract Auditor
日本語版:スマートコントラクト監査人への道筋

翻訳者:

Jack Jia

cover

⚓️目次

概要

このスキルセットは、SlowMistセキュリティチームのスマートコントラクトセキュリティ監査エンジニアのスキルセットであり、チームメンバーにスマートコントラクトセキュリティ監査に必要なスキルを提示し、研究、創造、エンジニアリングにおける自己進化の思考を育むことを目的としている。

スマートコントラクトセキュリティ監査のスキルは、主に4つの段階に分かれている: 「初級」、「中級」、「上級」、そして「最上級」である。これらは、各段階で習得すべき専門スキルを浅いものから深いものへと順にリストアップしている。しかし、その前に、私たちの知識を強化するためにいくつかの汎用的なスキルを身につける必要がある。この準備段階が、監査の旅のアンカーポイントとなるでしょう。

ロードマップ

Roadmap_bg2

準備段階

「刀を研ぐことを怠らない者が、最も効率的に木を切ることができる」と言われるように、正式に出発する前に、自分の思考を鍛えることが必要です。これにより、私たちはより確実な一歩を踏み出し、さらに遠くへ進むことができるでしょう。

1. 知識と行動の一致

認識と実践は密接に関連しており、理論と実践は一体となるべきである。

2. 正しさを守り、奇策を出す

道徳と法律はセキュリティ専門家の最低限の基準であり、セキュリティ専門家は底線を守りながら、優れた技術を磨き、重要な瞬間に出奇制勝する必要がある。

  • 底線を守る
    • 監査者は法律を遵守し、道徳的な最低限の基準を守るべきである。
  • 責任ある開示
  • ハッカーThinking
    • セキュリティ専門家は、倫理的な最低限の基準を守りつつ、創造的な方法で問題を解決し、重要な瞬間に優位に立つことが求められている。
    • 「正しさを守り」とは、敬意を持ち、倫理的な最低限の基準を守ることを意味する。
    • 「奇策を出す」とは、創造的な思考を持ち、細心の注意を払い、逆の発想や柔軟な思考を持つことを意味する。

3. チーム意識

個々の能力には限界があるが、チームでの協力が個人の不足を補う。

  • 協同監査フロー
    • SlowMist MistPunk監査ワークベンチでの協同作業を通じて、技術的方法で監査の質を確保し、監査経験を蓄積する。
  • 監査ワークフロー
    • SlowMistの監査ワークフローにより、管理手法で監査の質を確保し、監査作業の欠陥を補う。
  • Hacking Time文化
    • チームメンバーがいつでもどこでも思考のぶつかり合い、共有することで、チームの能力を整え、全体のスキルを向上させる。

初級

暗号化の世界は、今日までに暗号学、経済学、データサイエンスなどの学問分野を網羅しているである。この広大な知識の世界にどう入り込むかが鍵である。この段階では、Ethereum(イーサリアム)およびそのスマートコントラクト言語であるSolidityを出発点として、暗号資産の世界への入り口を見つけていく

1. ブロックチェーンの基礎知識

スマートコントラクトが何であるかを理解する前に、スマートコントラクトが動作するブロックチェーンプラットフォームについて理解する必要がある

2. スマートコントラクトの基礎知識

異なるブロックチェーンでは、さまざまな言語でスマートコントラクトが構築される。たとえば、Solidity、Move、Rust、Vyper、Cairo、C++などである。現在、EVM互換チェーンで使用されているSolidityは、依然として最も人気があり、入門しやすいスマートコントラクト言語である。この言語のドキュメントを完全に読むことが重要である。また、Ethereum(イーサリアム)上で動作するトークンスマートコントラクトの設計基準と具体的なスマートコントラクト実装について理解する必要がある。これを基に、スマートコントラクトがどのようにアップグレード可能であるかを理解し、スマートコントラクトの作成とテストの実践スキルを身に付けることが求められる。

3.一般的なスマートコントラクトの脆弱性

スマートコントラクトの基礎知識を学び終えた後、その一般的な基礎的脆弱性を理解し、脆弱性の原理を知っておく必要がある。その中で、Quillhashが整理した脆弱性リストは複数の情報源を集約しており、現在よく見られるスマートコントラクトの脆弱性タイプを比較的完全に示している。(ただし、初心者にとっては、すべてのリストを繰り返し読んで印象を深めることをお勧める。)

4. ベストプラクティスとセキュリティ基準

監査人として、スマートコントラクトのベストプラクティスとセキュリティ基準を理解しておく必要がある。ベストプラクティスは、監査中にセキュリティ問題を見つけるための参考を提供し、セキュリティ基準は、監査で指摘されるセキュリティ問題の根拠となる。

5. 簡単なCTFチャレンジ

ブロックチェーンとスマートコントラクトの基礎知識、および一般的なスマートコントラクトの脆弱性を学んだ後、いくつかの簡単なCTFチャレンジを通じて、習得した知識を強化し、実践することができる。

中級

ブロックチェーンとスマートコントラクトの基礎知識を習得した後、私たちはSolidityスマートコントラクトのセキュリティ監査という扉を開いた。その先にあるスマートコントラクトの世界は依然として非常に広大である。この段階では、分散型金融(DeFi)から始めて、その先にあるさらに広範なスマートコントラクトの応用を深く探求していく。

1. DeFiの基礎知識

ブロックチェーンとスマートコントラクトがDeFiの構築を可能にし、DeFiの出現によってEthereumなどのパブリックチェーンが急速に発展した。さらに深く探求する前に、まずDeFiとは何かを理解しておくべきでしょう。

2. 主要DeFiプロトコル

DeFiとは何かを初步的に理解した後、さらにそれらが何を実現しているのか、どのように実現されているのかを学ぶべきである。現在の主要なDeFiプロトコルの技術ドキュメントを読むことで、トップレベルのDeFiプロトコルがどのように実現されているかを初步的に理解できる。

主要プロトコルのソースコードを深く読む

現在、多くのDeFiプロジェクトが相互に依存し、組み合わされており、いくつかの主要なDeFiプロトコルがDeFiの組み合わせの基盤となる構成要素となっている。そのため、これらのDeFiの実装を把握することは非常に重要である。以前にプロトコルの技術ドキュメントを通じてDeFiの実装を初步的に理解した後、次に全量のソースコードを読むことで、その具体的なロジックや経済モデルを習得する。

4. DeFiのリスクを理解する

DeFiはスマートコントラクトに限定されるものではなく、フロントエンドとバックエンドもその重要な構成要素である。ほとんどのユーザーはフロントエンドを通じてDeFiとやり取りを行い。そのため、DeFiの仕組みと実装を理解した後、フロントエンドのセキュリティ実践、バックエンドのセキュリティ設定要件、そしてDeFiの過去の脆弱性を基に、そのリスクについて学び、実践することが重要である。

5. 監査報告書を読む

監査を行う際、個人の視点ではどうしても見落としがあり、すべての状況を網羅することはできない。そのため、他人の監査報告書を読むことで、異なる脆弱性の発見方法や監査の思考法を学ぶことが重要である。

6. CTFチャレンジ

難易度の高いCTFチャレンジに取り組むことで、知識を強化し、実践に活かすことができる。

上級

主要なDeFiの探求過程を通じて、DeFiに対する深い理解を築き上げる。次に、底層のEVMからDeFiの上層経済モデルに至る学習を通じて、スマートコントラクトへの理解をさらに深めていく。そしてこの過程で、複雑なスマートコントラクトを独立して監査することで、独自の監査方法論を確立することができる。

1. EVMを深く理解する

EVMはスマートコントラクトの命令を実行する役割を担っており、EVMを深く理解することで、スマートコントラクトのデプロイ、呼び出し、実行、データストレージに対する理解をより深めることができる。同時に、Gas最適化や脆弱性発見のための基盤を築くことにも役立つ。

2. Gasの最適化設計

オンチェーンでのトランザクションの実行にはすべてGasコストがかかる。複雑なコントラクトの場合、Gasを最適化することでユーザーのインタラクションコストを下げ、ユーザーを引きつけることができる。そのため、監査員にはGas最適化設計について一定の理解が求められる。

3. DeFi経済モデル

経済モデルはDeFi製品の核心部分であるため、経済モデルのリスクを理解することは非常に重要である。学習の過程で、独自の見解と方法論を確立していくべく。

4. 複雑なDeFiプロトコルの分析

これらのスキルを統合し、熟練した後、監査員は複雑で独創性の高いDeFiプロトコルを分解し分析する能力を持つべきく。

5. 同志と共に

他の優れた仲間が研究している内容を学ぶことで、私たちにより多くのインスピレーションを得られ、視野を広げることができる。

6. 迅速な緊急分析

十分な数の複雑なプロジェクトを独立して監査し、さまざまなビジネスシナリオを経験し、多くの知識を蓄積した後、私たちは突発的なセキュリティインシデントに迅速に対応し、迅速な分析とアウトプットを行うことができるようになる。以下は、いくつかの一般的に使用される分析ツールである:

7. バグバウンティ実践

実践を行い、最も現実的なシナリオで能力を検証する。

最上級

Solidityスマートコントラクトを通じて入り口を見つけた後、単一の分野でぐるぐる回ることに満足するのではなく、独自の方法論を確立し、大胆に新しい扉を切り開いて飛び出し、現在の分野を深く掘り下げつつ、他の分野にも手を広げるべきく。

skill

1. 局限突破

Solidityスマートコントラクトの入門を終えた後、それに限定せず、他のタイプや言語にも視野を広げ、それらに関連する監査方法についても知識を深めるべきく。

  • Solidityに限定せず、Rust、Vyper、Cairo、Moveなどのスマートコントラクト言語についても理解しておくべく。
  • スマートコントラクトに限定せず、BTC、Cosmos、Solana、Starknet、EVM L2など、他の人気のパブリックチェーンについても理解しておくべきく。
  • ブロックチェーンに限定せず、Web2.0やモバイル端末などについても理解しておくべきく。
  • 暗号学の分野を深く理解する。
  • ...
ブレークスルーと蓄積

以下の SlowMist の一部公開済みの蓄積内容:

2. 方法論

スマートコントラクトのセキュリティ監査スキルを統合し、熟練した後、独自の方法論を確立することができる。これにより、問題の核心に迅速にたどり着き、解決策を見極めることが可能になります。優れた方法論は、私たちの効率を倍増させてくれる。

  • 監査業務に対する方法論
  • スマートコントラクトのセキュリティ実践に対する方法論
  • 物事を行うための方法論
  • 思考体系を構築するための方法論

3. 創造力

創造力は私たちが敵を打ち負かし、勝利を収めるための切り札であり、前進し続けるために必要なものである。スキルを段階的に習得した後、さらに私たちの思考を強化することで、より遠くまで進むことができるようになる。

  • 好奇心を保つ
  • 新しい物事に対する敏感さ
  • 自分の領域や専門、職業に限定されないこと
  • 知識を追い求める
  • 知識に対する敬意を保つ
  • 新しい知識を探求する
  • ハッカーThinking
  • ハッカーとは精神や思考法でもあり、正しさを守りつつ奇策を出すこと
  • 研究に長ける
  • 研究を行う際には、実際の成果やドキュメントとしてアウトプットするべき
  • エンジニアリング化
  • 優れたアイデアや研究成果をエンジニアリング化し、実践で検証することに長ける
  • SlowMist MistEye Monitoring System
  • SlowMist Contract Visibility Analysis Tool
  • SlowMist Static Vulnerability Scanner

謝辞

本文に対して貴重な意見をいただいた友人たちに感謝する。

また、英文版の翻訳作業を担当してくれたJianさん、そしてカバーイラストを提供してくれたHik3さん、日本語版の記事の専門的な翻訳を担当してくれたJackさんにも感謝する。