QueryProxy

Veritabanı erişim denetimi nedir?

Güncelleme:

Veritabanı erişim denetimi, bir kurumun şu üç şeye karar verme biçimidir: kim veritabanına ulaşabilir, oraya ulaştığında ne yapabilir ve sonuçta neyi görebilir. Çoğu ekibin birincisine tam, ikincisine kısmi, üçüncüsüne ise hiç cevabı yoktur.

Üç katman

Kim bağlanabilir

Herkesin ilk kurduğu katman budur: ağ kuralları, bir bastion sunucu ya da VPN, SSH anahtarları ve parola yöneticisinde tutulan kimlik bilgileri. Gerçek bir soruyu cevaplar ve iyi cevaplar. Sınırı, işinin bağlantı kurulduğu anda bitmesidir.

Ne yapabilir

Veritabanının kendi izin sistemi burada yaşar — GRANT, roller ve motorun desteklediği yerlerde satır düzeyi güvenlik. Hem gerçekten güçlü hem de gerçekten kabadır. Yalnızca okuma yetkisi veren bir rol, her satırın her kolonunda SELECT’e izin verir. UPDATE’e izin veren bir rol, dikkatli bir tek satır değişikliğiyle tüm tabloyu yeniden yazan WHERE’siz bir ifadeyi ayırt edemez.

Neyi görebilir

Çoğu ekibin atladığı katman. Doğru kapsamlanmış bir okuma bile gerçek e-posta adreslerini, gerçek telefon numaralarını ve gerçek kart numaralarını döndürür — bir dizüstü bilgisayara, bir terminal geçmişine, bazen de çekildiği olaydan daha uzun yaşayan bir tabloya.

Katmanlar neden toplamda yetmiyor

Boşluk bir yapılandırma hatası değil, yapısaldır. Ağ denetimleri SQL okuyamaz. Veritabanı yetkileri niyeti değerlendiremez. Hiçbiri sonucu maskeleyemez.

Dolayısıyla yaygın düzen — bir bastion, bir salt okunur rol ve kasadaki bir kimlik bilgisi — gerçek bir boşluk bırakır: meşru bir gerekçesi olan, kimliği doğrulanmış bir mühendis meşru görünen bir sorgu çalıştırır, maskesiz üretim verisi alır ve geriye kalan tek kayıt bir bağlantının kurulduğudur.

Bu boşluğu kapatan uygulamalar

Gerçekten uygulanan en az yetki. Okuma yeterliyse yalnızca okuma; tüm örnek yerine tek şema; günlük ihtiyacı olmayana kalıcı üretim erişimi yok.

Paylaşılan kimlik bilgisi yok. İki kişinin bildiği bir parola, sahibi olmayan bir paroladır. Her eylem bir kişiye kadar izlenebilmelidir. Paylaşılan parola olmadan üretim veritabanı erişimi yazısı alternatifi gösterir.

Yalnızca kimliği değil ifadeyi de inceleyin. SQL’i çalışmadan önce parse etmek, kimlik doğrulamanın asla yakalayamayacağı WHERE’siz UPDATE’i ve sınırsız SELECT’i yakalar.

İkinci bir kişinin onayı. Kod incelemesiyle aynı mantık: ucuzdur ve yazarın kendi işinde göremediğini yakalar.

Çıkışta maskeleyin. Kişisel veri sonuçlar depolamaya akarken maskeleniyorsa, sızdırılacak maskesiz bir kopya hiç var olmaz.

Değiştirilemez biçimde kaydedin. Kim istedi, kim onayladı, ne çalıştı, ne kadar sürdü, neye dokundu — ekleme ve okumaya izin veren ama düzenlemeye izin vermeyen bir depoda.

Veritabanı motoruna göre

