Akıllı sözleşme güvenlik kontrol listesi
Akıllı sözleşme geliştirme kontrol listesi
İşte akıllı sözleşmelerinizi yazarken izlemenizi önerdiğimiz üst düzey bir süreç.
Bilinen güvenlik sorunlarını kontrol edin:
- Slither(opens in a new tab) ile sözleşmelerinizi gözden geçirin. Yaygın güvenlik açıkları için 40'tan fazla yerleşik algılayıcıya sahiptir. Her girişte yeni kodla çalıştırın ve temiz bir rapor aldığından emin olun (veya belirli sorunları susturmak için önceliklendirme modunu kullanın).
- Crytic(opens in a new tab) ile sözleşmelerinizi gözden geçirin. Slither'ın kontrol etmediği 50 sorunu kontrol eder. Crytic, GitHub'daki Çekme Taleplerinde güvenlik sorunlarını kolayca ortaya çıkararak ekibinizin de kendi içinde güncel kalmasına yardımcı olabilir.
Sözleşmenizin özel özelliklerini göz önünde bulundurun:
- Sözleşmeleriniz yükseltilebilir mi? Açıkları bulunan yükseltilebilirlik kodunuzu
slither-check-upgradeability
(opens in a new tab) veya Crytic(opens in a new tab) ile gözden geçirin. Yükseltmenin sıkıntı çıkarabileceği 17 yolu belgeledik. - Sözleşmeleriniz ERC'lere uygun olduğunu iddia ediyor mu? Onları
slither-check-erc
(opens in a new tab) ile kontrol edin. Bu araç, altı ortak özellikten sapmaları anında tanımlar. - taraf token'ları ile entegre oluyor musunuz? Harici sözleşmelere bağlı kalmadan önce token entegrasyon kontrol listemizi gözden geçirin.
Kodunuzun kritik güvenlik özelliklerini görsel olarak inceleyin:
- Slither'ın inheritance-graph(opens in a new tab) yazıcısını gözden geçirin. İstenmeyen gölgeleme ve C3 doğrusallaştırma sorunlarından kaçının.
- Slither'ın function-summary(opens in a new tab) yazıcısını gözden geçirin. Fonksiyon görünürlüğünü ve erişim kontrollerini raporlar.
- Slither'ın vars-and-auth(opens in a new tab) yazıcısını gözden geçirin. Durum değişkenlerinde erişim kontrollerini raporlar.
Kritik güvenlik özelliklerini belgeleyin ve bunları değerlendirmek için otomatik test oluşturucuları kullanın:
- Kodunuz için güvenlik özelliklerini belgelemeyi öğrenin. İlki kadar zordur, ancak iyi bir sonuç elde etmek için en önemli aktivitedir. Ayrıca bu öğreticideki gelişmiş tekniklerden herhangi birini kullanmak için bir ön koşuldur.
- Echidna(opens in a new tab) ve Manticore(opens in a new tab) ile kullanım için Solidity'de güvenlik özelliklerini tanımlayın. Durum makinenize, erişim kontrollerine, aritmetik işlemlere, harici etkileşimlere ve standart uygunluğuna odaklanın.
- Slither'ın Python API'sı ile güvenlik özelliklerini belgeleyin. Kalıtım, değişken bağımlılıklar, erişim kontrolleri ve diğer yapısal konulara odaklanın.
- Crytic(opens in a new tab) ile her taahhüt için özellik testlerinizi çalıştırın. Crytic, güvenlik özelliği testlerini kullanabilir ve değerlendirebilir, böylece ekibinizdeki herkes GitHub'dan geçtiklerini kolayca görebilir. Başarısız olan testler taahhütleri bloke edebilir.
Son olarak, otomatik araçların kolayca bulamayacağı sorunlara dikkat edin:
- Gizlilik eksikliği: Herkes havuzda sıraya girerken işlemlerinizi görebilir
- Front running işlemleri
- Kriptografik operasyonlar
- Harici DeFi bileşenleriyle riskli etkileşimler
Yardım isteyin
Ethereum office hours(opens in a new tab), (çalışma asatleri) her salı öğleden sonra gerçekleştirilir. Bu 1 saatlik 1'e 1 oturumlar, güvenlikle ilgili tüm sorularınızı bize sorma, araçlarımızı kullanarak sorun giderme ve mevcut yaklaşımınız hakkında uzmanlardan geri bildirim alma fırsatıdır. Bu rehberi tamamlamanıza yardımcı olacağız.
Slack'imize katılın: Empire Hacking(opens in a new tab). Herhangi bir sorunuz olursa #crytic ve #ethereum kanallarında her zaman yanınızdayız.
Son düzenleme: @sumitvekariya(opens in a new tab), 29 Ağustos 2024