Breaking CAPTCHA with automated humans
troyhunt.com
troyhunt.com
This system has to be using enforced labour, no-one will work for that little, even in the poorest countries. And that 13 cents figure is assuming that 100% of revenue goes to the individual worker.
Taking the best case from the reported average of 10-15 seconds, that means an operator can solve 360 captchas per hour; an hourly revenue per worker of 36 cents.
I have a suspicion that this makes use of a similar 'economy' as the one about Chinese prisoners being forced to farm gold in WoW[1]
If you have just ten 'workers' on 12 hour shifts, that's $43 per day, $301 per week, $15,652 per year. The numbers start to stack up fairly well in bulk - assuming all 1.5 million Chinese prisoners[2] were able to sustain 12 hour shifts 365 days a year and maintain an average of 10 seconds per solve (and that there was a constant supply of paying customers), that's over 2 billion dollars annual revenue. Obviously that number's way off, but probably not by an order magnitude.
[1] http://www.pcworld.com/article/228716/chinese_prisoners_alle...
[2] As of 2006: http://www.kcl.ac.uk/depsta/law/research/icps/downloads/worl... [PDF]
Additionally, it supposes that all images being solved are the kind that a human must do. Tons of CAPTCHA images being output by naive generators can be solved automatically. I'd be surprised if every image submitted isn't going through an automated solver first with only the < 95% confidence ones being sent to a human.
Actually, you could do a hybrid model where every image is auto-solved and a human can either click to confirm that the auto-solver got it right or manually type a new response. That should get your time per solve down to a second or two each.
Yes, that's how I'd do it too, but I don't know if they're that sophisticated yet (they'll get there though).
Even with 1 second per solve, that's only $3.60 per hour. A massive improvement over 13c, but still certainly not worth anyone in my country's time.
"Spammers Pay Others to Answer Security Tests"[1]
choice quotes:
"spammers are paying people in India, Bangladesh, China and other developing countries to tackle ... captchas"
"attractive enough to lure young people in developing countries where even 50 cents an hour is considered a decent wage. Unskilled male farm workers earn about $2 a day in many parts of India. "
"students typically work two and a half to three hours a day from their homes and make at least $6 every 15 days"
"Another operator in Bangladesh who goes by the screen name Workcaptcha on Freelancer.com boasts on his profile page that his firm has 30 computers, up from just five a year ago. Three shifts of workers allow the operation to hum 24 hours a day, seven days a week"
[1] http://www.nytimes.com/2010/04/26/technology/26captcha.html?...
"This company help many poor company. I am received big position for gaf help so pls maintain gaf term & condition. I am really Love gaf & must going lifetime relation. Gaf best in this world. Trusty, Reliable & more. Thanks" - workcaptcha, Bhai Bhai Data Entry Service
????
> So they build all these CAPTCHA "breaking" sites that actually just return the correct result from their internal databases
Oh, haha, I see ;)
"I must admit, I do feel a bit sorry for the folks sitting there endlessly solving a never ending stream of CAPTCHAs; frankly, just one drives me a bit nuts! But what must have been even worse – and I need to take some blame here – is that while testing I kept submitting the same CAPTCHA over and over and over again. I can picture the poor operator sitting there thinking “WTF is this guy doing already?!” Then again, maybe they made some quick bucks because recognising the same pattern time and again becomes more efficient."
For the majority of the captcha solving services out there the same captcha is just solved ONCE. When a request is submitted to the API the image data is typically read from the image file and encoded in Base64 or in a similar format. The Base64 string representing the image is then sent to the captcha API.
The API will use the Base64 string as a key and check if it exists in a database/key-value store. If it exists, return the value for the Base64 string, if it doesn't exist, send it to one of the available workers. When the captcha is solved by a worker it is saved in the database. If someone would send in the same captcha next time (thus resulting in an identical Base64-encoded string representation of the image), the solved captcha text would just be sent back without any human interference.
I talked to one guy running one of these services a while ago and they set it up the following way:
1. Requests are sent using JSON to their API.
2. The Base64-encoded string representation of the image is checked against Redis to see if it has already been solved. If it has, return it to the client requesting it. Award the person who originally solved it 50% of the fee that the client is paying for it (thus enabling these captcha solvers to earn some kind of passive income).
3. If it hasn't been solved, run it through OCR-software. Is the result reliable enough? Save it in redis and return it to the client.
4. Is the OCR result not reliable enough? Send it off to a human worker. The worker solves the captcha, the captcha text is saved in Redis as a value associated with the key (the original Base64-representation of the image). Award the worker 75% of the fee the client paid. Return the solved captcha text to the client.
5. Deal with invalid captchas (remove entry from Redis, subtract from due commission to worker etc.)
6. Rinse and repeat. Scale with more servers + more workers.
Pretty cool stuff :D
In my testing, reissuing the same CAPTCHA I had saved locally over and over again didn't make a difference to the duration in which it was solved. Now it could be that they throttle responses for pre-solved CAPTCHAs, but then of course they're also throttling their revenue stream. In this case, I'm more inclined to conclude that Antigate don't have a CAPTCHA reuse mechanism in place.
Say you run a site that has 1000 users/minute authenticating, that means you actually have 1000/captchas/minute being solved - may as well sell those users (unwittingly performed) time.
The problem with that scheme is that you need to create or curate enough content to make it work and somehow make the people who might want that content aware that you can give it to them, and that is a lot more hassle and expensive than paying some impoverished 3rd world farmer to parse the captchas.
Are you sure?
If not then I stand by my assertion that it does not exist as the time and hassle (and potentially expense) of creating/curating the content required is simply not worth the effort when automated code can do much of the work and slave labour in "3rd world" countries can do the rest cheaply enough.
See this: http://www.ghacks.net/2011/08/19/captcha-trader-automatic-fr...
Of course any such service can be used by spammers, so there is no real "white-hat"/"black-hat" distinction.
This is because reCAPTCHA solving is linked to the digitization of paper documents.
There was recently a TEDTalk by the inventor of the CAPTCHA about this topic. It is very informative and entertaining. I highly recommend it: http://www.youtube.com/watch?v=-Ht4qiDRZE8
Further next submission: "CAPTCHA-breakers-breakers team up with CAPTCHA-breakers to blackmail sites."
Perhaps this is why the author saw such a high 94% success rate?
Reason #237 why we are living in the future: there are captcha factories.