SlideShare una empresa de Scribd logo
1 de 26
GDPR for developers
Bozhidar Bozhanov
About me
• Founder and CEO of LogSentinel
• Former IT advisor to the deputy prime minister of Bulgaria
• Software engineer
• Privacy advocate
• Top 50 stackoverflow contributor
• https://techblog.bozho.net
• @bozhobg
What is GDPR?
Regulation
Panic!
Opportunity
• a.k.a. direct common EU law
• overrides / supercedes national data protection laws
• extends the existing directive
• Huge fines for non-compliance (4% of turnover or 20 million euro)
• Insufficient understanding on what has to be done (consultants,
regulators, companies)
• To really protect your customers’ data
• To get your systems secure
Pros and cons of GDPR
• Cons:
• Bureaucratic
• Not always clear
• Requires most systems to be upgraded (burden)
• Doesn’t solve all data protection issues
• Leaves issues at the discretion of local regulators
• Pros:
• Unifies data protection in Europe
• Mandates best practices
• Requires consciousness about personal data processing
Why do YOU care?
• You may be:
• implementing GDPR-related upgrades
• be designated as a DPO (data protection officer)
• implementing anything that handles data
• conscious about personal data in your organization
Terminology
Data subject
Personal data
Data processing
• a.k.a. User (person whose personal data is processed)
• Any data about an identifiable or identified person
• Any operation (manual or automated) on personal data
Controller • The entity (company) that requests and uses the data
Processor
• Any entity that processes data on behalf of a controller (e.g. cloud
service providers)
GDPR principles
Lawfulness
Purpose limitation
Data minimisation
Accuracy
Storage limitation
Integrity and confidentiality
…magic
What about cookies?
• ePrivacy directive -> ePrivacy regulation
• Somehow different than GDPR
• Answers some questions unanswered by GDPR:
• Tracking cookies
• Traffic data
• Direct marketing
• Opinion – should have been a unified regulation
• With the upcoming ePrivacy regulation – no more useless cookie warnings
• Also: directive for processing personal data by law enforcement
When to process personal data
• User’s consent
• Performance of a contract
• If required by law
• Legitimate interest of the controller (including direct marketing)
• Combination of the above
GDPR functionalities
• Functionalities are only part of it – processes/procedures/rules must also exist
• “Forget me” (the right to erasure)
• Mark profile as restricted (right to restriction of processing)
• Export data (right to portability)
• Allow profile editing (right to rectification)
• “See all my data” (right to access)
• Consent checkboxes
• Age checks
• Data destruction (data minimization principle)
“Forget me”
• Delete all data relating to a user
• void forgetUser(UUID userId);
• Useful for integration tests
• What about foreign keys?
• Allow nullable foreign keys
• Anonymize user (leave only ID)
• Cascade delete
• Option: mark for deletion (+user cleanup job)
“Forget me”
• Event-sourcing?
• Crypto-shredding
• Blockchain?
• Notify 3rd parties / call 3rd parties APIs:
• CRMs, Payment gateways, etc.
• Return 404 for indexable pages
• Backups – store anonymized IDs separately
• “My data model doesn’t allow for it” is no excuse
Restrict processing
• Mark user as “restricted”
• Boolean database column
• Button on profile page “restrict processing of personal data”
• Button on admin page
• Don’t show in searches, don’t send emails, don’t include in automated processing
• Mark as restricted in 3rd party systems (e.g. with a custom field)
• Don’t show on public pages / 404
• Why?
• Edge cases: user objects to erasure;
Export data
• Right to data portability (no vendor lock-in; in theory)
• Formats: JSON, XML, CSV or other standards
• Schema: prefer schema.org
• Could be a background process that sends email when done
• Could be a manual process (easier to get compliant)
• All personal data + all data, associated with the user (orders, messages, etc.)
• Logs? No
• Data from 3rd party systems? Yes
• they should have that functionality as well
Editable user profile
• Right to rectification
• All personal data fields should be editable
• Could be a manual support process: “please fix my name”
• Data obtained from 3rd parties
• If email/phone is included, user should be able to identify with that email/phone
(“shadow accounts”)
• If not – manual process
Ask for consent
• No more “I accept the Terms and conditions and the privacy policy”
• Unchecked checkbox for each processing purpose on registration
• Data processing business processes to be listed in a register
• User should be able to withdraw consent from the user profile page
• If data is used for machine learning, get explicit consent for that
• Store consent in a secure way
• Boolean column may or may not be enough, depending on the regulator
• Consents table?
• Timestamping?
• Re-request consent for existing users via email
• Oral consent
• Workarounds: consent vs contract with electronic signature?
“See my data”
• Overlaps with “export data”
• Allow non-registered users to check if you have data about them
• Confirm email
• Show the processing records from the register
Age check
• On registration ask for age / date of birth / (checked) checkbox “I’m older than 16”
• Ask parent for consent
• How?
• Nobody has a clue 
• “The controller shall make reasonable efforts to verify in such cases that consent is
given or authorised by the holder of parental responsibility over the child, taking into
consideration available technology.”
• Proposal: ask for parent’s email, send a link and get the registration confirmed
• Proposal: upload “parent selfie”
• Proposal: eID
Limit data retention
• Don’t store data for longer than “necessary”
• Database column for “data retention deadline”
• Scheduled job to delete/anonymize/pseudonymize data that past its deadline
• Deadline vs confirmation event, e.g. “goods delivered”
• Applicable to “purchase without registration”
• Theoretically applicable to registered users
• In practice: “I agree to having my address stored for the purpose of not entering it
again on subsequent purchases”
Do’s (encryption)
• Encrypt data in transit
• between application and database
• between application and 3rd parties
• between application and database nodes (gossip)
• between multiple applications / microservices
• obviously: between user and application
• between load balancer and application?
• Encrypt data at rest
• LUKS or database-specific encryption
• Encryption key: ideally on HSM / AWS KMS / …
• Encrypt backups
Do’s
• Implement pseudonymization
• replace personal data with bcrypt/PBKDF?
• don’t use real production data for staging/test
• pseudonymize for machine learning purposes
• Protect data integrity
• Simple solution: do nothing  Procedures should indicate integrity is guaranteed by
the database via checksums
• Other options: checksum column per record, enforced in the application layer, audit
trail, 3rd party solutions like LogSentinel
Do’s
• Have your GDPR register of processing activities in something other than Excel
• Internal web app / microservice or a 3rd party service
• Integrate with consent checkboxes and “right to access”
• Correlate audit logs with processing activities
• Audit log for the register itself
• Backups, high availability
• Log access to personal data
• Implied from the accountability principles
• Correlate with processing activity
• Search results / lists? Log “User X did query Y”
• Register all API consumers (no anonymous access)
Data breaches
• Notify data protection regulator
• Notify controllers (if you are a processor)
• Notify users
• Option: Configure your security incident system to report to the data protection regulator
• Have proof of when the breach was discovered (timestamp emails/issues?)
• Will it help? Questionable
• (Dilbert)
Don’t’s
• Don’t use data for purposes other than what he user has agreed with
• Request consent via email for new purposes
• Legitimate interests can be dynamically added
• Don’t log personal data – just ID
• Cleanup old log files
• Don’t put unnecessary registration fields
• Don’t assume 3rd parties are compliant
• Don’t assume having ISO XXX makes you compliant
• Don’t dump personal data on public servers/buckets 
• …and other obvious stuff
Conclusion
• GDPR would require changes, mostly
• Best practices
• Useful to customers
• The majority of changes can be implemented within 2-3 sprints
• GDPR forces better understanding of data flows
• Compliance likely to be checklist-based
• Beware of consultants claiming GDPR will require rewriting everything and asking for a
lot of money
• Regulators will need some teaching
• The spirit of the regulation: be conscious about personal data
Thank you
Bozhidar Bozhanov: bozhidar.bozhanov@logsentinel.com

