BlockSec CEOのアンディ・ジョウ氏はSpraping Bitsポッドキャストに招待され、激動し複雑なWeb3環境において、BlockSecチームが潜在的なセキュリティ脆弱性をどのように特定し緩和するかというテーマについて議論しました。以下は、私たちがまとめた魅力的なコンテンツの抜粋です。ポッドキャストの全編を聴くには、こちらをクリックしてください。
アンディ・ジョウ 00:00 私たちのチームには、ハッカーが攻撃トランザクションを送信する前でさえ、攻撃コントラクトを検出できるシステムが稼働しています。それは、彼らが攻撃コントラクトをデプロイしてから、プロトコルを攻撃するためにトランザクションを送信する必要があるからです。そのため、攻撃トランザクションの前であっても、ハッカーが攻撃スマートコントラクトをデプロイした時点で、当社のAIベースエンジンは悪意のあるコントラクトを正確に特定できます。
アンディ・ジョウ 00:53 ありがとうございます、DeGatchiさん。私もここにいられることを大変光栄に思っています。
DeGatchi 00:56 光栄です。本当にありがとうございます。まだご存知ない方のために、あなたはどなたで、何をされているのですか?
アンディ・ジョウ 01:02 私の名前はアンディです。BlockSecのCEOであり、中国のトップ大学である浙江大学の教授でもあります。サイバーセキュリティ分野で10年以上の経験があります。以前はスマートフォンのセキュリティ分野で働いていましたが、その後数年間スマートコントラクトのセキュリティに転向しました。
DeGatchi 01:22 スマートコントラクトセキュリティにおける初期の頃はどのようなことをされていましたか?手動監査を行っていたのですか、それともすぐに自動化に進んだのですか?私が行ったように。
アンディ・ジョウ 01:30 スマートコントラクトセキュリティに関しては、当社と研究チームでは、静的解析と動的解析の両方を行っています。静的解析については、スマートコントラクトの静的解析を強化するためのいくつかの異なる技術を開発しました。それは、現在コミュニティで利用可能なツールのほとんどに、誤検知が多すぎるという共通の問題があるからです。例えば、ツールを使ってリエントランシー問題を検出したい場合、単純なスマートコントラクトをツールに投入すると、多くのリエントランシー問題やその他の問題が報告される可能性があります。しかし、手動でこのレポートを確認すると、ほとんどが誤検知であることがわかります。そのため、誤検知は現在の静的解析ツールの主な問題であると考えています。
アンディ・ジョウ 02:20 このような誤検知の根本的な理由は、スマートコントラクトのセマンティクス(意味論)の理解不足です。セマンティクスとは、コントラクト内の変数とその関係性の背後にある意味を指します。例えば、ERC-20トークンがあるとすると、各所有者の残高を表す変数と、誰が誰にいくら送金することを承認したかを示す承認済みの値があります。静的解析の精度を向上させるには、どの変数が残高を表し、どの変数が承認やその他の特定の機能に関連するかを正確に特定することが不可欠です。そうすることで、静的解析においてより高い精度を達成できます。
アンディ・ジョウ 03:00 静的解析ツールの開発経験から得られた洞察の一つは、変数間の相関関係を確立するための堅牢なテイント解析エンジンの必要性です。データフロー解析は、静的解析ツールが採用する基本的な技術であり、重要な役割を果たします。これには、メモリやストレージのモデリング、および静的解析ツール内でテイント解析技術を正確かつ効率的に活用する方法が含まれます。テイント解析とデータフロー解析というこれら2つの主要な技術は、静的解析ツールの機能を強化する上で非常に効果的であることが証明されています。
アンディ・ジョウ 03:48 私たちの研究チームでは、この静的解析ツールを開発・展開し、ブロックチェーンで作成された新しいスマートコントラクトをすべて分析しています。特定したゼロデイ脆弱性を開発者に報告します。残念ながら、開発者の一部は脆弱性に注意を払いません。また、効果的な報告チャネルすら見つかりません。それは非常に残念です。
アンディ・ジョウ 04:13 非常に効果的な静的解析ツールが必要な場合は、セマンティクスとテイント解析エンジンが必要です。これが静的解析ツールに関する私たちの経験です。そして、静的解析ツールとは別に、研究チームには動的解析ツールもあります。それは、脆弱なスマートコントラクトに加えて、悪意のあるトランザクションも特定したいからです。
アンディ・ジョウ 04:31 脆弱なスマートコントラクトを分析するだけでなく、プロトコルや他のスマートコントラクトを攻撃する可能性のあるトランザクションを検出することも重要です。これを実現するために、インストルメンテーション機能を備えたカスタム仮想マシンを使用しています。これにより、検出ルールを独自に記述し、任意のスマートコントラクトの仮想マシンまたは実行環境に簡単にフックできます。トランザクションが悪意のあるものかどうかを判断するために、さまざまなシグナルをキャプチャします。例えば、トランザクションの送信者に攻撃を実行した履歴があるか、資金が疑わしいソースから来ているかなどを調べます。さまざまなシグナルを組み合わせることで、各トランザクションに関連するリスクを評価します。当社のチームはこの検出エンジンを展開し、攻撃トランザクションを迅速にキャプチャして特定できるようになりました。
DeGatchi 05:41 ええ、それは興味深いですね。私も静的アナライザーで同じことをしました。テイント解析は基本的に不可欠ですが、静的アナライザーで行うことは何でも使えます。すべてのデータをファザーに転送するのですよね?私もファザーを構築していました。そして、人々がどのようにアプローチするかを見るのは非常に興味深いです。しかし、非常に興味深いソリューションがあります。この分野では、人々は非常に順序立てて考えており、考慮すべき次元はたくさんあるので、順序立てて考えるのは正解ではありません。
DeGatchi 06:08 次元について話しましょう。トランザクションのcalldataがあるとします。関数やコントラクトもあります。さらに、ステージという別の次元もあります。したがって、それは非常にコンテキスト依存です。そして今、これらの4つの異なる変数、次元があり、それらはすべてわずかな調整でも互いに影響し合います。例えば、コントラクトA、コントラクトB、それらのすべての関数があるとします。今、あなたはそれらをすべての異なる方法で順序付ける必要がありますが、関数Aと関数B、関数Bと関数Aだけではありません。関数A、関数B、関数B、関数B、関数Aを行うこともできます。それは本当に難しい問題です。
DeGatchi 06:43 そして、あなたがあなたの仕事で行ってきたことは非常に興味深いと思います。最近、Phalconをトランザクション検出を含むように拡張したことを知っています。それは、ハッキングのための、より一般的なフロントランナーのようなものです。そして、それを行うことで、それは非常に示唆に富んでいます。そして、フロントランニングゲームは、これらの専用MEVチームによって支配されています。彼らはフロントランニング、サンドイッチ、バックランニングなどを行います。そして、彼らは専用のインフラストラクチャ、高頻度取引のものを持ち、レイテンシは非常に小さく、互いに、ブロックビルダー、リレーなどと提携しています。それで、質問は、これらのMEVチームではなく、これらのトランザクションをどのようにフロントランニングできるかということです。
アンディ・ジョウ 07:24 はい、それは非常に良い質問です。基本的に、当社のシステムの主なターゲットはMEVボットをフロントランニングすることではなく、プロトコルを保護することであり、ハッカーをターゲットにしています。
DeGatchi 07:37 しかし、ハッカーがパブリックメンプールにトランザクションを送信する場合、それがプライベートであれば、誰もそれを得ることはできません。しかし、それがパブリックメンプールであれば、他のすべての一般的なフロントランナーもそれを見るでしょう。だから、彼らと競合しなければなりません。それで、あなたはどのように彼らを打ち負かしているのですか?あなたはどのように彼らを打ち負かしているのですか?
アンディ・ジョウ 07:51 はい、私たちは常に、セキュリティは善玉と悪玉の間の軍拡競争だと主張しています。初期の頃は簡単でした。なぜなら、悪玉は私たちのチームやMEVボットの存在を知らなかったからです。その当時、それはガス手数料の支払い方やバリデーターへの賄賂の支払い方次第でした。それは初期の頃はずっと簡単でしたが、最近では、ハッカーはフロントランニングされないように保護するための技術を使用しています。例えば、ハッカーがMEVボットによるフロントランニングを防ぐために展開した非常に興味深い技術を見ました。基本的に、彼らのトランザクションでは、まずいくつかの値をチェックします。たとえば、別のスマートコントラクトから特定の値を取得して、この特定の値がこの変数の初期値と等しいかどうかを確認します。攻撃を実行する際、ハッカーはまずトランザクションを送信して、そのチェックを満たすように別のスマートコントラクトに変数を設定し、次に2番目のトランザクションを使用して実際にハッキングを実行します。MEVボットが使用する一般的な技術のほとんどは、単一のトランザクションをシミュレートすることだからです。2番目のトランザクションのみをシミュレートすると、条件が満たされないため失敗します。それは、条件が最初の攻撃トランザクションによって設定されているからです。このトリッキーな部分のため、一部のMEVボットはそれを処理できません。私たちは、異なるトランザクション間の相関関係を分析する技術を持っているため、それを処理できます。
DeGatchi 09:40 はい、複数行う必要があります。1つだけではダメです。一般的なフロントランニングを行っている場合、標準はアドレスを置き換えること、または複数のアドレスがある場合はすべて置き換える必要があり、すべてのオプションを試す必要があります。
アンディ・ジョウ 09:52 その通りです。
DeGatchi 09:53 もし彼らがセットアップでマルチコントラクトを行っているなら、コントラクトのデプロイを行い、そのセットアップコントラクトの関数を呼び出して新しいものにセットアップし、それをエクスプロイトコントラクトで使用します。しかし、それを修正する方法は、基本的に再びシミュレートすることですが、呼び出されている状態を実際にチェックする必要があります。そして、それが元のコントラクトのデプロイメント状態と一致しない場合、それを何らかの方法で設定し、CFGのような関数を見つけ、それが何であったかを見つけ、そしてそれを設定するようにエクスプロイトコントラクトを修正するか、あるいは完全に削除する必要さえあります。それは非常に難しいですが、あなたが実際にこれをやって、それが機能しているのはクレイジーです。
アンディ・ジョウ 10:33 はい、機能していますが、多くの開発努力が必要です。また、それを行うためには非常に優れた効率的な分析エンジンが必要です。
DeGatchi 10:42 それは非常に印象的です。皆さんはすでに6ヶ月で20件のハッキングと約1500万ドルの損失を防いでいます。
アンディ・ジョウ 10:51 ハッキングの防止は過去1年半行われてきました。1ヶ月や2ヶ月ではありません。1年半にわたる継続的な努力です。
DeGatchi 11:04 しかし、それでも、これを行っている人は他にいません。それは本当に素晴らしいことであり、誰もが少なくともそれを持つべきだと思います。それは重要なことです。たとえそれがすべての人にとって100%の救世主ではないかもしれませんが、彼らはサインアップする必要があります。おそらく、ほとんど知られていない難読化技術が異なるものになるでしょう。それでも何もないよりはましですよね?保存できるもの、ハッキングされることは、会社全体、すべてのユーザー、すべての評判の破滅です。それは失われます。だから、それは非常に重要なことです。皆さんはこれをどのように構築しましたか?AIをまったく使用しましたか?それとも、完全にヒューリスティックであることは不可能です。
アンディ・ジョウ 11:41 基本的に、さまざまな技術を組み合わせています。ハッキングの検出については、AIベースのソリューションと行動分析を組み合わせています。AIベースのソリューションについては、AI技術、機械学習技術を使用して攻撃コントラクトを検出します。私たちのチームでは、ハッカーが攻撃トランザクションを送信する前でさえ、攻撃コントラクトを検出できるシステムが稼働しています。それは、彼らが攻撃コントラクトをデプロイしてから、プロトコルを攻撃するためにトランザクションを送信する必要があるからです。そのため、攻撃トランザクションの前であっても、ハッカーが攻撃スマートコントラクトをデプロイした時点で、当社のAIベースエンジンは悪意のあるコントラクトを正確に特定できます。誤検知がないとは言いませんが、誤検知はかなり低いです。そのため、この段階、ハックトランザクションの前でさえ、攻撃スマートコントラクトを検出できます。問題は、攻撃スマートコントラクトを特定しても、実際の被害者を特定できない場合があることです。なぜなら、宛先アドレスがスマートコントラクトにハードコードされていない場合があるからです。パラメータとして渡される場合があります。それをトリガーするには、ファジング技術が必要です。しかし、ターゲットのスマートコントラクトアドレスがすべてパラメータから渡される場合、ファジングさえも役に立ちません。
アンディ・ジョウ 13:05 そのため、これらの複雑なものについては、この段階で攻撃スマートコントラクトを特定することはできません。攻撃トランザクション検出段階で対応する必要があります。攻撃トランザクションについては、行動ベースのソリューションを使用してハックトランザクションを検出します。高レベルのアイデアは、すべてのハッカーが利益を得たいということです。そのため、トランザクションから利益を得るには正確である必要があります。そして、これらの攻撃トランザクションを検出した後、MEVボットが行うように、同様の攻撃トランザクションを自動的に合成し、利益アドレスを置き換えて、チェーンに配置します。これが、BlockSec Phalconをローンチする前のシステムの元の動作方法です。
DeGatchi 13:54 AIについてですが、教師あり学習モデルであるとは想像できません。ハッキングはそれほど多くないので、強化学習でなければならないと思います。それで、それを本当に行うには十分なデータがありません。
アンディ・ジョウ 14:08 機械学習について、あなたは非常に良い点を指摘したと思います。悪意のあるスマートコントラクトの検出では、モデルをトレーニングするためのサンプルがそれほど多くないため、効果がありません。この場合、これらのものを機能させるための鍵となる洞察は、スマートコントラクト内の主要な特徴を抽出する必要があるということです。誰かが単にバイトコードのシーケンスを使用してモデルをトレーニングしています。バイトコードのシーケンスはスマートコントラクトにとってあまりにも一般的すぎるため、これは機能しません。スマートコントラクトの distinct な特徴を抽出する必要があります。現在使用しているものには、制御フローグラフ、主要な関数間のデータフロー関係が含まれます。また、アドレスラベルやコントラクト作成者のプロパティなども組み合わせてモデルをトレーニングしており、非常に効果的であることが証明されています。
DeGatchi 14:55 つまり、基本的に主要な特徴を抽出するのですね。例えば、ハードコーディングされたアドレスや、コールデータとして渡されるアドレスなどです。Solidityで行っている場合、マスキングを行っているかもしれません。 Solidityではそれはかなり一般的です。しかし、カスタムの高レベルコントラクトの場合、まず非常に洗練されたハッカーがいることになります。しかし、本当に厳密に計画された洗練されたハッカーは、プライベートトランザクションやカスタムバイトコード、さらにはトランザクションのスワームを使用して難読化を100%行うでしょう。これは私が研究していたことで、これらのものに非常に興味がありました。それは効果的であることが証明されました。実際、私はそのようなテクニックを見たことがありません。それについて記事を書くことさえあるかもしれません。なぜなら、私はそれらを使わないからです。しかし、それは興味深かったです。
アンディ・ジョウ 15:46 はい、この研究プロジェクトを行う前は、私もそれが機能するとは思っていませんでした。しかし、6ヶ月後、それは非常に効果的であることが証明されました。
DeGatchi 16:02 ええ、ええ、それはクレイジーです。これは正しい方向への驚くべき一歩だと思いますし、このようなツールがもっと必要です。しかし、これも疑問を投げかけます。AIを使用していることはわかっています。AIが、まずあなたのビジネスにどの程度影響を与えると見ていますか?そして、AIによって何が時代遅れになり、今日、この革命に備えるために何ができるでしょうか?
アンディ・ジョウ 16:23 正直に言って、私はAIの専門家ではありません。私たちは単に私たちの研究分野にAIを応用して、悪意のあるスマートコントラクトを検出しています。セキュリティ分野へのAIの応用には、まだ十分に探求されていない可能性があると私は考えています。その理由の一つは、セキュリティ分野にAIを応用するには、解決しようとしている問題について非常に深い理解が必要だからです。解決しようとしている問題について非常に深い理解があれば、非常に良い特徴を抽出できます。特徴は非常に重要だと思いますよね?だから、同じコントラクトや同じトランザクションでも、トレーニングのための非常に良い特徴がなければ、結果は全く異なります。私の視点から見ると、AIの可能性はまだ十分に探求されていないと考えています。なぜなら、非常に優れたAI担当者と、特徴を抽出できる非常にドメインエキスパートの組み合わせが必要だからです。
DeGatchi 17:30 同意します。それは非常に異なります。2つの分野、2つのドメインの組み合わせです。まず、AIに優れていることは困難です。そして、それを学ぶには時間もかかります。数学を知る必要があり、AIに関するすべてを知る必要があります。パッケージ、ライブラリを知らないとしても、そして仮想通貨の分野にも、バイトコードとサイバーという別のドメインで、それにも時間がかかります。しかし、純粋なAIから仮想通貨に移行する人々にとって、それは仮想通貨からAIに移行するほど難しくないと思います。なぜなら、数学が必要なことや、現在のアーキテクチャの完全な理解など、純粋なAIに入り込むのははるかに難しいからです。
DeGatchi 18:13 しかし、それは非常に興味深いです。AIは明らかにすべてを変えるでしょう。そして、AIを使用しない場合、これらのすべてのビジネスにおいて他の人に対して優位性を持てないと思います。なぜなら、競争するのは難しいからです。私もファザーとスタックアナライザーで同じことをしていましたが、AIを使っている人を知っています。そして、それは理にかなっています。無限のアクション空間について考えている場合、単にブルートフォースすることはできません。すべての行動をフィルタリングし、何をターゲットにするべきかを知るための直観が必要です。そのため、これにはAIが必要です。特にこれらのプロトコル、すべてのコントラクト、数百万のインスタンス、または実行をすべて実行している場合、繰り返し実行から学習できるものが必要です。直観を学習できる必要があります。そうでなければ、その直観を自分自身に構築することになります。そして、それは非常に時間がかかり、非常に欠陥があるのは、すべての次元で考えることができず、最終的に何を知らないかを知らないからです。個人的には、それに興味がないなら、それに入るべきだと思います。私は数学さえ知りませんが、入っています。だから、私ができれば、誰でもできます。だから、見てみましょう。しかし、それは大きな献身です。
アンディ・ジョウ 19:36 その通りです。AIに関する最近の実験を共有できます。前述したように、スマートコントラクトの脆弱性を発見するためのファジングシステムがあります。内部システムでそれを行っています。AIを使用してファジングのシード入力を生成でき、それは非常に効果的であることがわかりました。どうやってそれをやるのか?例えば、ファジングする5つのスマートコントラクトがあるとします。まず、これらのスマートコントラクトをChatGPTに入力し、GPTに「この関数は、これが主な機能であり、別の関数はそれが別の機能である」と伝えることで、各関数の主な機能を要約できます。その後、GPTに「これらの関数について50の異なる入力を生成してください」と依頼します。そして、それは非常に効果的であることがわかりました。そして、これをシード入力として使用し、スマートコントラクトをファズします。
DeGatchi 20:38 興味深いですね。LLMは actually かなり良いと思います。埋め込みを理解する上で最善のものですが、それ以上のことはよくわかりませんが、現時点での最善の努力です。だから、それは理にかなっています。多くの人がChatGPTを使用していますが、それは非常に良いユースケースのようです。契約を説明するためにそれを使用しているような人も知っています。だから、それは理解をすべて取り除きます。コードベース全体を理解しようとするのではなく、すぐに追いつくのを助けます。なぜなら、それは1000行のコードベース、または複数のコントラクト、数千行になる可能性があるからです。すべてのものとその依存関係の関係を見るのは非常に困難です。
DeGatchi 21:18 しかし、お伺いしたいのですが、この新しいトランザクションブロッキングを行っているので、トランザクションブロッキングができますが、さらに一歩進んで、すべてのゼロデイとすべてのコントラクトを見つけようとするのはなぜですか?なぜなら、あなたが考えているなら、彼らが洗練されたハッカーであり、何をしているのかを知っており、誰かをターゲットにする場合、そしてそれがRoninのような6億ドルのハッキング、またはプロトコルに対する2億ドルまたは2000万ドルのより現実的なものだとしたら、彼らはプライベートトランザクションを送信し、あなたはそれをブロックできません。なぜゼロデイをすべて防ぐことに完全に投資しないのですか?なぜなら、それを見つけたら、プライベートトランザクションを行うだけで、そもそもすべてを保存できるからです。
アンディ・ジョウ 22:02 はい、非常に良い質問です。実際、BlockSec内ではプロジェクトのためのオファーがいくつかあります。現在、BlockSec Phalconでは、チェーン上またはメンプール内の悪意のあるトランザクションを検出できます。しかし、プライベートトランザクションについては、それを見ることはできません。これは現在の段階です。また、ハッカーよりも前に、スマートコントラクトの脆弱性を検出するために、さらに努力を推し進めたいと考えています。先ほど言ったように、ファジングシステムがありますが、現在もブロックチェーンにデプロイされたスマートコントラクトのセキュリティ脆弱性を検出するためにファジングシステムを改善しています。
アンディ・ジョウ 22:55 スマートコントラクトのファジングを行って脆弱性を特定する際に、いくつかの課題があると思います。スマートコントラクトのファジングにおける課題の1つは、ターゲットコントラクトの入力、特にトランザクションを生成することです。さらに、スマートコントラクトでは、脆弱性をトリガーするために単一のトランザクションではなく、一連のトランザクションを生成する必要があります。そして、トランザクションのシーケンスは互いに依存している場合があります。最初のトランザクション、2番目、3番目が必要であり、これら3つのトランザクションの完全なシーケンスだけが脆弱性をトリガーできます。あなたは一連のトランザクションを生成する必要があり、これらのトランザクションの依存関係を理解する必要があります。これは現在かなり困難です。それが課題1です。そして、2番目の課題は、脆弱性があるかどうかを判断するためのオラクルが必要であるということです。たとえば、スマートコントラクトにトランザクションを送信した場合、脆弱性をトリガーしたかどうかをどのように判断しますか?もちろん、同様の技術を使用して利益を計算できます。このトランザクションが非常に高い利益をトリガーしたり、一部のレンディングプロトコルのヘルスファクターを異常にしたりした場合、脆弱性があることがわかります。しかし、ファザーのためにさまざまな種類のオラクルを要約する必要があります。これが2番目の課題です。
DeGatchi 24:35 それは2番目の部分です。それは非常に興味深いです。なぜなら、新しいプロトコルが出てきて、トークンを持っていて、大きなトークンとの流動性プールがない場合、それは別のトークンと一緒になるかもしれません。価格を付けることさえできませんよね?だから、それは巨大なハードルです。その種のオラクルでどのようにアプローチするか考えたことはありますか?
アンディ・ジョウ 24:57 はい、その通りです。それは別の課題です。なぜなら、ファザーとDEXプールのための環境を準備する必要があるからです。さまざまなトークンを準備する必要があり、各トークンの価格をシステムにフィードする必要があります。ファザーのためにさまざまな種類のものを準備する必要があります。それは非常に複雑です。リエントランシーのような単純な脆弱性の場合、ファザーでトリガーするのは非常に簡単です。しかし、価格操作のような複雑なものについては困難です。私たちはまだシステムを開発していますが、まだ時間がかかります。しかし、その通りです、私たちはこの方向で取り組んでいます。
DeGatchi 25:43 はい、それは決して簡単なタスクではありません。それは多くの複雑さを必要としますよね?そして、あなたは他のものに依存する多くのことを考慮する必要があります。だから、質問をすると、さらに2つの質問が出てきて、それらが互いに関連し合い、継続的に下に進んでいくようなものです。しかし、そのオラクルはprobably 最も難しいことの1つです。そして、それは最も重要なことの1つでもあります。なぜなら、オラクル操作はprobably 最大の攻撃要因だからです。すべてがそれに依存しています。そして、それが内部交換レート、外部レートと内部レートのどちらであっても、それが何であれ。
DeGatchi 26:22 だから、彼らが考慮していないようなアービトラージ、すべてのものにバグがあります。なぜなら、人間のエラーは確実だからです。そして、相互作用の数は考慮されません。新しいプロトコルは毎日出てきます。現在のプロトコルはそれと相互作用できるようになりました。それはその点で5つの異なるプロトコルのシーケンスになる可能性があります。
DeGatchi 26:45 そして、それは簡単ではありません。AIが必要だと思います。なぜなら、あなたは空間的に、脆弱なすべての異なるコントラクトのこれらの異なる関数について考える必要があるからです。可能性が非常に多いため、順序立てて理解することはできません。だから、私は今年初めに誰かとこれについて話していました。そして、私はPickle Financeのエクスプロイトについて話していました。そして、それは本当に興味深いものです。なぜなら、それは8つの脆弱性を含んでいるからです。そして、それらのうちの1つを逃した場合、エクスプロイトは得られず、特定のシーケンスである必要がありました。そして、このエクスプロイトはactually 5つのカスタムコントラクトで構成されていました。だから、5つのカスタムコントラクトで、これらの脆弱な関数のシーケンスを特定の方法で使用できるようにコンテキストを構築する必要がありました。
DeGatchi 27:44 そして、もう1つの部分は、Athenaのインシュレーターを介して、アドレスとバイト20があり、どちらも同じ意味を持つことを理解することでした。そして、人々はこのタイプが何を意味するのかを知る必要があるため、これを見落としています。しかし、基本的に彼らがやっていたこと、私が非常に魅力的だと感じたことは、彼らは偽の基盤トークンのようなコントラクトを作成しました。そして、偽の基盤トークン.balanceOfはアドレスを返しましたが、実際の金額は返しませんでした。そして、それは真実ではありません。なぜなら、実際の金額は単なるバイト32であり、アドレスはバイト20だからです。だから、あなたはアドレスを、2,5,6に行きたいところに渡すことができます。なぜなら、それは技術的にはそうだからです。そして、それはactually 依存していました。それはactually このチェーン全体を作成しました。なぜなら、それはデリゲートコードの状況を作成し、それが使用されていたからです。そして、それがどのように起こったかです。しかし、それは本当に興味深かったです。あなたは、エクスプロイトを可能にするために特定のことを行うコントラクトを生成する必要があることを知っています。そして、これは、少なくとも5つのコントラクトをエクスプロイト可能にするコントラクトを生成できることにおいては、まったく単純ではありません。それは非常に魅力的で、非常に刺激的だと思います。そして、このようなことにはこれ以上のものはないと思います。私はそれをとても愛しています。
DeGatchi 29:06 しかし、このようなことは本当に難しいです。そして、あなたはこれらのことすべてについて考えましたか?あなたが今調べているテクニックの種類は何ですか?明らかに、私は単に空間的に、分離された関数を見て、それらが互いにどのように相互作用するかを見ていました。関係は間違いなく最も難しい部分の1つです。テイント解析でさえ、率直に言って十分ではありません。
アンディ・ジョウ 29:26 はい、したがって、異なるスマートコントラクト間の関係については、現在非常に興味深いことを行っています。トップDeFiプロトコルのスマートコントラクトを手動で収集しています。次に、手動分析を実行して、異なるスマートコントラクト間の関係の図を描きます。例えば、wstETHがプロトコルABCでコラテラルとして使用できる場合、これらのプロトコルの間に線を描きます。1つのトークンが別のスマートコントラクトの基盤トークンとして使用できる場合、これらのプロトコルを接続します。
アンディ・ジョウ 30:02 基本的に、スクリプトを使用して、トッププロトコル間の関係の全体像を取得します。そして、これらの洞察を静的解析とファジング技術のガードとして使用します。
アンディ・ジョウ 30:15 これは現在取り組んでいることの1つです。まだ初期段階ですが、生成される関係は、静的解析とファザーシステムに役立つことがあります。現在行っているもう1つの作業は、型推論です。入力データの型、例えばスマートコントラクト呼び出し内のコールデータなどを推論したいと考えています。例えば、calldataのバイト0からバイト20まで、型がアドレスであることを推論できます。そして、入力の別のセグメントから、型は別のものです。これはファジングに非常に役立ちます。型推論を実行するために静的解析を活用しようとしています。
DeGatchi 30:55 興味深いですね。はい、上記のものの関係はグラフのようなものです。あなたがやっていることは難しいです。なぜなら、例えば、これらはいくつかのテクニックでもあります。コントラクトに他のコントラクトへの参照がある場合、たとえばハードコーディングされたアドレスがあります。それはかなりシンプルです。それは、アクセスできるスペースの種類と、それらがどのように接続されているかを知っていることを意味します。しかし、直接参照しないコントラクトもあります。calldataで参照したり、新しいコントラクトを参照するプールを作成したりできます。Iron Vaultと呼ばれるものだったと思います。それは別のエコシステムにありました。
アンディ・ジョウ 31:33 はい、簡単ではありませんが、オンチェーントランザクションを活用してそれらを接続できます。なぜなら、オンチェーントランザクションは異なるスマートコントラクト間の相互作用を明らかにできるからです。
DeGatchi 31:44 しかし、そのフローは、通常の関数シーケンスを見ているということですよね?そして、ゼロデイを見つけるためには、通常を破って何か違うことをする必要があります。まあ、通常を特定するのは良いことだと思います。そして今、何をしてはいけないか、そしてそれをどのように破るかがわかります。それは良いことです。興味深いですね。それで、ファザーの計画はどうですか?ニューラルネットワークファジングのようなものを行うためにペアにしますか?それはTrail of Bitsの試みです。それは価値がないですが、率直に言って、正しく実装されていません。そして、あなたのファザーについての計画はどうですか?ニューラルネットワークファジング支援または完全にAIを行いますか?今、どこに行くべきですか?
アンディ・ジョウ 32:23 ファジングについては、まず、シード入力の生成と入力のミューテーションを容易にするために、非常に良い型推論システムを持つように努めています。また、シード入力を生成するのに役立つAIも活用しています。また、ファジングプロセスを高速化しようとしています。なぜなら、非常に効率的なものを持ち、脆弱性を迅速に特定したいからです。ファザーを改善するために取り組んでいる3つの異なる部分があります。
DeGatchi 33:01 わかりました、興味深いです。スペースについて考えるとき、このツールの会話とは少し異なることがあります。あなたは教授なので、これらのことについて知っています。
DeGatchi 33:10 多くの人々がトップレベルの監査人になる方法を説明しています。SpearbitやTrail of Bitsのセキュリティリサーチリーダーのような人々、さらにはソロ監査人でさえ、新しい監査人の流入で非常にうまくいっています。新しいプレイヤーや他の企業、そしてスキルを持ちたい他の人々から、どのように自分自身を差別化することを目指していますか?明らかに、それほど多くはいませんが、彼らはまだ来ています。そして、彼らが来たとき、これらのより賢い人々が来て、おそらくAIさえも。人々はAIエクスプロイト生成を行っていることを知っています。あなたはそれについて聞いたことがあるはずです。そして、新しい監査人が来て、新しいプレイヤーがこの分野に入ってくる中で、これらの人々から自分自身を差別化するために何をしていますか?
アンディ・ジョウ 33:55 はい、それは非常に難しい質問です。私の見解では、この特定の分野、例えばDeFiプロトコルセキュリティ分野のトレンドをよく理解する必要があります。さまざまな攻撃ベクトルと新しい種類の脆弱性があります。そして、これらの新しいことを研究しようとする非常に良い動機またはスキルが必要です。これらの新しいことをどのように迅速に学び、新しい知識をどのように迅速に消化するかは、私の利点です。そしてもちろん、この分野に入ってくる多くの賢い人々がいます。しかし、私は博士号で訓練されているので、新しい分野にどのように迅速に入り、最先端をどのように迅速に理解し、どのように良い問題を見つけて取り組むか、そしてどのように別の分野からこの分野にテクニックを借りてこの問題を解決するかを知っていると言えます。それが私を他と差別化するものだと思います。
DeGatchi 34:56 100%。あなたが賢く有能な人々のグループについて考えているなら、主な違いは創造性だけだと思います。それは、あなたがすべて同じレベルのフィールドにいる場合、それは決して真実ではなく、単に等しく賢い場合です。そして、最大のものは創造性です。私たちは皆、異なる考え方をし、異なる視点を持っています。だから、それは主なことだと思います。自分自身を本当に信じ、他人が信じていないときでも、あなたが何かをすることができ、誰もそれを実際に行っていないと信じ、そしてそれを達成できると信じ、それがどのように達成できるかはわからないかもしれませんが、プッシュし続け、それを見つける情熱を持っている限り、それは本当に主なことです。新しいトレンドを特定し、それらを活用できることは主なことです。そして、それは非常によく起こります。それを活用し、機会を捉えるための知識を用意しておくだけです。
DeGatchi 35:45 残念ながら、私はAIを知らないので、そうではありません。それは、適切な場所で適切なスキルを持った適切なタイミングにいることすべてです。AIは本当に次のフロンティアだと思います。そして、それにアップスケールしない人は、取り残されると思います。開発者世界では、ドメイン知識とAIの両方を持っているかもしれませんが、それらを組み合わせても、両方の分野の知識を持っているので、世界に違いを生み出しているわけではありません。だから、あなたはセクション化された知識よりも優れた問題解決策を考えることができます。数学を理解することは良い例だと思います。それらを理解しない人とは異なる見方で世界を見ています。そして、それを金融セクターのような他のものと組み合わせると、非常に効率的なアルゴリズム取引システムを構築する方法を考えることができます。そして、競争に対して途方もない優位性を得ます。AVAXのこの男は、おそらくすべてのアービトラージの90%を捉えたと思います。彼は数学的な優位性を持っていたからです。私が言いたいのはそれです。2つのドメインがあれば、多くの機会を捉えることができます。なぜなら、これらのことを学ぶのは難しいからです。そして、より多くのドメインを知っていると、それらを組み合わせると、競争は少なくなり、すべてが呼び出されるだけです。
DeGatchi 36:55 それで、あなたとBlockSecの将来について、どのように見ていますか?キャリアと会社自体でどのように進歩していくと思いますか?そして、業界がどこに向かっているのか、そしてどこに向かうべきだと思いますか?
アンディ・ジョウ 37:05 業界については、Web3は非常に新しい分野であり、私たちはまだこの新しい分野の初期段階にいると考えています。私の視点から見ると、業界は非常に速く動いています。同時に、業界によってまだ対処されていないセキュリティ問題が非常にたくさんあります。私たちは、私たちの独自のソリューションを使用して、エコシステムが速く、しかし安全に動くのを助けようとしています。製品とプロトコルで資産を保護しています。これが1つです。また、将来的には、この分野にさまざまなWeb3ユーザーがいると考えています。ユーザーもセキュリティ保護を必要としています。なぜなら、彼らがWeb3製品を使用するのは現在少し複雑だからです。彼らは、秘密鍵と資産を保護するための非常に良い方法が必要です。なぜなら、ほとんどのユーザーはERC20トークンの承認プロセスを理解しておらず、悪意のあるコントラクトですべてのトークンを承認してしまうからです。
アンディ・ジョウ 38:10 そのため、DeFiユーザー向けの非常に良い保護システムが必要です。これは現在の業界ではまだ対処されていません。もちろん、これを行っている企業もありますが、ユーザーを保護するためのより良い方法があります。
DeGatchi 38:27 ファザーの上に、ユーザーを保護することについて話しているとき、ウォレットのようなものに拡張できると思います。2つまたは3つの異なる方法があります。保留中のトランザクションのようなもので、100%確実ではありません。だから、もう少し詳細に調べる必要があります。そして、それはゼロデイ自体を見つけるようなものになるかもしれません。しかし、それがオプションでない場合、ウォレット自体に分析を埋め込む機能を持つだけでも良いかもしれません。たとえそれが簡単なものであっても。彼らはトークンや、彼らが掘り下げるものを行うでしょう。しかし、トランザクションを実行する前に分析を実行できる場合、そして誰かが以前にこれを行ったと信じています。
アンディ・ジョウ 39:01 それを行っている企業がいくつかあり、トランザクションをシミュレートして、ユーザーが署名した場合のトランザクションの結果をユーザーに伝えています。
DeGatchi 39:10 それは非常に賢いと思います。そして、それは会社やセキュリティを行うものへの簡単な進歩だと思います。それは本当に素晴らしい方法だと思います。だから、直接彼らに渡します。Fireか何かだったと思います。覚えていません。しかし、はい、それらのシミュレーションは本当に良いですが、LPへのトランザクションのようなものを行うため、それらは少し欠陥があると思います。人々はカスタムバイトコードを使用し、条件付き機能を使用するでしょう。たとえば、それらの100種類のLPが何か別のことをするように切り替わるとします。だから、彼らがお金を持っているときの初期シミュレーションや、それが何であれ、すべての関数パスウェイをテストしない限り、表示されません。それは私が考えていたことです。しかし、また、非常に多くの難しい問題があります。あなたはあなたの毒を選ぶ必要があります。サイバー、サイバーセキュリティ、AIの組み合わせの未来に興奮していることは何ですか?間違いなく、もっとたくさん使うでしょう。あなたの計画は何ですか、そしてあなたはどのようにその道を下っていくと思いますか?
アンディ・ジョウ 40:06 私の計画としては、これらの新しいテクニックを組み合わせて、コミュニティとユーザーをより良く保護したいと考えています。AIにリソースを投資し続けます。なぜなら、AIとWeb3セキュリティシーンの組み合わせは、より良い製品を生み出すからです。より良い攻撃検出システム、より良いファジングシステム、そしてユーザー資産を保護するためのより良いソリューションを追求したいと考えています。これがBlockSec内の現在の計画です。
DeGatchi 40:36 興味深いですね。わかりました。もっと良くなり、もっと多くのことができるようになると確信しています。すでに多くのハッキングを防ぐために尽力されています。しかし、イノベーションの余地はまだたくさんあると思います。そして、それは始まったばかりです。人々がそれを知り、あなたがさらに多くのハッキングを防ぐようになると、それははるかに顕著になり、より多くの競争が生まれるでしょう。それは素晴らしいことです。ハッキングを防ぎ、実際にエコシステムを拡大するための健全な競争です。なぜなら、最終的な目標はCeFiを置き換えることだからです。銀行口座から4ヶ月待ってまでお金を引き出したいとは思いません。それはかなりばかげています。情報セクターでの努力は、小売業者や既存のプロトコルにとってはactually 過小評価されています。彼らはハッキングされるまで really には知りません。これがactually 数人がこれに参入する方法だと思います。しかし、皆さんが構築しているものにsuper 興奮しており、サイバーと仮想通貨の未来について楽観的です。しかし、本当に来てくれてありがとう。あなたが最初にポッドキャストに参加してくれたことをとても嬉しく思います。本当に時間を割いてくれてありがとう、アンディ。素晴らしいチャットでした。
アンディ・ジョウ 41:38 はい、ここにいることを光栄に思います。ありがとう、DeGatchi。



