Information leakage in many websites and job application portals

German version of this post

1. Summary

Many websites such as forums, dating sites, job application portals, newsletters or social networks require a user registration. This registration generally requires an email address and a freely choosable pseudonym as username. Most Internet users assume that only the chosen pseudonym is publicly visible while the email address is treated confidential by the site operator. Depending on the type of website it is important that the existence of an account is kept confidential since knowing that an account exists may lead to certain conclusions about the account owner. As an example, if a person has registered in a forum about a specific disease, it is likely that this person is affected by this disease. The problem presented here allows unauthorized third parties to find out whether there is an account for a specific email address. In case of online job application portals, the existence of an account typically means that the account owner has applied for a job. This may allow an employer to find out that one of his employees has confidentially applied for a job at another company.

2. Description of the problem

The main problem is that if a user tries to register with an email address or a username, which is already registered at the site, the user gets a corresponding error message in the browser. An unauthorized third party may try to register with the email address or username of the potential account owner. If this results in an error message, the attacker may conclude that the email address or username is already registered.

The email address is linked to a specific person and most employers know at least one private email addresses of their employees. The problem can obviously only reveal the existence of an account on a site such as a job application portal and no more detailed information about the account (such as the corresponding pseudonym to a given email address or the application submitted). However, the bare fact that an employee has applied for another job may already have negative consequences for the existing employment.

For some sites such as job application portals the username can also be linked to a specific person (especially for rare names and/or small industries), since many applicants choose an easily predictable username such as "First Name.Last Name" or a pseudonym which is also known to the current employer and expect the data to be treated confidential by the company they apply to. If this predictable username is registered in the job application form of another company, an employer may conclude that his employee applies for a job there.

Some websites don't require a username and use the email address and password for logging in. Some other sites assign a randomly chosen username for every registered user. Most of these sites reveal the existence of an account for an email address as well when trying to register again with the email address.

3. Distribution of problem for job application portals

I have checked the job application portals of some big companies by trying to register with the same username or email address twice. 27 of the 30 companies in the DAX index (which contains the biggest stock companies in Germany) are affected by the problem. The remaining 3 companies either don't provide an online job application portal or only allow direct applications without an account registration. This leads to the conclusion that the vast majority of companies running an online job application portal are affected by the problem. Some international companies such as IBM or Intel are affected as well.

4. Other problematic online accounts

The problem not only affects job application portals but also many other websites such as online shops, forums, newsletters, social networks or dating sites. The mere existence of an account in a forum may lead to problematic conclusions about the owner of the account. An employer may for instance check whether a female applicant is registered in a forum about pregnancy with the email address used for the application instead of asking whether she is pregnant (which is illegal to ask in some countries) and not employ her if there is an account. The registration in a forum or a newsletter about a sensitive topic such as employment rights, homosexuality, certain political opinions/activities, diseases (e.g. HIV) or psychical problems should also not be revealed to everyone who knows the user's email address. Most users expect that a forum only reveals the chosen pseudonym to the public and that the email address is treated confidential. So it may be problematic if everyone, who knows the email address, can figure out that someone has an account in a forum.

5. Possible use of vulnerability by cyber criminals

The existence of an account in a forum or vendor support site about specific hardware or software components can reveal some information about the hardware/software used by the account owner. This may allow an attacker to specifically exploit vulnerabilities in those components in a targeted attack.

Cyber criminals could also exploit this problem to increase the effectivity of their attacks. For instance, a phisher may choose to only send his phishing mails to email addresses which are actually registered at a site. An attacker may also verify that an account exists before trying to break into the account by brute-forcing the password (or the security question for resetting the password).

6. Confirmation emails

Some sites send a confirmation email when trying to register with a given email address. This confirmation mails allow users to find out that someone has tried to register with the user's email address on a site.

Some sites reveal the existence of an email address/username before actually submitting the registration form e.g. using Ajax requests to the server. In this case, no confirmation email is sent to the owner of the email address. Some other sites reveals the existence of an email address when submitting the registration form even if there is another error such as an empty or weak password, a duplicate username or required form fields left blank. In these cases the sites don't send any confirmation email but still reveal the existence of an account to a given email address.

When a confirmation mail is sent, most users will just ignore it since they haven't registered on the site and not take into account that this email may be the result of someone trying to reveal the user's accounts. Even if a user knows about the problem, it may still be impossible to find out who is responsible for the attack.

7. Mitigation for website operators

