Code Monkey home page Code Monkey logo

dirtyhash's Introduction

DirtyHash

DirtyHash is a security project to defend against Web3 and Crypto frauds, phishing, ransomware, blackmailers and money laundering. With this you can analyze suspicious entities (wallet addresses, smart contracts, web3 and regular domains, NFTs, social media handles, bank accounts, etc.) to detect frauds and scams. You can report any scams and also share them with the community.

Read the launch post here. Risk scoring of Wallets by Machine Learning is described here.

Setup

Clone the project and set up the machine (in the following instructions a Ubuntu server is assumed). You can easily install node and npm using nvm.

sudo apt-get install nodejs npm
sudo npm install pm2 -g
sudo apt-get install git-all
git clone https://github.com/PerinnoAB/DirtyHash.git

For the DirtyHash server, set up the environment variable GOOGLE_APPLICATION_CREDENTIALS to the path of the Firebase service-account-file.json, where the database is maintained.

e.g.

export GOOGLE_APPLICATION_CREDENTIALS="sa.json"
export PORT=8080
export LOG_DIR=logs
export ML_SERVER="http://10.128.0.10:8081"
export VT_URL='VT_URL'
export VT_API_KEY='VT_API_KEY'
export LOG_FORMAT=":remote-addr :remote-user [:date[clf]] :method :url HTTP/:http-version :status :res[content-length] - :response-time ms"
export SENDGRID_API_KEY = 'SENDGRID_API_KEY'
export SENDGRID_TEMPLATE_ID = 'SENDGRID_TEMPLATE_ID'
export REPORT_EMAIL = 'EMAIL_TO_RECEIVE_REPORT'

Installation

npm install --legacy-peer-deps
npm install --force

Running the app in dev environment

npm run dev

Running the app in prod environment

npm run start

or with pm2

pm2 start npm --name dh-server -- start
pm2 save

pm2 restart with updating env variables

pm2 restart all --update-env

pm2 config

pm2 install pm2-logrotate
pm2 set pm2-logrotate:max_size 1G
pm2 set pm2-logrotate:compress true
pm2 set pm2-logrotate:retain 7
pm2 set pm2-logrotate:rotateModule false
pm2 set pm2-logrotate:rotateInterval '0 0 1 * *'

License

Apache License 2.0

dirtyhash's People

Contributors

amiacs avatar amitps avatar boredduckp avatar dependabot[bot] avatar eaortiz-eurosysinfo avatar holoholic avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

dirtyhash's Issues

Emails: sign up for after-the-fact notification

New email signup:

You can add as many address as you would like to get notifications about.

Then if any of those addresses is interacting with another address that is (or becomes!) risky they are notified by email.


This can be especially useful because maybe the address is not risky now, but then I send money to it, and other things happen and then DirtyHash flags the address.

Any browser extension/lookup could not have prevented me from this problem beforehand... but it could at least tell me afterwards.

Clearly separate reasoning from factual basis

The report could better separate the conclusions section from the factual basis.


For example, a template could be used for the conclusion section:

SCORE: XXX%

CAVEAT: DirtyHash makes this assessment based on the information below.

EXPLANATION: This is influenced mostly by REASON 1 and REASON 2.


And a template could be used for each information section. This will allow others to independently verify each piece of information and also to apply their own analysis of the data to make their own decisions.

For example EVERY input could use this same format:

NAME / DESCRIPTION: Number and timing of transactions

DATA: 738 transactions were recorded over Ethereum Mainnet and Polygon, also the timing of each transaction was considered

SOURCE: Collected as of 2022-10-03 20:33Z using our private indexing node. You can access this data publicly on Etherscan (LINK)

LIMITATIONS: Our node only checks Ethereum-format addresses on Ethereum Mainnet, Polygon and Optimism networks.

RELIABLIITY: Addresses with over 1,000 transactions may fail to be collected properly at this time.


See also:

  • Experian reporting format
  • Reporting format used by FBI field agents do describe sourcing of information

Updating wording about social "handle"

Currently the website allows to search for a "social handle". But actually it is only referring to a "Twitter account".

This should be clarified on the site so there is no confusion that the handle may refer to Instagram, VK, and other sites.

Process and handle Youtube links

When users report a dirty Youtube URL, then the video ID should be saved in the blacklist database. Similar approach when the user searches for a Youtube URL.

Report abuse form: warn about doxing yourself

The report abuse form results in your information being published.

This page should be updated to explain that information will be published as this might not be obvious to visitors.

Also it should be noted which fields are optional or requried.

Abuse report -- add cryptographic signing (optional)

It should be possible for an abuse report to be cryptographically self-signed by the issuer. (Including a timestamp.)

This will allow the report to be republished with provable connection to the issuer.

If the issuer is well known, this reputation would be used in the report.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.