İçindekiler
Hash zinciri, denetim izini korumanın en bilinen yöntemidir ve gerçekten işe yarar. Ama tek başına kapatamadığı bir boşluk vardır ve deneyimli bir denetçi o boşluğu ilk yarım saatte bulur. Bu yazı, o boşluğun ne olduğunu ve dışarı teslim edilen bir çapanın onu nasıl kapattığını anlatıyor.
Zincirin Kapatamadığı Boşluk
Hash zincirinde her kayıt bir öncekinin özetini taşır. Ortadaki bir kaydı değiştirirseniz sonraki bütün kayıtların özetleri tutmaz. Bu, ucuz müdahaleleri imkânsız kılar: araya kayıt sıkıştırmak, tek bir satırı sessizce düzeltmek, bir kaydı silip yerine başka bir şey koymak.
Boşluk şurada: zinciri hesaplayan anahtara sahip biri, geçmişi baştan yazıp bütün zinciri yeniden hesaplayabilir. Sonuç kendi içinde kusursuz tutarlı bir zincirdir. Ürünün kendi doğrulama ekranı "zincir sağlam" der ve doğru söyler; çünkü sorduğu soru "bu zincir tutarlı mı" sorusudur, "bu zincir dünkü zincirle aynı mı" sorusu değil.
Bu ihtimal teorik değildir. Denetimin varlık sebebi tam olarak budur: kurumun kendi kayıtlarına kendi verdiği not yeterli sayılmaz. Bu yüzden bir kontrolün "geçmişi yeniden yazma" senaryosuna cevabının olması gerekir.
Çapa Nedir
Çapa çok kısa bir cümledir: "bugün, saat şu itibarıyla, son kaydımın numarası şudur ve özeti şudur." Bu cümle imzalanır ve kurumun dışına, düzenli aralıklarla teslim edilir.
Aylar sonra denetçi elindeki eski çapayı çıkarır ve kurumdan o numaranın bulunduğu aralıktaki ham kayıtları ister. O satırın bugünkü özetiyle çapadaki değer aynıysa, o kayıt çapanın teslim edildiği günden beri değişmemiştir. Değilse geçmiş yeniden yazılmıştır ve bu, bir denetim izinin taşıyabileceği en güçlü kurcalama işaretidir.
Bu karşılaştırmanın en önemli özelliği, hiçbir gizli anahtar gerektirmemesidir. Denetçi kurumdan bir sır istemez, bir sisteme bağlanmaz, bir yazılım kurmaz. Sadece iki farklı zamanda eline geçmiş iki değeri karşılaştırır.
Sektörde adı
Bu yöntemin İngilizce karşılığı external anchoring. Aynı fikir sertifika şeffaflık günlüklerinde ve dağıtık defterlerde de kullanılır: bir değeri, sonradan değiştiremeyeceğiniz bir yere erkenden yazmak. Fark, çapayı alacak yerin bir blok zinciri olması gerekmemesidir; kurumun erişemediği her arşiv iş görür ve denetçinin dosya dolabı bunlardan biridir.
Neden Önceden Teslim Edilmiş Olması Gerekir
Çapanın bütün gücü teslim zamanından gelir. Denetim günü kurumdan hem kayıtları hem çapaları birlikte alan bir denetçi hiçbir şey doğrulamış olmaz: iki dosya da aynı anda, aynı taraf tarafından üretilmiştir. Geçmişi yeniden yazan biri, çapaları da yeniden üretebilir.
Bu yüzden çapa teslimi denetim takvimine değil, kendi takvimine bağlanmalıdır. Aylık ya da çeyreklik bir ritim yeterlidir. Önemli olan, teslimin denetimden bağımsız ve düzenli olmasıdır.
Teslim aralığı, kanıtın çözünürlüğünü belirler. Ayda bir teslim edilen bir çapa, bir aylık pencere için "bu aralıkta bir şey değişmiş olabilir" der. Günlük üretilen ama üç ayda bir teslim edilen çapalar için de aynı şey geçerlidir: pencereyi belirleyen üretim değil teslimdir.
Çapayı Kim Almalı
Doğru alıcı, kurumun sonradan içeriğini değiştiremeyeceği bir taraftır. Uygulamada birkaç seçenek vardır ve hepsi aynı kapıya çıkar.
- İç denetim birimi. Kurum içindedir ama bilgi teknolojileri hattının dışındadır. Çoğu kurum için en pratik başlangıç budur.
- Dış bağımsız denetçi. En güçlü seçenek, çünkü kurumun hiçbir yetkisi o arşive ulaşmaz. Denetim döngüsüne bağlı olduğu için aralık genelde daha uzundur.
- Zaman damgası otoritesi. Kişi değil hizmettir; çapanın özetini imzalayarak tarihi üçüncü bir tarafa söyletir. Diğer alıcıların yerine geçmez, onları tamamlar.
Alıcı kim olursa olsun, teslimin kendisi kayıt altına alınmalıdır. "Düzenli teslim yapıyoruz" cümlesi de sonuçta bir iddiadır ve denetçi onun kanıtını sorar. Teslimin bir olay olarak denetim izine yazılması bu soruyu cevaplar.
Kurumun Kendi Kendini Denetlemesi
Çapa yalnız denetçiye yarayan bir şey değildir. Kurum, geçmişte imzaladığı çapaları bugünkü kayıtlarla düzenli olarak karşılaştırabilir ve bunu otomatik yapmalıdır. Sonuç iki türlü olur.
Tutuyorsa, kurum denetimden önce elinde bir güvence taşır: geçmiş kayıtlar bozulmamış. Tutmuyorsa, bunu denetçiden aylar önce öğrenir ve sebebini araştıracak zamanı olur. Denetimde çıkan bir bulguyla kendi kontrolünüzün ürettiği bir uyarı arasındaki fark, hazırlıklı olmakla hazırlıksız yakalanmak arasındaki farktır.
SQL Change Guard bu karşılaştırmayı günlük çalışan bütünlük işinin bir adımı olarak yapar ve bir uyumsuzluk bulduğunda kritik bildirim üretir. Ayrıca çapa paketi denetçiye teslim edilirken bu kontrolün sonucu paketin imzalı künyesine yazılır. Künye imzalı olduğu için bir bulguyu gizlemek amacıyla o satırı değiştirmek imzayı düşürür.
Kendi Çapa Düzeninizi Kurarken
Çapa mekanizmasını kurarken cevaplanması gereken beş soru vardır ve hiçbiri teknik değildir.
- Ne sıklıkta üretilecek? Günlük iyi bir varsayılandır. Üretim ucuzdur; asıl maliyet teslimdedir.
- Ne sıklıkta teslim edilecek? Kanıtın çözünürlüğünü bu belirler. Aylık pek çok kurum için makul bir dengedir.
- Kime teslim edilecek? Yazılı olarak belirlenmeli ve alıcı değiştiğinde kayıt altına alınmalıdır.
- Alıcı bunu nasıl saklayacak? Değiştirilemeyen bir arşiv gerekmez, ama alındığı tarihin belli olması gerekir. Tarihi olmayan bir çapa kanıt değeri taşımaz.
- Boşluk çıkarsa ne olacak? İki teslim arasında çapa üretilmemiş bir dönem varsa bu tek başına kurcalama değildir, ama açıklanması gerekir. Paketin bu boşlukları kendiliğinden bildirmesi doğru davranıştır.
Bu beş soruya cevabınız varsa, denetim izinizin en zayıf noktası kapanmış demektir. Cevabınız yoksa, elinizdeki zincir yalnızca kendi kendisiyle tutarlıdır.
Sık Sorulan Sorular
Çapa hangi bilgiyi taşır, kayıt içeriği dışarı çıkar mı?
Çapa yalnızca son kaydın numarasını, özetini, üretim zamanını ve kurulum kimliğini taşır. Kayıt içeriği, betik metni ya da kişisel veri içermez. Bu yüzden çapayı kurum dışına vermek bir veri paylaşımı değildir ve gizlilik değerlendirmesinde kolay geçen bir kalemdir.
Çapa, zaman damgasının yerine geçer mi?
Hayır, ikisi farklı şeyi çözer. Çapa, kaydın belli bir tarihten beri değişmediğini gösterir ve gücünü teslim tarihinden alır. Zaman damgası ise tarihi kurumun kendi sunucu saatinden değil, dış bir otoriteden alır. Birlikte kullanıldıklarında hem içerik hem tarih için ayrı birer dayanak olur.
Çapa silinirse ne olur?
Kurum içinde silinebilir; hiçbir yazılım tam yetkili bir kullanıcının silmesini engelleyemez. Ama daha önce teslim edilmiş bir çapa kurumun erişemediği yerdedir ve geri alınamaz. Silinme tespiti de zaten yalnızca eski teslimlerle mümkündür; teslim edilmemiş bir çapanın silinmesi hiçbir yerde iz bırakmaz. Bu, teslim düzeninin neden mekanizmanın kendisi kadar önemli olduğunu gösterir.
Kayıt sayısı ile son kayıt numarası neden farklı olabiliyor?
Çünkü numara alanı otomatik artan bir sayaçtır ve geri alınan işlemler de numara tüketir. Bu yüzden çapa, kayıt sayısını değil gördüğü en büyük numarayı taşımalıdır: denetçinin karşılaştıracağı satır o numaradaki satırdır. Sayıyı taşıyan bir çapa, olağan çalışmada bile tutmayan bir karşılaştırma üretir.
Çapa düzenini birlikte kuralım
Teslim aralığı, alıcı ve boşluk raporlaması için pratik bir düzen çıkaralım.
Demo Planlayın →