Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Je kunt ook een cookievrije versie van de website bezoeken met minder functionaliteit. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

Door , , reacties: 89, views: 20.230 •

Drie onderzoekers van de Stanford Universiteit hebben manieren gevonden om captcha's, die onder meer spambots moeten tegengaan, te kraken. De beveiliging van grote sites als eBay en Wikipedia blijkt er makkelijk mee te passeren.

Een captcha toont een aantal letters en cijfers die dusdanig zijn verhaspeld dat ze wel door mensen, maar niet door computers kunnen worden gelezen. Dat zou het voor spambots onmogelijk maken om geautomatiseerd accounts te registreren; registratieformuleren op veel websites maken gebruik van captcha's.

Met het Decaptcha-project zijn onderzoekers van de Stanford Universiteit erin geslaagd manieren te ontwikkelen om de automatische websitebeveiliging te kraken. Het programma verwijdert de zichtbare 'ruis' in de afbeeldingen, zet de letters om in platte tekst en maakt de captcha's voor computers leesbaar. Dit gebeurt in een fractie van een seconde, staat in het onderzoek.

De onderzoekers probeerden hun software uit op verschillende grote sites, met diverse soorten captcha's. Grote sites als eBay, Wikipedia, CNN, Baidu, Digg en Visa's Authorize.net bleken te omzeilen. Van de vijftien geteste captcha's bleven alleen die van Google en Recaptcha redelijk buiten de gevarenzone. Hun captcha's konden onder andere minder vaak gekraakt worden omdat de gebruikte methodes het moeilijker maakten het aantal en de gemiddelde grootte van de tekens te bepalen.

Eerder toonden de Stanford-informatici al kwetsbaarheden in audio-captcha's aan. Die lagen aan de manier waarop de software werkt; de cijfers en letters uit de captcha's die in de audiofragmenten hoorbaar zijn, vormen pieken in een spectrumanalyse. Die pieken worden van ruis gescheiden, maar bij spraak als storende component werkt dat niet. Audio-captcha's worden gebruikt om slechtzienden te helpen bij het oplossen van een captcha.

Websites kwetsbaar voor Decaptcha De werkwijze van Decaptcha

Reacties (89)

Zelf bij het maximale trainingsnet haalt deze methode bij blizzard minder dan 5% succes. Blizzard zit juist goed.
Als je goed naar de grafiek kijkt, zie je dat Blizzard bij de maximale trainings-set grootte op 70% success uitkomt. Je hebt waarschijnlijk naar Baidu gekeken; die hebben driehoekjes gekregen, waar Blizzard omgekeerde driehoekjes heeft.

Verder is Darkfreak's post lekker ordinair fipo gedrag.
captcha is ook helemaal niet nodig naar mijn idee. Bots zijn erop gemaakt om alle form velden in te vullen en dan een submit te doen.

Gewoon een extra dummy veld toevoegen met wel een logische naam voor je form. Dit veld verberg je dan via je CSS style zodat een gebruiker deze niet ziet. Op het moment dat er een form post binnenkomt waar dit hidden field is ingevuld dan is het hoogst waarschijnlijk een bot.

Met deze techniek val je de gebruiker niet lastig maar ben je wel beschermd tegen spam.

Update:
Bedankt voor de interessante reacties. Ik ben het inderdaad eens dat een gerichte aanval hiermee niet verholpen gaat worden; maar dat het voornamelijk gericht is op kleinere websites die last hebben van geautomatiseerde bots. Dit zijn ook de bots die geen tijd / moeite nemen om javascript en css uit te lezen en te analyseren.

[Reactie gewijzigd door Fealine op 4 november 2011 12:57]

Als dit ook daadwerkelijk werkt, vind ik het eigenlijk een heel erg slimme methode om bots tegen te gaan!
Dat werkt eigenlijk totaal niet. Als je een bot maakt welke dan is het achterhalen van een dynamisch input veld niet zo lastig via de DOM. Ik ben in het verleden ook wel forms tegen gekomen welke juist een veld uit het form verwijderen.

Maar beide methodes zijn erg gemakkelijk te omzeilen en kun je alleen gebruiken om sessie hijacking te voorkomen. Echter als iemand een bot maakt om automatisch form posts te sturen naar jouw website, kan wordt daar tijd in gestoken.

