Security audit ya da Türkçe karşılığı ile güvenlik denetimi, sağlamlığı ve güvenliği değerlendirmek için bir uygulamanın, sistemin veya veritabanının sistematik bir analizinden oluşması anlamına gelmektedir. Blockchain bağlamında, güvenlik denetimleri, olası hataları veya kusurları belirlemek için akıllı bir sözleşmenin veya Blockchain kodunun eş incelemesinden oluşmaktadır.
Güvenlik denetimi, araştırılması gereken süreçleri önceden belirlenmiş bir kılavuza göre veya BT Güvenlik Değerlendirmesi için Ortak Kriterler gibi bir standarda göre araştırma yapar. Pek çok şirket, sistemlerinin olası sızıntılara, izinsiz girişlere veya siber saldırılara karşı yeterince güçlü olmayı sağlamanın bir yolu olarak sıklıkla güvenlik denetimleri gerçekleştirir. Bunun dışında güvenlik denetimleri, bir programın veya yazılımın mevzuata uygunluğunun belirlenmesinde çok önemli bir rol oynamaktadır. Bunun sebebi güvenlik denetimleri bir şirketin veya kurumun hassas verileri nasıl işlediğini ve koruduğunu netleştirmesidir. Denetimler ayrıca şirketin tesislerine ve bilgi sistemlerine fiziksel erişimin yanı sıra olası saldırılara karşı uygulanan önleyici stratejileri de inceleyebilmektedir.
Güvenlik denetimleri, güvenlik açığı değerlendirmeleri ve sızma testleri (penetration tests) ile birlikte üç ana güvenlik tanılama yönteminden biri olarak kabul edilebilir. Bununla birlikte tam güvenlik denetimleri genellikle sızma testleri ve güvenlik açığı değerlendirmelerini içerecektir. Bu nedenle terim tanımı bağlamına göre değişebilir.
Belirtildiği gibi bir güvenlik denetimi genellikle bir bilgi sisteminin güvenliğini bir kriterler listesine göre değerlendirmektedir. Bir güvenlik açığı değerlendirmesi, güvenlik açıklarını belirlemek için tüm sistemin kapsamlı bir analizine dayanmaktadır. Başka bir deyişle, güvenlik denetimleri daha spesifiktir, belirli bir işe odaklanır ancak güvenlik açığı değerlendirmeleri daha geneldir.
İdeal olarak, savunma mekanizmalarının tehditlere karşı güncel olmasını sağlamak için yılda en az bir kez güvenlik denetimleri yapılmalıdır.
Blockchain Güvenlik Denetimi Nasıl Yapılır?
VeriSol gibi araçların ortaya çıkması birçok kişi için bir rahatlama olsa da, üzücü gerçek Blockchain güvenlik denetimi yapmak için çok fazla araç bulunmamaktadır. Bu durum, manuel denetimin Blockchain uygulamaları ve ağlarında hala çok önemli bir rol oynamasının nedenidir.
Blockchain kod denetimi, manuel olarak yürütülen bir blok zinciri geliştirme projesinin sistematik ve yapılandırılmış kod incelemesi olarak ifade edilmektedir. Süreç genellikle statik kod analiz araçlarının kapsamlı kullanımını içermektedir. Ancak denetimin asıl sorumluluğu, hataları bulmak için kodu gözden geçirmek için güvenlik uzmanlarına ve Blockchain geliştiricilerine aittir. Blockchain denetim süreci ile ilgili çeşitli adımlar aşağıdaki başlıklar ile açıklanmıştır.
Hedef Sistemin Hedefini Tanımlanmalı
Kötü yönlendirilmiş bir Blockchain güvenlik denetimi, denetim olmamasından daha büyük bir sorundur. Bu sorun karışıklığa yol açar, zamanı tüketir ve kesin bir sonuç olmadan biter. Blockchain güvenlik denetiminin daha az sorun döngüsüne yakalanmaktan kaçınmak için, sürece başlamadan önce her zaman denetim hedeflerinin tanımlanması gerekmektedir. Bir güvenlik denetiminin, Blockchain’in geniş çaplı amacı, sistemdeki, ağdaki ve teknoloji yığınındaki güvenlik risklerini belirlemektir. Bu hedef, farklı güvenlik alanları ve özel ihtiyaçlar ile ilgili birkaç küçük hedefe de daraltılabilmektedir. Ayrıca güvenlik denetimini takip etmesi gereken eylem planının da tanımlanması gerekmektedir. Önceden tanımlanmış bir hedef ve eylem planı, denetçinin denetimden çıkmasını engelleyecek ve değerlendirmeyi sonuna kadar doğru yolda ilerletecektir.
Hedef Sistemin Bileşenleri ve İlgili Veri Akışları Tanımlanmalı
İkinci adım ise, hedef sistemin bileşenlerini ve ilgili veri akışını tanımaktır. Ayrıca, denetim ekibinin projeyi mimarisi ve kullanım senaryosu ile birlikte anlaması gerekir. Başarılı bir denetim gerçekleştirmek için test planlarının ve test senaryolarının gözden geçirilmesi de gereklidir.
Blockchain'de bir akıllı sözleşme denetimi yaparken, önce kaynak kod sürümünün kilitlenmesi gerekmektedir. Bu durum, denetim sürecinde şeffaflık oluşmasını sağlamaktadır. Ek olarak bu adım, kodda yapılan yeni değişikliklerle karşılaştırıldığında, denetlenmiş olan sürümü ayırt etmeye de yardımcı olmaktadır ancak sürüm numaralarını belgelemek önemlidir.
Potansiyel Güvenlik Risklerinin Belirlenmesi
Blockchain uygulamaları, özel ve genel ağlar üzerinden iletişim kurmayı başaran düğümlere ve API'lere sahiptir. Düğümler ve ilgili rolleri, Blockchain ağındaki iletişim varlıkları oldukları için çözümlerde farklılık gösterebilir. Kuruluşlar uygulamaların ve risklerin sürekli gelişimi hakkında, riskleri gözden geçirmeyi düşünmelidir. Blockchain’deki bazı potansiyel güvenlik riskler, veriler ve işlemler ile ilgilidir.
Tehdit Modelleme: Blockchain Güvenlik Denetimi
Tehdit modelleme, Blockchain güvenlik değerlendirmesinin ayrılmaz bileşenlerinden biridir. Tehdit modelleme ile olası sistem güvenliği sorunları daha kolay tespit edilebilir. Tehdit modelleme, veri sahtekarlığını ve veri kurcalamayı ortaya çıkarabilir. Blockchain sistemine yapılan hizmet reddi saldırılarını da tanımlayabilir. Blockchain güvenlik denetiminin ayrılmaz bir parçası olan bu adım, veri manipülasyonunu da tanımlamaktadır.
Kötüye Kullanım ve İyileştirme
Blockchain güvenlik denetim sürecindeki son adım Kötüye Kullanım ve İyileştirme olarak bilinmektedir. Yukarıdaki adımlarda bulunan güvenlik açıklarının istismar edilmesi, risklerin ciddiyetini ortaya koymaktadır. Kötüye kullanım temel olarak, bir güvenlik açığından yararlanmanın kolaylığını ve sistemdeki tezahürlerini belirlemektir ancak iyileştirme kısmı bu güvenlik açıklarının düzeltilmesiyle ilgilenmektedir.