BlockSec CEO Andy Zhou wurde eingeladen, am Spraping Bits Podcast teilzunehmen, und diskutierte das Thema, wie das BlockSec-Team potenzielle Sicherheitslücken in der turbulenten und komplexen Umgebung von Web3 identifiziert und abmildert. Nachfolgend finden Sie eine kuratierte Sammlung faszinierender Inhalte, die wir zusammengestellt haben. Um die vollständige Version des Podcasts anzuhören, klicken Sie hier.
Andy Zhou 00:00
Wir haben ein System in unserem Team, das den Angriffskontrakt erkennen kann, noch bevor die Hacker die Angriffstransaktionen senden. Das liegt daran, dass sie einen Angriffskontrakt bereitstellen und dann Transaktionen senden müssen, um das Protokoll anzugreifen. Selbst vor den Angriffstransaktionen, wenn die Hacker einen bösartigen Smart Contract bereitstellen, kann unsere KI-basierte Engine den bösartigen Kontrakt präzise identifizieren.
Andy Zhou 00:53
Vielen Dank, DeGatchi. Ich fühle mich auch sehr geehrt, hier zu sein.
DeGatchi 00:56
Sehr 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 es getan habe.
Andy Zhou 01:30
Für die Smart Contract-Sicherheit führen wir im Unternehmen 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 gängige Probleme haben, da sie zu viele Fehlalarme erzeugen. Wenn Sie zum Beispiel ein Tool zur Erkennung von Reentrancy-Problemen verwenden und einen einfachen Smart Contract in das Tool eingeben, kann es viele Reentrancy-Probleme oder viele andere Probleme melden. Wenn Sie diesen Bericht jedoch manuell überprüfen, werden Sie feststellen, dass die meisten davon Fehlalarme sind. Wir stellen also fest, dass Fehlalarme das Hauptproblem bei den aktuellen statischen Analyse-Tools sind.
Andy Zhou 02:20
Der grundlegende Grund für solche Fehlalarme ist das fehlende Verständnis der Semantik von 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, verfügt er über Variablen, die den Saldo jedes Eigentümers und den genehmigten Wert darstellen und angeben, wer wem welchen Betrag zur Überweisung genehmigt hat. Um die Genauigkeit der statischen Analyse zu verbessern, ist es unerlässlich, genau zu identifizieren, welche Variablen dem Saldo entsprechen und welche Variablen mit Genehmigungen und anderen spezifischen Funktionalitäten zusammenhängen. Dadurch können wir eine viel bessere Genauigkeit in der statischen Analyse erzielen.
Andy Zhou 03:00
Eine Erkenntnis, die wir aus unserer Erfahrung bei der Entwicklung des statischen Analyse-Tools gewonnen haben, ist die Notwendigkeit einer robusten Taint-Analyse-Engine zur Herstellung von Korrelationen zwischen Variablen. Die Datenflussanalyse, eine grundlegende Technik, die von statischen Analyse-Tools verwendet wird, spielt eine entscheidende Rolle. Sie beinhaltet die Modellierung von Speichern und Stacks sowie die präzise und effiziente Nutzung von Taint-Analyse-Techniken innerhalb des statischen Analyse-Tools. Diese beiden Schlüsseltechniken, Taint-Analyse und Datenflussanalyse, haben sich als äußerst wirksam bei der Verbesserung der Fähigkeiten unseres statischen Analyse-Tools erwiesen.
Andy Zhou 03:48
In unserem Forschungsteam haben wir dieses statische Analyse-Tool 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 Schwachstellen. Und wir finden nicht einmal effiziente Kanäle, um sie ihnen zu melden. Das ist sehr traurig.
Andy Zhou 04:13
Wenn Sie ein sehr effektives statisches Analyse-Tool wünschen, benötigen Sie die Semantik und eine Taint-Analyse-Engine. Das ist unsere Erfahrung mit dem statischen Analyse-Tool. Und neben dem statischen Analyse-Tool haben wir in unserem Forschungsteam auch ein dynamisches Analyse-Tool. Das liegt daran, dass wir neben den anfälligen Smart Contracts auch bösartige Transaktionen identifizieren wollen, richtig?
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 einfach 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 in der Vergangenheit Angriffe durchgeführt 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 implementiert, die es uns ermöglicht, Angriffstransaktionen schnell zu erfassen und zu identifizieren.
DeGatchi 05:41
Ja, das ist interessant. Mit meinen statischen Analysatoren habe ich dasselbe gemacht. Die Taint-Analyse ist im Grunde unerlässlich, aber dann nutzen Sie, was auch immer Sie mit dem statischen Analysator tun. Sie übertragen all diese Daten in einen Fuzzer, richtig? Ich habe auch meinen Fuzzer gebaut. Und es ist wirklich interessant zu sehen, wie die Leute damit umgehen. Aber es gibt sehr interessante Lösungen. Die Leute denken in diesem Bereich sehr sequenziell, und es gibt viele Dimensionen, über die man nachdenken kann, daher ist sequenziell nicht die richtige Antwort.
DeGatchi 06:08
Lassen Sie uns über die Dimensionen sprechen. Angenommen, Sie haben die Calldata einer Transaktion, richtig? Sie haben auch Funktionen und die Verträge. Und dann haben Sie auch die andere Dimension, die die Phase ist. Es ist also sehr kontextabhängig. Und jetzt haben Sie all diese vier verschiedenen Variablen, Dimensionen, und sie alle beeinflussen sich gegenseitig mit der kleinsten Änderung. Sie könnten zum Beispiel Vertrag A, Vertrag B, alle ihre Funktionen haben. Jetzt müssen Sie sie auf all diese verschiedenen Arten anordnen, aber es gibt nicht nur die einzelne 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 auszuführen. Das ist ein wirklich schwieriges Problem.
DeGatchi 06:43
Und ich denke, was Sie mit Ihren Sachen machen, ist ziemlich interessant. Ich weiß, dass Sie Phalcon kürzlich weiterentwickelt haben, um jetzt die Transaktionserkennung einzubeziehen. Es ist also eher ein verallgemeinerter Frontrunner, aber für Hacks. Und dabei ist es sehr nachdenklich. Und das Front-Running-Spiel wird von diesen spezialisierten MEV-Teams dominiert, richtig? Und sie machen Front-Running, Sandwiching, Back-Running usw. Und sie haben spezialisierte Infrastruktur, Hochfrequenzhandels-Dinge, bei denen die Latenz sehr gering ist, und sie arbeiten zusammen, Block-Builder, Relais, all diese Dinge. Die Frage ist also, wie sind Sie in der Lage, diese Transaktionen anstelle dieser MEV-Teams zu frontrunnen?
Andy Zhou 07:24
Ja, das ist eine sehr gute Frage. Grundsätzlich ist das Hauptziel unseres Systems nicht, MEV-Bots zu frontrunnen, sondern die Protokolle zu schützen, und wir zielen auf Hacker ab.
DeGatchi 07:37
Aber wenn ein Hacker eine Transaktion an ein öffentliches Mempool sendet, wenn es privat ist, kann niemand das sehen. Aber wenn es ein öffentliches Mempool ist, werden es auch alle anderen verallgemeinerten Frontrunner sehen. Sie müssen also zu ihnen gehen. Wie schlagen Sie sie? Wie schlagen 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 des MEV-Bots nicht kannten. Damals hing es davon ab, wie Sie die Gasgebühr zahlen oder wie Sie den Validatoren Bestechungsgelder zahlen. Das war früher viel einfacher, aber heutzutage verwenden Hacker Techniken, um sich davor zu schützen, frontgefrontet zu werden. Wir haben beispielsweise eine sehr interessante Technik von Hackern eingesetzt, um zu verhindern, dass ihre Transaktionen von MEV-Bots frontgefrontet werden. Grundsätzlich prüfen sie in ihren Transaktionen zuerst bestimmte Werte, z. B. das Abrufen eines bestimmten Wertes von einem anderen Smart Contract, um zu überprüfen, ob dieser bestimmte Wert mit dem ursprünglichen Wert dieser Variablen übereinstimmt. Bei der Durchführung des Angriffs senden die Hacker zuerst eine Transaktion, um die Variable in einem anderen Smart Contract einzurichten, um diese Überprüfung zu erfüllen, und verwenden 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 fehlschlagen, da 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 damit umgehen, da wir über eine Technik zur Analyse der Korrelation verschiedener Transaktionen verfügen.
DeGatchi 09:40
Ja, Sie müssten mehrere machen. Sie können nicht nur eine machen, denn wenn Sie nur verallgemeinertes Front-Running betreiben, besteht der Standard darin, einfach die Adressen zu ersetzen, oder wenn es mehrere Adressen sind, müssen Sie sie alle ersetzen, und Sie müssen jede Option ausprobieren.
Andy Zhou 09:52
Genau.
DeGatchi 09:53
Wenn sie Multi-Contract-Dinge mit dem Setup machen, dann würden sie die Vertragseinführung machen und dann eine Funktion in diesem Setup-Vertrag aufrufen, die auf das neue Ding eingestellt ist, und dann würden sie das in den Exploit-Verträgen verwenden. Aber die Art und Weise, wie Sie das beheben würden, ist im Grunde wie eine Simulation, aber Sie müssten tatsächlich nur den Zustand dessen überprüfen, was aufgerufen wird. Und wenn das nicht mit dem Bereitstellungszustand des ursprünglichen Vertrags übereinstimmt, müssen Sie das irgendwie einstellen, diese Funktion wie ein CFG finden, was auch immer das war, und dann diesen Exploit-Vertrag modifizieren, um das ebenfalls einzustellen oder sogar vollständig zu entfernen. Das ist also 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, um das zu tun. 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 US-Dollar verhindert. Und das war innerhalb von sechs Monaten vor dem Start.
Andy Zhou 10:51
Die Verhinderung von Hacks erfolgt seit anderthalb Jahren. Es sind also keine ein oder zwei Monate. Es ist eine kontinuierliche Anstrengung über anderthalb Jahre.
DeGatchi 11:04
Aber immer noch, niemand sonst macht das. Das ist eine wirklich tolle Sache, und ich denke, jeder sollte es zumindest haben, weil es wichtig ist. Und auch wenn es vielleicht keine 100%ige Rettung für alle ist, weil sie sich anmelden müssen, vielleicht gibt es einige kaum wahrnehmbare Techniken, die anders wären. Es ist immer noch besser als nichts, oder? Wie Sie Dinge retten, gehackt zu werden ist wie der Untergang des gesamten Unternehmens, aller Benutzer, des gesamten Rufs – es ist einfach weg. Es ist also eine sehr wichtige Sache. Wie haben Sie das aufgebaut? Haben Sie überhaupt KI genutzt? Oder es kann auf keinen Fall rein heuristisch sein.
Andy Zhou 11:41
Grundsätzlich kombinieren wir verschiedene Techniken. Für die Erkennung von Hacks kombinieren wir die KI-basierte Lösung mit der Verhaltensanalyse. Für die KI-basierte Lösung nutzen wir die KI-Technik, die maschinelle Lerntechnik, um den Angriffskontrakt zu erkennen. Wir haben ein System in unserem Team laufen, das den Angriffskontrakt erkennen kann, noch bevor die Hacker die Angriffstransaktionen senden. Das liegt daran, dass sie einen Angriffskontrakt bereitstellen und dann Transaktionen senden müssen, um das Protokoll anzugreifen. Selbst vor den Angriffstransaktionen, wenn die Hacker den bösartigen Smart Contract bereitstellen, kann unsere KI-basierte Engine den bösartigen Kontrakt präzise identifizieren. Ich sage nicht, dass wir keine Fehlalarme haben, aber die Fehlalarme sind ziemlich gering. Selbst in dieser Phase, vor den Angriffstransaktionen, können wir den bösartigen Smart Contract erkennen. Das Problem ist, dass Sie, wenn Sie einen Angriffskontrakt identifizieren, möglicherweise nicht den tatsächlichen Opfer dieses Hacks kennen. Das liegt daran, dass manchmal die Zieladresse nicht im Smart Contract hartkodiert ist. Sie kann als Parameter übergeben werden. Sie benötigen einige Fuzzing-Techniken, um dies auszulösen. Aber wenn alle Ziel-Smart-Contract-Adressen über Parameter übergeben werden, kann selbst das Fuzzing nicht helfen.
Andy Zhou 13:05
Bei diesen komplizierten Fällen können wir die Angriffskontrakte in dieser Phase nicht identifizieren, wir müssen uns damit in der Erkennungsphase der Angriffstransaktionen befassen. Für die Angriffstransaktionen verwenden wir einige verhaltensbasierte Lösungen zur Erkennung der Hack-Transaktionen. Die grobe Idee ist, dass jeder Hacker Gewinn erzielen möchte. Sie müssen also präzise sein, um den Gewinn aus den Transaktionen zu erzielen. Und nach der Erkennung dieser Angriffstransaktionen synthetisieren wir automatisch eine ähnliche Angriffstransaktion wie der MEV-Bot, ersetzen die Profitadresse und stellen sie auf die Kette. Das ist im Grunde, wie das System ursprünglich funktionierte, bevor wir BlockSec Phalcon gestartet haben.
DeGatchi 13:54
Mit den KI-Sachen kann ich mir nicht vorstellen, dass es ein überwachtes Lernmodell ist. Ich habe das Gefühl, es müsste Reinforcement Learning sein, weil es einfach nicht viele Hacks gibt, richtig? Also gibt es nicht genug Daten, um das wirklich zu tun.
Andy Zhou 14:08
Ich denke, Sie sprechen einen sehr guten Punkt für maschinelles Lernen an. Für die Erkennung von bösartigen Smart Contracts ist es nicht effektiv, da wir nicht viele Beispiele haben, um das Modell zu trainieren. In diesem Fall ist die wichtigste Erkenntnis, wie diese Dinge funktionieren, dass Sie die Schlüsselfunktionen innerhalb eines Smart Contracts extrahieren müssen. Jemand verwendet nur 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 Datenflussbeziehung zwischen den Schlüsselfunktionen, und wir verwenden auch einige Adress-Labels oder die Eigenschaften des Erstellers des Smart Contracts zusammen, um das Modell zu trainieren. Es hat sich als sehr effektiv erwiesen.
DeGatchi 14:55
Sie extrahieren also im Grunde Schlüsselfunktionen. Zum Beispiel hartkodierte Adressen oder Adressen, die als Call-Daten übergeben werden. Vielleicht verwenden sie Maskierung, wenn sie Solidity verwenden. Das ist in Solidity ziemlich üblich. Aber wenn es sich um einen benutzerdefinierten High-Code-Vertrag handelt, wird es sich um einen ziemlich raffinierten Hacker handeln, erstens. Aber die raffinierten Hacker, die wirklich streng geplant sind, würden zu 100 % private Transaktionen mit benutzerdefiniertem Bytecode und vielleicht sogar Schwärmen von Transaktionen zur Verschleierung verwenden. Das habe ich studiert und fand das sehr interessant. Es hat sich als effektiv erwiesen. Tatsächlich habe ich nie jemanden gesehen, der die von mir gefundenen Techniken verwendet hat. 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 durchführte, dachte ich auch nicht, dass es funktionieren würde. 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 braucht mehr Tools wie dieses. Aber das wirft auch die Frage auf; Sie wissen, dass Sie KI nutzen. Wie sehen Sie, wie stark 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, ich bin kein KI-Experte. Wir wenden KI nur in unserem Forschungsbereich an, um bösartige Smart Contracts zu erkennen. Ich denke, das Potenzial von KI im Sicherheitsbereich wurde noch nicht vollständig ausgelotet. Ein Grund dafür ist, dass Sie, um KI im Sicherheitsbereich anzuwenden, ein tiefes Verständnis des Problems haben müssen, das Sie lösen. Denn wenn Sie ein tiefes Verständnis des Problems haben, das Sie lösen, können Sie sehr gute Merkmale extrahieren. Ich denke, Merkmale sind sehr wichtig, richtig? Denn selbst für den gleichen Vertrag oder für die gleichen Transaktionen, wenn Sie kein sehr gutes Merkmal für das Training haben, wird das Ergebnis völlig anders sein. Aus meiner Sicht denke ich, dass das Potenzial der KI noch nicht vollständig ausgeschöpft ist, da Sie eine Kombination aus einer sehr guten KI-Person und einem sehr fachkundigen Experten benötigen, um die Merkmale zu extrahieren.
DeGatchi 17:30
Ich stimme zu. Es ist sehr unterschiedlich. Es ist eine Kombination aus zwei Feldern, zwei Domänen. Erstens ist es schwer, gut in KI zu sein. Und dann dauert es auch, die Dinge zu lernen. Sie müssen Mathematik verstehen, Sie müssen alles über KI verstehen. Sie kennen die Pakete, Bibliotheken, und dann müssen Sie auch im Krypto-Bereich mit einer anderen Domäne, nämlich Bytecode und auch Cyber, tätig sein, was auch Zeit braucht. Aber ich denke, Leute, die von reiner KI zu Krypto wechseln, werden es nicht so schwer haben wie von Krypto zu KI, da bin ich mir sicher, weil es in reiner KI viel schwieriger ist, hineinzukommen, gerade weil die Mathematik, die Sie brauchen, und das gesamte Verständnis der aktuellen Architektur und wie alles funktioniert, so wichtig sind.
DeGatchi 18:13
Aber es ist super interessant, denke ich. Was wird Ihrer Meinung nach obsolet werden? Denn KI wird offensichtlich alles verändern. Und ich denke, wenn Sie KI nicht nutzen, werden Sie keinen Vorteil gegenüber anderen Menschen in all diesen Geschäften haben, weil es schwer ist, zu konkurrieren. Ich habe dasselbe mit dem Fuzzer und Stack-Analysator gemacht, aber ich kenne Leute, die KI machen. Und das ist sinnvoll, denn wenn man über diesen unendlichen Aktionsraum nachdenkt, kann man nicht einfach brute-forcen. Man braucht eine Art Intuition, um all die 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 diese Protokolle anwendet, all die Verträge, 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 fehlerhaft, 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 dabei ist, sollte man trotzdem dabei sein. Ich weiß nicht einmal Mathematik, und ich bin dabei. Wenn ich es tun kann, kann es jeder tun. Wir werden sehen. Aber es ist eine große Hingabe.
Andy Zhou 19:36
Genau. Ich kann ein aktuelles Experiment mit KI teilen. Wie ich sagte, wir haben ein Fuzzing-System für Smart Contracts, um Schwachstellen zu finden, wir haben ein internes System, um das zu tun. Wir können KI nutzen, um die Seed-Inputs für das Fuzzing zu generieren, und das erweist sich als sehr effektiv. Wie machen wir das? Zum Beispiel haben wir fünf Smart Contracts, die gefuzzert werden sollen. Wir geben diese Smart Contracts zuerst in ChatGPT ein und können die Kernfunktionalitäten jeder Funktion zusammenfassen, indem wir GPT sagen: „Diese Funktion, die Hauptfunktionalität tut dies, eine andere Funktion tut das.“ Danach frage 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-Input, wissen Sie, um Smart Contracts zu fuzzern.
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, außer dass es der beste Versuch im Moment ist. Es ist also sinnvoll. Ich denke, viele Leute verwenden ChatGPT, aber das scheint ein sehr guter Anwendungsfall zu sein. Ich kenne Leute, die das tun, um ihnen die Verträge zu erklären. Es beseitigt also im Grunde das ganze Verständnis; es hilft Ihnen schnell, auf dem neuesten Stand zu sein, anstatt zu versuchen, die gesamte Codebasis zu verstehen. Weil es eine tausendzeilige Codebasis sein könnte, richtig? Oder mehrere Verträge mit mehreren tausend Zeilen. Es ist wirklich schwer, die Beziehungen zwischen allem und den Abhängigkeiten zu erkennen.
DeGatchi 21:18
Aber ich wollte fragen: Da Sie diese neue Transaktionsblockierung durchgeführt haben, haben Sie jetzt die Transaktionsblockierung, aber warum würden Sie einen Schritt weiter gehen und tatsächlich versuchen, alle Zero-Days und alle Verträge zu finden? Denn wenn man über einen raffinierten Hacker nachdenkt, 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 200 Millionen oder 20 Millionen 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 Zero-Days investieren, um sie alle zu verhindern? Denn wenn Sie sie finden, senden Sie einfach eine private Transaktion und sparen 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 bei privaten Transaktionen können wir das nicht sehen. Das ist der aktuelle Stand. Wir möchten auch unsere Anstrengungen etwas weiter ausdehnen, 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 Sequenz von Transaktionen generieren, um die Schwachstellen auszulösen, nicht nur eine einzige. Und manchmal hängen die Transaktionssequenzen voneinander ab. Sie benötigen die erste Transaktion, die zweite und die 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 Sie müssen die Abhängigkeit dieser Transaktionen verstehen. Das ist derzeit ziemlich schwierig. Das ist die erste Herausforderung. Und die zweite Herausforderung ist, dass Sie ein Orakel benötigen, um zu bestimmen, ob eine Schwachstelle vorliegt. Nehmen wir an, Sie senden eine Transaktion an einen Smart Contract. Wie bestimmen Sie dann, ob Sie die Schwachstellen ausgelöst haben? Natürlich können wir ähnliche Techniken 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 eine Schwachstelle vorliegt. Aber Sie benötigen verschiedene Arten von Orakeln, die für die Fuzzer zusammengefasst werden. Das ist die zweite Herausforderung.
DeGatchi 24:35
Das ist der zweite Teil. Das ist ziemlich interessant, denn wenn ein neues Protokoll herauskommt und es einen Token hat, hat es keine Liquiditätspools mit großen Token. Es könnte mit einem anderen Token sein, man kann es nicht einmal bepreisen, oder? 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 die Preise 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 Fuzzer sehr einfach auszulösen. Aber für einige komplizierte, wie Preismanipulation, ist es schwierig. Wir arbeiten 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. Sie erfordert viel Komplexität, oder? Und Sie müssen viele Dinge berücksichtigen, die von anderen Dingen abhängen. Es ist also, als würden Sie eine Frage stellen und nur zwei weitere Fragen bekommen, und jetzt beziehen sie sich aufeinander, und es geht einfach ständig weiter. 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 sich um einen internen Wechselkurs handelt, es kann ein externer im Vergleich zu einem internen sein.
DeGatchi 26:22
Also eine Art Arbitrage, die sie nicht berücksichtigt haben, es gibt Fehler in allem, denn menschliche Fehler sind einfach unvermeidlich. Und die Anzahl der Interaktionen wird nicht berücksichtigt. Täglich kommen neue Protokolle heraus. Ihr aktuelles Protokoll kann nun damit interagieren. Es könnte eine Sequenz von fünf verschiedenen Protokollen sein.
DeGatchi 26:45
Und das ist nicht einfach. Ich denke, Sie brauchen KI, weil Sie räumlich über all diese verschiedenen Funktionen in verschiedenen Verträgen nachdenken müssen, die anfällig sind. Sie können sie nicht sequenziell verstehen, weil es einfach zu viele Möglichkeiten gibt, richtig? Ich habe Anfang des Jahres mit jemandem darüber gesprochen, und ich sprach mit ihm über den Pickle Finance-Exploit. Und das ist ein wirklich interessanter, weil er 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 verwendet werden konnten.
DeGatchi 27:44
Und ein weiterer Teil davon war das Verständnis, dass in Athenas Isolator eine Adresse und Bytes 20 beides dasselbe bedeuten. Und Leute übersehen das, weil man wissen muss, was diese Typen bedeuten. Aber im Grunde, was sie taten, was ich wirklich faszinierend fand, war, dass sie diese Verträge erstellten, die wie ein gefälschter zugrunde liegender Token waren. Und der gefälschte zugrunde liegende Token.balanceOf gab eine Adresse zurück, er gab keinen tatsächlichen Betrag zurück. Und das stimmt nicht, denn ein tatsächlicher Betrag ist nur Bytes 32 und eine Adresse ist Bytes 20. Sie können also die Adresse übergeben, als ob Sie zu 2,5,6 gegangen wären, weil es technisch gesehen das ist, richtig? Und das hat das wirklich bedingt, das hat diese gesamte Kette geschaffen, weil es eine Delegated-Code-Situation geschaffen hat, in der es verwendet wurde. Und so ist es passiert. Aber es war wirklich interessant. Sie müssen 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 für 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 das zu tun. Ich liebe das so sehr.
DeGatchi 29:06
Aber solche Dinge sind wirklich schwer. Und haben Sie über all diese Dinge nachgedacht? Welche Arten von Techniken untersuchen Sie gerade? Offensichtlich, wie ich gerade räumlich gesagt habe, untersuchen Sie isolierte Funktionen und sehen, wie sie miteinander interagieren. Die Beziehung ist definitiv eines der schwierigsten Teile, je nachdem, wie Sie sie angehen. Denn mit Taint-Analyse ist das ehrlich gesagt nicht genug.
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 Bild der Beziehungen zwischen den verschiedenen Smart Contracts zu zeichnen. 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, dann verbinden wir diese Protokolle.
Andy Zhou 30:02
Wir verwenden also im Grunde manuell einige Skripte, um ein Gesamtbild der Beziehungen zwischen den verschiedenen Top-Protokollen zu erhalten. Und wir nutzen diese Erkenntnisse, um statische Analyse- und Fuzzing-Techniken zu ergänzen.
Andy Zhou 30:15
Das ist eine Sache, an der wir gerade 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 Fuzzing-Systeme. Eine weitere Arbeit, an der wir gerade arbeiten, ist die Typinferenz. Wir möchten den Typ der Eingabedaten ableiten, z. B. die Call-Daten innerhalb eines Smart-Contract-Aufrufs. Zum Beispiel können wir aus Byte 0 bis Byte 20 der Calldata ableiten, dass der Typ eine Adresse ist. und aus einem anderen Segment der Eingabe ist der Typ ein anderer. Dies 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 so etwas wie ein Graph. Was Sie tun, ist schwierig. Denn sagen wir mal, das sind ein paar Techniken. Wenn Sie einen Vertrag haben und er Verweise auf andere Verträge enthält, sagen wir hartkodierte Adressen, richtig? Das ist ziemlich einfach. Das bedeutet, Sie kennen die Art des Zugangsraums und wie sie alle miteinander verbunden sind. Aber es gibt auch Verträge, die sich nicht einmal direkt aufeinander beziehen. Sie können sie über Call-Daten referenzieren oder einen Pool erstellen, der nun einen neuen Vertrag referenziert. Ich glaube, es hieß Iron Vault oder so ähnlich. Es war in einem 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 aufzeigen können.
DeGatchi 31:44
Aber der Fluss dabei ist, dass Sie sich die normalen Sequenzen von Funktionen ansehen, richtig? Und um eine Zero-Day zu finden, müssen Sie die Norm brechen und etwas anderes tun. Nun, ich denke, es ist gut zu identifizieren, was normal ist, und jetzt wissen Sie, was Sie nicht tun sollen und wie Sie es brechen, was gut ist. Interessant. Was sind also Ihre Pläne mit dem Fuzzer? Werden Sie ihn mit einem neuronalen Netz-Fuzzing kombinieren? Das ist der Versuch von Trail of Bits. Es ist es nicht wert, aber ehrlich 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 KI-basiert? Wo geht es jetzt hin?
Andy Zhou 32:23
Für das Fuzzing versuchen wir zunächst, ein sehr gutes Typ-Inferenz-System zu haben, um die Generierung der Seed-Inputs und die Mutation der Inputs für den Fuzzer zu erleichtern. Wir nutzen auch KI, um uns bei der Generierung der 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, an denen wir die Fuzzer verbessern.
DeGatchi 33:01
Okay, interessant. Es gibt etwas, das sich ein wenig von dieser Tooling-Unterhaltung unterscheidet, wenn wir über den Raum nachdenken, richtig? Und Sie sind Professor, also wissen Sie darüber Bescheid.
DeGatchi 33:10
Viele Leute erklären, wie man ein Top-Tier-Auditor wird. Leute wie führende Sicherheitsforscher bei Spearbit oder Trail of Bits – egal, ob Solo-Auditoren – machen sich mit dem Zustrom neuer Auditoren wirklich gut, richtig? Wie wollen Sie sich wirklich von diesen neuen Spielern und anderen Firmen und Leuten, die die Fähigkeiten haben wollen, differenzieren? Offensichtlich gibt es nicht viele von ihnen, aber sie kommen trotzdem. Und wenn sie kommen, kommen diese klügeren Leute, vielleicht sogar mit KI. Ich kenne Leute wie und testify, die KI-Exploit-Generierung betreiben. Davon haben Sie sicher schon gehört. Und was tun Sie, um sich wirklich von diesen Leuten zu differenzieren, wenn neue Auditoren kommen und neue Spieler in den Bereich kommen?
Andy Zhou 33:55
Ja, das ist eine sehr herausfordernde Frage. Ich denke, aus meiner Sicht müssen Sie ein gutes Verständnis des Trends dieses speziellen Bereichs haben, z. B. des DeFi-Protokollsicherheitsbereichs. Es gibt verschiedene Angriffsvektoren und neue Arten von Schwachstellen. Und Sie müssen sehr gute Motivation oder Fähigkeiten haben, um diese neuen Dinge zu studieren. Wie man diese neuen Dinge schnell lernt und wie man neues Wissen schnell verdaut, sind meine Vorteile. Und natürlich gibt es viele kluge Leute, die in dieses Feld kommen werden. Aber ich würde sagen, dass ich, weil ich als Doktorand ausgebildet wurde, weiß, wie man schnell in einen neuen Bereich eintritt, wie man schnell den Stand der Technik versteht, wie man schnell ein gutes Problem findet, an dem man arbeiten kann, und wie man Techniken aus einem anderen Bereich in diesen Bereich überträgt, 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 einfach Kreativität; das scheint so zu sein, wenn man sich auf einer Ebene befindet, was nie der Fall ist oder einfach nur gleich klug. Und das Größte ist Kreativität, richtig? Wir alle denken unterschiedlich und haben unterschiedliche Ansichten. Ich denke also, das ist die Hauptsache; wirklich an sich selbst zu glauben und zu glauben, wenn andere nicht glauben, dass man etwas tun kann, und niemand anderes das wirklich tut, 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, das zu finden, ist das wirklich die Hauptsache. Neue Trends erkennen und daraus Kapital schlagen ist die Hauptsache. Und das passiert so oft; man muss nur mit dem Wissen vorbereitet sein, daraus Kapital zu schlagen und die Gelegenheit zu nutzen.
DeGatchi 35:45
Leider nicht, weil ich KI nicht verstehe. 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 weiterbildet, wird meiner Meinung nach zurückbleiben. Selbst wenn Sie in der Welt der Entwickler Domänenkenntnisse und auch KI haben, aber wenn Sie sie kombinieren, machen Sie keinen Unterschied, weil Sie Kenntnisse beider Bereiche haben. Und so können Sie bessere Problemlösungen entwickeln, anstatt getrennte Kenntnisse. Ich schätze, ein gutes Beispiel ist, Mathematik zu verstehen. Man sieht die Welt anders als jemand, der sie nicht versteht. Und wenn man das mit verschiedenen Dingen kombiniert, wie dem Finanzsektor, dann kann man Wege finden, wirklich effiziente algorithmische Handelssysteme zu bauen, richtig? Und dort einen unglaublichen Vorteil gegenüber der Konkurrenz erzielen. Ich denke, das ist dieser Kerl tatsächlich auf AVAX, der, glaube ich, 90 % aller Arbitragen eingefangen hat, weil er einfach einen mathematischen Vorteil hatte. Das meine ich. Wenn Sie nur zwei Domänen haben, können Sie wirklich viele Gelegenheiten nutzen, weil es schwer ist, diese Dinge zu lernen. Und je mehr Domänen Sie kennen und kombinieren können, desto weniger Wettbewerb gibt es; es wird einfach weggewaschen.
DeGatchi 36:55
Wo sehen Sie sich und BlockSec in der Zukunft? Wie sehen Sie Ihre Karriere und das Unternehmen selbst voranschreiten? Und wo sehen Sie die Branche, und wo sollte sie hingehen?
Andy Zhou 37:05
Ich denke für die Branche: Da Web3 ein sehr neues Feld ist und wir uns noch in den Anfängen dieses neuen Bereichs befinden. Aus meiner Sicht bewegt sich die Branche sehr schnell. Gleichzeitig gibt es so viele Sicherheitsprobleme, die von der Branche noch nicht angegangen wurden. Wir versuchen, unsere eigenen Lösungen zu nutzen, um das Ökosystem schnell, aber auch sicher voranzubringen. Wir haben die Produkte und Protokolle, um ihre Vermögenswerte zu schützen. Das ist eine Sache. Wir sehen auch, dass es in Zukunft eine Reihe verschiedener Web3-Benutzer in diesem Bereich geben wird. Auch die Benutzer benötigen Sicherheitsschutz, da es für sie derzeit etwas kompliziert ist, Web3-Produkte 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 dies 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 etwas wie eine Wallet erweitern, wenn Sie über den Schutz von Benutzern sprechen. Ich meine, es gibt zwei verschiedene oder drei verschiedene Möglichkeiten. Es gibt die ausstehenden Transaktionen, die nicht zu 100 % sicher sind. Sie müssen also etwas granularer vorgehen. Und das könnte die Entdeckung von 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 eine schnelle ist, richtig? Sie werden Token oder was auch immer sie ausgraben, tun. Aber wenn Sie einige Analysen durchführen können, bevor sie die Transaktion durchführen, und ich glaube, das hat jemand schon einmal getan.
Andy Zhou 39:01
Es gibt eine Reihe von Unternehmen, die dies tun, um Transaktionen zu simulieren und den Benutzern die Konsequenzen einer Transaktion mitzuteilen, wenn sie sie signieren.
DeGatchi 39:10
Ich denke, das ist sehr klug, und ich denke, es ist eine einfache Weiterentwicklung für das Unternehmen oder alles, was mit Sicherheit zu tun hat, was meiner Meinung nach ein sehr guter Weg ist. Also direkt an sie weitergeben. Ich glaube, es war Fire oder etwas Ähnliches. Ich kann mich nicht erinnern. Aber ja, diese Simulationen sind sehr gut, aber ich glaube, sie sind fehlerhaft, weil Sie eine Transaktion in ein LP, zum Beispiel, durchführen. Leute würden benutzerdefinierten Bytecode und bedingte Funktionalität verwenden. Sagen wir, diese 100 Arten von LPs wechseln zu etwas anderem. Die anfängliche Simulation, als sie ihr Geld hatten oder was auch immer es war, würde also nicht auftauchen, es sei denn, Sie würden tatsächlich alles testen, jeden einzelnen Funktionspfad. Das war etwas, worüber ich nachgedacht habe. Aber es gibt auch so viele schwierige Probleme. Man muss sich sein Gift aussuchen. Worauf freuen Sie sich in der Zukunft von Cyber, Cybersec und der Kombination von KI? 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, möchten wir 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-Sicherheitsszenarien bessere Produkte hervorbringen wird. Wir wollen Dinge weiter vorantreiben, um ein besseres System zur Angriffserkennung, ein besseres Fuzzing-System und bessere Lösungen zum Schutz der 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 Raum 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? Sie wollen nicht vier Monate warten, um Geld von Ihren Bankkonten abzuheben. Das ist ziemlich lächerlich. Anstrengungen im Informationssektor werden für den Einzelhandel und bestehende Protokolle unterschätzt. Sie wissen es eigentlich erst, wenn sie gehackt werden. Ich glaube, so geraten ein paar Leute tatsächlich hinein. 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 Ihre Anwesenheit wirklich sehr. Ich bin super froh, dass ich der erste Podcast bin, den Sie gemacht haben. Ja, ich schätze Ihre Zeit sehr, Andy. Es war ein tolles Gespräch.
Andy Zhou 41:38
Ja, es ist mir eine Ehre, hier zu sein. Danke, DeGatchi.



