Herkese merhaba bu makalemde GDPR ve Masking konusuna değindim, Sql Server ile örnekler de mevcut PostgreSQL için ayrıca bir makale yazacağım. PostgreSQL Biraz daha zor ve uğraştırıcı bir süreç olması nedeni ile farklı yazmaya kara verdim.
Teknoloji geliştikçe her konuda büyük veriler görmek mümkün özellikle lojistik, bankacılık, sosyal iletişim vb gibi platformlarda KVKK kurallarına dikkat etmemiz ve önem vermemiz gerekmektedir.
Teknik olarak bu işin çözümleri elbette var ama en güzel çözüm en önemli bilgilerin hash lenmesi çözümsüz olarak tutulması ve database tarafında bile olsan maskeleme işlemi ile sorguların çıktısının görülmesi.
GDPR - General Data Protection Regulation ?
GDPR - Genel Veri Koruma Yönetmeliği; Avrupa ülkeleri genelinde AB vatandaşlarının kişisel verilerini korumaya yönelik oluşturulmuş yönetmeliktir.
Eğer AB ülkelerinde Kişisel DATA tutuyorsanız bu kurallara uymanız ve uygun masking rule ları çalıştırmanız oldukça önemlidir !
25 Mayıs 2018 tarihinden itibaren Avrupa Birliği'ne üye ülkelerde yürürlüğe girmiştir.
Tabi herşeyi de maskelemek çok doğru bir yöntem değildir. aşağıda bazı örnekler mevcut.
GDPR Avrupa birliği sınırları içerisindeki vatandaşlarının kişisel verilerini barındıran BÜTÜN işletmeleri kapsar.
Şirketin konumu Avrupa birliği sınırları içerisinde bulunmasa dahi bu vatandaşların verilerini topladığı için yönetmelikten sorumlu tutulmaktadır.
Kişisel veriler; kişisel veri sahibinden, yönetmelik içerisinde belirtilen şekilde yapılmadığı sürece işlenemez.
kişisel veri sahibi data paylaşma iznini istediği zaman iptal etme hakkına sahiptir.
GDPR geçmişte saklanmış verileri de kapsamaktadır.
Avrupa birliği sınırları içerisinde olsun veya olmasın Avrupa birliğine üye ülkelerin vatandaşlarının verilerini işleyen tüm işletmeler bu yönetmelikten sorumludur.
Yönetmeliğe uyumlu olmayan siteler kapatılır veya büyük cezalar kesilebilir.
Kullanıcıdan kişisel verileri için onayının alınması ve iptali de bu şekilde gerçekleştirilmelidir.
kişisel veri sahibi, hangi verilerinin alındığına, nerelerde nasıl kullanıldığına, ne kadar süreyle tutulacağını bilme hakkına sahiptir.
GDPR maddelerine uyum sağlamayan işletmeleri ciddi ceza ve yaptırımlar uygulanmaktadır.
Bu kişisel veriler:
İsim, adres, kimlik numarası
Konum, Ip adresi, cookie bilgileri vb. internet verileri
Fiziksel görünüme ait veriler ve biometrik veriler
Irk köken bilgileri
Siyasi görüş
Tıbbi veriler gibi vb. verileri kapsamaktadır.
KVKK - Kişisel Verileri Koruma Kanunu
KVKK kanun metni 24 Mart 2016 tarihinde TBMM Genel Kurulu tarafından kabul edilerek kanunlaşmış ve 7 Nisan 2016 tarih ve 29677 sayılı Resmî Gazetede yayımlanarak yürürlüğe girmiştir.
Kişisel verilerin korunması kanunu, kişisel verilerin işlenmesinin disiplin altına alınması ile temel hak ve özgürlüklerin korunmasıdır.
Kişisel verilerin korunması, temelde verilerin değil, bu kişisel verilerin ilişkili olduğu kişilerin korunmasını amaçlamaktadır. Başka bir ifade ile verilerin korunması; kişileri, onlar hakkındaki verilerin tamamen veya kısmen otomatik olan ya da otomatik olmayan yollarla işlenmesinden doğacak zararlardan koruma amacına yönelmiş ve kişisel verilerin korunmasına ilişkin ilkelerde somutlaşmış idari, teknik ve hukuki önlemleri ifade eder. Bu anlamda kişisel verilerin korunmasının, kişilere ilişkin verilerin toplanması, saklanması, kullanılması ve aktarılması gibi veri işleme süreçlerinin bütün aşamalarını kapsar şekilde bireylere kontrol hakkını yeniden kazandırmayı amaçladığı söylenebilir (KVKK alıntıdır.)
KVKK yasası ile birlikte, önemli bilgilerin saklandığı veri kaynaklarında; ifşa ve kötü amaçlı kullanıma karşı bir takım önlemler alınmaktadır.
SQL SERVER 2016 ile birlikte kullanmaya başladığımız. DYNAMIC DATA MASKING tamda bu konuyu, çok fazla efor sarf etmeden çok kolay bir şekilde Database ve uygulamamıza implemente etmemizi sağlamaktadır. Dynamic Data Masking dışında farklı yöntemler ile de değerli ve şahsi verilerimizi kolaylıkla koruyabiliriz.
ROW-LEVEL SECURITY
ALWAYS ENCRYPTED
Dynamic Data Masking ile Tablo içerisindeki alanlara uygulayabileceğimiz 4 adet fonksiyon bulunmaktadır.
DEFAULT MASK
EMAIL MASK
RANDOM MASK
PARTIAL MASK
Aşağıdaki görselde, bir tabloya nasıl Masking uygulanması gerektiği ve hangi yöntemlerin olduğu listelenmiştir.
GRANT ve REVOKE ile SQL kullanıcılarından masking alanların görünürlüğü yetkisini atayabilir veya kaldırabiliriz.
Burada dikkat edilmesi gereken nokta; Eğer kullanıcı database seviyesinde db_owner ise burada REVOKE fonksiyonu bir işe yaramayacaktır. En doğrusu Mask edilmiş alanların gösterilmemesi gereken kullanıcıya database seviyesinde db_owner yetkisinin kaldırılması gerekmektedir.
Github hesabımdan konu ile ilgili repository' e ulaşabilirsiniz.
Örnek uygulama : https://github.com/serifaydin/Entity-Framework-Dynamic-Masked
Comments