BlockSec CEO Andy Zhou wurde eingeladen, am Spraping Bits Podcast teilzunehmen, und erörtert das Thema, wie das BlockSec-Team potenzielle Sicherheitslücken in der turbulenten und komplexen Umgebung von Web3 identifiziert und abmildert. Unten finden Sie eine kuratierte Sammlung faszinierender Inhalte, die wir zusammengestellt haben. Um die vollständige Version des Podcasts zu hören, klicken Sie hier.
Andy Zhou 00:00
Wir haben ein System in unserem Team, das bösartige Verträge erkennen kann, noch bevor die Hacker die Angriffstransaktionen senden. Das liegt daran, dass sie einen bösartigen Vertrag bereitstellen und dann Transaktionen senden müssen, um das Protokoll anzugreifen. Selbst vor den Angriffstransaktionen kann unsere KI-basierte Engine, wenn die Hacker einen bösartigen Smart Contract bereitstellen, den bösartigen Vertrag präzise identifizieren.
Andy Zhou 00:53
Danke, DeGatchi. Ich fühle mich auch sehr geehrt, hier zu sein.
DeGatchi 00:56
Geehrt. Vielen Dank. Nur für die Leute, die Sie nicht kennen: Wer sind Sie und was machen Sie?
Andy Zhou 01:02
Mein Name ist Andy. Ich bin der CEO von BlockSec und außerdem Professor an der Zhejiang University, einer Top-Universität in China. Ich habe mehr als 10 Jahre Erfahrung im Bereich Cybersicherheit. Zuvor arbeitete ich im Bereich Smartphone-Sicherheit und wechselte dann für einige Jahre zur Smart-Contract-Sicherheit.
DeGatchi 01:22
Wie waren Ihre Anfänge in der Smart-Contract-Sicherheit? Haben Sie manuelle Audits durchgeführt oder sind Sie direkt zur Automatisierung übergegangen? So ähnlich wie ich.
Andy Zhou 01:30
Für die Smart-Contract-Sicherheit führen wir in der Firma und in unserem Forschungsteam sowohl statische als auch dynamische Analysen durch. Für die statische Analyse haben wir verschiedene Techniken entwickelt, um die statische Analyse von Smart Contracts zu verbessern. Das liegt daran, dass die meisten derzeit verfügbaren Tools in der Community einige gemeinsame Probleme haben, da sie zu viele Fehlalarme erzeugen. Wenn Sie beispielsweise ein Tool zur Erkennung von Reentrancy-Problemen verwenden und einen einfachen Smart Contract in das Tool eingeben, werden möglicherweise viele Reentrancy-Probleme oder andere Probleme gemeldet. Wenn Sie diesen Bericht jedoch manuell überprüfen, werden Sie feststellen, dass die meisten davon Fehlalarme sind. Wir stellen fest, dass Fehlalarme das Hauptproblem bei aktuellen statischen Analysetools sind.
Andy Zhou 02:20
Der grundlegende Grund für solche Fehlalarme ist das mangelnde Verständnis der Semantik des Smart Contracts. Semantik bezieht sich auf die Bedeutung hinter den Variablen und ihren Beziehungen innerhalb des Vertrags. Wenn Sie beispielsweise einen ERC-20-Token haben, gibt es Variablen, die den Saldo jedes Eigentümers und den genehmigten Wert darstellen, was angibt, wer wem welchen Betrag zum Übertragen genehmigt hat. Um die Präzision der statischen Analyse zu verbessern, ist es unerlässlich, genau zu identifizieren, welche Variablen dem Saldo entsprechen und welche Variablen sich auf Genehmigungen und andere spezifische Funktionalitäten beziehen. Dadurch können wir eine deutlich bessere Präzision bei der statischen Analyse erzielen.
Andy Zhou 03:00
Eine Erkenntnis, die wir aus unserer Erfahrung bei der Entwicklung des statischen Analysetools gewonnen haben, ist die Notwendigkeit einer robusten Taint-Analyse-Engine, um Korrelationen zwischen Variablen herzustellen. Die Datenflussanalyse, eine grundlegende Technik, die von statischen Analysetools verwendet wird, spielt eine entscheidende Rolle. Sie beinhaltet die Modellierung von Speichern und Speichern sowie die präzise und effiziente Nutzung von Taint-Analyse-Techniken innerhalb des statischen Analysetools. Diese beiden Schlüsseltechniken, Taint-Analyse und Datenflussanalyse, haben sich als äußerst effektiv bei der Verbesserung der Fähigkeiten unseres statischen Analysetools erwiesen.
Andy Zhou 03:48
In unserem Forschungsteam haben wir dieses statische Analysetool entwickelt und eingesetzt und analysieren jeden neuen Smart Contract, der auf der Blockchain erstellt wird. Wir werden den Entwicklern die von uns identifizierten Zero-Day-Schwachstellen melden. Leider kümmern sich einige Entwickler nicht um die Schwachstelle. Und wir finden nicht einmal effiziente Kanäle, um sie zu benachrichtigen. Das ist sehr traurig.
Andy Zhou 04:13
Wenn Sie ein sehr effektives statisches Analysetool wünschen, benötigen Sie die Semantik und eine Taint-Analyse-Engine. Das ist unsere Erfahrung mit dem statischen Analysetool. Und neben dem statischen Analysetool haben wir in unserem Forschungsteam auch ein dynamisches Analysetool. Das liegt daran, dass wir neben den anfälligen Smart Contracts auch bösartige Transaktionen identifizieren wollen, oder?
Andy Zhou 04:31
Es geht nicht nur darum, anfällige Smart Contracts zu analysieren, sondern auch darum, Transaktionen zu erkennen, die Protokolle oder andere Smart Contracts angreifen könnten. Um dies zu erreichen, verfügen wir über eine angepasste virtuelle Maschine mit Instrumentierungsfähigkeiten. Dies ermöglicht es uns, unsere eigenen Erkennungsregeln zu schreiben, die leicht in die virtuelle Maschine oder die Ausführungsumgebung eines beliebigen Smart Contracts eingehakt werden können. Wir erfassen verschiedene Signale, um festzustellen, ob eine Transaktion bösartig ist oder nicht. Wir prüfen beispielsweise, ob der Absender der Transaktion eine Vorgeschichte mit Angriffen hat oder ob die Gelder aus verdächtigen Quellen stammen. Durch die Kombination verschiedener Signale bewerten wir das Risiko, das mit jeder Transaktion verbunden ist. Unser Team hat diese Erkennungs-Engine eingesetzt, die es uns ermöglicht, Angriffstransaktionen schnell zu erfassen und zu identifizieren.
DeGatchi 05:41
Ja, das ist interessant. Das Gleiche habe ich mit meinen statischen Analysatoren gemacht. Die Taint-Analyse ist im Grunde unerlässlich, aber dann nutzen Sie, was auch immer Sie mit dem statischen Analysator tun. Sie übertragen alle diese Daten in einen Fuzzer, richtig? Ich habe auch meinen Fuzzer gebaut. Und es ist wirklich interessant zu sehen, wie die Leute das angehen. Aber es gibt sehr interessante Lösungen. Die Leute denken in diesem Bereich sehr sequenziell, und es gibt viele Dimensionen zu bedenken, daher ist sequenziell nicht die richtige Antwort.
DeGatchi 06:08
Lassen Sie uns über die Dimensionen sprechen. Angenommen, Sie haben den Calldata einer Transaktion, richtig? Sie haben auch Funktionen und die Verträge. Und dann haben Sie auch die andere Dimension, nämlich die Phase. Es ist also sehr kontextabhängig. Und jetzt haben Sie all diese vier verschiedenen Variablen, Dimensionen, und sie beeinflussen sich gegenseitig mit der geringsten Änderung. Sie könnten also beispielsweise Vertrag A, Vertrag B, alle ihre Funktionen haben. Jetzt müssen Sie sie in all diesen verschiedenen Arten anordnen, aber es gibt nicht nur eine einzige Funktion A und Funktion B, Funktion B und Funktion A. Sie haben auch die Möglichkeit, Funktion A, Funktion B, Funktion B, Funktion B, Funktion A durchzuführen. Das ist ein wirklich schwieriges Problem.
DeGatchi 06:43
Und ich denke, was Sie mit Ihren Sachen gemacht haben, ist ziemlich interessant. Ich weiß, dass Sie Phalcon kürzlich erweitert haben, um auch Transaktionserkennung einzuschließen. Es ist also eher ein allgemeiner Frontrunner, aber für Hacks. Und dabei ist es sehr aufschlussreich. Und das Front-Running-Spiel wird von diesen dedizierten MEV-Teams dominiert, richtig? Und sie machen Front-Running, Sandwiching, Back-Running usw. Und sie haben dedizierte Infrastrukturen, Hochfrequenzhandel-Systeme, bei denen die Latenz sehr gering ist, und sie arbeiten zusammen, Block-Builder, Relais, all diese Dinge. Die Frage ist also, wie können Sie diese Transaktionen anstelle dieser MEV-Teams Front-runnen?
Andy Zhou 07:24
Ja, das ist eine sehr gute Frage. Im Grunde ist das Hauptziel unseres Systems nicht, MEV-Bots zu front-runnen, sondern die Protokolle zu schützen, und wir zielen auf Hacker ab.
DeGatchi 07:37
Aber wenn ein Hacker eine Transaktion an einen öffentlichen Mempool sendet, wenn er privat ist, kann ihn niemand sehen. Aber wenn es sich um einen öffentlichen Mempool handelt, werden ihn auch alle anderen generellen Frontrunner sehen. Also müssen Sie zu ihnen gehen. Wie besiegen Sie sie? Wie besiegen Sie sie?
Andy Zhou 07:51
Ja, wir sagen immer, dass Sicherheit ein Wettrüsten zwischen den Guten und den Bösen ist. In den frühen Tagen war es einfach, weil die Bösen die Existenz unseres Teams und der MEV-Bots nicht kannten. Damals hing es davon ab, wie viel Gasgebühr Sie zahlten oder wie viel Bestechungsgeld Sie den Validatoren zahlten. Das war früher viel einfacher, aber heutzutage verwenden Hacker einige Techniken, um sich davor zu schützen, front-runnt zu werden. Wir haben zum Beispiel eine sehr interessante Technik von Hackern eingesetzt, um zu verhindern, dass ihre Transaktionen von MEV-Bots front-runnt werden. Im Grunde überprüfen sie in ihren Transaktionen zuerst einige Werte, z. B. indem sie einen bestimmten Wert aus einem anderen Smart Contract abrufen, um zu überprüfen, ob dieser bestimmte Wert mit dem ursprünglichen Wert dieser Variablen übereinstimmt. Bei der Durchführung des Angriffs sendet der Hacker zuerst eine Transaktion, um die Variable in einem anderen Smart Contract einzustellen, um diese Prüfung zu erfüllen, und verwendet die zweite Transaktion, um den Hack tatsächlich durchzuführen. Da die meisten gängigen Techniken, die von MEV-Bots verwendet werden, die Simulation einer einzelnen Transaktion sind. Wenn Sie nur die zweite Transaktion simulieren, werden Sie scheitern, weil die Bedingung nicht erfüllt ist. Das liegt daran, dass die Bedingung von der ersten Angriffstransaktion festgelegt wird. Aufgrund dieses kniffligen Teils können einige MEV-Bots damit nicht umgehen. Wir können das handhaben, weil wir eine Technik zur Analyse der Korrelation verschiedener Transaktionen haben.
DeGatchi 09:40
Ja, man müsste das mehrfach tun. Man kann nicht nur eins tun, denn wenn man nur generelles Front-Running betreibt, ist der Standard, die Adressen zu ersetzen, oder wenn es mehrere Adressen sind, muss man sie alle ersetzen und jede Option ausprobieren.
Andy Zhou 09:52
Genau.
DeGatchi 09:53
Wenn sie das Multi-Contract-Ding mit dem Setup machen, dann würden sie die Vertragskontrakte bereitstellen und dann eine Funktion in diesem Setup-Vertrag aufrufen, die das Neue einrichtet, und dann würden sie das in den Exploit-Verträgen verwenden. Aber die Art und Weise, wie man das beheben würde, wäre im Grunde wieder eine Simulation, aber man müsste tatsächlich nur den Zustand dessen überprüfen, was aufgerufen wird. Und wenn dieser dem Bereitstellungszustand des ursprünglichen Vertrags nicht entspricht, muss man das irgendwie einstellen, diese Funktion wie eine CFG finden, was auch immer das war, und dann diesen Exploit-Vertrag so modifizieren, dass er das auch einstellt oder sogar ganz entfernt. Das ist ziemlich schwierig, aber es ist verrückt, dass Sie das tatsächlich getan haben und es jetzt funktioniert.
Andy Zhou 10:33
Ja, es funktioniert, aber Sie müssen viel Entwicklungsaufwand betreiben. Und Sie benötigen auch eine sehr gute und effiziente Analyse-Engine dafür.
DeGatchi 10:42
Das ist sehr beeindruckend. Sie haben bereits 20 Hacks und Verluste von rund 15 Millionen Dollar verhindert. Und das war innerhalb von sechs Monaten vor dem Start.
Andy Zhou 10:51
Die Verhinderung von Hacks erfolgt seit anderthalb Jahren. Also nicht in einem oder zwei Monaten. Das ist eine kontinuierliche Anstrengung über anderthalb Jahre.
DeGatchi 11:04
Aber trotzdem macht das niemand anderes. Das ist eine wirklich großartige Sache, und ich denke, jeder sollte sie zumindest haben, weil sie wichtig ist. Und obwohl es vielleicht keine 100%ige Rettung für alle ist, weil sie sich anmelden müssen, und es vielleicht einige obskure Techniken gibt, die anders sind. Es ist immer noch besser als nichts, richtig? Sie retten Dinge, gehackt zu werden ist der Untergang des gesamten Unternehmens, aller Benutzer, allen Rufs - es ist einfach weg. Das ist also eine sehr wichtige Sache. Wie haben Sie das gemacht? Haben Sie überhaupt KI eingesetzt? Oder es gibt keine Möglichkeit, dass es rein heuristisch ist.
Andy Zhou 11:41
Im Grunde kombinieren wir verschiedene Techniken. Zur Erkennung von Hacks kombinieren wir die KI-basierte Lösung mit der Verhaltensanalyse. Für die KI-basierte Lösung verwenden wir KI-Techniken, Maschinelles Lernen, um den bösartigen Vertrag zu erkennen. Wir haben ein System in unserem Team, das den bösartigen Vertrag erkennen kann, noch bevor der Hacker die Angriffstransaktionen sendet. Das liegt daran, dass sie einen bösartigen Vertrag bereitstellen und dann Transaktionen senden müssen, um das Protokoll anzugreifen. Selbst vor den Angriffstransaktionen kann unsere KI-basierte Engine, wenn die Hacker den bösartigen Smart Contract bereitstellen, den bösartigen Vertrag präzise identifizieren. Ich sage nicht, dass wir keine Fehlalarme haben, aber die Fehlalarme sind ziemlich gering. Selbst in diesem Stadium, vor den Angriffstransaktionen, können wir den bösartigen Smart Contract erkennen. Das Problem ist, dass Sie, wenn Sie einen bösartigen Smart Contract identifiziert haben, möglicherweise noch nicht den tatsächlichen Opfer dieses Hacks kennen. Das liegt daran, dass das Zieladresse manchmal nicht im Smart Contract fest codiert ist. Sie können als Parameter übergeben werden. Sie benötigen eine Art Fuzzing-Technik, um dies auszulösen. Aber wenn alle Zieladressen von Smart Contracts über Parameter übergeben werden, dann hilft auch Fuzzing nicht.
Andy Zhou 13:05
Bei diesen komplizierten Fällen können wir die bösartigen Smart Contracts in diesem Stadium nicht identifizieren. Wir müssen uns damit in der Erkennungsphase von Angriffstransaktionen befassen. Für die Angriffstransaktionen verwenden wir verhaltensbasierte Lösungen zur Erkennung der Angriffstransaktionen. Die Grundidee ist, dass jeder Hacker Gewinn erzielen möchte. Sie müssen also präzise sein, um Gewinn aus den Transaktionen zu ziehen. Und nach der Erkennung dieser Angriffstransaktionen synthetisieren wir automatisch eine ähnliche Angriffstransaktion wie der MEV-Bot, ersetzen die Gewinnadresse und stellen diese auf die Kette. Dies ist im Grunde die Funktionsweise des Systems, bevor wir BlockSec Phalcon eingeführt haben.
DeGatchi 13:54
Bei den KI-Sachen kann ich mir nicht vorstellen, dass es sich um ein überwachtes Lernmodell handelt. Ich habe das Gefühl, dass es sich um bestärkendes Lernen handeln muss, weil es einfach nicht viele Hacks gibt, richtig? Also nicht genug Daten, um das wirklich zu tun.
Andy Zhou 14:08
Ich denke, Sie haben einen sehr guten Punkt für maschinelles Lernen angesprochen. Für die Erkennung von bösartigen Smart Contracts ist das nicht effektiv, da wir nicht viele Beispiele haben, um das Modell zu trainieren. In diesem Fall ist die Schlüsselkenntnis, wie man diese Dinge zum Laufen bringt, dass man die wichtigsten Merkmale eines Smart Contracts extrahieren muss. Jemand benutzt einfach die Bytecode-Sequenz, um das Modell zu trainieren. Das funktioniert nicht, weil die Bytecode-Sequenz für den Smart Contract zu allgemein und zu üblich ist. Sie müssen die unterscheidenden Merkmale des Smart Contracts extrahieren. Was wir derzeit verwenden, einschließlich des Kontrollflusses, der Datenflussbeziehungen zwischen den wichtigsten Funktionen und wir verwenden auch einige Adress-Labels oder die Eigenschaften des Erstellers für den Smart Contract, um das Modell zu trainieren. Es hat sich als sehr effektiv erwiesen.
DeGatchi 14:55
Sie extrahieren also im Grunde wichtige Merkmale. Zum Beispiel hartcodierte Adressen oder Adressen, die als Call-Daten übergeben werden. Vielleicht maskieren sie, wenn sie Solidity verwenden. Das ist in Solidity ziemlich üblich. Aber wenn es sich um einen benutzerdefinierten High-Code-Vertrag handelt, wird es wahrscheinlich ein ziemlich ausgeklügelter Hacker sein. Aber die ausgeklügelten Hacker, diejenigen, die wirklich streng planen, würden zu 100 % private Transaktionen mit benutzerdefiniertem Bytecode und vielleicht sogar Schwärme von Transaktionen zur Verschleierung verwenden. Das war etwas, das ich studiert habe, und ich war sehr daran interessiert. Es hat sich als effektiv erwiesen. Tatsächlich habe ich noch nie jemanden mit den von mir gefundenen Techniken gesehen. Ich werde vielleicht sogar einen Artikel darüber schreiben, weil ich sie nie benutzen würde. Aber es war interessant.
Andy Zhou 15:46
Ja, bevor ich dieses Forschungsprojekt durchgeführt habe, dachte ich auch nicht, dass es funktioniert. Aber nach sechs Monaten haben wir bewiesen, dass es sehr effektiv ist.
DeGatchi 16:02
Ja, ja, das ist verrückt. Ich denke, das ist ein bemerkenswerter Schritt in die richtige Richtung, und es müssen mehr Werkzeuge wie diese geben. Aber das wirft auch die Frage auf; Sie wissen, dass Sie KI einsetzen. Wie sehen Sie, wie sehr KI zuerst Ihr Geschäft beeinflussen wird? Und was wird durch KI obsolet werden, und was kann jemand tun, um sich heute auf diese Revolution vorzubereiten?
Andy Zhou 16:23
Ehrlich gesagt bin ich kein KI-Experte. Wir wenden KI nur in unserem Forschungsbereich an, um bösartige Smart Contracts zu erkennen. Ich glaube, das Potenzial von KI im Sicherheitsbereich ist noch nicht voll ausgeschöpft. Und ein Grund dafür ist, dass man, um KI im Sicherheitsbereich anzuwenden, ein sehr tiefes Verständnis des Problems haben muss, das man löst. Denn wenn man ein sehr tiefes Verständnis des Problems hat, das man löst, kann man sehr gute Merkmale extrahieren. Ich denke, das Merkmal ist sehr wichtig, richtig? Selbst für den gleichen Vertrag oder die gleichen Transaktionen, wenn man kein sehr gutes Merkmal für das Training hat, wird das Ergebnis völlig anders sein. Aus meiner Sicht ist das Potenzial der KI noch nicht voll ausgeschöpft, da man eine Kombination aus einer sehr guten KI-Person und einem sehr fachkundigen Experten benötigt, um die Merkmale zu extrahieren.
DeGatchi 17:30
Ich stimme zu. Das ist sehr unterschiedlich. Es ist eine Kombination aus zwei Feldern, zwei Domänen. Erstens ist es schwer, gut in KI zu sein. Und dann braucht es auch Zeit, die Dinge zu lernen. Man muss Mathematik verstehen, man muss alles über KI wissen. Man kennt die Pakete, Bibliotheken nicht, und dann muss man auch noch im Krypto-Bereich mit einer weiteren Domäne, nämlich Bytecode und auch Cyber, sein, was auch Zeit braucht. Aber ich glaube, dass es für Leute, die von reiner KI zu Krypto wechseln, nicht so schwer sein wird wie für jemanden, der von Krypto zu KI wechselt, weil es in reiner KI einfach viel schwieriger ist, hineinzukommen, nur wegen der Mathematik, die man braucht, und des Gesamtverständnisses der aktuellen Architektur und wie alles funktioniert.
DeGatchi 18:13
Aber es ist super interessant, finde ich. Was wird Ihrer Meinung nach obsolet sein? Denn KI wird offensichtlich alles verändern. Und ich denke, wenn Sie KI nicht einsetzen, werden Sie keinen Vorteil gegenüber anderen Leuten in all diesen Geschäften haben, weil es schwer ist, zu konkurrieren. Ich habe dasselbe mit dem Fuzzer und dem Stack-Analyzer gemacht, aber ich kenne Leute, die KI machen. Und es macht Sinn, denn wenn man an diesen unendlichen Aktionsraum denkt, kann man ihn nicht einfach durch Brute Force erschließen. Man braucht eine Art Intuition, um alle Aktionen herauszufiltern und zu wissen, worauf man abzielen soll. Man braucht also KI dafür. Man braucht etwas, das über wiederholte Instanzen lernen kann, besonders wenn man etwas auf all diesen Protokollen ausführt, auf allen Verträgen, Millionen von Instanzen oder Läufen, richtig? Es muss in der Lage sein, Intuition zu lernen. Andernfalls bauen Sie diese Intuition in sich selbst ein. Und das ist sehr zeitaufwändig und auch sehr fehleranfällig, weil man nicht in all diesen Dimensionen denken kann und man am Ende des Tages nicht weiß, was man nicht weiß. Ich denke, persönlich, wenn man nicht damit anfängt, sollte man es tun, egal. Ich kenne nicht einmal Mathematik und fange damit an. Wenn ich das kann, kann es jeder. Wir werden also sehen. Aber es ist eine große Verpflichtung.
Andy Zhou 19:36
Genau. Ich kann ein aktuelles Experiment zu KI teilen. Wie gesagt, wir haben ein Fuzzing-System für Smart Contracts, um Schwachstellen zu finden. Wir haben ein internes System dafür. Wir können KI nutzen, um die Seed-Inputs für das Fuzzing zu generieren, und das hat sich als sehr effektiv erwiesen. Wie machen wir das? Zum Beispiel haben wir fünf Smart Contracts, die gefuzzt werden sollen. Wir geben diese Smart Contracts zuerst in ChatGPT ein, und wir können die wichtigsten Funktionalitäten jeder Funktion zusammenfassen, indem wir GPT sagen: "Diese Funktion hat hauptsächlich diese Aufgabe, eine andere Funktion hat diese Aufgabe." Danach bitte ich GPT: "Bitte generieren Sie 50 verschiedene Eingaben für diese Funktionen." Und das erweist sich als sehr effektiv. Und wir verwenden dies als Seed-Eingabe, um Smart Contracts zu fuzzen.
DeGatchi 20:38
Interessant. Ich denke, LLMs sind tatsächlich ziemlich gut. Das Beste, was wir in Bezug auf das Verständnis von Embeddings haben, weiß ich nicht viel mehr, aber es ist im Moment die beste Anstrengung. Es macht also Sinn. Ich denke, viele Leute benutzen ChatGPT, aber das scheint ein wirklich guter Anwendungsfall zu sein. Ich kenne Leute, die das tun, um die Verträge für sie zu erklären. Es eliminiert also im Grunde das gesamte Verständnis; es hilft Ihnen schnell, auf den neuesten Stand zu kommen, anstatt zu versuchen, die gesamte Codebasis zu verstehen. Denn es könnte eine Tausend-Zeilen-Codebasis sein, richtig? Oder Multi-Contracts, Tausende von Zeilen. Es ist wirklich schwierig, die Beziehung zwischen allem und den Abhängigkeiten zu erkennen.
DeGatchi 21:18
Aber ich wollte fragen: Da Sie diese neue Transaktionsblockierung vorgenommen haben, haben Sie jetzt die Transaktionsblockierung, aber warum würden Sie noch einen Schritt weiter gehen und tatsächlich versuchen, all die Zero-Days und all die Verträge zu finden? Denn wenn man an einen ausgeklügelten Hacker denkt, der weiß, was er tut und jemanden ins Visier nimmt, und sagen wir, es ist ein 600-Millionen-Dollar-Hack wie Ronin oder etwas realistischeres wie ein 200-Millionen- oder 20-Millionen-Dollar-Hack bei einem Protokoll, würden sie einfach eine private Transaktion senden und Sie könnten sie nicht blockieren. Warum würden Sie nicht voll und ganz in die Verhinderung von Zero-Days investieren, um sie alle zu verhindern? Denn wenn Sie sie finden, senden Sie einfach eine private Transaktion und retten alles von Anfang an.
Andy Zhou 22:02
Ja, eine sehr gute Frage. Wir haben tatsächlich einige Angebote für Projekte innerhalb von BlockSec. Derzeit können wir mit BlockSec Phalcon bösartige Transaktionen auf der Kette oder im Mempool erkennen. Aber für private Transaktionen können wir das nicht sehen. Das ist der aktuelle Stand. Wir wollen unsere Bemühungen auch weiter vorantreiben, um die Schwachstellen von Smart Contracts zu erkennen, noch bevor die Hacker es tun. Wie ich gerade sagte, haben wir Fuzzing-Systeme dafür, aber derzeit verbessern wir unser Fuzzing-System noch, um die Sicherheitslücken von auf der Blockchain bereitgestellten Smart Contracts zu erkennen.
Andy Zhou 22:55
Ich glaube, es gibt einige Herausforderungen bei der Durchführung von Fuzzing für Smart Contracts zur Identifizierung von Schwachstellen. Eine der Herausforderungen beim Fuzzing von Smart Contracts ist die Generierung von Eingaben, insbesondere von Transaktionen, für den Zielvertrag. Darüber hinaus müssen Sie für den Smart Contract eine serielle Abfolge von Transaktionen generieren, um die Schwachstellen auszulösen, nicht nur eine einzelne. Und manchmal hängen die Transaktionssequenzen voneinander ab. Sie benötigen die erste Transaktion und die zweite und dritte, und nur die vollständige Sequenz dieser drei Transaktionen kann die Schwachstellen auslösen. Sie müssen eine Sequenz von mehreren Transaktionen generieren und die Abhängigkeit dieser Transaktionen verstehen. Das ist derzeit ziemlich schwierig. Das ist Herausforderung eins. Und die zweite Herausforderung ist, dass Sie einen Orakel benötigen, um festzustellen, ob eine Schwachstelle vorliegt. Angenommen, Sie senden eine Transaktion an einen Smart Contract. Wie bestimmen Sie dann, dass Sie die Schwachstellen ausgelöst haben? Natürlich können wir die ähnliche Technik verwenden, um den Gewinn zu berechnen. Wenn diese Transaktion einen sehr hohen Gewinn auslöst oder den Gesundheitsfaktor eines Kreditprotokolls abnormal macht, dann sehen wir, dass es eine Schwachstelle gibt. Aber Sie benötigen verschiedene Arten von Orakeln, die für die Fuzzer zusammengefasst sind. Das ist die zweite Herausforderung.
DeGatchi 24:35
Das ist der zweite Teil. Das ist ziemlich interessant, denn wenn ein neues Protokoll herauskommt und einen Token hat, hat es keine Liquiditätspools mit großen Tokens. Es könnte mit einem anderen Token sein. Man kann es nicht einmal bewerten, richtig? Das ist also ein riesiges Hindernis. Haben Sie jemals darüber nachgedacht, wie Sie das mit einem solchen Orakel angehen würden?
Andy Zhou 24:57
Ja, genau. Das ist also eine weitere Herausforderung, denn Sie müssen die Umgebung für die Fuzzer und die DEX-Pools vorbereiten. Sie müssen verschiedene Token vorbereiten und den Preis jedes Tokens in ein System einspeisen. Sie müssen verschiedene Arten von Dingen für die Fuzzer vorbereiten. Das ist sehr kompliziert. Für einfache Schwachstellen wie Reentrancy ist es für die Fuzzer sehr einfach auszulösen. Aber für einige komplizierte, wie Preismanipulation, ist es schwierig. Wir arbeiten immer noch an einem System, aber wir brauchen noch etwas Zeit. Aber Sie haben Recht, wir arbeiten in diese Richtung.
DeGatchi 25:43
Ja, das ist überhaupt keine triviale Aufgabe. Es erfordert viel Komplexität, oder? Und Sie müssen viele Dinge berücksichtigen, die von anderen Dingen abhängen. Es ist also so, als würden Sie eine Frage stellen und bekommen nur zwei weitere Fragen, und jetzt beziehen sie sich aufeinander, und es geht immer weiter nach unten. Aber dieses Orakel-Ding ist wahrscheinlich eines der schwierigsten. Und es ist auch eines der wichtigsten, denn Orakelmanipulation ist wahrscheinlich der größte Angriffsvektor. Alles hängt davon ab. Und in welcher Form auch immer, es könnte eine interne Wechselrate sein, es könnte eine externe im Vergleich zu einer internen sein.
DeGatchi 26:22
Also eine Art Arbitrage, die sie nicht berücksichtigt haben, es gibt Fehler in allem, weil menschliches Versagen sicher ist. Und die Anzahl der Interaktionen wird nicht berücksichtigt werden. Täglich kommen neue Protokolle heraus. Ihr aktuelles Protokoll kann jetzt damit interagieren. Es könnte eine Sequenz von fünf verschiedenen Protokollen sein.
DeGatchi 26:45
Und es ist nicht einfach. Ich denke, man braucht KI, weil man räumlich über all diese verschiedenen Funktionen in verschiedenen Verträgen nachdenken muss, die anfällig sind, man kann sie nicht sequenziell herausfinden, weil es einfach so viele Möglichkeiten gibt, oder? Ich sprach also Anfang des Jahres mit jemandem darüber und sprach mit ihm über den Pickle Finance Exploit. Und das ist wirklich interessant, weil es acht Schwachstellen enthält. Und wenn Sie eine davon verpassen, hätten Sie den Exploit nicht, und er musste in einer bestimmten Reihenfolge erfolgen. Und dieser Exploit bestand tatsächlich aus fünf benutzerdefinierten Verträgen. Es waren also fünf benutzerdefinierte Verträge, um im Grunde den Kontext zu schaffen, in dem diese Sequenzen von anfälligen Funktionen auf eine bestimmte Weise genutzt werden konnten.
DeGatchi 27:44
Und ein weiterer Teil davon war zu verstehen, dass in Athenas Isolator eine Adresse und Bytes 20 dasselbe bedeuten. Und Leute übersehen das, weil man wissen muss, was diese Typen bedeuten. Aber im Grunde genommen, was sie taten, was ich faszinierend fand, war, dass sie diese Verträge erstellten, die wie ein gefälschter zugrunde liegender Token waren. Und die fake_underlying_token.balance_of gab eine Adresse zurück, keine tatsächliche Menge. Und das ist nicht wahr, denn eine tatsächliche Menge ist nur Bytes 32 und eine Adresse ist Bytes 20. Sie können also die Adresse als 2.56 übergeben, weil sie technisch gesehen das ist, richtig? Und das hing davon ab, das schuf diese gesamte Kette, weil es eine Delegated Code Situation schuf, in der es verwendet wurde. Und so geschah es. Aber es war wirklich interessant. Man muss Verträge generieren, die bestimmte Dinge tun, die neue Sequenzen ermöglichen. Und das ist überhaupt nicht trivial, Verträge generieren zu können, um mindestens fünf von ihnen einen Exploit zu ermöglichen. Es ist ein äußerst faszinierendes Problem, und ich denke, es ist sehr stimulierend. Und ich denke, es gibt nichts Besseres, als diese Art von Dingen zu tun. Ich liebe es so sehr.
DeGatchi 29:06
Aber diese Art von Dingen ist wirklich schwierig. Und haben Sie über all das nachgedacht? Welche Arten von Techniken untersuchen Sie jetzt? Offensichtlich, wie ich gerade sagte, räumlich, schauen Sie sich isolierte Funktionen an und sehen Sie, wie sie miteinander interagieren. Die Beziehung ist definitiv eines der härtesten Teile, je nachdem, wie Sie es angehen. Weil Taint-Analyse ehrlich gesagt nicht ausreicht.
Andy Zhou 29:26
Ja, für die Beziehung zwischen verschiedenen Smart Contracts machen wir derzeit etwas sehr Interessantes. Wir sammeln manuell die Smart Contracts der Top-DeFi-Protokolle. Dann führen wir eine manuelle Analyse durch, um ein Diagramm der Beziehungen zwischen verschiedenen Smart Contracts zu erstellen. Wenn beispielsweise wstETH als Sicherheit in einem Protokoll, sagen wir ABC, verwendet werden kann, zeichnen wir eine Linie zwischen diesen Protokollen. Wenn ein Token als zugrunde liegender Token eines anderen Smart Contracts verwendet werden kann, verbinden wir diese Protokolle miteinander.
Andy Zhou 30:02
Wir erstellen im Grunde manuell mit einigen Skripten ein Gesamtbild der Beziehungen zwischen verschiedenen Top-Protokollen. Und wir werden diese Erkenntnisse nutzen, um statische Analyse- und Fuzzing-Techniken zu überwachen.
Andy Zhou 30:15
Das ist eine Sache, an der wir derzeit arbeiten. Es ist noch in einem frühen Stadium, aber die von uns generierten Beziehungen sind manchmal hilfreich für die statische Analyse und für die Fuzzing-Systeme. Eine weitere Arbeit, an der wir derzeit arbeiten, ist die Typinferenz. Wir möchten den Typ der Eingabedaten inferieren, z. B. die Call-Daten innerhalb eines Smart Contract-Aufrufs. Beispielsweise können wir vom Byte 0 bis Byte 20 der Call-Daten schließen, dass der Typ eine Adresse ist. und aus einem anderen Segment der Eingabe ist der Typ ein anderer. Das wäre beim Fuzzing sehr hilfreich. Wir versuchen, die statische Analyse zur Typinferenz zu nutzen.
DeGatchi 30:55
Interessant. Ja, die Beziehung zwischen den oben genannten Dingen ist irgendwie wie ein Graph. Was Sie tun, ist schwierig. Denn, sagen wir mal, das sind auch einige Techniken. Wenn Sie einen Vertrag haben und er Verweise auf andere Verträge enthält, sagen wir hartcodierte Adressen, richtig? Das ist ziemlich einfach. Das bedeutet, Sie kennen den Bereich, auf den Sie zugreifen können, und wie sie alle in dieser Beziehung verbunden sind. Aber es gibt auch Verträge, die sich nicht einmal direkt aufeinander beziehen. Sie können sie mit Call-Daten referenzieren, oder Sie können einen Pool erstellen, der jetzt auf einen neuen Vertrag verweist. Ich glaube, er hieß Iron Vault oder so ähnlich. Es war in dem anderen Ökosystem.
Andy Zhou 31:33
Ja, das ist nicht einfach, aber wir können die On-Chain-Transaktionen nutzen, um sie zu verbinden, da die On-Chain-Transaktionen die Interaktionen zwischen verschiedenen Smart Contracts offenlegen können.
DeGatchi 31:44
Aber der Fluss dabei ist, dass Sie sich die normalen Funktionssequenzen ansehen, richtig? Und um eine Zero-Day-Schwachstelle zu finden, müssen Sie die Norm brechen und etwas anderes tun. Nun, ich denke, es ist gut, das Normale zu identifizieren, und jetzt wissen Sie, was Sie nicht tun sollten und wie Sie es brechen können, was gut ist. Interessant. Also, was sind Ihre Pläne mit dem Fuzzer? Werden Sie ihn für eine Art neuronales Netz-Fuzzing koppeln? Das ist der Versuch von Trail of Bits. Es ist es nicht wert, aber offen gesagt, es wird einfach nicht richtig implementiert. Und was ist Ihr Plan für den Fuzzer? Werden Sie ihn mit neuronalen Netzen unterstützen oder vollständig mit KI? Wo geht die Reise jetzt hin?
Andy Zhou 32:23
Beim Fuzzing versuchen wir zunächst, ein sehr gutes Typinferenzsystem zu haben, um die Generierung von Seed-Inputs und die Mutation von Inputs für den Fuzzer zu erleichtern. Wir nutzen auch KI, um uns bei der Generierung von Seed-Inputs zu helfen. Wir versuchen auch, den Fuzzing-Prozess zu beschleunigen, da wir einen sehr effizienten Prozess wollen, um Schwachstellen schnell zu identifizieren. Es gibt drei verschiedene Arbeitsbereiche, um die Fuzzer zu verbessern.
DeGatchi 33:01
Okay, interessant. Es gibt etwas, das sich ein wenig von dieser Tool-Diskussion unterscheidet, wenn wir über den Raum nachdenken, richtig? Und Sie sind Professor, also wissen Sie davon.
DeGatchi 33:10
Viele Leute erklären, wie man ein Top-Tier-Auditor wird. Leute wie führende Sicherheitsexperten bei Spearbit oder Trail of Bits – sogar Solo-Auditoren – machen das wirklich gut mit dem Zustrom neuer Auditoren, richtig? Wie wollen Sie sich wirklich von diesen neuen Spielern, anderen Firmen und anderen Leuten, die die Fähigkeiten haben wollen, abheben? Offensichtlich gibt es nicht viele von ihnen, aber sie kommen trotzdem. Und wenn klügere Leute kommen, vielleicht sogar mit KI. Ich kenne Leute wie und attestiere, dass sie KI zur Generierung von Exploits nutzen. Davon haben Sie sicher gehört. Und was tun Sie, um sich wirklich von diesen Leuten abzuheben, wenn neue Auditoren und neue Spieler in den Raum kommen?
Andy Zhou 33:55
Ja, das ist eine sehr schwierige Frage. Ich denke, aus meiner Perspektive müssen Sie ein gutes Verständnis des Trends in diesem speziellen Bereich haben, z. B. im Bereich der DeFi-Protokollsicherheit. Es gibt verschiedene Angriffsvektoren und neue Arten von Schwachstellen. Und Sie müssen eine sehr gute Motivation oder Fähigkeiten haben, um diese neuen Dinge zu studieren. Wie man diese neuen Dinge schnell lernt und wie man neue Kenntnisse schnell verdaut, sind meine Vorteile. Und natürlich gibt es viele kluge Leute, die in dieses Feld kommen werden. Aber ich würde sagen, weil ich als promovierter Wissenschaftler ausgebildet wurde, weiß ich, wie ich schnell in ein neues Gebiet eindringe, wie ich schnell den Stand der Technik verstehe, wie ich schnell ein gutes Problem finde, an dem ich arbeiten kann, und wie ich Techniken aus einem anderen Bereich in diesen Bereich übernehme, um dieses Problem zu lösen. Ich denke, das unterscheidet mich von anderen.
DeGatchi 34:56
Hundert Prozent. Ich denke, wenn man an eine Gruppe von Leuten denkt, die alle klug und fähig sind, ist der Hauptunterschied nur Kreativität; das scheint so zu sein, wenn man auf derselben Ebene ist, was nie der Fall ist oder einfach nur gleich schlau. Und das Wichtigste ist Kreativität, richtig? Wir denken alle unterschiedlich und haben verschiedene Ansichten. Ich denke also, das ist die Hauptsache; wirklich an sich selbst zu glauben und daran zu glauben, wenn andere nicht glauben, dass man etwas tun kann, und niemand anderes tut das wirklich, und man glaubt, dass es getan werden kann, und man weiß vielleicht nicht, wie es getan werden kann, aber solange man weitermacht und die Leidenschaft hat, es zu finden, ist das wirklich die Hauptsache. Neue Trends erkennen und davon profitieren können, ist die Hauptsache. Und das passiert so oft; man muss nur mit dem Wissen vorbereitet sein, um davon zu profitieren und die Gelegenheit zu nutzen.
DeGatchi 35:45
Leider nicht, weil ich KI nicht kann. Es geht darum, am richtigen Ort zur richtigen Zeit mit den richtigen Fähigkeiten zu sein. Ich denke, KI ist wirklich die nächste Grenze, und jeder, der sich nicht darauf spezialisiert, wird meiner Meinung nach zurückbleiben. Auch wenn Sie in der Entwicklerwelt sowohl Fachwissen als auch KI haben, aber wenn Sie beides kombinieren, machen Sie keinen Weltenunterschied, weil Sie Wissen aus beiden Bereichen haben. Und so können Sie bessere Problemlösungen entwickeln, im Gegensatz zu getrennten Kenntnissen. Ein gutes Beispiel ist das Verständnis von Mathematik. Man betrachtet die Welt anders als jemand, der sie nicht versteht. Und wenn man das mit verschiedenen Dingen kombiniert, wie dem Finanzsektor, kann man Wege finden, sehr effiziente algorithmische Handelssysteme zu entwickeln, richtig? Und einen irrsinnigen Vorsprung vor der Konkurrenz zu erzielen. Ich denke, es gibt diesen Typen auf AVAX, der, glaube ich, 90 % aller Arbitragen eingefangen hat, nur weil er einen mathematischen Vorteil hatte. Das meine ich. Wenn man nur zwei Domänen hat, kann man viele Gelegenheiten nutzen. Denn es ist schwer, das zu lernen. Und je mehr Domänen man kennt und kombinieren kann, desto weniger Konkurrenz gibt es; es wird einfach weggerufen.
DeGatchi 36:55
Wo sehen Sie sich und BlockSec in der Zukunft? Wie sehen Sie Ihre Karriere und das Unternehmen selbst voranschreiten? Und wohin sehen Sie die Branche gehen, und wohin sollte sie gehen?
Andy Zhou 37:05
Ich denke, für die Branche, da Web3 ein sehr neues Gebiet ist und wir uns noch in den Anfängen dieses neuen Feldes befinden. Aus meiner Sicht bewegt sich die Branche sehr schnell. Gleichzeitig gibt es so viele Sicherheitsprobleme, die von der Branche noch nicht gelöst wurden. Wir versuchen, unsere eigenen Lösungen zu nutzen, um dem Ökosystem zu helfen, schnell, aber auch sicher voranzukommen. Wir haben Produkte und Protokolle, um ihre Vermögenswerte zu schützen. Das ist eine Sache. Wir sehen auch in Zukunft, dass es eine Reihe verschiedener Web3-Benutzer in diesem Bereich geben wird. Die Benutzer benötigen auch Sicherheitsschutz, da es für sie etwas kompliziert ist, die Web3-Produkte derzeit zu nutzen. Sie benötigen eine sehr gute Methode, um ihre privaten Schlüssel und ihre Vermögenswerte zu schützen, da die meisten Benutzer den Genehmigungsprozess von ERC20-Token nicht verstehen. Sie genehmigen einfach alle Token in dem bösartigen Vertrag.
Andy Zhou 38:10
Wir benötigen also ein sehr gutes Schutzsystem für DeFi-Benutzer, das von der aktuellen Branche noch nicht abgedeckt wurde. Natürlich gibt es einige Unternehmen, die das tun, aber es gibt bessere Möglichkeiten, Benutzer zu schützen.
DeGatchi 38:27
Ich denke, zusätzlich zum Fuzzer können Sie sich in so etwas wie eine Wallet erweitern, wenn Sie über den Schutz von Benutzern sprechen. Ich meine, es gibt zwei oder drei verschiedene Wege. Es gibt die ausstehenden Transaktionen, die nicht zu 100 % sicher sind. Also muss man etwas granularer werden. Und das könnte die Suche nach den Zero-Days selbst sein. Aber wenn das keine Option ist, könnte es gut sein, einfach die Möglichkeit zu haben, die Analyse in die Wallet selbst einzubetten, auch wenn es nur eine schnelle ist, richtig? Sie werden Token oder was auch immer sie finden, damit tun. Aber wenn Sie eine Analyse durchführen können, bevor sie die Transaktion durchführen, und ich denke, das hat jemand schon mal gemacht.
Andy Zhou 39:01
Es gibt einige Unternehmen, die das tun, um Transaktionen zu simulieren und den Benutzern die Konsequenzen einer Transaktion mitzuteilen, wenn sie diese signieren.
DeGatchi 39:10
Ich halte das für sehr schlau, und ich denke, es ist eine einfache Weiterentwicklung für das Unternehmen oder alles, was Sicherheit betreibt, was meiner Meinung nach ein wirklich großartiger Weg ist. Also direkt an sie weitergeben. Ich glaube, es war Fire oder so etwas. Ich kann mich nicht erinnern. Aber ja, das sind wirklich gut, die Simulationen, aber ich denke, sie sind irgendwie fehlerhaft, weil Sie eine Transaktion in einen LP machen, zum Beispiel. Leute würden benutzerdefinierten Bytecode verwenden und bedingte Funktionalität nutzen. Sagen wir mal, diese 100 Arten von LPs wechseln zu etwas anderem. Die anfängliche Simulation, bei der sie ihr Geld oder was auch immer es ist, hätten, würde also nicht auftauchen, es sei denn, Sie testen tatsächlich alles, jeden einzelnen Funktionspfad. Das habe ich mir überlegt. Aber auch, es gibt so viele schwierige Probleme. Sie müssen sich Ihr Gift aussuchen. Worauf freuen Sie sich in der Zukunft von Cyber, Cybersec und KI, die sich kombinieren? Ich bin sicher, Sie werden viel mehr nutzen. Was sind Ihre Pläne und wie sehen Sie sich auf diesem Weg?
Andy Zhou 40:06
Ja, was meine Pläne angeht, wir wollen diese neuen Techniken kombinieren, um die Community und die Benutzer besser zu schützen. Wir werden weiterhin unsere Ressourcen in KI investieren, da KI in Kombination mit Web3-Sicherheits-Szenen bessere Produkte hervorbringen wird. Wir wollen die Dinge weiter vorantreiben, um ein besseres Angriffserkennungssystem, ein besseres Fuzzing-System und bessere Lösungen zum Schutz von Benutzervermögen zu haben. Das ist also unser aktueller Plan bei BlockSec.
DeGatchi 40:36
Interessant. Okay. Ich bin sicher, dass es viel besser wird und Sie viel mehr tun können. Sie tun bereits viel, um all diese Hacks zu verhindern. Aber ich denke, es gibt noch viel Spielraum für Innovation, und es fängt gerade erst an. Ich denke, sobald die Leute davon Wind bekommen und Sie mehr Hacks verhindern, wird es viel bekannter werden und es wird viel mehr Wettbewerb geben, was großartig ist. Gesunder Wettbewerb, um Hacks zu verhindern und das Ökosystem tatsächlich zu erweitern. Denn das Endziel ist es, CeFi zu ersetzen, richtig? Man will nicht vier Monate warten, um Geld von seinen Bankkonten abzuheben. Das ist ziemlich lächerlich. Die Anstrengungen im Informationssektor werden für Einzelhändler und bestehende Protokolle eigentlich unterschätzt. Sie wissen es wirklich erst, wenn sie gehackt werden. Ich glaube, so kommen einige Leute dazu. Aber Mann, ich bin super begeistert von dem, was Sie bauen, und ich bin sehr optimistisch für die Zukunft mit Cyber und Krypto. Aber Mann, ich schätze es sehr, dass Sie hier waren. Ich bin super froh, dass ich der erste Podcast sein konnte, bei dem Sie dabei waren. Ja, ich schätze Ihre Zeit sehr, Andy. Es war ein großartiges Gespräch.
Andy Zhou 41:38
Ja, es ist eine Ehre, hier zu sein. Danke, DeGatchi.



