Ana içeriğe geç

Akıllı sözleşme güvenlik kontrol listesi

akıllı sözleşmelergüvenlikkatılık
Orta düzey
Trailofbits
Güvenli sözleşmeler oluşturmak(opens in a new tab)
7 Eylül 2020
2 dakikalık okuma minute read

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.
  • Truffle'da birim testleriniz var mı? Onları slither-prop(opens in a new tab) ile zenginleştirin. Özel kodunuza dayalı olarak ERC20'nin özellikleri için otomatik olarak sağlam bir güvenlik özellikleri paketi oluşturur.
    1. 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:

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: @kaanmetu(opens in a new tab), 23 Kasım 2023

Bu rehber yararlı oldu mu?