Kapsam prizması
Tek bir “sözleşmeyi denetle” talebi beş ayrı başlığa kırılır: erişim, mantık, ekonomi, yükseltme yolu ve izleme. Her başlık kendi kanıt türünü ve kendi sorumlusunu ister.
Zincir Mürekkebi, kurumsal ölçekli Web3 dağıtımlarında akıllı sözleşme denetiminin nasıl planlandığını, yürütüldüğünü ve raporlandığını adım adım açıklar. Kapsam seçiminden bulgu triyajına, değişmezlik kanıtlarından dağıtım sonrası izlemeye kadar tüm hattı tek bir okunabilir akış içinde ele alıyoruz.
İyi kurulmuş bir çerçeve, ekibin neyi ne zaman kanıtladığını kayıt altına alır. Kötü kurulmuş bir çerçeve ise güven hissi üretir ama kanıt üretmez. Aradaki fark çoğu zaman tek bir belgede saklıdır: kapsam sözleşmesi.
Tek bir “sözleşmeyi denetle” talebi beş ayrı başlığa kırılır: erişim, mantık, ekonomi, yükseltme yolu ve izleme. Her başlık kendi kanıt türünü ve kendi sorumlusunu ister.
Protokolün asla bozulmaması gereken kuralları yazılı hale getirilir. Her kural, bir test dosyasına ve bir izleme alarmına bağlanır. Kural test edilemiyorsa, kural değil temennidir.
Saldırganın motivasyonu, erişim seviyesi ve bütçesi ayrı ayrı tanımlanır. İç tehdit, MEV botu ve düzenli kullanıcı senaryoları aynı sayfada karşılaştırılır.
Mimari notlar, dağıtım betikleri ve bellek düzeni ilk gün okunur.
Kural motorları yalnızca hızlı tarama sağlar; karar verici değildir.
Özellik tabanlı fuzz kampanyaları sınır değerlerini zorlar.
İş mantığı hataları hâlâ büyük ölçüde insan sezgisiyle bulunur.
Kurumsal dağıtımlarda en pahalı hata, bilinmeyen saldırı değil; bilinen ama izlenmeyen durumdur. Bu yüzden tehdit modellemesini bir kereye mahsus bir çalıştay olarak değil, sürekli beslenen kapalı bir teraryum gibi kuruyoruz.
Teraryumun içinde dört katman var. En altta kum katmanı yer alır: dağıtım parametreleri ve yapılandırma dosyaları. Üzerinde taş katmanı: sınır değerler ve durum geçişleri. Daha üstte tohum katmanı: fuzz kampanyalarının başlangıç verileri. En üstte ise anomali küresi: yakalanan her tuhaf davranış.
Aşağıdaki başlıklardan istediğinizi açıp kapatın. Araç, seçtiğiniz modüllerin toplam tahmini eforunu ve kapsam yoğunluğunu anında günceller. Rakamlar sektör ortalamalarına dayalı kaba planlama değerleridir; sözleşme bazlı gerçek süreler değişir.
Her modül, denetim ekibinin ayrı bir uzmanlık alanını temsil eder.
%0 plan doluluğu
Henüz modül seçilmedi. Başlıklardan en az birini açarak tahmini eforu görün.
Her adımın bir çıktısı vardır. Çıktısı olmayan adım, takvimde yer kaplar.
Denetlenecek sözleşme adresleri, derleme ayarları, kütüphane sürümleri ve dağıtım betikleri tek bir pakette toplanır. Aynı paketin bir özeti müşteriye imzalatılır. Bu adımın çıktısı kapsam sözleşmesi ve dondurulmuş bir kod özetidir.
Denetçi kodu satır satır okumadan önce varlık akışını çizer. Hangi fonksiyon hangi bakiyeyi değiştirir, hangi dış çağrı yeniden giriş yüzeyi açar, hangi depolama yuvası vekil ile paylaşılır? Harita, sonraki altı adımın omurgasıdır.
“Toplam arz sabit kalmalı”, “yetki devri iki adımlı olmalı”, “ücret oranı asla üst sınırı aşmamalı” gibi cümleler listeye dönüşür. Her cümle bir testle eşleştirilir; eşleşmeyen cümleler açık risk olarak raporlanır.
Kural motorları hızlı bir ilk tarama yapar; ardından özellik tabanlı fuzz kampanyası başlar. Amaç, kural motorunun işaret ettiği her satırın gerçekten bir sorun olup olmadığını ayırmak. Yanlış pozitif oranı yüksek taramalar rapor olmaz, ek olur.
Her bulgu; etki, olasılık ve kurtarılabilirlik üçlüsüyle puanlanır. Aynı bulgu iki denetçi tarafından bağımsız derecelendirilir; fark varsa tartışma kayda geçer. Bu adımın çıktısı sınıflandırılmış bulgu listesidir.
Yama sonrası yalnızca değişen satır değil, değişen davranış da test edilir. Düzeltmenin yeni bir saldırı yüzeyi açıp açmadığı ayrı bir turda kontrol edilir. Kapanan her bulgu için bir kapanış notu yazılır.
Dağıtım öncesi son kontrol listesi, çok imzalı onay ve zaman kilidi ayarları doğrulanır. Dağıtım sonrası ilk iki hafta için alarm eşikleri, yanıt runbook'u ve sorumlu kişi atanır.
Kurumsal ölçekli bir dağıtımda denetim, tek bir rapor değil bir belge zinciridir. Aşağıdaki altı belge tamamlanmadan hiçbir tur “kapanmış” sayılmaz; her biri bir sonrakinin girdisidir.
Araçlar birbirinin yerine geçmez; birbirini tamamlar. Aşağıdaki tablo, yaygın olarak kullanılan yaklaşım ailelerini kanıt türüne göre sınıflandırır.
| Yaklaşım | Yanıtladığı soru | Kanıt türü | Tipik kör nokta |
|---|---|---|---|
| Kural tabanlı statik tarama | Bilinen kalıplar kodda var mı? | İşaretli satır listesi | İş mantığı hataları |
| Sembolik yürütme | Hangi yol koşulları ihlale ulaşır? | Yol izleri | Dış çağrı ve zaman bağımlılığı |
| Özellik tabanlı fuzz | Sınır değerlerde ne oluyor? | Yeniden üretilebilir senaryo | Uzun süreli ekonomi oyunları |
| Değişmezlik testi | Kural her durumda korunuyor mu? | İhlal edilen değişmez | Yanlış tanımlanmış kural |
| Fork üzerinde senaryo | Gerçek zincir durumunda ne olur? | Adım adım durum farkı | Yakın gelecekteki durum değişimi |
| İnsan incelemesi | Bu tasarım doğru mu? | Gerekçeli yargı notu | Yorgunluk ve kapsam yanlılığı |
Bir bulgunun önem derecesi yalnızca teknik etkiyle belirlenmez; yanıt süresi ve uygulama planı da sınıfın parçasıdır. Aşağıdaki düğmelerden birini seçerek her sınıfın beklenen yanıt modelini görebilirsiniz.
Soldaki listeden bir önem sınıfı seçtiğinizde, o sınıfın tanımı, yanıt süresi ve tipik uygulama adımları burada görünür.
Sınıflandırma, denetim ekibi ile geliştirici ekibin ortak dilidir; tartışmayı kısaltır.
Değişmezlikler bir protokolün anayasasıdır. Denetim sırasında yapılan en yaygın hata, bu anayasayı sözlü kabul etmek ve yalnızca kodun derlenmesini yeterli saymaktır. Oysa her kuralın üç ayrı yerde karşılığı olmalıdır: bir testte, bir izleme alarmında ve bir belge paragrafında.
Ekiplerle çalışırken şu basit kalıbı kullanıyoruz: “Her koşulda, X işleminden sonra Y değişkeni Z aralığında kalır.” Bu kalıp, kuralı hem test edilebilir hem de tartışılabilir hale getirir.
Kurumsal bir dağıtımda savunma, iç içe geçmiş kalkanlar gibi çalışır. En dışta süreç kontrolleri, ortada kod düzeyi önlemler, en içte ise acil durum anahtarları bulunur. Katmanların her biri ayrı ayrı test edilmelidir; çünkü bir katmanın varlığı diğerinin çalıştığını kanıtlamaz.
Pratikte en sık atlanan katman acil durum katmanıdır. Durdurma anahtarı olan bir protokol, anahtarın kimlerde olduğunu ve hangi koşulda kullanılacağını yazmadığı sürece korunmuş sayılmaz.
Denetim, dağıtımdan önceki son kapıdır; dağıtım sonrası izleme ise ilk savunma hattıdır. İkisi arasındaki devir teslim çoğu projede kayıt altına alınmaz — ve tam bu boşlukta olaylar büyür.
Kritik fonksiyonların her çağrısı bir olay üretmelidir. Olay yoksa, dış dünyanın o davranışı görmesinin bir yolu da yoktur.
Kural, “bir şeyler ters giderse” değil, “X dakikada Y adet Z olayı olursa” biçiminde yazılmalıdır. Ölçülemeyen alarm uyarı üretmez, gürültü üretir.
Her alarmın bir sahibi, bir ilk adımı ve bir iletişim şablonu olur. Sahibi olmayan alarm, bir sonraki hafta kapatılır.
Denetim raporları genellikle iki farklı okuyucu için yazılır: karar veren yönetici ve kodu düzeltecek mühendis. Aynı belgede iki dili birden konuşmak gerekir. Bu yüzden raporu üç katmana ayırıyoruz.
En fazla bir sayfa. Kaç bulgu var, hangileri yayını engelliyor, düzeltme için hangi kararı bekliyoruz? Teknik terim yok, tablo var.
Her bulgu için tekrar üretim adımı, etki tanımı, öneri ve referans satır numarası. Öneri bölümü kod parçası içerebilir ama her zaman düz Türkçe bir cümleyle başlar.
Fuzz çıktıları, yol izleri, fark testleri ve sürüm notları. Bu katman çoğu zaman okunmaz ama altı ay sonra soru sorulduğunda tek başvuru kaynağıdır.
Bu sayıda en çok konuştuğumuz üç konu ve pratik çıkarımları.
Bir denetimde kapsamı iki katına çıkarmak, süreyi iki katına çıkarmaz; dikkat dağılımını bozar. Bu nedenle kapsamı iki tura bölmeyi öneriyoruz: ilk tur kritik yol, ikinci tur geniş yüzey. Rapor da bu iki tura göre ayrı yazılır.
Yüzlerce düşük seviye bulgu üreten bir tur, üç kritik bulgu üreten bir turdan daha az değerli olabilir. Ölçü, yayın öncesi kapatılan risk sayısıdır.
Düzeltme sonrası yapılan kısa tur, yeni bir saldırı yüzeyinin en sık ortaya çıktığı yerdir. Bütçeye baştan eklenmelidir.
Denetim çerçevesi kurmak, mevcut süreci gözden geçirmek veya rapor şablonunuzu yenilemek istiyorsanız editör masamıza yazın. Yanıt süresi genellikle iki iş günüdür.
Bu portal, tercihlerinizi hatırlamak için tarayıcınızın yerel deposunu kullanır. Ayrıntılar için gizlilik bildirimini okuyabilirsiniz. Onay vermeden de tüm sayfaları gezebilirsiniz.