Website operators can take some technical measures to mitigate the risk for their users. Depending on the nature of the site it may be necessary to abandon the possibility for users to choose a username, because a given username may have already been taken, which will make the registration fail and thus reveal the existence of a given username. For sites which already publicly reveal the chosen names as part of the site functionality (such as forums or dating sites) and most users choose a pseudonym for the registration, a freely choosable username is obviously unproblematic. For other sites such as job application portals where a confidential treatment of all user data is commonly expected and many users choose their real name as username, it is probably necessary to abandon the possibility to register with a freely choosable username. The site may either create a randomly generated username or just use the user's email address instead of a username for logging in.

The same problem also applies for email addresses. Most sites show an error message (or a hint to use the existing account) when trying to register with an already registered email address. This problem can be solved by requiring the user to verify the email address by clicking on a link sent to the user via email. If the email address is already registered, the site doesn't need to tell the client browser about the existing account. The site may then send a reminder about the existing account instead of a verification link via email. This makes sure that only the owner of the email address can find out whether there is an account for his email address.

The website operator should also make sure that the password reset functionality and changing the email address of an existing account (which an attacker can easily register for this purpose) doesn't reveal to the client browser whether a given email address is already registered at the site.

The measures proposed here may lead to some extra effort and losses of comfort (no freely choosable username, requirement to verify email address) and increased support expenditures. So there is an obvious trade-off between usability and privacy. For some sites such as job application portals, dating sites or forums about sensitive topics it is obvious that privacy should have priority over usability and the existence of an account shouldn't be revealed to unauthorized third parties.

8. Mitigation options for users

Users may also protect their privacy by using secret email addresses/aliases for registering sensitive accounts. You can easily register a new account at a freemail provider of your choice for this. However, registering too many email accounts may be problematic since it requires users to remember all email addresses/passwords and regularly check all the accounts for incoming mails. As an alternative, some email providers such as hotmail allow setting up a limited number of alias addresses for one account, so that a user can check incoming emails to multiple addresses with one single email account. Many providers also allow appending a plus sign and a random string to an email address. You can for instance use john.doe+someRandomString@email.provider instead of john.doe@email.provider when doing a confidential application to a company. Since an attacker only knows the base address (john.doe@email.provider) and can't guess the random string you appended, he can't check whether you have already registered an account. However, you should keep in mind that you will need the full email address used for the registration for doing a password reset. So it may be a good idea to write down the email alias you used for the registration.

If you have already registered at a sensitive site with a non-secret email address, you can still change your email address to an alias. Most sites allow changing the email address in the profile settings. However, some sites still block the registration of a new account with the same email address thus revealing the fact that there had been an account. You may also inform the website operator if a site you know/are using is affected by the problem and the existence of an account should be kept strictly confidential based on the nature of the website.

If you want to hide the existence of an account, you should also choose a username which is non-guessable even for someone who knows you. This is obvious for community sites such as forums or dating sites with publicly visible nicknames. However, even for sites such as job application portals where you expect your data to be treated confidential, you should still choose a non-guessable username.

Informationsleak bei vielen Webseiten und Online-Bewerbungsportalen

English version of this post

1. Zusammenfassung

Für die Nutzung vieler Webseiten wie z.B. Foren, Partnerbörsen, Bewerbungsportalen, Newslettern oder sozialen Netzwerken muss man sich als Benutzer registrieren. Für diese Registrierung ist in der Regel die Angabe einer Mailadresse sowie eines frei wählbaren Pseudonyms als Benutzername erforderlich. Die meisten Internetnutzer gehen dabei davon aus, dass lediglich das Pseudonym öffentlich sichtbar ist und die Mailadresse vom Betreiber der Seite vertraulich behandelt wird. Je nach Art der Seite sollte bereits die Existenz eines Accounts zu einer bestimmten Person/Mailadresse geheimgehalten werden, weil bereits die Existenz eines Accounts gewisse Rückschlüsse über den Accountinhaber zulässt. Eine Registrierung in einem Forum zu einer bestimmten Krankheit lässt beispielsweise den Schluss zu, dass der Accountinhaber an dieser Krankheit leidet. Durch das hier vorgestellte Problem können unbefugte Dritte bei vielen Webseiten einfach feststellen, ob zu einer bestimmten Mailadresse ein Account existiert. Im Falle eines Bewerbungsportals bedeutet die Existenz eines Accounts in der Regel, dass der Accountinhaber sich bei der Firma beworben hat. Damit kann ein Arbeitgeber herausfinden, dass sich einer seiner Mitarbeiter bei einer anderen Firma bewirbt.

