Coder Social home page Coder Social logo

securitybunker / databunker Goto Github PK

View Code? Open in Web Editor NEW
1.2K 34.0 71.0 11.26 MB

Secure Vault for Customer PII/PHI/PCI/KYC Records

Home Page: https://databunker.org/

License: MIT License

Shell 3.11% Go 66.76% HTML 17.74% JavaScript 7.30% CSS 1.41% Dockerfile 0.33% Smarty 1.97% HCL 1.38%
gdpr pii piidata security privacy privacy-by-design user-consent ccpa compliance legaltech

databunker's Introduction

Databunker solution

Databunker

Databunker is a network-based, self-hosted, GDPR compliant, secure vault for personal data or PII: https://databunker.org/

Stars Tests Join Databunker Slack channel

npm install @databunker/store npm install @databunker/session-store

Project demo is available at: https://demo.databunker.org/. Please add a star if you like our project.

We live in a world where the privacy of our information is nonexistent. The EU has been working to remediate this fallacy with GDPR, and the US (California) follows with a first sparrow called CCPA.

Databunker project is intended to ease the GDPR and CPRA compliance. It gives organizations easy-to-implement APIs and secure vault to store PII, and a privacy portal.

Databunker gives all of us, the real data owners, control of our data. Databunker allows us to know who is using our data, what is happening with our personal data and gives us the freedom to decide if we agree to that or not.

Databunker, when deployed correctly, replaces all the customer's personal records (PII) scattered in the organization's different internal databases and log files with a single randomly generated token managed by the Databunker service.

By deploying this project and moving all personal information to one place, you will comply with the following GDPR statement: Personal data should be processed in a manner that ensures appropriate security and confidentiality of the personal data, including for preventing unauthorized access to or use of personal data and the equipment used for the processing.

Diagram of old-style solution.

picture

Diagram of Solution with Databunker

picture

Getting started guide: https://databunker.org/doc/start/

Databunker installation guide: https://databunker.org/doc/install/

🚀 Demo

Project demo is available at: https://demo.databunker.org/

You can access the demo UI using the following account credentials:

Phone: 4444
Captcha: type as displayed
Access code: 4444
Email: [email protected]
Captcha: type as displayed
Access code: 4444

Demo root token: DEMO


🛠️ Node.js Examples

  1. Node.js example implementing passwordless login using Databunker: https://github.com/securitybunker/databunker-nodejs-passwordless-login

  2. Node.js example with Passport.js, Magic.Link and Databunker: https://github.com/securitybunker/databunker-nodejs-example

  3. Secure Session Storage for Node.js apps: https://databunker.org/use-case/secure-session-storage/#databunker-support-for-nodejs

🛠️ Node.JS modules

  1. @databunker/store from https://github.com/securitybunker/databunker-store

  2. @databunker/session-store from https://github.com/securitybunker/databunker-session-store

⚡ Databunker benchmark results:

https://databunker.org/doc/benchmark/

⚡ Production deployments

🚩 Send us a note if you are running Databunker in production mode, so we can add your website to the list.

Privacy by design

This product, from the architecture level and down to code was built to comply with strict privacy laws such as GDPR and CCPA. Deploying this project can make your architecture privacy by design compliant. For more info, check out the following article:

https://databunker.org/use-case/privacy-by-design-default/

Transparency and Accountability principle

Any system or customer connecting to Databunker must provide an access token to authorize any operation, otherwise, the operation will be aborted. An end customer can login to his profile with a random authorization code sent by email or SMS.

All operations with personal records are saved in the audit log.

Any customer can log in to his account at Data Bunker and view the full audit of activities performed on his profile.

Forget me

Integrity and confidentiality

All personal data is encrypted. An audit log is written for all operations with personal records. Any request using Databunker API is done with HTTPS SSL certificate. The enterprise version supports Shamir's Secret Sharing algorithm to split the master key into a number of keys. A number of keys (that can be saved in different hands in the organization) are required to bring the system up.


🚀 Databunker quick start guide

Follow this article.


This projects provides an instant solution for GDPR compliance and user rights:

  1. Right of access
  2. Right to restrict processing / Consent withdrawal
  3. Right to be forgotten
  4. Right to rectification
  5. Right to data portability

🚩 NOTE: Implementing this project does not make you fully compliant with GDPR requirements and you still need to consult with an attorney specializing in privacy.

🚩 NOTE: When we use the term "Customer" we mean the data of the end-user that his information is being stored, shared, and deleted.

Right of access

Databunker extracts customer email and customer phone values out of the customers' personal records. It gives your customer passwordless access to his data stored under his account. This is done by generating a random access key sent by email or by SMS. Your customer can sign-in into Databunker, view information stored by Databunker, and make changes in compliance with a company's policy.

login form login with email verify login with code

Right to restrict processing / Consent withdrawal

Databunker can manage all of the customer's consents and agreements in one place. Your customer can withdraw consent and as a result restrict processing in his personal portal at Databunker. For example, your customer can block newsletter service. Your backend system can use Databunker as a collection of all agreements collected using the Databunker API.

Consent management Consent withdrawal

🚩 NOTE: Databunker can call your backend script on a consent withdrawal (callback). You will have to handle these requests and remove the customer records from other 3rd party processing companies. For example from email newsletter service, etc...

Right to be forgotten