Más contenido relacionado

La actualidad más candente

GRC - Isaca Training 16.9.2014
GRC - Isaca Training 16.9.2014GRC - Isaca Training 16.9.2014
GRC - Isaca Training 16.9.2014
Paul Simidi
 
IT4IT real life examples & myths and rumors dispelled
IT4IT real life examples & myths and rumors dispelledIT4IT real life examples & myths and rumors dispelled
IT4IT real life examples & myths and rumors dispelled
Tony Price
 

La actualidad más candente (20)

Privacy by Design and by Default + General Data Protection Regulation with Si...
Privacy by Design and by Default + General Data Protection Regulation with Si...Privacy by Design and by Default + General Data Protection Regulation with Si...
Privacy by Design and by Default + General Data Protection Regulation with Si...
 
So You Think You Need A Digital Strategy
So You Think You Need A Digital StrategySo You Think You Need A Digital Strategy
So You Think You Need A Digital Strategy
 
Enterprise Data Architecture Deliverables
Enterprise Data Architecture DeliverablesEnterprise Data Architecture Deliverables
Enterprise Data Architecture Deliverables
 
Data privacy impact assessment
Data privacy impact assessmentData privacy impact assessment
Data privacy impact assessment
 
Data Protection and Privacy
Data Protection and PrivacyData Protection and Privacy
Data Protection and Privacy
 