2. Beschreibung des Problems

Das Problem besteht darin, dass man beim Registrieren eines Accounts eine entsprechende Fehlermeldung bekommt, wenn bereits ein Account mit der angegebenen Mailadresse oder dem gewählten Benutzernamen existiert. Ein unbefugter Dritter kann damit durch den Versuch einer Registrierung mit der Mailadresse oder dem Benutzernamen des potentiellen Accountinhabers feststellen, ob eine Mailadresse oder ein Benutzername bereits auf einer Seite registriert ist.

Die Mailadresse ist fest einer Person zugeordnet und somit kann man aus der Existenz eines Accounts zu einer Mailadresse schließen, dass der Besitzer der Mailadresse sich auf der Seite registriert hat. Ein Arbeitgeber kennt in der Regel zumindest eine private Mailadresse des Mitarbeiters und kann somit feststellen, ob sich der Mitarbeiter mit dieser Mailadresse im Bewerbungsportal einer anderen Firma registriert hat. Man kann über dieses Problem zwar keine Details über den Account wie z.B. das verwendete Pseudonym zu einer Mailadresse oder das abgeschickte Bewerbungsschreiben herausfinden. Allerdings kann allein das Offenbaren der Existenz eines Accounts im Bewerbungsportal einer konkurrierenden Firma unerwünschte Konsequenzen für das bestehende Arbeitsverhältnis des Bewerbers haben.

Für einige Seiten wie z.B. Bewerbungsportale kann der Benutzername in vielen Fällen ebenfalls fest einer bestimmten Person zugeordnet werden (insbesondere bei seltenen Namen und/oder kleinen Branchen), da viele Nutzer dort einen vorhersehbaren Namen wie z.B. "Vorname.Nachname" oder ein dem bisherigen Arbeitgeber bekanntes Pseudonym wählen und auf eine vertrauliche Behandlung der Daten vertrauen.

Manche Webseiten verzichten auf einen eigenen Benutzernamen und verwenden zum Einloggen statt dessen nur die Mailadresse und das Passwort. Bei anderen Seiten wird ein zufälliger Benutzername vom System vergeben. Bei den meisten dieser Seiten lässt sich ebenfalls durch den Versuch einer Neuregistrierung feststellen, ob eine bestimmte Mailadresse bereits registriert ist.

3. Verbreitung des Problems bei Bewerbungsportalen

Ich habe durch den Versuch einer Doppeltregistrierung mit dem gleichen Benutzernamen bzw. der gleichen Mailadresse die Bewerbungsportalen von einigen großen Firmen getestet. Von den 30 Konzernen im DAX-Aktienindex sind 27 von dem Problem betroffen. Die übrigen 3 Firmen betreiben entweder kein Bewerbungsportal oder ermöglichen nur direkte Bewerbungen ohne vorherige Registrierung eines Accounts. Daher gehe ich davon aus, dass die überwiegende Mehrheit der Firmen, die ein Online-Bewerbungsportal betreiben, von dem Problem betroffen sind. Auch die Bewerbungsportale von vielen internationale Konzerne wie z.B. IBM oder Intel sind von dem Problem betroffen.

4. Andere problematische Online-Accounts

Das Problem tritt nicht nur bei Bewerbungsportalen sondern auch bei diversen weiteren Webseiten wie z.B. Online-Shops, Foren, Newslettern, sozialen Netzwerken oder Partnerbörsen auf. Allein die Existenz eines Accounts in einem Forum lässt in einigen Fällen bereits problematische Rückschlüsse über den Accountinhaber zu. Beispielsweise könnte ein Arbeitgeber anstelle der verbotenen Frage nach einer Schwangerschaft überprüfen, ob eine Bewerberin mit der für die Bewerbung verwendeten Mailadresse in einem Forum zum Thema Schwangerschaft registriert ist und gegebenenfalls unter einem Vorwand auf eine Einstellung verzichten. Auch eine Registrierung in einem Forum zu einem sensitiven Thema wie z.B. Arbeitnehmerrechte, Homosexualität, bestimmten politischen/weltanschaulichen Ansichten/Aktivitäten, Krankheiten (z.B. HIV) oder psychischen Problemen sollte nicht für jeden sichtbar sein. Die meisten Nutzer gehen davon aus, dass die Mailadresse vom Betreiber des Forums vertraulich behandelt wird und nur ein frei wählbares Pseudonym öffentlich sichtbar ist. Daher kann es höchst problematisch sein, wenn jeder, der die Mailadresse kennt, eine Mitgliedschaft in einem derartigen Forum feststellen kann.

