Bitcoin Magazine
De Kernkwestie: Jouw Node Versus de Digitale Wildernis
Meer dan 50 jaar na het eerste internetbericht blijven peer-to-peer-netwerken zeldzame verschijnselen in de jungle van het internet. Bitcoin's vermogen om een open monetair systeem te bieden, hangt af van zijn peer-to-peer-architectuur, en over het hele aanvalsoppervlak is het de netwerklaag – hoe peers elkaar ontdekken en met elkaar verbinden – die het meest kwetsbaar is. Er zijn twee hoofdplaatsen waar problemen kunnen optreden: Bitcoin's eigen peering-protocol en de internetprotocollen waarvan Bitcoin's protocol afhankelijk is. In dit licht heeft Core een dubbel mandaat om Denial of Service (DOS)-vectoren te voorkomen die tussen nodes kunnen worden misbruikt, en om nodes in staat te stellen veilig te communiceren in de bredere vijandige omgeving die het internet is.
"Overheden zijn goed in het afsnijden van de hoofden van centraal gecontroleerde netwerken zoals Napster, maar pure P2P-netwerken zoals Gnutella en Tor lijken stand te houden."
– Satoshi, 7 nov 2008 [1]
Het P2P-protocol omvat hoe nodes berichten uitwisselen over transacties, blokken en andere peers. Deze uitwisseling van informatie is vereist voordat enige transactie- of consensusvalidatie kan plaatsvinden, en is daarom een primaire zorg.
Er zijn door de jaren heen verschillende bugs in dit gebied geweest. In 2017 werd bijvoorbeeld een kwaadaardige SOCKS-server kwetsbaarheid gepatcht en bekendgemaakt [2]. Deze "buffer overflow"-kwetsbaarheid zou theoretisch tot veel verschillende aanvallen kunnen leiden: de node laten crashen, kwaadaardige payloads injecteren of gegevens op de node wijzigen. In 2020 werd een kwetsbaarheid met hoge ernst gerapporteerd en gepatcht waarbij een externe peer adressen kon laten verbieden, waardoor de banlist kwadratisch groeide, en dus een DOS op de node was [3]. De kwetsbaarheid werd pas in 2024 bekendgemaakt. Deze bug is terecht gemarkeerd als "hoge ernst" omdat de aanval eenvoudig uit te voeren is, het effect resulteert in een verlies van functie voor de node, en er weinig voorwaarden nodig zijn om het te laten werken. Dit zijn het soort bugs die Core-ontwikkelaars 's nachts wakker houden, en waarom het sterk wordt aangemoedigd om je node bij te werken naar een nog onderhouden versie (oudere versies van Core worden niet actief onderhouden/bijgewerkt).
Dit gedistribueerde netwerk dat we Bitcoin noemen blijft relatief klein: het clearnet node-aantal schommelt rond de 20.000 nodes, en zelfs uitgaande van een ruime 100.000 TOR-nodes, hebben we nog steeds een klein, gemakkelijk te bewaken netwerk. Onlangs toonden Daniela Brozzoni en naiyoma [4] aan dat als een node draait met zowel clearnet als Tor, het triviaal is om de IPv4- en Tor-adressen van een node in kaart te brengen. Het is zeer waarschijnlijk dat dit al wordt gedaan door inlichtingendiensten en chainalysis-bedrijven. Het wordt dan gemakkelijk om te zien welke nodes welke transacties als eerste publiceren, waarbij de oorspronkelijke IP van de transactie, en dus de locatie, kan worden afgeleid. Hoewel dit op zich geen bug is, omdat de node niet crasht of zich misdraagt, kan het als een kwetsbaarheid worden beschouwd, omdat het een methode biedt om een gegeven IP-adres aan een transactie te koppelen.
Hoe dit effectief te voorkomen is momenteel een open vraag.
"We bouwen onze computers zoals we onze steden bouwen. In de loop van de tijd, zonder plan, bovenop ruïnes." – Ellen Ullman [5]
Bitcoin draait op het internet, en het vermogen om een gedistribueerd en gedecentraliseerd systeem te blijven, hangt af van de eigenschappen van het internet zelf. Helaas blijft de architectuur van het internet zoals we die vandaag kennen jammerlijk onveilig, met bekende aanvallen die routinematig worden ingezet. De meeste van deze aanvallen worden onopgemerkt uitgevoerd totdat er schade is aangericht, en dit is nog los van de bewakingsregimes die het internet vandaag doordringen.
De bekendste en meest praktische aanvalsvector om je zorgen over te maken wordt een eclipse-aanval genoemd, waarbij de peers van een slachtoffer-node allemaal kwaadaardig zijn en een specifiek beeld van de chain of het netwerk aan de slachtoffer-node voeden. Deze klasse van aanvallen is fundamenteel in gedistribueerde systemen: als je de peers van een node bestuurt, bestuur je zijn bewustzijn van het netwerk. Ethan Heilman en medewerkers presenteerden een van de eerste praktische eclipse-aanvallen op Bitcoin bij USENIX 2015 [6], en in 2018 beschreef het Erebus-aanvalspapier een "heimelijke" eclipse-aanval via een kwaadaardig Autonoom Systeem (AS) [7].
Deze aanvallen maken grotendeels gebruik van zwakke punten in de manier waarop de netwerken van het internet onderling communiceren, zoals AS-routeringstopologie of via een protocol genaamd het Border Gateway Protocol (BGP). Hoewel er voortdurende initiatieven zijn om het BGP-protocol te beveiligen – BGPsec, RPKI – hebben ze beide beperkingen die goed worden begrepen, en laten de beheerders van het internet verlangen naar sterkere oplossingen. Tot die tijd zal het internet het wilde westen blijven.
Een recente analyse door cedarctic bij Chaincode Labs ontdekte dat Bitcoin-nodes zich binnen slechts 4.551 AS's bevinden, een vrij klein subdeel van de samenstellende netwerken die het internet vormen. Ze beschrijven een reeks aanvallen die tot eclipse-aanvallen kunnen leiden door het upstream-AS waarin nodes opereren te compromitteren [8]. De kleine verdeling van nodes onder AS's en de specifieke relaties tussen deze AS's creëert een unieke aanvalsvector. Hoewel er herstelmaatregelen zijn, is het onduidelijk of deze aanvalsvector van tevoren goed werd begrepen door bitcoiners of hun tegenstanders.
Elke aanval die afhankelijk is van het compromitteren van een of meerdere AS's vereist middelen, coördinatie en vaardigheden om te bereiken. Hoewel er geen succesvolle aanval van dit type is gemeld op een Bitcoin-node, zijn dergelijke aanvallen met succes uitgevoerd tegen miners [9], wallets [10], swap-platforms [11] en bridges [12]. Hoewel we het internet niet gaan repareren, kunnen we nodes bewapenen met de tools om in deze vijandige omgeving te opereren.
Hieronder staan enkele functies en functionaliteiten die Bitcoin Core heeft ontwikkeld of waarvoor geïntegreerde ondersteuning is geboden om gebruikers te wapenen tegen aanvallen op netwerkniveau:
TOR (the Onion Router) is het oudste op privacy gerichte overlay-netwerk dat in Bitcoin Core is opgenomen. Het creëert hops tussen een willekeurig netwerk van peers om verkeer te verdoezelen.
v2transport [13] versleutelt verbindingen tussen peers en verbergt het verkeer voor snuffelaars en censoren. Het doel is om passieve netwerkwaarnemers te dwarsbomen bij het bespioneren van de inhoud van je communicatie met andere nodes.
I2P (the Invisible Internet Project [14]) is een optionele functie van Core die een extra, privé, versleutelde laag aan iemands verbindingen mogelijk maakt. Het is een Tor-achtig anonimiteitsnetwerk dat afhankelijk is van peers om verkeer tussen clients en servers te verdoezelen.
ASmap [15] is een andere optionele functie van Core die een mitigatie implementeert voor de Erebus-aanval die de auteurs al in het paper hebben geschetst, en die van toepassing is op alle AS-gebaseerde aanvallen. Door Bitcoin's peering-mechanisme bewust te maken van het AS waar peers vandaan komen om diversiteit tussen peers te garanderen, wordt een eclipse exponentieel moeilijker, omdat een aanvaller veel AS's zou moeten compromitteren, wat zeer onwaarschijnlijk en bijna onmogelijk is zonder te worden gedetecteerd. Bitcoin Core ondersteunt het nemen van een kaart van IP-netwerken naar hun AS (een AS-map) sinds Core 20.0, en het Kartograf-project stelt elke gebruiker in staat om eenvoudig zo'n ASmap te genereren.
Gezien het feit dat het internet waarschijnlijk kwetsbaar zal blijven voor veel aanvallen, is een van de dingen die we kunnen doen het observeren van het gedrag van onze peers om kwaadaardig gedrag te proberen te detecteren. Dit is de aanleiding achter het peer-observer project van 0xb10c [16]. Het biedt een volledig op eBPF tracepoint gebaseerd logging-systeem (een manier om de kleinste acties in een programma dat op een besturingssysteem draait te observeren) om de activiteit van een node te observeren, inclusief peer-gedrag. Het geeft je ook alles wat je nodig hebt om je eigen logging-systemen te bouwen.
Het beveiligen van het vermogen om verbinding te maken met peers en berichten uit te wisselen is een hoeksteen van wat Bitcoin laat tikken.
Bitcoin opereert in een multidimensionale vijandige omgeving, waarin veel van de bedreigingen worden gecreëerd door beperkingen van de architectuur van het internet zelf. Als Bitcoin moet overleven en floreren, moeten zijn ontwikkelaars en gebruikers leren navigeren door deze vreemde wateren.
De prijs van open netwerken is eeuwige waakzaamheid.
Bestel vandaag nog je exemplaar van The Core Issue!
Mis je kans niet om The Core Issue te bezitten — met artikelen geschreven door vele Core Developers die zelf de projecten uitleggen waaraan ze werken!
Dit stuk is de Brief van de Redacteur uit de nieuwste gedrukte editie van Bitcoin Magazine, The Core Issue. We delen het hier als een vroege blik op de ideeën die in het volledige nummer worden onderzocht.
[0] https://web.mit.edu/gtmarx/www/connect.html
[1] https://satoshi.nakamotoinstitute.org/emails/cryptography/4/
[2] https://bitcoincore.org/en/2019/11/08/CVE-2017-18350/
[3] https://bitcoincore.org/en/2024/07/03/disclose-unbounded-banlist/
[4] https://delvingbitcoin.org/t/fingerprinting-nodes-via-addr-requests/1786/
[5] https://en.wikiquote.org/wiki/Ellen_Ullman
[6] https://www.usenix.org/system/files/conference/usenixsecurity15/sec15-paper-heilman.pdf
[7] https://ihchoi12.github.io/assets/tran2020stealthier.pdf
[8] https://delvingbitcoin.org/t/eclipsing-bitcoin-nodes-with-bgp-interception-attacks/1965
[9] https://www.theregister.com/2014/08/07/bgp_bitcoin_mining_heist/
[10] https://www.theverge.com/2018/4/24/17275982/myetherwallet-hack-bgp-dns-hijacking-stolen-ethereum
[11] https://medium.com/s2wblog/post-mortem-of-klayswap-incident-through-bgp-hijacking-en-3ed7e33de600
[12] www.coinbase.com/blog/celer-bridge-incident-analysis
[13] https://bitcoinops.org/en/topics/v2-p2p-transport/
[14] https://geti2p.net/en/
[15] https://asmap.org
[16] https://peer.observer
[13] https://github.com/asmap/kartograf
Dit bericht The Core Issue: Your Node Vs. The Digital Wilderness verscheen voor het eerst op Bitcoin Magazine en is geschreven door Julien Urraca, Fabian Jahr, 0xb10c en CedArctic.