Everything you Need to Know about The Data Protection Officer Role
Everything you Need to Know about The Data Protection Officer Role Everything you Need to Know about The Data Protection Officer Role
Everything you Need to Know about The Data Protection Officer Role
 
GRC - Isaca Training 16.9.2014
GRC - Isaca Training 16.9.2014GRC - Isaca Training 16.9.2014
GRC - Isaca Training 16.9.2014
 
GDPR Basics - General Data Protection Regulation
GDPR Basics - General Data Protection RegulationGDPR Basics - General Data Protection Regulation
GDPR Basics - General Data Protection Regulation
 
GDPR Presentation slides
GDPR Presentation slidesGDPR Presentation slides
GDPR Presentation slides
 
Iasa UK Archimate Overview
Iasa UK Archimate OverviewIasa UK Archimate Overview
Iasa UK Archimate Overview
 
Gdpr presentation
Gdpr presentationGdpr presentation
Gdpr presentation
 
Data Protection Officer Dashboard | GDPR
Data Protection Officer Dashboard | GDPRData Protection Officer Dashboard | GDPR
Data Protection Officer Dashboard | GDPR
 
General Data Protection Regulation (GDPR) and ISO 27001
General Data Protection Regulation (GDPR) and ISO 27001General Data Protection Regulation (GDPR) and ISO 27001
General Data Protection Regulation (GDPR) and ISO 27001
 
GraphTour 2020 - Danish Business Authority: First line of Defence
GraphTour 2020 - Danish Business Authority: First line of DefenceGraphTour 2020 - Danish Business Authority: First line of Defence
GraphTour 2020 - Danish Business Authority: First line of Defence
 
GDPR Demystified
GDPR DemystifiedGDPR Demystified
GDPR Demystified
 
IT4IT real life examples & myths and rumors dispelled
IT4IT real life examples & myths and rumors dispelledIT4IT real life examples & myths and rumors dispelled
IT4IT real life examples & myths and rumors dispelled
 
GDPR and Personal Data Transfers 1.1.pdf
GDPR and Personal Data Transfers 1.1.pdfGDPR and Personal Data Transfers 1.1.pdf
GDPR and Personal Data Transfers 1.1.pdf
 
SOC 2 and You
SOC 2 and YouSOC 2 and You
SOC 2 and You
 
General Data Protection Regulation (GDPR) - Cross-Border Data Transfers
General Data Protection Regulation (GDPR) - Cross-Border Data TransfersGeneral Data Protection Regulation (GDPR) - Cross-Border Data Transfers
General Data Protection Regulation (GDPR) - Cross-Border Data Transfers
 
