Mag je Metasploit-modules publiceren voor kwetsbaarheden in software?

metasploit-security-scannerEen lezer vroeg me:

Vanuit een research-oogpunt zou ik graag Metasploit modules willen publiceren voor gedichte kwetsbaarheden in veelgebruikte software. Kan dit zomaar of ben je dan strafbaar bezig?

Het is strafbaar om een kwetsbaarheid te exploiteren en zo binnen te dringen in een computersysteem. Dat is de computervredebreuk uit artikel 138ab Strafrecht.

Aanvullend is het strafbaar om exploits te maken, verkopen, verkrijgen, invoeren, verspreiden of anderszins beschikbaar te stellen of voorhanden te hebben (art. 139d Strafrecht). Maar niet elk stukje code dat een kwetsbaarheid gebruikt om toegang te verschaffen is een exploit in de zin van de wet.

Er gelden drie eisen:

  1. het moet gaan om een technisch hulpmiddel, het moet dus iets ‘doen’. Een uitleg in gewoon Nederlands valt hier waarschijnlijk niet onder, hoewel in de context van betaaltelevisie kraken een stappenplan in een tijdschrift wél als ‘voorwerp’ strafbaar was.
  2. met het hulpmiddel moet je computervredebreuk kunnen plegen. Een exploit die alleen maar méldt dat er een kwetsbaarheid is, zonder daadwerkelijk binnendringen te faciliteren, is dus niet strafbaar.
  3. het hulpmiddel moet “hoofdzakelijk geschikt gemaakt of ontworpen” zijn daarvoor. Een tool die toevallig en ondergeschikt ook gebruikt kan worden voor computervredebreuk, is dus niet strafbaar.

De discussie zal vooral gaan over punt 3. Wanneer is iets “hoofdzakelijk geschikt of ontworpen” voor een misdrijf?

Die grens ligt denk ik bij de uitstraling. Sommige tools zijn duidelijk bedoeld als serieuze tools voor security onderzoekers, andere tools zijn duidelijk ‘hacktools’ met de bekende groene letters op zwarte achtergrond en verlokkingen dat je iedereen hiermee kunt h4xoren. De wet is bedoeld voor het laatste.

De grens hiertussen is natuurlijk vaag, maar dat is een juridische feature. Het zal dus afhangen van hoe de tool wordt gepresenteerd en wat de uitgever ervan zegt in zijn aankondiging en reclame voor de tool. “Nu snel iemands MSN/Hotmail kraken” of “Onderzoek of uw bedrijfsdata nog wel veilig is” maakt voor mij veel verschil.

De site van Metasploit ziet er voor mij best serieus uit, en is duidelijk geschreven voor professionals die hun eigen netwerk willen beschermen. Daarom denk ik niet dat een Metasploit-module snel als “hulpmiddel hoofdzakelijk geschikt gemaakt of ontworpen voor computervredebreuk” wordt gezien.