Voor spammers is het bijvoorbeeld handig als jij een groot aantal hotmail accounts kunnen aanmaken om spam te versturen. Denk je nauw serieus als dat soort spammers de tijd nemen om de captcha van Hotmail te kraken, dat ze dan niet de tijd nemen om de website te bestuderen?
Dit werkt inderdaad niet tegen bots die specifieke websites targeten, daar zul je toch iets anders voor moeten verzinnen. Een captcha is een van de mogelijkheden (al blijkt het nu dus goed mogelijk om ook die te kraken), maar die is niet heel gebruiksvriendelijk. Echt goede alternatieven zijn er niet.

Zo'n honeypot werkt echter prima tegen bots die het web crawlen op zoek naar formuliertjes om spam te posten. Op die manier heb ik al meer dan 100 emailtjes gestopt in minder dan een maand. Het grote verhaal: http://daanwilmer.nl/blog/12/spam-protection
Top idee, maar zouden bots die complexe afbeeldingen interpreteren, ook niet zo slim zijn om vormen van onzichtbaarheid te detecteren zoals
- Hidden fields (input type hidden)
- onzichtbare fields (css property, inline styling, ...)
Voor kleinere websites werkt dit, omdat de spambots die zulke sites aanvallen gewoon alle velden invullen en submitten. Die speuren het web af zonder gedoe als javascript en css, want dat kost alleen maar (relatief veel) geheugen. Als je dus een veldje "email" noemt waar je niks moet invullen (de 'honeypot'), dan weiger (en blacklist) je iedereen die het veld wel heeft ingevuld. Daarnaast geef ik het formulier een timestamp mee zodat oude formulieren geweigerd worden. Vooralsnog heeft deze methode bij mij 100% nauwkeurigheid en val ik niemand lastig met irritante captcha's.

Een gerichte aanval is niet te voorkomen. Wellicht door de namen van de velden te hashen, maar iemand die gericht aanvalt zal een kleine succes rate ook nog wel aanvaardbaar vinden. Op zo'n moment kun je weinig meer doen dan het formulier uitschakelen of een (goede) captcha aanzetten.
Precies!

Dit zou gewoon een evolutie zijn in de wapenwetloop van de captcha, maar absoluut geen afdoende middel. Controleren op onzichtbare velden is t simpel, en bovenal, t generiek.

Wat je moet hebben, is een controle die uniek is voor iedere website. Zo gauw de controle algemeen wordt, kun je bots er op trainen. Als iedereen een onzichtbaar veld genereert, dan zullen de bots hl snel getraind worden in het herkennen er van.

Iets wat vl lastiger is, is om de gebruiker een vraag te stellen, die ze moeten beantwoorden. Bijvoorbeeld om een missend woord in een bekend spreekwoord in te vullen. Of bijvoorbeeld een wiskundige vraag, maar dan wel in woorden opgesteld. Zo iets van " Bob heeft negen euro, en geeft twee euro aan zijn broer, en ieder drie euro aan zijn beiden zusjes. Hoeveel euro heeft hij hierna nog over?" Dat is al vl lastiger om een bot voor te trainen.
Als je honderduizenden van dat soort vragen moet bedenken lijken ze onvermijdelijk veel op elkaar. Dan ontdek je al gauw een patroon erin, dat simpeler op te lossen is dan een plaatje of geluid te herkennen.
Daar heb je een goede te pakken! Hier had ik zelf niet aan gedacht, maar ook nooit over gelezen.

Ik ga eens onderzoeken of dat leuk werkt! Handig voor klanten, waarvoor we websites met Wordpress maken. Ze zijn nooit blij met rekensommetjes of verificatie plaatjes in hun contact form.
Ik zie toch ook andere typen bots, waarschijnlijk bots die je handmatig eenmalig een post voordoet waarna ze het http-post requets herhalen met nieuwe data.

Die zijn vaak te herkennen aan dat ze een submit doen, zonder de pagina met het formulier bezocht te hebben. (een snelle oplossing is een volgnummer in het form en een maximum aan het aantal keer dat dat nummer gesubmit mag worden, maar dat breekt ook de back-knop echte mensen.)

Ik had bedacht een sommetje mee te leveren en de oplossing te vragen aan de gebruiker (eventueel hidden als de browser javascript kan uitvoeren). Door ook de som in het form te zetten behoud je het stateless gedrag.
Dat bleek prima te werken, totdat er ook bots langs kwamen die steeds dezelfde som (+oplossing) submitten. Ik heb toen maar een timestamp toegevoegd en accepteer geen submits meer die na 24 uur binnenkomen. Dat werkt voorlopig weer perfect.