Neo4j GraphSummit London March 2023 Emil Eifrem Keynote.pptx
Neo4j GraphSummit London March 2023 Emil Eifrem Keynote.pptxNeo4j GraphSummit London March 2023 Emil Eifrem Keynote.pptx
Neo4j GraphSummit London March 2023 Emil Eifrem Keynote.pptx
 

Similar a GDPR for developers

General Data Protection Regulation
General Data Protection RegulationGeneral Data Protection Regulation
General Data Protection Regulation
GrittyCC
 

Similar a GDPR for developers (20)

ABM Display Advertising Success in the World of GDPR [PPT]
ABM Display Advertising Success in the World of GDPR [PPT]ABM Display Advertising Success in the World of GDPR [PPT]
ABM Display Advertising Success in the World of GDPR [PPT]
 
Webinar - Compliance with the Microsoft Cloud- 2017-04-19
Webinar - Compliance with the Microsoft Cloud- 2017-04-19Webinar - Compliance with the Microsoft Cloud- 2017-04-19
Webinar - Compliance with the Microsoft Cloud- 2017-04-19
 
Ease out the GDPR adoption with ManageEngine
Ease out the GDPR adoption with ManageEngineEase out the GDPR adoption with ManageEngine
Ease out the GDPR adoption with ManageEngine
 
A Guide To Single Sign-On for IBM Collaboration Solutions
A Guide To Single Sign-On for IBM Collaboration SolutionsA Guide To Single Sign-On for IBM Collaboration Solutions
A Guide To Single Sign-On for IBM Collaboration Solutions
 
QA Fest 2017. Per Thorsheim.GDPR - An overview and its relevance for QA
QA Fest 2017. Per Thorsheim.GDPR - An overview and its relevance for QAQA Fest 2017. Per Thorsheim.GDPR - An overview and its relevance for QA
QA Fest 2017. Per Thorsheim.GDPR - An overview and its relevance for QA
 
#HR and #GDPR: Preparing for 2018 Compliance
#HR and #GDPR: Preparing for 2018 Compliance #HR and #GDPR: Preparing for 2018 Compliance
#HR and #GDPR: Preparing for 2018 Compliance
 
#1NWebinar: GDPR and Privacy Best Practices for Digital Marketers
#1NWebinar: GDPR and Privacy Best Practices for Digital Marketers#1NWebinar: GDPR and Privacy Best Practices for Digital Marketers
#1NWebinar: GDPR and Privacy Best Practices for Digital Marketers
 
Web analytics: Practical steps to GDPR compliance
Web analytics: Practical steps to GDPR complianceWeb analytics: Practical steps to GDPR compliance
Web analytics: Practical steps to GDPR compliance
 
GDPR- The Buck Stops Here
GDPR-  The Buck Stops HereGDPR-  The Buck Stops Here
GDPR- The Buck Stops Here
 
Jadu GDPR guide: A easy to follow guide for Digital Service Managers and Webs...
Jadu GDPR guide: A easy to follow guide for Digital Service Managers and Webs...Jadu GDPR guide: A easy to follow guide for Digital Service Managers and Webs...
Jadu GDPR guide: A easy to follow guide for Digital Service Managers and Webs...
 
Security 101: Protecting Data with Encryption, Tokenization & Anonymization
Security 101: Protecting Data with Encryption, Tokenization & AnonymizationSecurity 101: Protecting Data with Encryption, Tokenization & Anonymization
Security 101: Protecting Data with Encryption, Tokenization & Anonymization
 
Lecture 2 - Security Requirments.ppt
Lecture 2 - Security Requirments.pptLecture 2 - Security Requirments.ppt
Lecture 2 - Security Requirments.ppt
 
Law Practice Management - Organization, Cloud, Social Media and Ethics
Law Practice Management - Organization, Cloud, Social Media and EthicsLaw Practice Management - Organization, Cloud, Social Media and Ethics
Law Practice Management - Organization, Cloud, Social Media and Ethics
 