5. Möglicher Missbrauch durch Cyberkriminelle

Die Existenz eines Accounts in einem Forum oder einem Supportportal zu bestimmten Hardware- oder Softwarekomponenten kann einem Angreifer verraten, dass ein Benutzer bestimmte Hardware/Software benutzt. Damit kann ein Angreifer gezielt Sicherheitslücken in diesen Komponenten ausnutzen.

Cyberkriminelle könnten das Problem verwenden, um die Effektivität ihrer Angriffe zu steigern. Beispielsweise ist es möglich, Phishing-Mails gezielt nur an die Mailadressen zu schicken, die auf der jeweiligen Seite tatsächlich registriert sind. Beim Versuch einer Accountübernahme durch Ausprobieren des Passworts (oder der Sicherheitsfrage zum Zurücksetzen des Passworts) kann es für einen Angreifer ebenfalls sinnvoll sein, vorher zu überprüfen, ob zu einem bestimmten Benutzernamen oder einer Mailadresse tatsächlich ein Account existiert.

6. Bestätigungsmails

Manche Seiten schicken beim Versuch einer Registrierung eine Bestätigungsmail an die angegebene Mailadresse. Über diese Bestätigungsmail kann der Nutzer erkennen, dass jemand versucht hat, sich mit der Mailadresse des Nutzers zu registrieren.

Einige Seiten zeigen (beispielsweise durch eine entsprechende Ajax-Anfrage an den Server) bereits vor Abschicken des Registrierungsformulars an, ob eine Mailadresse oder ein Benutzername bereits registriert ist. In diesem Fall wird keine Bestätigungsmail an den Besitzer der Mailadresse geschickt. Andere Seiten weisen nach dem Abschicken des Registrierungsformulars auf die bereits vergebene Mailadresse hin, auch wenn die Registrierung bereits aus anderen Gründen wie z.B. einem fehlenden Passwort, einem bereits vergebenen Benutzernamen oder nicht ausgefüllten Pflichtfeldern scheitert. In diesem Fall wird ebenfalls keine Bestätigungsmail verchickt und ein Angreifer kann dennoch feststellen, ob eine Mailadresse auf der Seite registriert ist.

Selbst wenn eine Bestätigungsmail verschickt wird, wird diese von den meisten Nutzern ignoriert, da sie sich nicht selbst registriert haben und kommen nicht auf die Idee, dass jemand versuchen könnte, mit der Mailadresse registrierte Online-Accounts zu finden. Und selbst wenn ein Benutzer das Problem kennt, kann es schwierig oder unmöglich sein, den Verantwortlichen für den Angriff zu finden.

7. Lösungsmöglichkeiten für Seitenbetreiber

Technisch lässt sich das Problem durch eine entsprechende Anpassung der betroffenen Webseiten lösen. Je nach Art der Seite muss man dazu auf einen frei wählbaren Benutzernamen verzichten, weil dieser ja schon vergeben sein kann und dies zwangsläufig zu einer Fehlermeldung beim Versuch einer Neuregistrierung mit dem selben Benutzernamen führt. Bei Seiten, auf denen der gewählte Benutzername/Nickname sowieso öffentlich sichtbar ist (z.B. Foren oder Partnerbörsen) und sich die meisten Nutzer mit einem Pseudonym registrieren, ist dies natürlich unproblematisch. Bei anderen Seiten wie z.B. Bewerbungsportalen, auf denen eine vertrauliche Behandlung der Daten allgemein erwartet wird und viele Benutzer sich nicht mit einem Pseudonym sondern mit dem richtigen Namen registrieren, ist wahrscheinlich ein Verzicht auf einen frei wählbaren Benutzernamen notwendig. Statt dessen kann man entweder einen zufälligen Namen vergeben oder ganz auf den Benutzernamen verzichten und die Mailadresse als Benutzername verwenden.