When your customer requests to execute his right to be forgotten, his private records will be wiped out of the Databunker database, giving you the possibility to leave all internal databases intact while not impacting any of your other systems.

Upon customer removal request, Databunker can call your backend script (callback) with the customer details. You will have to handle these requests and remove other customer records from the 3rd party processing companies. For example from browsing recording services, etc...

Forget me

🚩 NOTE: You will need to make sure that you do not have any customer identifiable information (PII) in your other databases, logs files, etc...

Right to rectification

Right to rectification is also known as data accuracy requirement. Your customer can sign-in to his personal account at Databunker and change his records, for example, change his name. Databunker can fire a callback operation with customer's details when a customer operation takes place.

Change profile

Right to data portability

Your customer can sign in to his personal account at Databunker and view and extract all his records stored at Databunker.

🚩 NOTE: You will need to provide your customers with a way to extract data from other internal databases.

🚩 NOTE

Implementing this project does not make you fully compliant with GDPR requirements and you still need to consult with an attorney specializing in privacy.


Databunker use cases

Detailed information can be found at https://databunker.org/use-case/


Blog posts, articles, or other resources that talk about Databunker:

  1. GDPR compliance and Databunker introduction video https://www.youtube.com/watch?v=QESOuL3LMj0
  2. https://oppetmoln.se/20220223/databunker-en-oppen-losning-for-gdpr-saker-lagring-av-kundinformation/
  3. https://privacybunker.io/blog/gdpr-guide-for-startup-founders/
  4. https://dbweekly.com/issues/348
  5. https://www.freecodecamp.org/news/how-to-stay-gdpr-compliant-with-access-logs/
  6. https://news.ycombinator.com/item?id=26690279
  7. https://stackshare.io/databunker
  8. https://hackernoon.com/data-leak-prevention-with-databunker-xnn33u9
  9. https://anchor.fm/techandmain/episodes/Huawei--Microsoft-and-DataBunker--Yuli-Stremovsky-evl385
  10. https://github.com/expressjs/session
  11. https://databunker.org/

If you published an article about Databunker send us a link at [email protected]


🚀 We are constantly working to improve this project

Your feedback is very important for us. Give us a ⭐ star if you like our product.

If you have any questions, you can contact the development team at [email protected].

Join the project slack channel to talk with developers: https://databunker.slack.com/

⭐ Spread a word to make a world a bit safer with Databunker

Databunker

Help us to raise awareness. Please add a ⭐ star and share this project with your friends.

databunker's People

Contributors

booaazz avatar magudb avatar stremovsky avatar testwill avatar xet7 avatar

Stargazers

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

Watchers

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

databunker's Issues

Semantic version implementation

Hi Yuli. Thanks for the great project.

To avoid bugs happen in our application that due to new code or new release of databunker. Could you please implement semantic version for each release instead of always use latest? To make it simpler, I think we can use the pseudo-version number style, i.e

v1.1.0-20191109021931-daa7c04131f5 

Ref: https://go.dev/ref/mod#pseudo-versions
it has three parts

  • base version prefix (i.e v1.1.0)
  • timestamp (i.e 20191109021931)
  • commit hash (i.e daa7c04131f5)

To make it simpler we can alway use the same base version prefix for each version.

How do you think? Thank you.

Search through records which are encrypted

As we all know that Databunker encrypts customer records and builds a secure search index for quick user lookup (i.e. using email, token, etc…). In all cases it is not sufficient to have only email,token alone for searching. some other fields in the encrypted record will also be index field.

Multiple access tokens?

Hey there,
I was able to deploy databunker on a microk8s instance with openfaas. so far things are working fine and I even implemented a simple password less login mechanism.
I was wondering if it is possible to generate more than just the root_key to access the databunker api, for example one for each user app, so that it is possible to distinguish the different systems that access a user's data.
can other tokens than the root token be generated?

Thank you for this great peace of software

ValidateNewApp limits tables created

Given the line here, https://github.com/securitybunker/databunker/blob/master/src/userapps_api.go#L28 with implementation here:

func (dbobj MySQLDB) ValidateNewApp(appName string) bool {

Does databunker limit the number of tables that can be created for users given the hardcoded 100 for SQL and 10 for SQLite? We seem to be encountering the 405 db limitation error after a while which gets fixed when databunker is re-upped. Can we get clarity on the purpose of the limit? Thank you!

Feature request: User snapshot

Hi Yuli. Thanks for the great project.

Is it possible to add new feature about user snapshot data. I think it's useful for usecase in Delivery systems where it needs the state of user data when order is created instead of the latest state of user data.

Actually we already need this feature in our case too.

Thank you.

PostgreSQL backend?

Hi @stremovsky, thank you for such as great project.
It definitely helps many developers on PII compliance.

Just wondering is there a plan to support alternate DB like PostgreSQL? It is easier for self-hosting since there's existing tech stacks for this.

Thanks in advance!

Retrieve expired shareable record

Hi @stremovsky, thanks for the great project. We're currently planning to use it to protect PII data.

We have a question regarding to shareable record API. When the record is expired, is there a way for client to retrieve the expired record or is there a way for client to request to make the expired record to be retrieved again using the expired token?

Thank you.

Disable audit?

Hi @stremovsky, thank you for the great project.
Is it possible to disable audit feature? as in our case we don't need it at the moment. Thank you.

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.