How to leverage Enterprise Architecture in a regulated environment
How to leverage Enterprise Architecture in a regulated environmentHow to leverage Enterprise Architecture in a regulated environment
How to leverage Enterprise Architecture in a regulated environment
 
Gdpr demystified - making sense of the regulation
Gdpr demystified  - making sense of the regulationGdpr demystified  - making sense of the regulation
Gdpr demystified - making sense of the regulation
 
GDPR and Cyber Security LW.pptx
GDPR and Cyber Security LW.pptxGDPR and Cyber Security LW.pptx
GDPR and Cyber Security LW.pptx
 
General Data Protection Regulation
General Data Protection RegulationGeneral Data Protection Regulation
General Data Protection Regulation
 
Privacy Secrets Your Systems May Be Telling
Privacy Secrets Your Systems May Be TellingPrivacy Secrets Your Systems May Be Telling
Privacy Secrets Your Systems May Be Telling
 
Privacy Secrets Your Systems May Be Telling
Privacy Secrets Your Systems May Be TellingPrivacy Secrets Your Systems May Be Telling
Privacy Secrets Your Systems May Be Telling
 
The Next Gen Auditor - Auditing through technological disruptions
The Next Gen Auditor - Auditing through technological disruptionsThe Next Gen Auditor - Auditing through technological disruptions
The Next Gen Auditor - Auditing through technological disruptions
 

Más de Bozhidar Bozhanov

Más de Bozhidar Bozhanov (20)

Антикорупционен софтуер
Антикорупционен софтуерАнтикорупционен софтуер
Антикорупционен софтуер
 
Nothing is secure.pdf
Nothing is secure.pdfNothing is secure.pdf
Nothing is secure.pdf
 
Elasticsearch - Scalability and Multitenancy
Elasticsearch - Scalability and MultitenancyElasticsearch - Scalability and Multitenancy
Elasticsearch - Scalability and Multitenancy
 
Encryption in the enterprise
Encryption in the enterpriseEncryption in the enterprise
Encryption in the enterprise
 
Blockchain overview - types, use-cases, security and usabilty
Blockchain overview - types, use-cases, security and usabiltyBlockchain overview - types, use-cases, security and usabilty
Blockchain overview - types, use-cases, security and usabilty
 
Електронна държава
Електронна държаваЕлектронна държава
Електронна държава
 
Blockchain - what is it good for?
Blockchain - what is it good for?Blockchain - what is it good for?
Blockchain - what is it good for?
 
Algorithmic and technological transparency
Algorithmic and technological transparencyAlgorithmic and technological transparency
Algorithmic and technological transparency
 
Scaling horizontally on AWS
Scaling horizontally on AWSScaling horizontally on AWS
Scaling horizontally on AWS
 
Alternatives for copyright protection online
Alternatives for copyright protection onlineAlternatives for copyright protection online
Alternatives for copyright protection online
 
Политики, основани на данни
Политики, основани на данниПолитики, основани на данни
Политики, основани на данни
 
Отворено законодателство
Отворено законодателствоОтворено законодателство
Отворено законодателство
 
Overview of Message Queues
Overview of Message QueuesOverview of Message Queues
Overview of Message Queues
 
Electronic governance steps in the right direction?
Electronic governance   steps in the right direction?Electronic governance   steps in the right direction?
Electronic governance steps in the right direction?
 
Сигурност на електронното управление
Сигурност на електронното управлениеСигурност на електронното управление
Сигурност на електронното управление
 
Opensource government
Opensource governmentOpensource government
Opensource government
 
Биометрична идентификация
Биометрична идентификацияБиометрична идентификация
Биометрична идентификация
 
Biometric identification
Biometric identificationBiometric identification
Biometric identification
 
Регулации и технологии
Регулации и технологииРегулации и технологии
Регулации и технологии
 
Regulations and technology
Regulations and technologyRegulations and technology
Regulations and technology
 