Das selbe Problem tritt auch bei der Mailadresse auf. Wenn man versucht, sich mit einer bereits registrierten Mailadresse erneut zu registrieren, dann bekommt man bei den meisten Webseiten ebenfalls eine Fehlermeldung bzw. die Aufforderung, sich mit dem bestehenden Account einzuloggen. Als Lösung für dieses Problem könnte man eine Verifizierung der Mailadresse durch einen Bestätigungslink einführen. Falls die Mailadresse bereits registriert ist, dann kann man auf eine Fehlermeldung gegenüber dem anfragenden Webbrowser verzichten und statt der Bestätigungsmail eine Erinnerung an den bestehenden Account verschicken. Auf diese Weise kann nur der Besitzer der Mailadresse feststellen, ob es zu der Mailadresse bereits einen Account gibt.

Auch bei der "Passwort Zurücksetzen" Funktion sowie beim Ändern der Mailadresse zu einem bestehenden Account (den der Angreifer zu diesem Zweck leicht registrieren kann) muss sichergestellt werden, dass man aus dem Verhalten der Seite keine Rückschlüsse auf die Existenz einer bestimmten Mailadresse ziehen kann.

Die hier vorgeschlagenen Maßnahmen sind allerdings mit einem gewissen Zusatzaufwand verbunden und führen unter Umständen zu Einbußen beim Komfort (kein selbst gewählter Benutzername, Verifizierungslink für Mailadresse) sowie erhöhtem Supportaufwand. Daher besteht natürlich ein gewisser Konflikt zwischen der Benutzerfreundlichkeit und dem Schutz der Privatsphäre. Für einige Seiten wie z.B. Bewerbugsportale, Partnerbörsen oder Foren über bestimmte Themen ist jedoch offensichtlich, dass die Privatsphäre der Benutzer geschützt werden muss und die Seite nicht unbefugten Dritten die Existenz von Accounts verraten sollte.

8. Schutzmöglichkeiten für Benutzer

Benutzer können ebenfalls durch bestimmte Maßnahmen ihre Privatspähre schützen. Beispielsweise kann man für die Registrierung sensitiver Accounts eine neue Mailadresse bei einem Freemail-Provider registrieren. Allerdings ist das Registrieren und Verwalten von vielen Mailaccounts problematisch, weil man sich alle Mailadressen und Passwörter merken muss sowie regemäßig eingehende Mails von allen Accounts abrufen muss. Als Alternative kann man bei einigen Mailprovidern wie z.B. Hotmail eine begrenzte Zahl von Alias-Adressen für einen Account erzeugen und dadurch mit einem einzigen Account mehrere Mailadressen benutzen. Zusätzlich ermöglichen es viele Provider, an die Mailadresse ein "+" und einen weiteren String anzuhängen. Beispielsweise kann man für die Registrierung eines Accounts die Adresse john.doe+someRandomString@email.provider anstelle von john.doe@email.provider verwenden. Da ein Angreifer nur die Basisadresse (john.doe@email.provider) und nicht den zufälligen String danach kennt, kann er nicht feststellen, ob der Benutzer einen Account registriert hat. Allerdings sollte man dann bereits beim Anlegen des Accounts berücksichtigen, dass man für ein eventuell nötiges Passwort-Reset die volle Mailadresse benötigt, mit der man sich registriert hat. Daher ist es sinnvoll, sich bei der Registrierung eines Accounts die verwendete Mailadresse aufzuschreiben.

Wenn man bereits einen sensitiven Account mit einer nicht geheimen Mailadresse registriert hat, dann kann man bei vielen Seiten die Mailadresse in den Profileinstellungen nachträglich ändern oder den Account löschen und damit die Existenz des Accounts verschleiern. Allerdings blockieren manche Seiten auch nach einer Änderung der Mailadresse weiterhin die Neuregistrierung mit der alten Mailadresse und offenbaren somit die Tatsache, dass ein Account zu der Mailadresse existiert oder existiert hat.

Außerdem kann man als Benutzer betroffene Seitenbetreiber informieren, wenn die Existenz eines Accounts aufgrund der Art bzw. des Themas der Seite unbedingt vertraulich bleiben sollte.

Wenn man die Existenz eines Accounts verbergen will, dann sollte man natürlich einen Benutzernamen wählen, der (auch von Bekannten oder dem Arbeitgeber) nicht einfach erraten werden kann. Dies ist offensichtlich für Seiten mit öffentlich sichtbaren Benutzernamen/Nicks (z.B. Foren oder Partnerbörsen). Aufgrund des hier beschriebenen Problems sollte man jedoch auch bei Seiten wie Bewerbungsportalen, auf denen man eine vertrauliche Behandlung der Daten erwartet, einen nichterratbaren Benutzernamen verwenden.