Warum ein Portemonnaie „ohne Unterschrift“ geleert werden kann
Ziel dieses Leitfadens: Erklären Sie, wie Berechtigungen funktionieren
(Genehmigung ist der Akt der Rechtegewährung, allowance ist das erfasste Ausgabenlimit),
brechen Sie die Hauptsache auf
EVM ist eine Gruppe kompatibler Blockchain-Netzwerke, die dieselben Regeln für die Ausführung intelligenter Verträge verwenden.
wobei die Token- und NFT-Verwaltung auf einem Berechtigungssystem basiert.
In diesen Netzwerken approve, allowance und
Die größte Schwachstelle besteht hier in der Erwartung, dass für jede Ausgabe eine separate Unterschrift erforderlich ist. In einer Wallet-Schnittstelle sieht die Signatur wie ein gewöhnlicher Schritt aus („Zulassen“, „Verbinden“, „Für Austausch bestätigen“). Der Nutzer bestätigt also keine Übertragung, sondern eine Rechteeinräumung Diese werden im Vertrag gespeichert und später ohne erneutes Bestätigungsfenster genutzt.
Ein unnötiges allowance
(ein im Vertrag festgelegtes Limit, das festlegt, wie viele Token ausgegeben werden dürfen)
für einen Stablecoin oder einen Active
Wenn Sie DeFi Risiken umfassender bewerten als Genehmigungen, Fügen Sie Ihrer Checkliste separate Angriffsflächen hinzu: dApp Frontends, Bridges, MEV, Schlüssel und Bedienungsfehler. DeFi Sicherheitsleitfaden: Bedrohungskarte und Checkliste .
Genehmigungs-Phishing nutzt Berechtigungserteilungen über approve/permit
(Erstellen oder Ändern eines allowance)
oder

