Vì sao ai cũng cần kiến thức về GDPR?
Với rất nhiều sự cố lớn và nghiêm trọng liên quan đến bảo mật thông tin xảy ra trong nhiều năm qua, GDPR đã chính thức có tên trong danh sách những kiến thức không thể bỏ qua của con người trong thời đại số.
**Tác giả bài viết: Bạn Xuân Hòa - Bộ phận: R&D Unit
Để bắt đầu bài viết, không gì tuyệt vời hơn bằng cách điểm qua các Slogan "chất lừ" tới từ các tập đoàn công nghệ hàng đầu thế giới hiện nay:
Facebook: Miễn phí và luôn luôn như vậy (Free and always will be) Google: Đừng trở thành ác quỷ (Don’t be evil) Alphabet (công ty mẹ Google): Làm điều đúng đắn (Do the right thing) |
Và đây là những gì họ làm :
Như vậy chúng ta đều thấy rằng, những người nói đạo lý thì...thường không thể tin tưởng được. Vì vậy Liên minh Châu Âu đã tạo ra đạo luật để ngăn chặn họ làm những điều xấu xa có tên GDPR.
I. Tổng quan về GDPR
GDPR (General Data Protection Regulation) là một Quy định chung về bảo vệ dữ liệu của Liên minh Châu Âu, được ban hành vào năm 2016 và có hiệu lực chính thức từ 25/5/2018. GDPR được xem như một nỗ lực bảo vệ quyền lợi của người dùng Liên minh Châu Âu nhằm tránh khỏi hành vi thu thập dữ liệu cá nhân trái phép của các công ty hoạt động trong khối hoặc các công ty nước ngoài thu thập dữ liệu người dùng Châu Âu. |
Tóm lại GDPR bảo vệ:
Dữ liệu cá nhân của người dùng - thuộc chính phủ các nước trong khối Liên minh Châu Âu.
Khỏi:
Các công ty hoạt động tại Liên minh Châu Âu - hoặc các công ty nước ngoài nhưng thu thập dữ liệu của người dùng Châu Âu.
Theo như một khảo sát được thực hiện bởi HubSpot có tới 90% người dùng ở Anh, Ireland, Đức , Áo, Thụy Sĩ hài lòng với các nguyên tắc được đề cập trong GDPR.
II. Sự tương phản giữa người dùng và doanh nghiệp
Về phía người dùng
Theo một khảo sát khác của Hubspot được thực hiện năm 2017, có tới 61% người dùng không mong muốn nhận được các cuộc điện thoại và email từ công ty cho mục đích tiếp thị. Trong đó 59% yêu cầu thông tin của mình bị xóa vĩnh viễn trên cơ sở dữ liệu hiện đang lưu trữ và 55% yêu cầu xem tất cả thông tin mà một công ty đang nắm giữ về họ.
Về phía Doanh nghiệp
Cũng theo khảo sát trên, trong số 363 lãnh đạo doanh nghiệp và nhà tiếp thị được phỏng vấn chỉ có 36% trong số họ đã nghe nói về GDPR, 12% thừa nhận đây là lần đầu tiên họ biết về nó.
Cuối cùng, chưa tới 50% số công ty được khảo sát đã "chuẩn bị áp dụng" GDPR cho doanh nghiệp của họ.
Tuy nhiên GDPR không phải là chỉ thị mang tính chất "cho vui" mà là luật bắt buộc nên mọi công ty hoạt động tại Châu Âu đều phải tuân thủ một cách nghiêm túc. Bất kỳ doanh nghiệp nào vi phạm sẽ có nguy cơ đối mặt với án phạt lên tới 20 triệu Euro hoặc 4% lợi nhuận toàn cầu hàng năm của mình.
Kể từ khi GDPR có hiệu lực vào tháng 5 năm 2018, đã có hơn 900 khoản tiền phạt lớn nhỏ được ban hành. Riêng trong quý III năm 2021 "lợi nhuận" đạt gần 1 tỷ Euro gấp hơn 20 lần tổng số tiền phạt quý I và quý II năm 2021 cộng lại.
Danh sách án phạt liên tục được cập nhật & công bố tại đây https://www.enforcementtracker.com/
Trong danh sách dài dằng dặc, chúng ta có thể "điểm mặt gọi tên" một số "ông lớn" ngành công nghệ như:
- Amazon — €746 million ($877 million)
- WhatsApp — €225 million ($255 million)
- Google Ireland — €90 million ($102 million)
- Facebook — €60 million ($68 million)
- Google LLC — €60 million ($68 million)
- Google – €50 million ($56.6 million)
- H&M — €35 million ($41 million)
Ở đây chúng ta - những người trưởng thành - đều nhận thức rõ ràng rằng, không phải những sai phạm kia chỉ xảy ra ở Liên minh Châu Âu, mà thực tế là trên toàn thế giới. Có điều chỉ ở khu vực châu Âu họ mới bị xử lý mà thôi. Có lẽ dữ liệu cá nhân cũng được phân chia theo giai cấp xã hội.
III. GDPR quy định những gì?
GDPR bao gồm 11 Chapter với 99 điều khoản lớn nhỏ, được ban hành chi tiết tại https://gdpr-info.eu.
Tuy nhiên với đa phần chúng ta - những người đôi khi còn chưa nắm rõ luật Giao Thông đường bộ, thì có thể tham khảo "phiên bản rút gọn" của bộ luật này như sau:
1. Lawful basis and transparency (Cơ sở pháp lý và tính minh bạch)
- Tiến hành kiểm tra thông tin để xác định loại thông tin bạn xử lý và ai có quyền được tiếp cận thông tin đó.
- Tính chính danh cho các hoạt động xử lý dữ liệu (Tính chính danh thể hiện ở việc chúng ta có thực sự cần những loại dữ liệu đó từ người dùng hay không. Ví dụ như cung cấp một ứng dụng hỗ trợ Xem Lịch Âm nhưng lại đòi hỏi người dùng cho phép truy cập từ Danh bạ, Cuộc Gọi, Ghi Âm.. Vậy những thông tin này được coi là không chính danh.)
- Cung cấp thông tin rõ ràng về việc xử lý dữ liệu và giải thích chi tiết rõ ràng trong chính sách bảo mật. Thông tin này phải được trình bày ở dạng ngắn gọn, minh bạch, dế hiểu, dễ tiếp cận, đồng thời sử dụng ngôn ngữ rõ ràng và đơn giản đặc biệt đối với bất kỳ thông tin nào được đề cập cụ thể cho trẻ em.
2. Data Security (Bảo mật dữ liệu)
- Luôn tính tới việc bảo vệ dữ liệu, từ thời điểm bắt đầu phát triển sản phẩm cho đến mỗi lần xử lý dữ liệu.
- Bất cứ khi nào khả thi, ứng dụng nên cho phép người dùng sử dụng thông tin giả danh (Nickname) hoặc nặc danh (Không yêu cầu thông tin cá nhân) đồng thời mã hóa chúng trước khi lưu trữ.
- Tạo chính sách nội bộ cho các thành viên trong công ty, đào tạo nâng cao nhận thức về bảo vệ dữ liệu.
- Biết khi nào cần tiến hành đánh giá tác động bảo mật dữ liệu (Audit Data Security) và có quy trình để thực hiện nó.
- Có sẵn một quy trình để thông báo cho cơ quan có thẩm quyền và chủ thể của dữ liệu trong trường hợp có vi phạm dữ liệu.
3. Accountability and governance (Trách nhiệm giải trình và quản trị)
- Chỉ định người chịu trách nhiệm đảm bảo tuân thủ GDPR trong tổ chức của bạn.
- Ký thỏa thuận xử lý dữ liệu giữa tổ chức của bạn với bất kỳ bên thứ ba nào xử lý dữ liệu cá nhân hay bạn .
- Nếu tổ chức của bạn nằm ngoài EU, hãy chỉ định một đại diện tại một trong các quốc gia thành viên EU.
- Chỉ định một nhân viên bảo vệ dữ liệu (nếu cần).
4. Privacy rights (Quyền riêng tư)
- Cho phép khách hàng yêu cầu và nhận tất cả thông tin bạn có về họ.
Khách hàng có quyền biết bạn dự định lưu trữ thông tin gì của họ, trong thời gian bao lâu và lý do lưu trữ trong khoảng thời gian đó. Đồng thời bạn phải gửi cho họ bản sao của thông tin này miễn phí lần đầu tiên. Đồng thời có phương pháp xác minh danh tính của người yêu cầu dữ liệu.
- Cho phép khách hàng sửa chữa, cập nhật thông tin không chính xác hoặc không đầy đủ.
- Cho phép khách hàng dễ dàng yêu cầu xóa dữ liệu cá nhân của họ
- Cho phép khách hàng yêu cầu ngừng xử lý dữ liệu của họ.
- Cho phép khách hàng phản đối việc xử lý dữ liệu của họ (Phản đối thông qua các kênh liên lạc email, chat trực tiếp, telegram… ). Nếu bạn đang xử lý dữ liệu của họ cho mục đích tiếp thị - bạn phải ngừng ngay lập tức. Nếu không, bạn có thể chống lại sự phản đối bằng cách chứng minh tính hợp pháp của mình.
- Nếu bạn sử dụng các quy trình tự động trong việc xử lý dữ liệu cá nhân thì bạn phải có một quy trình để bảo vệ nó .
5. Tuân thủ GDPR compliance trên Infrastructure (Amazon Web Service)
Để tuân thủ GDPR trên môi trường Amazon Web Service (AWS) chúng ta cần thực hiện những quy tắc sau:
- Xác định các chính sách để phân loại dữ liệu, kiểm soát truy cập.
- Gắn information tag cho mỗi tài nguyên được tạo trong AWS (Giống như comment trong code - tag information dễ dàng cho chúng ta truy vết, phân loại tài nguyên khi cần thiết).
- Mã hóa dữ liệu sử dụng Server-side hay Client-Side.
- Hạn chế quyền truy cập vào IAM policies và resource policies.
- Không tạo ra bất cứ S3 buckets nào có thể truy cập một cách công khai.
- Sử dụng khóa riêng của mình để mã hóa dữ liệu trong S3.
- Mã hóa inbound và outbound S3 data traffic.
- Tiến hành sao lưu dữ liệu trên S3 đầy đủ và thường xuyên. Tốt nhất lưu trữ những bản backup này tại những resource riêng biệt như Google Bucket hay Azure Storage để đảm bảo an toàn.
- Tạo rules-base để tự động hóa các tác vụ trên S3.
- Bật xác thực 2 lớp (MFA) với tác vụ xóa S3 bucket.
- Tạo bản sao EBS ở một region riêng hoặc các resource riêng như Google Bucket hoặc Azure Storage (Với mỗi EC2 được tạo, AWS sẽ tạo 2 bản sao EBS để dự phòng. Tuy nhiên 2 bản sao này lại nằm trên cùng 1 Zone.Điều này gây nguy hiểm khi Hacker xâm nhập được vào hệ thống).
- Sử dụng built-in encryption function để mã hóa tất cả các trường cơ sở dữ liệu nhạy cảm, sử dụng application key trước khi tiến hành lưu trữ trong cơ sở dữ liệu.
- Mã hóa dữ liệu khi truyền đi với SSL/TLS.
- Bật CloudTrail trên AWS - sử dụng trên tất cả các region.
- Bật CloudWatch trên AWS đồng thời tích hợp với CloudTrail.
- Bật access logging cho CloudTrail S3 buckets, Elastic Load Balancer (ELB).
- Bật Redshift audit logging.
- Bật Virtual Private Cloud (VPC) flow logging.
- Yêu cầu MFA khi xóa CloudTrail Buckets.
- Bật MFA cho tài khoản root và IAM Users (Console users)
- Sử dụng IAM để định nghĩa các vai trò .
- Chính sách thay đổi Access key sau một khoảng thời gian cố định (Thường là 90 ngày).
- Chính sách thay đổi password sau một khoảng thời gian cố định (Thường là 90 ngày).
- Sử dụng HTTPS cho CloudFront.
- Giới hạn quyền truy cập vào các nguồn tài nguyên: Amazon Machine Images (AMIs), Security Group, RDS , Redshift, Cloudtrail Buckets
- Mã hóa EBS và RDS.
- Cung cấp truyền quy cập bằng cách sử dụng IAM.Đồng thời đảm bảo quyền truy cập tối thiểu cho IAM Users.
- Giới hạn inbound EC2 (Theo nguyên tắc chặn toàn bộ các port theo mặc định, sau đó tùy vào nhu cầu để mở các port đặc thù) .
- Hạn chế sử dụng tài khoản root và đảm bảo không có access key được tạo cho tài khoản này.
- Sử dụng SSL giữa client và ELB.
- Giảm thiểu các rule Security Group rời rạc.
- Giảm số lượng nhóm IAM.
- Xóa access key, SSH public key khi không sử dụng.
- Đảm bảo có quy trình triển khai việc lưu trữ dữ liệu khi xảy ra sự cố hoặc khi dữ liệu đã hết hạn sử dụng.
- Disable các tài khoản không sử dụng trên AWS - đồng thời xóa access key nếu có.
- Giới hạn truy cập vào các dịch vụ gây rủi ro cao: CIFS, FTP, ICMP, SMTP,SSH, RDP
- Bảo mật phải được áp dụng trong toàn bộ quá trình phát triển .
6. Tuân thủ GDPR compliance trên Application
Để tuân thủ GDPR trên Application chúng ta cần thực hiện những quy tắc sau:
- Tất cả dữ liệu đầu vào cần được xử lý ở một hệ thống an toàn, đáng tin cậy.
- Xác định rõ ràng nguồn dữ liệu nào là tin cậy và không đáng tin cậy. Đối với các nguồn dữ liệu không tin cậy, cần thực hiện kiểm tra trên server trước khi cho phép thực hiện các tác vụ khác.
- Chỉ định các bộ ký tự chuẩn cho dữ liệu đầu vào (UTF-8) và thực hiện encode dữ liệu về một bộ encode chuẩn trước khi thực hiện việc kiểm tra.
- Xác thực tất cả dữ liệu do người dùng cung cấp trước khi xử lý, bao gồm tất cả các tham số, URL và HTTP Headers.
- Xác minh rằng các giá trị trong cả request và response chỉ chứa các ký tự ASCII.
- Luôn luôn thực hiện validate dữ liệu bằng cách sử dụng whitelist khi có thể, thay vì sử dụng blacklist (Ví dụ đối với việc validate dữ liệu với chức năng upload avatar: Thay vì thực hiện chặn các extension không được phép như (.php, .php3, .svg..) thì chúng ta thực hiện whitelist các extension được phép upload trên server (png, jpg). Việc này vừa đảm bảo an toàn vừa tiết kiệm được công sức khi lập trình).
- Tất cả dữ liệu đầu ra cần được encode ở một hệ thống an toàn, đáng tin cậy.
- Mọi cơ chế xác thực cần thực hiện trên một hệ thống tin cậy.
- Nếu hệ thống cần lưu trữ thông tin liên quan đến việc xác thực người dùng (password) thì cần thực hiện mã hóa các thông tin đó trong database bằng cách thuật toán mã hóa mạnh.
- Chỉ thực hiện phân quyền trên các hệ thống tin cậy, không thực hiện phân quyền ở phía client.
- Đảm bảo bằng Users chỉ được truy cập những nguồn tài nguyên được cấp phép.
- Giới hạn quyền truy cập vào các tài nguyên quan trọng cho những người dùng được phân quyền.
- Nếu dữ liệu của người dùng cần lưu trữ tại phía client thì cần mã hóa và được kiểm tra tính toàn vẹn trên server.
- Giới hạn số lần kết nối cho một user hoặc thiết bị có thể thực hiện trong một khoảng thời gian nhất định.
- Nếu website cho phép session được tồn tại trong thời gian dài mà không logout, thì cần xác thực lại người dùng để kiểm tra về thay đổi quyền.
- Triển khai cơ chế khóa tài khoản tạm thời sau một khoảng thời gian không sử dụng.
- Ứng dụng phải hỗ trợ tính năng "vô hiệu hóa tài khoản" và chấm dứt phiên khi quyền của tài khoản thay đổi.
- Các tài khoản sử dụng cho các service bên ngoài, kết nối vào hệ thống cần có quyền tối thiểu.
- Ứng dụng cần có tài liệu rõ ràng về chính sách quyền truy cập (Access Control Policy).
- Không để lộ thông tin nhạy cảm trong các phản hồi lỗi từ trang web (bao gồm chi tiết hệ thống, phiên bản ứng dụng hoặc thông tin tài khoản).
- Thông báo lỗi chung và tiến hành chỉnh sửa các trang thông báo lỗi mặc định.
- Không lưu trữ thông tin nhạy cảm trong log (bao gồm các chi tiết hệ thống , thông tin phiên bản phần mềm hoặc mật khẩu người dùng).
- Bảo vệ dữ liệu sao lưu được lưu trữ trên máy chủ. Đảm bảo xóa khi không còn được sử dụng.
- Mã hóa khi thực hiện lưu trữ thông tin nhạy cảm (dữ liệu xác minh,xác thực) trên server. Luôn sử dụng các thuật toán mã hóa chuẩn và đã được kiểm tra kỹ lưỡng.
- Bảo vệ mã nguồn phía máy chủ không cho phép người dùng tải xuống.
- Không lưu trữ mật khẩu, connection string hoặc thông tin nhạy cảm khác dưới dạng bản rõ (clear text) hoặc theo bất kỳ cách mã hóa không an toàn nào ở phía máy client.
- Xóa tất cả các comments không cần thiết trong mã nguồn.
- Xóa ứng dụng và tài liệu hệ thống không cần thiết khi không có nhu cầu sử dụng.
- Không gửi thông tin nhạy cảm trong các tham số yêu cầu HTTP GET.
- Ứng dụng nên hỗ trợ tính năng "loại bỏ dữ liệu nhạy cảm" khi dữ liệu đó không còn cần sử dụng.
- Luôn luôn sử dụng kết nối có mã hóa an toàn cho các tác vụ quan trọng.
- Đảm bảo phiên bản của tất cả các thành phần trong website đang sử dụng không có lỗ hổng bảo mật.
- Đảm bảo phiên bản của tất cả các thành phần trong website luôn được cập nhật bản vá kịp thời.
- Tắt chức năng Directory listing trên web server.
- Thực hiện thiết lập đặc quyền tối thiểu với mỗi user trên web application.
- Xóa tất cả các chức năng, files không cần thiết.
- Xóa các đoạn code test hay debug trước khi deploy.
- Thiết lập file robots.txt một cách an toàn.
- Tắt các HTTP method không cần thiết.
- Loại bỏ các thông tin nhạy cảm trong response của website.
IV. Tổng kết
Việc đọc và áp dụng chính xác những quy tắc kể trên, thực sự là một quá trình khó khăn và mệt mỏi. Bản thân mình cũng rất "ngại" khi phải đánh giá bảo mật cho các khách hàng Châu Âu kiểu như thế này. Nhưng trên hết, ta thấy quyền lợi dữ liệu của họ được đảm bảo cao tới mức nào. Mong mỏi rằng một ngày không xa, dữ liệu cá nhân của người dùng Việt Nam cũng được "nâng niu" và bảo vệ như vậy.
Xem thêm về các ví dụ về GDPR tại bài viết gốc của tác giả Xuân Hòa đăng tải trên Viblo.
Viblo là dịch vụ chia sẻ và học tập kiến thức IT dành cho lập trình viên Việt Nam, được phát triển và vận hành bởi Sun*. Viblo ra đời với mục tiêu trở thành nền tảng tối ưu dành cho các lập trình viên, nơi mọi người có thể tự do học hỏi, chia sẻ và thể hiện các kỹ năng CNTT của riêng mình. Website: www.viblo.asia |