Het houdt de automatisch bots tegen, maar als je even de moeite neemt, heb je dat ook zo omzeilt, dus een gerichte aanval houd het niet tegen.


Overigens is dat hele captcha gebeuren zo lek als een mandje. Op wikipedia staat zelfs al hoe je ze kunt omzeilen.

Je kunt eenvoudig een pagina maken waar de bezoeker een captcha moet oplossen en daarvoor gebruik je gewoon de captcha die google jouw bot voorschotelt. Voor elke gebruiker die op je site de captcha's invult, kan je bot dan bij google inloggen.

Broken by design.
Dat laatste is makkelijk te voorkomen door te zorgen dat je plaatjes niet gehotlinked kunnen worden.
Ohja? Maak je er toch een nieuw plaatje van?
Dit veld verberg je dan via je CSS style zodat een gebruiker deze niet ziet.

Bots kunnen ook kijken of dat een input veld zichtbaar is of niet. Dan is het beter om deze wel zichtbaar te maken maar bijvoorbeeld een plaatje ervoor te zetten. Dat is weer moeilijker.
Maar met al dit soort technieken is het zo dat zo gauw men af weet welke techniek er gebruikt wordt, een tegen techniek gemaakt kan worden.

Verder moet je rekening houden met de intelligentie van een bot-bouwer. Zo'n bot-bouwer had misschien nooit op het idee gekomen om de captcha's op deze manier te omzeilen. Maar een stel knappe koppen van een universiteit wel en reiken vervolgens bot-bouwers de oplossing aan die nu in hun handen wrijven. Misschien dat je nu kan afvragen wie de intelligentste is :P
En de bots zouden dit na 1 a 2 keer niet zelf kunnen detecteren? Als de browser weet datie het moet verbergen, dan kan een bot het ook weten..
Van de vijftien geteste captcha's bleven alleen die van Google en Recaptcha redelijk buiten de gevarenzone.
reCAPTCHA is trouwens van Google. Google heeft nog een andere, simpelere vorm van captcha's, waarbij ze gebruik maken van een ander soort afbeeldingen. Voorbeeld hier

Bij reCAPTCHA worden boeken gedigitaliseerd met behulp van captcha's. Aangezien mensen er dan voor zorgen dat de herkenning van de letters verbeterd wordt. Eigenlijk wel ironisch, aangezien datzelfde gebruikt wordt door hackers om de beveiliging te kraken.
Wat ik mij alleen afvraag: hoe weet de computer dan of het antwoord goed is, als het gebruikt wordt om de 'letterherkenning' te verbeteren?

[Reactie gewijzigd door oohh op 4 november 2011 10:20]

Waarschijnlijk bedoelden ze de capchas die google gebruikt voor zijn services.
Dat is geen reCAPTCH voor zover ik weet.
Bij reCAPTCHA moet je twee woorden overtypen. Van n van de woorden weet 'het systeem' (OCR) al wat er staat, bij de ander nog niet.
Nadat het onbekende woord bij genoeg mensen is verschenen met meerdere malen hetzelfde antwoord, gaan ze er van uit dat het gegeven antwoord juist moet zijn.

Maar in principe kan je dus vaak door de reCAPTCHA heen door alleen het duidelijkste woord correct over te typen.
Juist het onduidelijkste woord. Het duidelijkste is het woord dat Google wil leren (en dus niet vervormt), het andere is het woord dat google kent en dus lekker kan gaan vervormen.
In het geval van reCAPTCHA worden twee "woorden" weergeven, van een woord weet het systeem de tekenreeks en voor het andere woord wordt alles goedgekeurd. Het systeem maakt dus de aanname dat wanneer een van de twee woorden klopt de ander ook goed zal zijn.
Bij reCAPTCHA worden er twee woorden weergegeven. En woord kent Google al, dus dat is de feitelijke check. Het andere woord kent Google nog niet, dus dat is het leer-woord. Als genoeg mensen een bepaald antwoord hebben gegeven op het leer-woord, en er weinig antwoorden gegeven zijn die bovengemiddeld afwijken, dan wordt het leer-woord in de database opgenomen en gebruikt als nieuw check-woord voor de volgende tests. Als reCAPTCHA-invuller weet je niet welk van de twee woorden het leer-woord of het check-woord is, dus moet je ze beide invullen.

Probeer maar eens en vul n woord correct in en het andere woord duidelijk incorrect. 50% kans dat het toch geaccepteerd wordt.

