Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Detecting people sharing login / account information for a website

I have a website that contains a secure area accessible by logging in with account info. Within the secure area, I have some expensive IP. I have been finding that people are sharing their passwords with other people. Are there any existing technologies / solutions / methods that I can implement to detect fraud patterns?

Thanks in advance for the help.

like image 910
Randy Avatar asked Feb 01 '12 14:02

Randy


People also ask

Can a website owner see my password?

They are allowed to see Password and Email of those account which you've created on there websites (if they allow you to do so). But they can't get to know about your actual Email ID and Password on for your Email provider. Do websites store your passwords encrypted or unencrypted in databases?

What is it called when you let someone else use your credentials?

Credential sharing is the practice of using someone else's digital identity to gain access to a platform. One example of credential sharing is providing another person with one's credentials in exchange for payment, and then signing in using their credentials.

Why should you not share your login in information with anyone?

Your account is no longer secure By granting anyone else your user credentials, you are seriously compromising the security of your account, because from the moment they have access, you don't know what they are going to do with your access details.

How do I share my login information?

When you have to share passwords, the safest way to do so is using a password manager. Since password managers encrypt your passwords, they're a much safer way to share than unencrypted communication like email. Using them requires both participants to have an account with the same service.


2 Answers

  • check geographical region. If within some timeframe multiple logins from regions geographically far apart log in, then you know those credentials have been shared.

    Friday morning a log in from NY, Friday evening a log in from China

  • bandwitdh consumption: if your site offers lots of content, if a user goes over some high limit, it means its credentials have been shared

    max bandwidth 5MB/s; then in one day 60*60*24*5MB is your upper limit per day per user

  • keep a counter of live sessions so you can see how many people log in at the same time. This is imprecise because the same person can log in through multiple browsers from the same IP and have a session on each one.

    if they have 100 sessions (4 times/hr), that seems more than one person can do, unless your site expects this behaviour

like image 104
Adrian Avatar answered Oct 22 '22 04:10

Adrian


There are several ways to approach this. But it's really going to boil down to the type of content and how often a given user really is grabbing new content. For adult websites, obviously the primary purpose of the logins is to download new content. I'm not sure about your site.

One way, and perhaps the easiest, is to simply limit the number of simultaneous downloads and/or rate limit each download.

If the files are large enough, you can impose a rate limit on how fast the data transfer takes place. Pick something that's a little slow, but not slow enough to make people mad. I would guess taking 30 seconds to download a file isn't too bad.

Then, only allow them to download 1 or 2 documents at a time per login id. People will be a bit less likely to share their password if they know that they may not be able to download something because someone else is.


Another approach would be to capture the IP address when the user signs in. Yes, I know this changes, but it gives you a starting point. If multiple users are active with the same login id but with different IPs, then you can either send them an alert stating that their account has been "hacked" ;) and that you are changing the password. Change it, kick everyone out, and send the password to the email address you have on file.

Bear in mind, that you don't want to stop a user from accessing it from work then going home and accessing it there. So, you have to make sure that they are essentially online at the same time. This means getting requests from different IPs within a minute or two of each other.


A twist on this would be to detect if multiple session ids are associated with the same login. For example, when they log in, save the current session id to a table. After they log out or a timeout is reached, clear that session id.

Don't let them log in again while another session id is active. Inform them they have to wait xx minutes until the session is cleared OR that another user is currently logged in with their account.

Ask them if they want to reset the session. This allows for situations where someone accidentally closes the browser and goes back to your site. If they pick yes, then stop the currently active session, change the password and send it to the email address on file.

I guarantee this last one will make people stop sharing their passwords. After all if I can't log in because someone I gave my password to is currently online, then this is a pain point I want to stop. Also, if I'm the one who borrowed the password and just locked myself out because the password changed then I'll either get my own account or go elsewhere: both of which are usually acceptable situations.

like image 37
NotMe Avatar answered Oct 22 '22 04:10

NotMe