Último

Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
masabamasaba
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
VictoriaMetrics
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
masabamasaba
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
masabamasaba
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
chiefasafspells
 

Último (20)

WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptx
 
WSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security Program
 
WSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - Keynote
 
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
 
WSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaS
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
 

GDPR for developers

  • 2. About me • Founder and CEO of LogSentinel • Former IT advisor to the deputy prime minister of Bulgaria • Software engineer • Privacy advocate • Top 50 stackoverflow contributor • https://techblog.bozho.net • @bozhobg
  • 3. What is GDPR? Regulation Panic! Opportunity • a.k.a. direct common EU law • overrides / supercedes national data protection laws • extends the existing directive • Huge fines for non-compliance (4% of turnover or 20 million euro) • Insufficient understanding on what has to be done (consultants, regulators, companies) • To really protect your customers’ data • To get your systems secure
  • 4. Pros and cons of GDPR • Cons: • Bureaucratic • Not always clear • Requires most systems to be upgraded (burden) • Doesn’t solve all data protection issues • Leaves issues at the discretion of local regulators • Pros: • Unifies data protection in Europe • Mandates best practices • Requires consciousness about personal data processing
  • 5. Why do YOU care? • You may be: • implementing GDPR-related upgrades • be designated as a DPO (data protection officer) • implementing anything that handles data • conscious about personal data in your organization
  • 6. Terminology Data subject Personal data Data processing • a.k.a. User (person whose personal data is processed) • Any data about an identifiable or identified person • Any operation (manual or automated) on personal data Controller • The entity (company) that requests and uses the data Processor • Any entity that processes data on behalf of a controller (e.g. cloud service providers)
  • 7. GDPR principles Lawfulness Purpose limitation Data minimisation Accuracy Storage limitation Integrity and confidentiality …magic
  • 8. What about cookies? • ePrivacy directive -> ePrivacy regulation • Somehow different than GDPR • Answers some questions unanswered by GDPR: • Tracking cookies • Traffic data • Direct marketing • Opinion – should have been a unified regulation • With the upcoming ePrivacy regulation – no more useless cookie warnings • Also: directive for processing personal data by law enforcement
  • 9. When to process personal data • User’s consent • Performance of a contract • If required by law • Legitimate interest of the controller (including direct marketing) • Combination of the above
  • 10. GDPR functionalities • Functionalities are only part of it – processes/procedures/rules must also exist • “Forget me” (the right to erasure) • Mark profile as restricted (right to restriction of processing) • Export data (right to portability) • Allow profile editing (right to rectification) • “See all my data” (right to access) • Consent checkboxes • Age checks • Data destruction (data minimization principle)
  • 11. “Forget me” • Delete all data relating to a user • void forgetUser(UUID userId); • Useful for integration tests • What about foreign keys? • Allow nullable foreign keys • Anonymize user (leave only ID) • Cascade delete • Option: mark for deletion (+user cleanup job)
  • 12. “Forget me” • Event-sourcing? • Crypto-shredding • Blockchain? • Notify 3rd parties / call 3rd parties APIs: • CRMs, Payment gateways, etc. • Return 404 for indexable pages • Backups – store anonymized IDs separately • “My data model doesn’t allow for it” is no excuse
  • 13. Restrict processing • Mark user as “restricted” • Boolean database column • Button on profile page “restrict processing of personal data” • Button on admin page • Don’t show in searches, don’t send emails, don’t include in automated processing • Mark as restricted in 3rd party systems (e.g. with a custom field) • Don’t show on public pages / 404 • Why? • Edge cases: user objects to erasure;
  • 14. Export data • Right to data portability (no vendor lock-in; in theory) • Formats: JSON, XML, CSV or other standards • Schema: prefer schema.org • Could be a background process that sends email when done • Could be a manual process (easier to get compliant) • All personal data + all data, associated with the user (orders, messages, etc.) • Logs? No • Data from 3rd party systems? Yes • they should have that functionality as well
  • 15. Editable user profile • Right to rectification • All personal data fields should be editable • Could be a manual support process: “please fix my name” • Data obtained from 3rd parties • If email/phone is included, user should be able to identify with that email/phone (“shadow accounts”) • If not – manual process
  • 16. Ask for consent • No more “I accept the Terms and conditions and the privacy policy” • Unchecked checkbox for each processing purpose on registration • Data processing business processes to be listed in a register • User should be able to withdraw consent from the user profile page • If data is used for machine learning, get explicit consent for that • Store consent in a secure way • Boolean column may or may not be enough, depending on the regulator • Consents table? • Timestamping? • Re-request consent for existing users via email • Oral consent • Workarounds: consent vs contract with electronic signature?
  • 17. “See my data” • Overlaps with “export data” • Allow non-registered users to check if you have data about them • Confirm email • Show the processing records from the register
  • 18. Age check • On registration ask for age / date of birth / (checked) checkbox “I’m older than 16” • Ask parent for consent • How? • Nobody has a clue  • “The controller shall make reasonable efforts to verify in such cases that consent is given or authorised by the holder of parental responsibility over the child, taking into consideration available technology.” • Proposal: ask for parent’s email, send a link and get the registration confirmed • Proposal: upload “parent selfie” • Proposal: eID
  • 19. Limit data retention • Don’t store data for longer than “necessary” • Database column for “data retention deadline” • Scheduled job to delete/anonymize/pseudonymize data that past its deadline • Deadline vs confirmation event, e.g. “goods delivered” • Applicable to “purchase without registration” • Theoretically applicable to registered users • In practice: “I agree to having my address stored for the purpose of not entering it again on subsequent purchases”
  • 20. Do’s (encryption) • Encrypt data in transit • between application and database • between application and 3rd parties • between application and database nodes (gossip) • between multiple applications / microservices • obviously: between user and application • between load balancer and application? • Encrypt data at rest • LUKS or database-specific encryption • Encryption key: ideally on HSM / AWS KMS / … • Encrypt backups
  • 21. Do’s • Implement pseudonymization • replace personal data with bcrypt/PBKDF? • don’t use real production data for staging/test • pseudonymize for machine learning purposes • Protect data integrity • Simple solution: do nothing  Procedures should indicate integrity is guaranteed by the database via checksums • Other options: checksum column per record, enforced in the application layer, audit trail, 3rd party solutions like LogSentinel
  • 22. Do’s • Have your GDPR register of processing activities in something other than Excel • Internal web app / microservice or a 3rd party service • Integrate with consent checkboxes and “right to access” • Correlate audit logs with processing activities • Audit log for the register itself • Backups, high availability • Log access to personal data • Implied from the accountability principles • Correlate with processing activity • Search results / lists? Log “User X did query Y” • Register all API consumers (no anonymous access)
  • 23. Data breaches • Notify data protection regulator • Notify controllers (if you are a processor) • Notify users • Option: Configure your security incident system to report to the data protection regulator • Have proof of when the breach was discovered (timestamp emails/issues?) • Will it help? Questionable • (Dilbert)
  • 24. Don’t’s • Don’t use data for purposes other than what he user has agreed with • Request consent via email for new purposes • Legitimate interests can be dynamically added • Don’t log personal data – just ID • Cleanup old log files • Don’t put unnecessary registration fields • Don’t assume 3rd parties are compliant • Don’t assume having ISO XXX makes you compliant • Don’t dump personal data on public servers/buckets  • …and other obvious stuff
  • 25. Conclusion • GDPR would require changes, mostly • Best practices • Useful to customers • The majority of changes can be implemented within 2-3 sprints • GDPR forces better understanding of data flows • Compliance likely to be checklist-based • Beware of consultants claiming GDPR will require rewriting everything and asking for a lot of money • Regulators will need some teaching • The spirit of the regulation: be conscious about personal data
  • 26. Thank you Bozhidar Bozhanov: bozhidar.bozhanov@logsentinel.com