[Reactie gewijzigd door Virtlink op 4 november 2011 10:30]

Probeer maar eens en vul n woord correct in en het andere woord duidelijk incorrect. 50% kans dat het toch geaccepteerd wordt.
Google 'operation renigger' eens.

Als je vaker dan twee keer per week tegen een recaptcha aankijkt kun je zo zien welke het controlewoord is.
"But if a computer can't read such a CAPTCHA, how does the system know the correct answer to the puzzle? Here's how: Each new word that cannot be read correctly by OCR is given to a user in conjunction with another word for which the answer is already known. The user is then asked to read both words. If they solve the one for which the answer is known, the system assumes their answer is correct for the new one. The system then gives the new image to a number of other people to determine, with higher confidence, whether the original answer was correct."

Een mooi systeem dus!
Een belachelijk systeem. Je laat elke bezoeker een stukje werk doen dat niets met de verificatie te maken heeft. Bovendien kun je op dezelfde manier je captchas breken.
Wat is er zo belachelijk aan? Als je als OCR software een woord niet kan lezen is dat JUIST een goed woord om aan te bieden. Stel dat 10 mensen hem eerder identiek beantwoord hebben en een bot komt het verkeerd doen (om dat die het ook niet kan lezen), weet je dus dat het een bot is.

Als je tekst gebruikt die met eisen OCR software 'gevonden' is en leesbaar, dan kan een bot het dus ook lezen.
Nee op die manier is het niet te breken, daar hebben ze een aantal fail safes voor. 4chan heeft al eens een poging gedaan door voor het tweede woord altijd het "n" woord te gebruiken en een zooi bots op te zetten die constant 2x dat woord ingaven. Het is namelijk wel te zien welk woord het leerwoord is. Het is heel even mogelijk geweest te posten met 2x het "n" woord maar volgens mij halen ze die woorden er gewoon uit, zodat ze altijd als fout worden gezien.
nigger werkt nog gewoon hoor.

Ze kunnen 't niet filteren; wat als het niet herkende woord daadwerkelijk 'nigger' is? Wat wel degelijk voor is gekomen.
Omdat er meer dan 1 correct antwoord nodig zijn.

Bij iedere "vraag" worden er 2 woorden gebruikt, 1 daarvan is 1 woord dat al 1 of meerdere keren werd opgevraagd, hierdoor weten ze welk woord hierachter schuilgaat.
Een ander is 1 die nog onzeker is of een nieuw woord.

Dat is zo ongeveer het algoritme, maar het zal wel een klein beetje verschillen ;)
reCAPTCHA is ook niet meer betrouwbaar. Ik gebruikte het vroeger op een aantal Drupal websites, maar op een gegeven moment kwamen de spamberichten erdoor. Overgestapt om mollom en er weinig last meer van.
An sich is reCAPTCHA nog altijd veilig. Het is echter zo dat er systemen bestaan waarbij men CAPTCHA's kan laten invullen door andere mensen voor geld, of in ruil voor punten die je zelf verzamelt door CAPTCHA's in te vullen. Op die manier kunnen bots toch nog binnen geraken.

Een voorbeeld van zo'n systeem is captchatrader.com: per correcte reCAPTCHA krijg je 7 punten, om zelf een reCAPTCHA te laten ontcijferen heb je 10 punten nodig. Je kan ook gewoon voor een aantal dollar een hele hoop punten kopen zodat het ook "professioneel" kan gebruikt worden. Persoonlijk gebruik ik het enkel voor het downloaden van (legale) bestanden van bepaalde downloadsites, maar het kan dus even goed door botmakers gebruikt worden.

