-
Notifications
You must be signed in to change notification settings - Fork 48
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update credentials.md #869
Merged
Merged
Changes from all commits
Commits
Show all changes
3 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -15,35 +15,35 @@ Our first case in 2020, ([DIVD-2020-00013](/DIVD-2020-00013)) dealt with "only" | |
|
||
It is impossible for us to send these large volumes of emails. Emailing millions or billions of addresses (of which a large portion is no longer active) will clog our email system and get us quickly on the "known spammers" list of large email providers, effectively hurting the rest of our operation. | ||
|
||
Managing a high volume of emails requires a specialized skill set, there are companies that handle this kind of distribution. We've had discussions with these providers, and sending such large volumes of email can be quite expensive, in the range of five figures. As a non-profit organization run by volunteers, we simply don't have the budget for this kind of expenditure, and even if we did, we wouldn't be willing to allocate those funds in this manner. (If you are willing to [donate](https://www.divd.nl/donate) that kind of money, we can think of better ways to utilize it). Additionally, since we, by nature, do not have up front consent from the recipients of these emails, these service providers are hesitant to work with us. | ||
Managing a high volume of emails requires a specialized skill set. There are companies that handle this kind of distribution. We've had discussions with these providers, and sending such large volumes of email can be quite expensive, in the range of five figures. As a non-profit organization run by volunteers, we simply don't have the budget for this kind of expenditure, and even if we did, we wouldn't be willing to allocate those funds in this manner. (If you are willing to [donate](https://www.divd.nl/donate) that kind of money, we can think of better ways to utilize it). Additionally, since we, by nature, do not have up-front consent from the recipients of these emails, these service providers are hesitant to work with us. | ||
|
||
### Does it help? | ||
|
||
Lots of credentials are from so called [combo lists](https://scirge.com/glossary/combo-list). Credentials from different breaches, combined, traded and often of low quality. Most of the time these lists only contain a username and password and are devoid of any context like when the the credentials were "harvested", which platform, service or system they initially belonged to and where the breach occured. | ||
Lots of credentials are from so-called [combo lists](https://scirge.com/glossary/combo-list). These lists combine credentials from different breaches, are traded, and are often of low quality. Most of the time, these lists only contain a username and password and are devoid of any context, like when the credentials were "harvested," which platform, service, or system they initially belonged to, and where the breach occurred. | ||
|
||
When does being notified of a breach help, and when does it hurt? Without context, it's unlikely that a user can take any positive action. Does it help to know that you are now in 15 breaches instead of 14? | ||
When does being notified of a breach help, and when does it hurt? Without additional context, it's unlikely that a user can take any positive action. Does knowing you are now in 15 breaches instead of 14 help? | ||
|
||
## Our solution | ||
|
||
If we want to address cases of leaked credentials, we must do so in a specific manner. | ||
|
||
### Context required | ||
|
||
We will only process credentials if we can place them in a context. This means that, in addition to the username and password, we need more information to provide actionable advice with our notifications. | ||
We will only process credentials if we can provide context. This means that, in addition to the username and password, we require additional information to offer actionable advice with our notifications. | ||
|
||
More context is better in this case. Think about: | ||
* What service/url are the credentials initially for? | ||
* What service/URL are the credentials initially for? | ||
* How, when, and where have the leaked credentials been obtained? | ||
|
||
This also means that, by definition, we will not process combo lists unless there is a way to provide context. | ||
|
||
### How we handle passwords | ||
|
||
We feel that the content of the password itself is often vital context in the decision on what to do about leaked credentials. But, feel that distributing plain text password themselves is even worse. | ||
We believe that the content of the password is often crucial in determining the appropriate response to leaked credentials, but we consider the distribution of plain text passwords to be a significant security risk, as it is inherently unsafe. | ||
|
||
We will therefore mask passwords with the followig logic: | ||
We will therefore mask passwords with the following logic: | ||
* For passwords of 10 or more we will provide the first two and last two characters and replace all other characters with an asterisk. | ||
* For passwords less then 10 characters we will provide the first and last character and replace all other characters with an asterisk. | ||
* For passwords less than 10 characters we will provide the first and last character and replace all other characters with an asterisk. | ||
|
||
Or in Python code: | ||
|
||
|
@@ -58,25 +58,25 @@ def mask_password(passwd: str) -> str : | |
|
||
### Distribution in case of limited numbers | ||
|
||
For smaller breaches (less then 2M email addreses involved) we will still opt to inform victims/targets directly. | ||
For smaller breaches (less than 2M email addresses involved) we will still opt to inform victims/targets directly. | ||
|
||
### Distribution in case of largers numbers via (government and other) CERTS, CSIRTS and Security Teams | ||
### Distribution in case of larger numbers via (government and other) CERTS, CSIRTS and Security Teams | ||
|
||
For larger breaches we will make two extracts | ||
For larger breaches, we will make two extracts | ||
|
||
#### Email apex extract | ||
|
||
This extract will contain the apex domains of the emails involved in the breach and for each apex the number of unique email address and password combinations. | ||
This extract will contain the apex domains of the emails involved in the breach and for each apex the number of unique email addresses and password combinations. | ||
|
||
#### Url apex extract | ||
|
||
If we have the url that the password belongs to, we will also make this extract. It will contain the apex domains of the urls and per apex the number of unique email addresses containted in the breach. | ||
If we have the URL that the password belongs to, we will also make this extract. It will contain the apex domains of the URLs and per apex the number of unique email addresses contained in the breach. | ||
|
||
#### Distribution via (government and other) CERTS, CSIRTS and Security Teams | ||
|
||
Based on these extracts we will invite (government and other) CERTS, CSIRTS and Security Teams to provide us with the apexes that are in the extract and in their constituancy or that they otherwise have a demonstrable legitimate interest in. For those apexs we will return the data. | ||
Based on these extracts we will invite (government and other) CERTS, CSIRTS and Security Teams to provide us with the apexes that are in the extract and in their constituency or that they otherwise have a demonstrable legitimate interest in. For those apexes, we will return the data. | ||
|
||
In order to address ethical concers regarding the sharing of PII with government organisations of countries with a less than ideal situation with regards to the upholding of human rights, we will only provide data to government organisations of countries that score higher then 4 in the most recent year of the [Human rights index](https://ourworldindata.org/grapher/human-rights-index-vdem). | ||
In order to address ethical concerns regarding the sharing of PII with government organisations of countries with a less than ideal situation with regard to the upholding of human rights, we will only provide data to government organisations of countries that score higher than 0.4 in the most recent year of the [Human rights index](https://ourworldindata.org/grapher/human-rights-index-vdem). | ||
|
||
## How to report a credential breach | ||
|
||
|
@@ -86,15 +86,15 @@ If you want our help with breached credentials send us an email at [email protected] | |
|
||
### Can I remain anonymous? | ||
|
||
We like to know that we are processing details from a reliable source. We are not interested in you identity persé, as long as we can establish that you are a reputable source. This can e.g. be via a reference from somebody we know and trust. | ||
We like to know that we are processing details from a reliable source. We are not interested in your identity persé, as long as we can establish that you are a reputable source. This can e.g. be via a reference from somebody we know and trust. | ||
|
||
### You are sharing old data, can't you deduplicate you data? | ||
|
||
We are reaching out to various organisation that also process leaked credentials to see if we can work something out. But so far we have not found a practical solution yet. | ||
We are reaching out to various organisations that also process leaked credentials to see if we can work something out. But so far we have not found a practical solution yet. | ||
|
||
### Can I still request my data as an individual? | ||
|
||
Yes you can! | ||
Yes, you can! | ||
|
||
### Why do you feel data country X scores Y on the Human Rights Index? | ||
|
||
|
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ik vind die comma raar staan binnen de quotes, ligt dat aan mij?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
De comma staat daar om de leesbaarheid van te verbeteren. Zonder de comma klopt de zin niet meer
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Dat snap ik maar dan schrijf je toch
”harvested”,
ipv”harvested,”
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ja, je hebt gelijk
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Het lukt mij niet om het pull request aan te passen, kan jij dat doen eventueel @MrSeccubus ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
#894
PR staat open om het op te lossen
Deze PR is al merged