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 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 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
veya Crytic 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
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 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 yazıcısını gözden geçirin. Fonksiyon görünürlüğünü ve erişim kontrollerini raporlar.
- Slither'ın vars-and-auth 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 ve Manticore 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 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, (ç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. Herhangi bir sorunuz olursa #crytic ve #ethereum kanallarında her zaman yanınızdayız.
Son düzenleme: @sumitvekariya, 29 Ağustos 2024