[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [WEB SECURITY] Ways To Identify Returning Web Visitors
- From: Nathanael Hoyle <nhoyle@xxxxxxxxxxxxx>
- Subject: Re: [WEB SECURITY] Ways To Identify Returning Web Visitors
- Date: Thu, 10 Jul 2008 22:22:53 -0400
James Hatcher wrote:
My company has a problem with certain people repeatedly coming back to
our website and performing fraudulent transactions.
In an effort to stop these people from performing transactions, we
attempt to identify returning visitors in a couple of ways:
1. Our site sets a long-term persistent cookie in the user's
browser that contains a unique identifier. If our fraud
investigators see that someone with a particular cookie is
performing fraudulent transactions, their cookie is added to a
"black list", and if they come back to the site later with that
cookie they are not allowed to perform transactions. Of course,
the fraudsters were mostly able to quickly figure out that they
can get around this by deleting their cookies every time they
come back to our site.
2. We then started setting another unique identifier in a Flash
cookie and added a black list of fraudulent Flash cookie values.
This works better than the regular cookie because not so many
people know how to delete Flash cookies, but it one could still
get around this by deleting or disabling Flash cookies.
We would love to be able to identify a user's computer by MAC address,
but MAC address is only used for point-to-point communication on a
network so we don't have the ability to see the user's MAC address.
Using a blacklist of client IP addresses is not feasible because some
of the fraudsters are using ISPs where many people come from the same
client IP, including legitimate users.
Beyond the ideas mentioned above, are there any other ways to identify
repeat visitors to a website that keep coming back using the same
computer/browser? I realize that any answer you guys give me will
probably be another cat and mouse game like the solutions above, but
I'd be really interested in anything we can do improve our ability to
detect these returning visitors, even if they are just small
improvements.
-Jim
I'm not aware of much that you can do that is reliable. As you said, it
is mostly cat and mouse. Also, your comment about MAC addresses implies
that you believe the MAC address is a reliable identifier (if you could
see it), when it is in fact not one. While it is somewhat more
difficult in most cases than clearing cookies, the MAC address your
computer presents to the local network segment can readily be changed in
most cases.
As a counter to someone disabling flash, it would be possible to make
some part of the transaction process *rely* on flash in such a way that
the transaction cannot be completed if flash and/or flash cookies are
disabled. I would not rely on this. Never rely on the trustability of
data you send to a client coming back to you for authentication... an
advanced attacker could randomize the flash cookie identifiers on the
fly via a custom proxy of some sort... Furthermore, this imposes the
flash requirement on all of your customers... undesirable in my own
mind, although more and more commonly accepted I suppose.
Even if you wanted to block whole IP ranges, people using anonymous
relaying proxies or networks like tor, etc could bypass such
restrictions. I believe you may be attempting to attack the problem
from the wrong angle. An attacker's computer is, by definition, under
his or her control, and can thus be made to present itself to you
differently at the whim of the attacker. Unless you wish to force your
users to install a nasty activex component which calculates hashes of
hard drive serials, install dates, license keys, etc to generate a
machine id... (I'd never shop with you if you did that).
Rather than trying to exclude certain computers, however, I would look
at user accounts. If users are performing transactions, they reasonably
would need to identify themselves to the system. Make the sign-up
process non-trivial enough and people may tire of it:
* Require a valid email address to activate a new account. Optionally
exclude email accounts from free email providers you observe to be
abused by your attackers.
* Require the user to pass a captcha during sign-up.
* Possibly try validation of this sort: "For security, to prevent
automated sign-ups, please enter the next value in this sequence: '3 6 9
12 15 ___ '" Easy for most humans, but with a variety of such puzzles,
harder for a machine. Multiple choice is bad: four options to choose
from just means the script has to run 4 times as many times to generate
the same number of bad accounts.
If it's too much effort to generate a new, valid account to try again...
All of this is still prone to cat and mouse. Your mileage may vary, all
of that...
Aside from that, you may need to examine why the same individuals are
able to pursue many fraudulent transactions. If this is "Real Money
(TM)" fraud, i.e. credit card fraud or similar, you really need to
pursue formal channels for police reporting of the incidents. That's
not a panacea by a long stretch, but sending people to prison can be a
deterrent.
Good luck.
-Nathanael
----------------------------------------------------------------------------
Join us on IRC: irc.freenode.net #webappsec
Have a question? Search The Web Security Mailing List Archives:
http://www.webappsec.org/lists/websecurity/archive/
Subscribe via RSS:
http://www.webappsec.org/rss/websecurity.rss [RSS Feed]
Join WASC on LinkedIn
http://www.linkedin.com/e/gis/83336/4B20E4374DBA
Brought to you by http://www.webappsec.org
Search this site
|