Fikir her motorda aynıdır, ama motorun kendi sunduğu şey ve bir korumanın neyi engellemesi gerektiği farklıdır. Motora özgü sayfalar PostgreSQL, MySQL ile MariaDB ve SQL Server konularını kapsar. SQLite hedefleri de desteklenir: SQL korumaları referansı korumanın ATTACH, DETACH, VACUUM ... INTO ve load_extension( ifadelerini engellediğini listeler; bir ayar da bağlantının hangi dosyaları açabileceğini sınırlayabilir. QueryProxy’nin bir veritabanına ulaşmanın diğer yollarıyla nasıl karşılaştığını görmek için karşılaştırmaları okuyun.

Uyum

Denetçiler veritabanı erişimi için hep aynı soruyu sorar: veriye kim ulaşabilirdi, bir değişikliği kim onayladı ve bunu gösterebiliyor musunuz? QueryProxy bu kanıtın üretilmesine yardım eder; kimsenin denetimi geçmesini sağlamaz. Aşağıdaki her sayfa, ilgili olduğu kontrolleri ve kurumunuzda kalan işleri listeler:

QueryProxy nerede duruyor

QueryProxy ikinci ve üçüncü katmanları uygular ve birincisine zaten sahip olduğunuzu varsayar. Geliştiriciler üretim kimlik bilgilerini hiç ellerinde tutmaz; bir DBA’in kendilerine yetki verdiği bağlantılara SQL gönderirler. İfadeler çalışmadan önce parse edilir. Bir DBA web kuyruğundan ya da bir Slack kartından onaylar ve hiçbir DBA kendi talebini onaylayamaz — bunu yalnızca bir yönetici geçersiz kılabilir ve bu geçersiz kılma denetim günlüğünde işaretlenir. Sonuçlar sınırlandırılmış, diske değmeden kurallarınıza göre maskelenmiş ve uygulamanın düzenlemediği ya da silmediği, yalnızca eklenen bir denetim günlüğüne kaydedilmiş olarak döner.

Ağ denetimlerinizin ya da veritabanınızın kendi yetkilerinin yerini almaz. İkisinin arasında durup hiçbirinin soramadığı soruyu sorar: bu ifade çalışmalı mı ve buna kim daha katılıyor?

Bir talebin uçtan uca nasıl ilerlediği için girişi okuyun ya da alışılmış kurulumla farkı için QueryProxy ile bastion sunucu karşılaştırmasına bakın.

Denetim ve uyum ekipleri için: QueryProxy’nin veri güvenliği tedbirlerine hangi kanıtı üretmeye yardım ettiği KVKK ve veritabanı erişim denetimi sayfasında anlatılır.

Sık sorulanlar

Veritabanı erişim denetimi nedir?
Veritabanı erişim denetimi, bir veritabanına kimin bağlanabileceğine, hangi işlemleri yapabileceğine ve sonuçta hangi veriyi görebileceğine karar veren kurallar ve mekanizmalar bütünüdür. Veritabanının kendi GRANT sistemini, ağ yolunu ve önündeki onay ya da maskeleme katmanını kapsar.
Erişim denetimi ile kimlik doğrulama aynı şey mi?
Hayır. Kimlik doğrulama birinin kim olduğunu belirler. Erişim denetimi ise o kimliğin bundan sonra ne yapabileceğine karar verir. Bir sistem kimliği kusursuz doğrulayıp yine de her mühendisin üretimde DELETE çalıştırmasına izin verebilir, çünkü bunlar ayrı sorulardır.
En az yetki ilkesi nedir?
Her kimliğe, işini yapmasına yetecek en dar izin kümesini vermek; ihtiyacını da kapsayan geniş bir rolü değil. Veritabanı diliyle bu, okuma yeterliyse yalnızca okuma, tüm örnek yerine tek bir şema ve günlük olarak ihtiyaç duymayan kimseye kalıcı üretim erişimi vermemek demektir.
Rol tabanlı erişim denetimi neden tek başına yetmiyor?
Roller kabadır. Yalnızca okuma yetkisi olan bir rol bile her satırın her kolonunda SELECT'e izin verir, kişisel veriler dahil; UPDATE'e izin veren bir rol ise dikkatli bir tek satır güncellemesiyle tabloyu baştan yazan WHERE'siz bir ifadeyi ayırt edemez. Roller kimin işlem yapabileceğini söyler; belirli bir ifadeyi inceleyemez.

Gezinmek için ok tuşları, açmak için Enter.