17 reacties

  1. De site van Metasploit ziet er voor mij best serieus uit, en is duidelijk geschreven voor professionals die hun eigen netwerk willen beschermen.

    Zo kon je vroeger ook ‘videoverbeteraars’ kopen, die waren bedoeld voor het ‘beter maken’ van je videosignaal. Dat die “toevallig” ook een VHS Macrovision beveiliging uit een videosignaal sloopte, dat was natuurlijk een bijeffect. En zo’n R4 kaartje voor je Nintendo, die is voor ontwikkelaars die zelf spellen maken. Uhuh.

    Ok, dat is ietwat gechargeerd, want Metasploit wordt in tegenstelling tot bovengenoemde voorbeelden niet vrijwel alleen illegaal gebruikt. Maar ik vind dat “hoe de tool wordt gepresenteerd” op zichzelf niet heel goed door de gemiddelde giecheltoets heenkomt.

  2. Aanvullend is het strafbaar om exploits te maken, verkopen, verkrijgen, invoeren, verspreiden of anderszins beschikbaar te stellen of voorhanden te hebben (art. 139d Strafrecht).

    Volgens mij is dit helemaal niet strafbaar volgens art. 139d. Dat artikel spreekt over:

    1. Met gevangenisstraf van ten hoogste een jaar of geldboete van de vierde categorie wordt gestraft hij die met het oogmerk dat daardoor een gesprek, telecommunicatie of andere gegevensoverdracht of andere gegevensverwerking door een geautomatiseerd werk wederrechtelijk wordt afgeluisterd, afgetapt of opgenomen, een technisch hulpmiddel op een bepaalde plaats aanwezig doet zijn.
    2. Met dezelfde straf wordt gestraft hij die, met het oogmerk dat daarmee een misdrijf als bedoeld in artikel 138a, eerste lid, 138b of 139c wordt gepleegd. (…) Er moet dus het oogmerk tot het plegen van een misdrijf of een oogmerk tot (wederrechtelijk!) afluisteren/aftappen/opnemen aanwezig zijn. In het geval van een research-oogpunt, zoals bij de vraagsteller, lijkt mij hier geen sprake van.
  3. Eis 1 lijkt me wat kort door de bocht geformuleerd. m.i. is in het Canal+ arrest niet het stappanplan op zichzelf als strafbaar voorwerp bestempeld, maar het stappenplan als (geadverteerd) systeem dat “kennelijk bestemd [is] tot het plegen van het misdrijf om met het oogmerk daarvoor niet volledig te betalen door een of meer technische ingrepen […] gebruik te maken van een dienst die via telecommunicatie aan het publiek wordt aangeboden …”

    Ofwel: het stappenplan is ‘slechts’ strafbaar in het licht van het oogmerk van de toepasser.

  4. Als iemand claimt dat een software-fout te exploiteren is als security-hole, dan zou ik als serieuze security-onderzoeker meer willen hebben dan alleen een stukje code dat met een boolean teruggeeft of de fout aanwezig is of niet. Maak maar een stukje code dat me op basis van de fout een root shell geeft!

    Ik denk dat het belangrijk is dat mensen dit soort onderzoek kunnen doen; dat draagt uiteindelijk bij tot een security-bewuste cultuur en veiligere software. Juridische onzekerheid kan een grote barrière vormen voor mensen om hier aan deel te nemen; we moeten juist een omgeving creëren waarin het helemaal veilig is voor mensen om met zulk onderzoek mee te doen.

    Zou het geen goed idee zijn om de wet te verduidelijken, zodat het maken van software, het toepassen van die software op je eigen computer-systemen en het publiceren van software altijd legaal is? Het zonder toestemming toepassen van de software op andermans computer-systemen zou nog steeds verboden moeten zijn, als dat in de praktijk neer komt op “hacken”.

    Je legaliseert dan het maken van “digitaal inbrekersgereedschap”. Ik vind dat een kleine prijs om te betalen, zeker omdat het effect meestal zal zijn dat het inbrekersgereedschap binnen korte tijd zijn nut zal verliezen.

    Het zou ook het “assisteren bij inbraak” kunnen legaliseren, met mogelijk effect dat een hacker vrijuit zou kunnen gaan als ‘ie zijn hacker-tools gebruiksvriendelijk maakt, en een junkie van straat plukt om het werkelijke “hacken” te laten doen met een paar muisklikken. Ik denk dat je dat wel kunt ondervangen met algemene medeplichtigheids-wetgeving (assisteren van een concrete handeling waarvan je WEET dat het een misdaad is).

  5. De site van Metasploit ziet er voor mij best serieus uit, en is duidelijk geschreven voor professionals die hun eigen netwerk willen beschermen. Daarom denk ik niet dat een Metasploit-module snel als “hulpmiddel hoofdzakelijk geschikt gemaakt of ontworpen voor computervredebreuk” wordt gezien.

    Ik denk dat wel 80% van alle malware komt voortkomt uit of is gebaseerd op metasploit code.

      1. Het gaat er niet om of 80 % van de daders een skimask van Bever draagt. Ik denk dat je de vraag wilt oproepen of Bever wat moet doen als 80 % of meer van de skimasks die ze verkopen voor een overval gebruikt wordt.

  6. Ongeacht de wet ervan zegt, denk ik dat je dergelijke zwakheden juist moet publiceren; dat is namelijk de enige manier om er voor te zorgen dat dergelijke zwakheden effectief worden aangepakt. Als het niet direct kan, zoek dan een omweg om jezelf te beschermen (wikileaks achtig), maar publiceer toch.

    Zonder dat de zwakheid algemeen bekend is zijn er te veel belangen om deze in stand te houden (kosten voor ontwikkelaar om een en ander te fixen; te mooie achterdeur voor NSA en andere schimmige partijen, enzovoort.)

    Ook moet je dergelijke zwakheden publiceren inclusief een direct werkbare exploit, niet als een of ander theoretisch verhaal, omdat met een theoretisch verhaal het excuus altijd zal zijn, dat nog niet is aangetoond dat het in de praktijk zo werkt.

    Dat het potentieel strafbaar dit soort zwakheden te communiceren is idioot en ondermijnt de veiligheid van dergelijke systemen, dat je er zelfs maar over moet nadenken is al te gek voor woorden; het is alsof je niet mag testen of fysieke sloten wel voldoen aan bepaalde normen (en dat je daarbij je eigen sloten test, en niet ’s nachts om drie uur die van een willekeurig huis spreekt natuurlijk voor zich).

    Kijk bijvoorbeeld naar het recente Lenovo/Superfish debakel. Zonder publicatie hiervan was Lenovo nooit in actie gekomen, en als bepaalde voorgestelde wetgeving doorgaat, dan kan het zijn dat het melden van dit soort lekken je in de gevangenis doet belanden… de wereld op zijn kop dus.

    @Hal: Wetenschappelijk onderzoek zonder openbare publicatie bestaat niet.

    1. De meeste wetenschappelijke papers zijn niet direct door het grote publiek in de praktijk te brengen. Dat is ergens wel een verschil. Als ik aantoon dat een Axa-slot makkelijk te openen is, dan is dat één ding; heel Nederland een loper in de brievenbus gooien is iets anders.

      Er was tien jaren terug flink wat ophef toen iemand publiceerde dat alle supersterke Kryptonite fietssloten te openen waren met een balpen. Deel van de ophef was toen dacht ik ook “zég dat nou niet want iedere dief gaat dat meteen misbruiken” (hoewel ik er geen bron meer van kan vinden).

      1. Het is wel wat lastig te definiëren wanneer het wel of niet geschikt zou zijn om dergelijke exploitcode online te plaatsen. Sommige exploits zijn, wanneer eenmaal ontdekt, bijzonder makkelijke te exploiteren. Zou je hiervan dan wel de code online mogen plaatsen? En waarom dan niet voor exploits die moeilijker toe te passen zijn? Het publiceren is juist een manier om de publieke aandacht op het probleem te vestigen, dat is vaak ook de reden van het publiceren van dergelijk materiaal. Of de achterliggende reden nou is om het ego van de publiceerder te strelen, zijn portemonnee te spekken of om de ontwikkelaar van de software (eindelijk) te dwingen het probleem te verhelpen kan mij eerlijk gezegd aan mijn derrière oxideren.

      2. Het probleem is dat gebleken is dat zolang er niet een door iedere scriptkiddie uit te voeren geautomatiseerde exploit is, het bestaan van een “theoretisch” lek gewoon genegeerd wordt. Het niet publiceren van dergelijke geheel uitgewerkte exploits is dus onverantwoord. Het enige wat ik wel voorsta is om de verantwoordelijke partij even op de hoogte te stellen, en wat tijd te gunnen het probleem op te lossen, maar ook daar is al gebleken dat sommige partijen dan ook gelijk in de aanval gaan, en zwaar juridisch geschut in stelling brengen. Dan is het enige dat verantwoordelijke gedrag dat overblijft de exploit gelijk (desnoods via een anonieme route of een buitenlandse partij) publiek te maken. Het probleem zit hem dan met name in de partij die dat juridische geschut in stelling brengt, en daarmee een verantwoorde manier van oplossen onmogelijk maakt.

        Als er voor een bepaald merk fietsslot een loper bestaat, is dat ongewenst, en mag je wat mij betreft dit feit aan de grote klok hangen, compleet met een 3D printbare definitie van die loper.

  7. Met gevangenisstraf van ten hoogste een jaar of geldboete van de vierde categorie wordt, als schuldig aan computervredebreuk, gestraft hij die opzettelijk en wederrechtelijk binnendringt in een geautomatiseerd werk of in een deel daarvan.

    Ik had een vraag over “wederrechtelijk”. U heeft het in deze blog eerder gehad over zaakwaarneming. In het geval van zaakwaarneming is het binnendringen van een huis om een pannetje overkokend melk van het gas te halen geen wederrechtelijk binnendringen. Zijn er meer van dat soort gevallen?

    En in hoeverre is dit recht vrijwillig op te geven? Steeds meer bedrijven hebben security bug bounties of bieden mogelijkheid tot responsible disclosure. Of is hier dan sprake van een soort gedoging: “Uw binnendringen is nog steeds wederrechtelijk, maar wij zullen u hier niet voor vervolgen”?

    Laatste vraag: Is bij het uitvoeren van non-persistent (raakt geen andere gebruikers) XSS op een eigen account sprake van binnendringen? Alle code wordt immers client-side uitgevoerd. En in het geval van persistent XSS, er is een verschil qua binnendringen tussen [script]alert(1)[/script], en [script]stuur uw inlog-cookie naar mijn server[/script].

  8. Zaakwaarneming en noodweer zijn de belangrijkste redenen om wederrechtelijkheid te weerleggen. Maar ik kan me noodweer moeilijk voorstellen bij ICT-zaken. Dan moet je eerder denken aan, ik word bedreigd met een pistool en ik verdedig me met jouw dure vaas, die vervolgens sneuvelt. Dat is dan geen strafbare vernieling of diefstal want ik móest me wel verdedigen.

    Als iemand zegt “je mag X doen mits Y” dan is X in die situatie niet wederrechtelijk. Er is dan immers een recht gegeven. Je bent neit wederrechtelijk op iemands grond als je uitgenodigd wordt binnen te komen. Zeg ik “niet-rokers zijn welkom” en steek jij binnen een sigaret op, dan ben je vanaf dát moment wel wederrechtelijk in mijn huis. Je moet dan weggaan zodra ik het zeg.

Geef een reactie

Handige HTML: <a href=""> voor hyperlinks, <blockquote> om te citeren, <UL>/<OL> voor lijsten, en <em> en <strong> voor italics en vet.