Dit is jammer genoeg een systeem waartegen je je zeer slecht kan wapenen aangezien het uitgevoerd wordt door echte mensen - en die mensen moeten nog altijd in staat zijn om die CAPTCHA's in normale omstandigheden op te lossen. Daarnaast vinden mensen het niet erg om zulke CAPTCHA's in te vullen als ze op die manier later gratis CAPTCHA's kunnen laten invullen door anderen.
Wat ik mij alleen afvraag: hoe weet de computer dan of het antwoord goed is, als het gebruikt wordt om de 'letterherkenning' te verbeteren?[
Omdat er altijd n controleerbare captcha instaat (deze is al bekend) en 1 nog niet onbekende die door het aan verschillende mensen aan te bieden steeds nauwkeuriger wordt...
reCAPTCHA is ook al tijden niet meer betrouwbaar
gebruikte het op een website en de spambots bleven vrolijk komen.

[Reactie gewijzigd door Gtoniser op 4 november 2011 10:17]

De fout kan dan ook heel goed ergens anders liggen he.
Een captcha toont een aantal letters en cijfers die dusdanig zijn verhaspeld dat ze wel door mensen, maar niet door computers kunnen worden gelezen
Nou, ik kan in veel gevallen die Captcha's niet (goed) lezen. Ik vind het maar onmogelijke rotdingen. Ik staar me soms rot om te ontcijferen wat er nou staat. Als je ze nou eens op elkaar lijkende letters/cijfers zouden elimineren, was het iets makkelijker om te lezen. Sommige zijn z slecht leesbaar dat ik een stuk of 3x een nieuwe moet vragen voor er 1 komt die ik kan ontcijferen.
9 van de 10 keer kan je ook een audio bestand van de captcha laten afspelen. (klikken op het geluids icoontje naast de captcha)

[Reactie gewijzigd door Ryan_ op 4 november 2011 10:32]

En dan hoor je zoiets als: o bjuu kjee, dus dan typ je: n o e b k, maar dan had het n o e q j moeten zijn, nee hoor, ik hoor dat niet goed.
En dan hoor je zoiets als: o bjuu kjee, dus dan typ je: n o e b k, maar dan had het n o e q j moeten zijn, nee hoor, ik hoor dat niet goed.
Met de snelheid van 5x
En dat terwijl de gemiddelde captcha voor een mens vaak al lastig te ontcijferen is. Ik ben soms wel 3-4x bezig om hem goed te hebben...
Inderdaad en meestal is dat bij het aanmaken van een account waar je wachtwoord dan ook opnieuw ingevoerd moet worden en het vinkje bij het akkoord gaan moet je meestal ook opnieuw aanvinken...

Ik heb daar al lang een breed een regel voor: 2x mij er niet in laten, wordt ik maar geen lid :)
"Een captcha toont een aantal letters en cijfers die dusdanig zijn verhaspeld dat ze wel door mensen, maar niet door computers kunnen worden gelezen."

Ik heb vaak de grootste moeite met Captcha. Kan ik weeeeer het formulier invullen. Ik hoop dat er binnenkort iets beters zal verschijnen.
Dat is gewoon slechte implementatie. Meer en meer sites versturen de captcha zelfs zonder pagina refresh, dan blijft alles gewoon staan en refresht het plaatje alleen. Andere sites laten na een pagina refresh alle velden vaak ingevuld, op password velden na.
waarom zo'n onderzoek? De methodes zullen vast wel weer uitlekken en beschikbaar worden op internet.

Gevolg: Krijgt de halve wereld weer allerlei spam via contact formulieren die zijn 'afgeschermd' met een captcha...

Zou mooi zijn als ze ook gelijk met een oplossing komen. ;)
Mijns inziens zijn dit soort onderzoeken juist enorm gewenst. Vroeg of laat zullen de spammers ook een methode ontwikkelen om zulke beveiligingen te omzeilen. Je hebt dus een voordeel als je dit al te weten komt voordat de spammers het ontwikkeld hebben, zodat je je beveiligingsmethodes kunt aanscherpen en de spammers weer een stap voor kunt blijven.
zodat je je beveiligingsmethodes kunt aanscherpen en de spammers weer een stap voor kunt blijven
hoe ga je die beveiliging aanscherpen dan? want daar hebben ze nog niets op bedacht... dus ik pleit ook tegen dit soort onderzoeken, en voor het onderzoeken voor betere manieren van "levende-gebruiker-herkeninng" of "bot-herkenning" hoe je het noemen wil
Captcha is zo irritant, meestal moet ik zo'n plaatje wel een aantal keren refreshen voor ik het zelf kan lezen.

Wel grappig die software, ook weer een ontwikkeling die AI wellicht kan verbeteren.

Op dit item kan niet meer gereageerd worden.



Populair:Apple iPhone 6Samsung Galaxy Note 4Apple iPad Air 2FIFA 15Motorola Nexus 6Call of Duty: Advanced WarfareApple WatchWorld of Warcraft: Warlords of Draenor, PC (Windows)Microsoft Xbox One 500GBSalaris

© 1998 - 2014 Tweakers.net B.V. Tweakers is onderdeel van De Persgroep en partner van Computable, Autotrack en Carsom.nl Hosting door True

Beste website van het jaar 2014