Eine approve/permit-Signatur oder
Was Genehmigungs-Phishing ist und warum seine „Ehrlichkeit“ unehrlich ist
Schlüsselbegriffe in diesem Abschnitt:
-
Spender ist die Smart-Contract-Adresse, die zum Ausgeben der ERC-20-Tokens des Eigentümers berechtigt ist
innerhalb eines allowance durch
transferFrom . -
Betreiber ist eine Adresse, die das Recht erhalten hat, den NFTs des Eigentümers zu übertragen
setApprovalForAll , ohne Begrenzung der Anzahl der Sammeltoken. - Zulage ist ein Wert in einem ERC-20-Vertrag, der die maximale Anzahl von Token definiert der spender ausgeben darf.
- Revoke ist eine Transaktion, die einen allowance zurücksetzt oder einen operator deaktiviert, Beendigung des Rechts, Vermögenswerte auszugeben oder zu übertragen.
Approval-Phishing nutzt regul?re Berechtigungsmechanismen: Die Rechtevergabe wirkt legitim, f?hrt nicht sofort zu einem Verlust von Geldern und wird deshalb im Moment der Signatur oft nicht als Risiko wahrgenommen.
Genehmigungs-Phishing ist ein Angriff, bei dem ein Benutzer dazu überredet wird, eine zu gewähren Erlaubnis (Genehmigung/allowance) zur Verwaltung von Token oder NFTs, und dieses Recht wird dann zum Abheben von Vermögenswerten genutzt. Die gefährliche Aktion wird als vertrauter Schnittstellenschritt getarnt: „Für Tausch bestätigen“, „Mint zulassen“, „Für Anspruch unterzeichnen“, „Zugang für Einzahlung gewähren“.
Im Gegensatz zum Schlüsseldiebstahl benötigt der Angreifer weder den privaten Schlüssel noch einen direkten Geldtransfer. Es reicht aus, wenn der Benutzer dies tut einmal Gewähren Sie einer bestimmten Adresse das Recht, Vermögenswerte auszugeben: ein spender für ERC-20-Tokens oder ein operator für NFTs. Danach erfolgt die Auszahlung ohne neue Wallet-Fenster und ohne wiederholte Bestätigungen durch den Besitzer.
Auf der Blockchain-Ebene sehen die Transaktionen gültig aus: Der Benutzer hat tatsächlich den Vertragsstatus geändert und Rechte an einer bestimmten Adresse gewährt. Aus diesem Grund wird die Brieftasche nicht offiziell „gehackt“: Vermögenswerte werden durch zuvor erteilte Berechtigungen und nicht durch Umgehung der Signatur verlassen.
Approve normalerweise does not transfer Mittel sofort. Es zeichnet ein allowance-Limit im Token-Vertrag auf, nach dem der spender aufrufen kann
Während sich an der Bilanz nichts geändert hat, wird die Signatur oft als sicher angesehen. Mit uneingeschränkte Genehmigung oder setApprovalForAllkann ein Angreifer aktuelle Vermögenswerte und zukünftige Einzahlungen abheben, bis der allowance zurückgesetzt oder der operator-Status deaktiviert wird.
In einfachen Worten: Bei approve handelt es sich nicht um eine Übertragung, sondern um die Gewährung von Ausgaberechten an eine bestimmte Adresse. Genehmigungs-Phishing bedeutet, dass der Benutzer dazu verleitet wird, einer vom Angreifer kontrollierten Adresse dieses Recht zu gewähren, während dies als normaler Swap-, Mint- oder Claim-Schritt dargestellt wird.
Genehmigungs-Phishing funktioniert über gültige Berechtigungen. Die Gefahr entsteht nach der Signatur, wenn ein aktives Ausgaberecht ohne Beteiligung des Eigent?mers genutzt wird.
Berechtigungen in EVM sind Aufzeichnungen von Rechten in Verträgen, keine einmaligen Aktionen; Deshalb kann approve über Monate hinweg aktiv bleiben und ohne erneute Signatur verwendet werden.
So funktionieren Berechtigungen in EVM: allowance, spender und „unendlich approve“
Eine EVM-Berechtigung ist ein Zustandseintrag in einem Token oder NFT-Vertrag, der Ihre Adresse mit einer bestimmten spender/operator-Adresse verbindet. This record defines who can spend tokens through
- ERC-20: approve → allowance → transferFrom
- Der Benutzer ruft an approve(spender, Betrag) und gibt die spender-Adresse an.
- Der Token-Vertrag speichert die allowance limit – die maximale Anzahl an Token, die der spender ausgeben kann.
- Die spender-Aufrufe transferFrom und gibt Token ohne neue Signaturen aus, bis der allowance 0 wird oder erschöpft ist.
- Der Vertrag prüft allowance während
transferFrom ; Es wird nicht für jede Ausgabe die Unterschrift des Eigentümers verlangt.
- Die Zulage ist an den Eigentümer → spender → Token gebunden
- Die Berechtigung besteht nur für einen bestimmten Token und einen bestimmten spender.
- Ein approve für USDT gewährt keinen Zugriff auf USDC und erstreckt sich nicht auf andere Verträge.
- Jeder neue Token oder neue Spender erfordert ein separates Approve.
- Unbegrenzte Genehmigung ist der maximale allowance-Wert
- Bei unbegrenztem approve speichert der allowance den maximalen numerischen Wert.
- Der spender erhält das Recht, Token aus diesem Vertrag innerhalb dieses Werts auszugeben, einschließlich zukünftiger Einzahlungen an die Adresse.
- Die Berechtigung bleibt bis zu einer revoke-Transaktion aktiv, auch wenn der Dienst nicht mehr genutzt wird.
- NFT: setApprovalForAll hat den Status operator ohne Begrenzung
- setApprovalForAll(operator, true) Aktiviert den operator-Status für die gesamte NFT-Sammlung des Besitzers.
- Dabei handelt es sich nicht um eine Mengen- oder Wertbeschränkung: Das Recht bleibt bestehen bis setApprovalForAll(operator, false) gesendet wird.
- Wenn operator kompromittiert ist, kann NFTs ohne Bestätigung des neuen Eigentümers zurückgezogen werden.
Unbegrenztes approve für ERC-20 erhöht den Höchstbetrag, der ausgegeben werden kann
EVM-Berechtigungen sind langlebige Rechteeinträge in Verträgen. Ein approve kann monatelang arbeiten, unbegrenzt erhöht das verfügbare Ausgabenlimit und
Eine permit-Signatur (zum Beispiel EIP-2612) gibt einer Anwendung das Recht, allowance über eine signierte Nachricht festzulegen; Die Anwendung verwendet diese Signatur dann in einer Transaktion, die Rechte gewährt und die Aktion in einem Aufruf ausführt.
Permit, Permit2 und Nachrichtensignaturen: Wie Berechtigungen ohne separaten approve erteilt werden und warum Angreifer dies verwenden
Zusätzlich zum gewöhnlichen approve verfügt EVM über Möglichkeiten, Berechtigungen ohne separate Transaktion zu erteilen. Der Benutzer einfach signiert eine Nachricht, und die Anwendung verwendet diese Signatur in ihrer eigenen Transaktion, das sowohl das Ausgaberecht gewährt als auch die Aktion ausführt – Tauschen, Einzahlen oder Anspruch. Diese Mechaniken werden aufgerufen permit und Erweiterungen wie Permit2.
Aus UX-Sicht sieht dies nach weniger Schritten aus: Es gibt keine separate approve-Transaktion und es ist kein Gas für einen separaten approve-Aufruf erforderlich. Die technische Konsequenz ist dieselbe: Im Vertrag erscheint ein Ausgaberecht, und dieses Recht kann über einen einzelnen Vorgang hinaus aktiv bleiben, wenn die Signaturparameter eine breite Grenze oder einen langen Ablauf festlegen.
Die beiden Bestätigungsarten verwechseln Benutzer am häufigsten:
- Transaktion (on-chain): approve / revoke / Transfer – wird an das Netzwerk gesendet, benötigt Gas und ändert den Vertragsstatus.
- Nachrichtensignatur (außerhalb der Kette): permit und ähnliche Mechanismen – zum Zeitpunkt der Signatur ist kein Gas erforderlich, aber sie ermöglichen einer Anwendung die Installation derselben Zugriffsrechte.
| ⚙️ Mechanismus | 🧾Was Du gibst | 📍 Wo es erscheint | ⚠️ Schlüsselrisiko |
|---|---|---|---|
| Approve (ERC-20) | Token-Ausgabenlimit für einen spender | DEX, Kreditvergabe, Landwirtschaft, Brücken | Unbegrenzt allowance bleibt bis revoke aktiv |
| Genehmigung (EIP-2612 und Analoga) | Erlaubnis durch eine Signatur ohne separates approve | „One-Click“-Swaps, Aggregatoren, DeFi-Schnittstellen | Die Signatur sieht „sicher“ aus, legt aber echte Rechte fest |
| SetApprovalForAll (NFT) | Weltweiter Zugriff auf die gesamte Sammlung | Marketplaces, mints, gaming dApps | NFTs kann ohne wiederholte Bestätigungen übertragen werden |
Key nuance: approve und permit führen zum gleichen Ergebnis – eine bestimmte Adresse erhält das Recht, das Vermögen des Eigentümers zu verwalten. Das Bestätigungsformular unterscheidet sich: eine On-Chain-Transaktion oder eine Nachrichtensignatur, die später innerhalb einer Transaktion verwendet wird.
Checkliste vor der Unterschrift (30 Sekunden): Ein schneller Filter, um zu sehen, ob eine Unterschrift Ausgabenrechte gewährt.
- Was wird bestätigt? Permit oder approve bedeutet eine Zugriffsgewährung.
- Wer erhält Zugriff? Achten Sie auf spender oder operator in den Parametern, nicht auf das Site-Design.
- Was ist die Grenze? Unbegrenzte liquide Token erhöhen den verfügbaren Ausgabebetrag.
- Gibt es setApprovalForAll? Für NFTs ist dies der vollständige operator-Status für die Sammlung.
- Besteht Dringlichkeit? Oftmals wird Zeitdruck genutzt, um Menschen zum Unterschreiben zu zwingen, ohne Parameter zu prüfen.
Genehmigungen und „gaslose Unterschriften“ ändern lediglich die Form der Bestätigung. Eine Nachrichtensignatur kann Zugriffsrechte auf Token oder NFTs installieren, genau wie approve, daher müssen Signaturparameter als Berechtigungserteilungen gelesen werden.
Bei typischen Genehmigungs-Phishing-Schemata wird der Benutzer dazu gebracht, approve/permit oder zu unterzeichnen
Typische Genehmigungs-Phishing-Maßnahmen: Wie Sie zur „richtigen“ Signatur geführt werden
Diese Schemata nutzen vertraute Schnittstellen und Standard-Workflows, wodurch die Erteilung von Berechtigungen wie ein gewöhnlicher Serviceschritt aussieht.
Fast alle Angriffe folgen der gleichen Logik: Zuerst wird der Benutzer auf eine Seite gebracht, die wie eine dApp-Schnittstelle aussieht, dann fordert die Seite eine Signatur an, die ein Ausgaberecht oder operator-Recht gewährt, und danach wird die aktive Berechtigung verwendet, um Vermögenswerte ohne neue Bestätigungen abzuheben.
Das Hauptmerkmal ist das Fehlen einer direkten Aufforderung zum Senden einer Überweisung. Anstelle einer Übertragung fordert die Site approve/permit oder an
- Klon eines beliebten Dienstes
- Eine gefälschte Domain oder ein Werbelink führt zu einer optisch ähnlichen Kopie eines DEX oder Marktplatzes.
- Die Schnittstelle fordert approve „for swap“ bzw. an
setApprovalForAll „für NFT-Auflistung“. - Die Signaturparameter enthalten einen spender/operator, der nicht zum eigentlichen Dienst gehört.
- Kompromiss der offiziellen Kanäle
- Ein Link wird im Namen des Projekts oder eines Moderators in Discord, Telegram oder X gepostet.
- Es werden Dringlichkeitsauslöser verwendet: „Vertragsfehler“, „Mint-Migration“, „Letzte Chance“.
- Der Link führt zu einer Seite, die approve/permit nach der Adresse des Angreifers fragt.
- Social Engineering durch „Unterstützung“
- Der Angreifer sendet eine private Nachricht und gibt vor, ein Service-Supporter zu sein.
- Unter dem Vorwand der „Stornierung einer feststeckenden Transaktion“ wird eine Unterschrift verlangt.
- In der Praxis signiert der Nutzer ein Permit oder erteilt einer Drittadresse ein Approve.
- Ersetzung der Signaturbedeutung
- Das Wallet-Fenster zeigt einen technischen Aufruf, ohne dass die Oberfl?che ihn klar erkl?rt.
- Der Nutzer best?tigt, ohne die Adresse des Spenders/Operators und das Limit zu pr?fen.
- Das Risiko ist am höchsten, wenn die Schnittstelle weder den spender noch den Limit- oder Berechtigungstyp anzeigt.
Beispiel: Ein Nutzer verbindet seine Wallet mit einer ?Airdrop?-Seite, klickt auf Claim und signiert ein unlimited approve f?r einen Stablecoin. Der Kontostand ?ndert sich nicht, aber sp?ter, wenn Guthaben eingeht, zieht der Spender Token ?ber
Diese Angriffe erfordern keine sofortige Abbuchung. Der Angreifer kann warten, bis der Kontostand w?chst oder Liquidit?t eingeht, und dann die aktive Berechtigung nutzen.
Typische Approval-Phishing-Angriffe tarnen die Gewährung von Rechten als vertraute Handlungen. Solange der Status allowance oder operator aktiv ist, kann der Angreifer ihn jederzeit verwenden, ohne dass ein neuer Eigentümer dies bestätigen muss.
Zulage und
Häufige Benutzerfehler: Warum sich Genehmigungen häufen und zur Bedrohung werden
Die Gefahr von Genehmigungen ist im Moment der Unterzeichnung selten zu spüren, da approve den Saldo in der Regel nicht verändert. Das Risiko tritt später auf, wenn eine aktive Berechtigung zum Ausgeben verwendet wird, und wird größer, wenn diese Berechtigungen über mehrere Netzwerke und mehrere Token hinweg bestehen bleiben.
Der häufigste Fehler: Unbegrenzte Genehmigungen für Stablecoins und Liquid Token. Im Moment des Signierens sieht das nach weniger Schritten aus, aber technisch gesehen bedeutet es einen großen allowance, der die spender-Ausgabetoken durchlässt
Die gleiche Logik gilt für
Eine eigene Fehlerklasse entsteht durch das Vertrauen in die Marke und das visuelle Design. Der Benutzer konzentriert sich auf die Domain, das Logo oder das Layout, die Erlaubnis wird jedoch immer einer bestimmten Adresse erteilt – spender oder operator. Wenn die Schnittstelle ersetzt wird, ändert das Design die Adresse in den Signaturparametern nicht.
Ein weiterer häufiger Fehler besteht darin, das Problem nach revoke in einem Netzwerk als geschlossen zu betrachten. Genehmigungen sind nach Netzwerk isoliert: allowance in Ethereum und allowance in Arbitrum sind unterschiedliche Datensätze in unterschiedlichen Verträgen, sodass eine Berechtigung möglicherweise in einem anderen Netzwerk aktiv bleibt.
Wenn Sie Liquidität zwischen Netzwerken verschieben, überprüfen Sie die Genehmigungen nach kettenübergreifenden Vorgängen: Bridges und Router erfordern häufig approve für einen separaten spender in jedem Netzwerk. Wie sie funktionieren und welche sicherer sind.
Gaslose Signaturen sorgen für zusätzliche Verwirrung. Genehmigungen und ähnliche Mechanismen werden als „weiche“ Bestätigungen wahrgenommen, aber das Ergebnis ist dasselbe: Die Anwendung erhält die Möglichkeit, eine Berechtigung zu installieren, die dann für Ausgaben verwendet wird.
Gefährlicher werden Fehler, wenn ein Wallet gleichzeitig für Speicherung, aktiven Handel und Experimente genutzt wird. In diesem Modus erstellt ein unnötiger spender/operator Zugriff auf Assets, die nicht Teil des ursprünglichen Vorgangs waren.
Die größte Bedrohung durch Genehmigungen sind aktive Berechtigungen, die nach Abschluss einer Aufgabe in Verträgen verbleiben. Unbegrenztes allowance, ein aktiviertes NFT operator und Berechtigungen über mehrere Netzwerke hinweg erhöhen die Menge an Vermögenswerten, die für Ausgaben ohne neue Bestätigungen verfügbar sind.
Berechtigungen müssen für jedes Netzwerk separat überprüft werden: Die Listen allowance und operator in Ethereum stimmen nicht mit Arbitrum, Optimism, Polygon oder BSC überein, da Rechtedatensätze in Verträgen im jeweiligen Netzwerk gespeichert sind.
Wo Berechtigungen überprüft werden: Was genau überprüft werden soll und in welcher Reihenfolge
Die Berechtigungsüberprüfung besteht aus einer Abfolge von Schritten nach Netzwerk und Asset-Typ. ERC-20-Tokens und NFTs verwenden unterschiedliche Zugriffsmechanismen, daher müssen sie separat analysiert und in der Prioritätsreihenfolge geschlossen werden: unbekannte Adressen und breite Limits zuerst, dann die verbleibenden Arbeitsberechtigungen.
- Identifizieren Sie das Netzwerk mit der höchsten Aktivität
- Berechtigungen sind nicht „global“: Ethereum, Arbitrum, Optimism, Polygon und BSC verfügen über separate Genehmigungslisten.
- Beginnen Sie mit dem Netzwerk, in dem die Liquidität konzentriert ist und in dem die letzten Transaktionen stattgefunden haben.
- Überprüfen Sie ERC-20-Genehmigungen und reduzieren Sie Unnötiges
- Vorrang haben unbekannte spenders und unbegrenzte allowances für Stablecoins und Liquid Token.
- Entfernen Sie ungenutzte Berechtigungen und reduzieren Sie die Grenzwerte auf den für den aktuellen Vorgang erforderlichen Betrag.
- Prüfen Sie die NFT-Zulassungen separat
- Achten Sie besonders darauf
setApprovalForAll für Marktplätze und Gaming dApps. - Halten Sie einen operator nur für den Zeitraum aktiv, in dem er wirklich benötigt wird.
- Achten Sie besonders darauf
- Verify addresses you leave active
- Ordnen Sie spender/operator-Adressen anhand der Adresse in der Signatur oder im Explorer vertrauenswürdigen Diensten zu.
- Wenn eine Adresse nicht erkennbar ist, setzen Sie allowance zurück oder deaktivieren Sie operator und erteilen Sie nur bei Bedarf eine neue Berechtigung.
| Ansatz | Was es überprüft | Starke Seite | Einschränkung |
|---|---|---|---|
| Netzwerk-Blockchain-Scanner | ERC-20 allowance und oft auch NFT-Zulassungen | Netzwerkdaten, ohne einer dApp-Schnittstelle zu vertrauen | Sie müssen Netzwerke wechseln und Adressen analysieren |
| Revoke-Dienste | Token- und NFT-Berechtigungen im ausgewählten Netzwerk | Liste + Schaltfläche zum Zurücksetzen von allowance/Deaktivieren von operator | Die Abdeckung hängt vom Netzwerk und den Integrationen ab |
| Geldbörsen mit Simulation | Spender, Grenzen, Warnungen vor der Unterzeichnung | Zeigt an, welche Adresse vor der Bestätigung Rechte erhält | Unterschiedliche Tiefe der Genehmigungsanzeige |
Worauf Sie in einer Berechtigungsliste achten sollten
- Unbekannt spender oder operator. Wenn die Adresse nicht erkennbar ist, handelt es sich um einen revoke-Kandidaten.
- Unbegrenzte allowance auf liquide Mittel. Ein großes allowance erhöht den verfügbaren Ausgabenbetrag.
- Berechtigungen in L2s und Sidechains. Genehmigungen bleiben möglicherweise in Netzwerken aktiv, in denen Sie längere Zeit keine Transaktionen getätigt haben.
- NFT operators ohne aktuellen Bedarf. Ein aktiver operator kann NFTs ohne neue Bestätigungen übertragen.
- Proxy-Verträge und Upgrades. Approve ist an die Adresse spender gebunden, sodass eine alte Berechtigung auch dann aktiv bleibt, wenn sich die Logik durch ein Upgrade ändert.
Setzen Sie zunächst allowances für unbekannte Adressen zurück und entfernen Sie unbegrenzte Berechtigungen für sensible Token. Reduzieren Sie dann die verbleibenden Grenzwerte auf den Betrag, der für den aktuellen Betrieb erforderlich ist.
Die Berechtigungsüberprüfung sollte mit der Art und Weise übereinstimmen, wie Berechtigungen gespeichert werden: separate Netzwerke, separate Token, separate spenders/operators. Die Priorisierung unbekannter und unbegrenzter Berechtigungen schließt die Hauptszenarien für Ausgaben ohne neue Bestätigungen aus.
Revoke ist eine Transaktion, die allowance für das Besitzer→spender→Token-Paar oder die Switches auf 0 setzt
So verwenden Sie revoke-Berechtigungen richtig: Token, NFTs und häufige Fehler
Revoke ist eine On-Chain-Transaktion, die allowance ändert oder einen NFT operator deaktiviert. Dadurch wird im Vertrag ein neuer Stand festgehalten: Eine bestimmte Adresse hat nicht mehr das Recht, Ihr Vermögen zu verwalten. Revoke stoppt künftige Ausgaben, macht aber bereits ausgeführte Transaktionen nicht rückgängig.
Schritt-für-Schritt-Algorithmus revoke für ERC-20
- Identifizieren Sie das Netzwerk. Genehmigungen sind nach Netzwerk isoliert: Ethereum, Arbitrum, Optimism und andere L2s verfügen über separate Berechtigungslisten.
- Suchen Sie den Token und spender. Überprüfen Sie die Token-Vertragsadresse, den Token-Namen und das aktuelle allowance-Limit, insbesondere für Stablecoins und liquide Vermögenswerte.
- Führen Sie revoke aus. Die Standardoption besteht darin, allowance über approve(spender, 0) auf 0 zu setzen oder eine revoke-Schaltfläche in einem Dienst zu verwenden.
- Überprüfen Sie das Ergebnis. Stellen Sie sicher, dass allowance den Wert 0 hat und die Berechtigung nicht mehr als aktiv angezeigt wird.
Schritt-für-Schritt-Algorithmus revoke für NFTs
- Öffnen Sie die Sammlungsliste operator. Suchen Sie nach Aktiv
setApprovalForAll Einträge und zugehörige operator Adressen. - Deaktivieren Sie operator. Der Status muss auf false geschaltet werden.
- Wiederholen Sie diesen Vorgang für die Schlüsselübergabe. Prüfen Sie zunächst die Sammlungen mit dem höchsten Wert und der höchsten Liquidität.
Häufiger Fehler: revoke wird in einem Netzwerk ausgeführt, während der Status allowance oder operator in einem anderen aktiv bleibt. Wenn Sie Bridges, Aggregatoren und Multi-Netzwerk-dApps verwendet haben, überprüfen Sie die Genehmigungen in jedem Netzwerk separat.
ERC-20 Nuance: Einige Token erfordern die Sequenz approve(spender, 0), bevor ein neues allowance festgelegt wird. In diesen Fällen beginnt revoke mit dem Zurücksetzen des Limits.
Revoke ändert den Rechtedatensatz im Vertrag: allowance wird 0 oder operator wird deaktiviert. Damit revoke den Zugriff wirklich schließt, muss er im richtigen Netzwerk und für das richtige Paar Token→spender oder Sammlung→operator durchgeführt werden.
Wenn Sie approve/permit oder gewährt haben
Wenn Sie bereits ein gefährliches approve gewährt haben: ein schneller Plan zur Schadensreduzierung
In dieser Situation ist die Reihenfolge der Aktionen wichtig: Entfernen Sie zuerst Assets von aktiven Berechtigungen, setzen Sie dann allowance zurück und deaktivieren Sie operator und untersuchen Sie erst danach die Quelle der Signatur.
Wenn
- Verschieben Sie Vermögenswerte an eine „saubere“ Adresse. Eine neue Wallet mit einer neuen Seed-Phrase unterbricht die Verbindung mit aktuellen Genehmigungen, da allowance und operator an die alte Besitzeradresse gebunden sind.
- Revoke-Berechtigungen für die kompromittierte Adresse. Setzen Sie allowance zuerst für Stablecoins und Liquid Token zurück, dann für die restlichen Token.
- Überprüfen Sie die NFT-Berechtigungen. Deaktivieren
setApprovalForAll für operators, die nicht benötigt werden. - Trennen Sie die dApp-Sitzungen im Wallet. Dies ändert nichts an allowance, entfernt aber aktive Site-Sitzungen, die möglicherweise eine weitere Signatur anfordern.
- Isolieren Sie die Umgebung. Wenn das Risiko einer böswilligen Erweiterung oder Site-Ersetzung besteht, verwenden Sie einen anderen Browser oder ein anderes Gerät.
Stimmen Sie den von Fremden vorgeschlagenen „Testüberweisungen“, „Sicherheitsüberprüfungen“ oder „Geldrückgewinnungen“ nicht zu. Solche Anfragen werden häufig verwendet, um eine neue Signatur oder eine direkte Übertragung zu erhalten.
Nachdem eine gefährliche Erlaubnis erteilt wurde, besteht die Priorität darin, die Menge der über allowance/operator erreichbaren Assets zu reduzieren und diese Rechte dann mit revoke-Transaktionen zurückzusetzen. Während die Rechte aktiv bleiben, können Ausgaben ohne neue Bestätigungen erfolgen.
Bei der Verhinderung von Genehmigungs-Phishing geht es darum, zwei Parameter zu kontrollieren: Wer erhält das Recht (spender/operator) und wie groß oder umfassend dieses Recht ist (allowance bzw
Prävention: So erteilen Sie Berechtigungen, ohne zum leichten Ziel zu werden
Die Verhinderung von Genehmigungs-Phishing basiert auf der Berechtigungsverwaltung: Trennung der Wallet-Rollen, Beschränkung von allowance und Deaktivierung von operator nach Abschluss der Aufgabe.
Die meisten Verluste hängen mit aktiven Berechtigungen zusammen, die nach Abschluss einer Operation in Verträgen verbleiben: unbegrenztes allowance, aktiviertes NFT operator und die Gewohnheit, Unterschriften zu bestätigen, ohne die Adresse zu überprüfen. Diese Rechtedatensätze ermöglichen Ausgaben ohne neue Bestätigungen bis revoke.
Trennung der Wallet-Rollen
Durch die Verwendung einer Adresse für Speicherung, Handel und Experimente ist jedes approve entscheidend für den gesamten Saldo dieser Adresse. Durch die Trennung von Adressen wird die Menge der über allowance oder operator offengelegten Vermögenswerte begrenzt. Wenn Sie sich langfristig für eine „Speicher“-Wallet entscheiden, beginnen Sie mit a Überprüfung der Hardware-Krypto-Wallet und richten Sie vor der aktiven Arbeit einen Kühlraum ein.
🧩 Grundlegende Einrichtung mit drei Adressen
- Lagerung (langfristig): Hauptkapital, Mindest-dApp-Interaktionen, keine aktiven Genehmigungen.
- Betriebsadresse: regelmäßige DeFi-Aktivität, begrenztes Guthaben, geplante allowance- und operator-Überprüfung.
- Experimentelle Adresse: Lufttropfen, NFTs, neue Projekte; Das Risiko beschränkt sich auf die darauf gespeicherte Menge.
Reduzierung des Umfangs jeder Berechtigung
Auch wenn Sie mit vertrauenswürdigen Diensten arbeiten, sollten Sie das Szenario eines spender/operator-Fehlers oder einer Kompromittierung in Betracht ziehen. Für ERC-20 wird der Umfang des Rechts durch allowance definiert; Für NFTs wird der Bereich definiert durch
- Verwenden Sie genaue Grenzwerte. Die Zulage definiert die maximale Anzahl an Token, die ein spender ausgeben kann.
- Setzen Sie allowance zurück, nachdem die Aufgabe abgeschlossen ist. Damit sind die Ausgaben vollständig beendet
transferFrom . - Überprüfen Sie die Adresse spender. Die Erlaubnis wird der Adresse in den Signaturparametern erteilt, nicht einer „Site“.
- Deaktivieren Sie setApprovalForAll nach der Aufgabe. Der Betreiber sollte nach der Auflistung oder einer Spielsitzung nicht aktiv bleiben.
- Wegen Dringlichkeit nicht bestätigen. Oft wird die Dringlichkeit verwendet, sodass die Unterschrift nicht geprüft wird.
Überprüfungsmodus: Wann werden Genehmigungen überprüft?
- Nach einer einmaligen Operation. Wenn der Dienst nicht regelmäßig genutzt wird, setzen Sie allowance zurück oder deaktivieren Sie operator, nachdem der Vorgang abgeschlossen ist.
- Für eine betriebsbereite DeFi-Adresse. Überprüfen Sie bei konstanter Aktivität die Genehmigungen alle ein bis zwei Wochen und entfernen Sie unnötige Berechtigungen.
- Für eine experimentelle Adresse. Überprüfen und schließen Sie für neue dApps- und Airdrops-Berechtigungen nach jeder Sitzung.
Approve/permit gewährt ein Recht auf eine bestimmte Adresse, allowance definiert das Limit, revoke ändert das Limit auf 0 oder deaktiviert operator.
Bei der Genehmigungsverhinderung handelt es sich um eine aktive Berechtigungsverwaltung: Adresstrennung, genaue allowance-Grenzwerte und die Deaktivierung von operator nach der Aufgabe verringern die Menge der für Ausgaben ohne neue Bestätigungen verfügbaren Vermögenswerte.
Approve lässt Protokolle aufrufen
Approve als Mechanismus: Stärken und eingebaute Risiken
Approve ist eine Grundlage der DeFi-Infrastruktur: Es ermöglicht Protokollen die Durchführung von Operationen
Der approve-Mechanismus ist ein Kompromiss zwischen der Aufbewahrung von Vermögenswerten an Ihrer eigenen Adresse und der Automatisierung von Protokollaktionen. Vermögenswerte bleiben an Ihrer Adresse, aber der Vertrag erhält das Recht, sie innerhalb des in approve festgelegten allowance auszugeben.
✅ Stärken von approve
- Das Vermögen verbleibt an der Adresse des Eigentümers, bis es verbraucht ist
transferFrom . - Mithilfe von allowance können Protokolle Vorgänge ohne Signatur für jeden Schritt ausführen.
- Durch die Zulage ist es möglich, den maximalen Ausgabenbetrag für einen bestimmten spender zu begrenzen.
- Berechtigungen sind in der Kette überprüfbar und können mit einer revoke-Transaktion zurückgesetzt werden.
❌ Eingebaute Zulassungsrisiken
- Eine Berechtigung bleibt bis revoke aktiv und hängt nicht vom Schließen einer Site oder dem Trennen einer Wallet ab.
- Unbegrenzt allowance erhöht die Menge der für Ausgaben verfügbaren Token, wenn spender kompromittiert wird.
- Wenn approve ohne Überprüfung von spender und Limit signiert wird, wird das Recht möglicherweise der falschen Adresse gewährt.
SetApprovalForAll für NFTs gibt einem operator das Recht, die gesamte Sammlung mit einer Aktion zu übertragen.
Approve ist ein Infrastrukturmechanismus zur Rechteverwaltung. Dies ist praktisch, da die Übertragung über allowance ohne wiederholte Signaturen ausgeführt wird, und riskant, da eine aktive Berechtigung bis revoke gültig ist und für spätere Ausgaben verwendet werden kann.
Fälle und Lehren: Warum ein „richtiger Vertrag“ immer noch zum Problem werden kann
Selbst bei der Arbeit mit legitimen Diensten stellen aktive Genehmigungen ein Risiko dar: Eine Schwachstelle, ein Upgrade oder ein Frontend-Austausch wird gefährlich, wenn allowance bereits erfasst ist oder operator im Vertrag aktiviert ist.
Die zentrale Eigenschaft von Zulassungen ist das Fehlen einer „Lebensdauer“. Wenn eine Erlaubnis erteilt wurde, muss der Vertrag approve nicht erneut anfordern: Er nutzt die bereits erfassten Rechte. Daher hängt das Risiko nicht nur von der aktuellen Leistung ab, sondern auch von der Liste der an der Adresse gesammelten Genehmigungen.
🔓 Fall 1: Schwachstelle in einem legitimen Protokoll + unbegrenzte Genehmigungen
Ein Benutzer gewährt einem Protokoll unbegrenzte approve und später wird ein Fehler in der Ausgabenlogik gefunden Dadurch kann der Vertrag mehr Token ausgeben als erwartet.
- Der Vertrag enthält bereits das Ausgabenrecht bis allowance, sodass für den Angriff keine Unterschrift eines neuen Eigentümers erforderlich ist.
- Unbegrenzt allowance erhöht den Ausgabebetrag bis zum Token-Guthaben an der Adresse des Eigentümers.
- Benutzer, die keine neuen Transaktionen durchführen, bleiben anfällig, bis allowance zurückgesetzt wird.
Unlimited approve verwandelt einen Protokollfehler in ein Risiko für den gesamten Token-Saldo der Adresse. Exact allowance begrenzt die maximalen Ausgaben und revoke beendet das Ausgabenrecht.
🧩 Fall 2: Ein Proxy-Vertrags-Upgrade verändert das Zugriffsverhalten
Bei aktualisierbaren Verträgen bleibt die Adresse erhalten, der Code an dieser Adresse kann sich jedoch nach einem Upgrade oder einer Governance-Kompromisse ändern.
- Approve ist an die spender-Adresse gebunden, nicht an eine bestimmte Codeversion.
- Nach einem Upgrade verwendet neuer Code allowance möglicherweise anders als vom Eigentümer erwartet.
- Der alte allowance bleibt aktiv, bis er durch eine Transaktion zurückgesetzt wird.
Beim Protokoll-Upgrade sollten alte Genehmigungen überprüft werden, da allowance weiterhin auf derselben spender-Adresse aktiv bleibt.
🧠 Fall 3: Frontend-Ersatz, während die Marke bekannt bleibt
Der Benutzer besucht eine vertraute Website, die Schnittstelle wird jedoch durch DNS, Werbung, CDN oder bösartige Erweiterungen ersetzt.
- Das visuelle Erscheinungsbild der Benutzeroberfläche entspricht den Erwartungen des Benutzers.
- Approve oder permit wird einer Adresse gewährt, die nicht im Servicevertrag enthalten ist.
- Die Überprüfung von spender/operator in der Signatur zeigt die Ersetzung; Marke und Design nicht.
Verlassen Sie sich auf die spender/operator-Adresse und das allowance-Limit in der Signatur, nicht auf die Domäne und das Seitendesign.
🛰️ Fall 4: Aggregatoren und Router als Broad Access Gateway
Aggregatoren und Router verwenden einen spender für viele Routen und Protokolle.
- Eine spender-Adresse bedient viele Szenarien und viele Token.
- Wenn der spender kompromittiert wird, breitet sich das Risiko auf alle aus, die ihn allowance gewährt haben.
- Unbegrenzt allowance erhöht den Betrag, der über diese Adresse ausgegeben werden kann.
Für Router definiert das allowance-Limit den maximalen Ausgabenbetrag, und das reguläre revoke entfernt alte Berechtigungen, die nicht mehr benötigt werden.
🖼️ Fall 5: setApprovalForAll für NFTs bleibt jahrelang aktiv
- Dies ist der operator-Status, keine Begrenzung durch die Anzahl der NFTs.
- Auch ohne Aktivität bleibt der operator im Inkassovertrag aktiviert.
- Die Kompromittierung des operator ermöglicht die Übertragung von NFTs ohne eine neue Eigentümerunterschrift.
Deaktivieren
Ein Vorfall wird möglich, wenn ein allowance bereits erfasst ist oder ein operator im Vertrag aktiviert ist. In diesem Moment kann die Ausgabe ohne die Unterschrift des neuen Eigentümers ausgeführt werden.
In der Praxis kommt es zu Vorfällen, weil Berechtigungen nach abgeschlossenen Vorgängen bestehen bleiben. Durch regelmäßige Überprüfung und Deaktivierung unnötiger allowances und operators wird die Menge der Vermögenswerte begrenzt zur Ausgabe ohne neue Unterschrift verfügbar.
Die FAQ helfen zu klären, welche Signaturen Rechte gewähren und wie revoke funktioniert und warum Ausgaben ohne wiederholte Bestätigung erfolgen können.
FAQ zum Genehmigungs-Phishing, approve und revoke
Warum sagen die Leute „ohne Unterschrift ausgelaugt“, wenn ich doch etwas unterschrieben habe?
Die Unterschrift diente der Gewährung von Rechten, nicht der Überweisung von Geldern. Nach approve, permit oder
Ist unbegrenztes approve immer ein Fehler?
Unbegrenzt approve zeichnet einen sehr großen Wert in allowance auf. Dadurch erhöht sich die maximale Anzahl an Token, die der spender ausgeben kann
Kann revoke gestohlene Gelder zurückgeben?
Nein. Revoke ändert den Vertragsstatus nur für die Zukunft: allowance wird 0 oder operator wird deaktiviert. Bereits ausgeführte Transaktionen werden nicht storniert.
Entfernt das Löschen des Wallets oder das „Trennen der Website“ die Genehmigungen?
Nein. Berechtigungen werden in der Kette innerhalb von Token- und NFT-Verträgen gespeichert. Das Trennen einer Site oder das Löschen einer App ändert den Status von allowance oder operator im Vertrag nicht.
Wo genau ist approve gespeichert?
Im Smart-Contract-Zustand. Für ERC-20 ist dies der Datensatz allowance(owner, spender); für NFTs sind es Genehmigungen und operators im Inkassovertrag.
Kann approve auf einen bestimmten Betrag begrenzt werden?
Ja. Der approve-Aufruf übergibt den Betragsparameter und dieser Wert definiert allowance. Der spender kann nicht mehr als die aktuellen allowance permits ausgeben.
Was ist gefährlicher: approve für einen Token oder setApprovalForAll für einen NFT?
Normalerweise
Müssen Genehmigungen in L2s und Sidechains überprüft werden?
Ja. Jedes Netzwerk speichert seine eigenen Rechteaufzeichnungen in seinen eigenen Verträgen. Bei „Zulassung“ in Ethereum und „allowance“ in Arbitrum handelt es sich um unterschiedliche Werte. Wenn Sie also nur ein Netzwerk markieren, werden keine Berechtigungen in anderen Netzwerken angezeigt.
Schützt eine Hardware-Wallet vor Approval-Phishing?
Eine Hardware-Wallet schützt den privaten Schlüssel und den Signaturvorgang auf dem Gerät vor Diebstahl, ändert jedoch nichts an der Bedeutung der zu signierenden Aktion. Ein gefährliches approve/permit oder
In der FAQ kommt es auf einen nachweisbaren Unterschied an: Eine Signatur kann Rechte gewähren (approve/permit/
Eine Verwechslung approve/permit oder
So schützen Sie sich vor Approval-Phishing und behalten die Kontrolle über Berechtigungen
Berechtigungen sind die Grundlage der DeFi-Mechanik, aber der allowance- und der operator-Status ermöglichen genau das Abheben von Vermögenswerten ohne erneute Unterschrift, wenn das Recht einer unnötigen Adresse gewährt wurde.
Genehmigungs-Phishing ist ein Missbrauch legitimer Rechte. Ein approve/permit oder
Um zu vermeiden, dass aktive Rechte an einer Adresse verbleiben, behalten Sie die Kontrolle durch konkrete Maßnahmen:
- Überprüfen Sie die Zugangsadresse. Der wichtige Teil ist spender/operator in der Signatur und in der Genehmigungsliste, nicht die Marke oder das Design.
- Begrenzen Sie allowance. Legen Sie ein aufgabenspezifisches Limit statt unbegrenzt fest und setzen Sie allowance zurück, wenn das Recht nicht mehr benötigt wird.
- Deaktivieren Sie operator für NFTs. Geh nicht
setApprovalForAll aktiviert, nachdem die Aktion abgeschlossen ist. - Überprüfen Sie alle Netzwerke. Zulage und operator werden in jedem Netzwerk separat gespeichert. Überprüfen Sie daher jedes Netzwerk, in dem ein dApp verwendet wurde.
- Trennen Sie Adressen nach Rolle. Der Saldo einer Adresse definiert den maximalen Betrag, der durch aktive Rechte an dieser Adresse ausgegeben werden kann.
Behandeln Sie Genehmigungen als aktive Zugriffsrechte, die in Verträgen erfasst sind. Minimale allowance-Limits, deaktivierte operators und die Überprüfung in allen Netzwerken reduzieren die Menge an Vermögenswerten, die für Ausgaben ohne neue Signatur verfügbar sind.