Blockchain Economic Forum Day3 「ICOを成功させるためのセキュリティ対策」
Blockchain Economic Forum@シンガポールのレポートです。
https://bef.latoken.com/
ETHEAL の Co-founder の方が、自身がICOした際に留意した点を「How to succeed with your ICO?」というタイトルでプレゼンしていて参考になる内容だったので紹介します。
なお、ETHEALは医療系のプロジェクトで、pre-saleが終わったとのこと。
https://etheal.com/
スマートコントラクトのセキュリティを高める
Unitテスト
まずユニットテストは書くべきでカバレッジも可能な限り高くした方がよい。
ETHEALでは178のテストを書いたとのこと。
https://github.com/thesved/etheal-sale
openzeppelinを使う
https://openzeppelin.org/
openzeppelin は SmartContractを開発する上での標準セキュリティパターンを実装したフレームワーク。
これを使うことで、
・関数呼び出しをOwnerに限定する
・安全な計算用の関数を提供
などの頻繁に発生する制御を安全性が確認されたライブラリのコードを使って実装できる。
Ethernaut でセキュリティを学ぶ
https://ethernaut.zeppelin.solutions/
ゲームの形でセキュリティコンセプトを学び実践するためのコンテンツ。
例えば、The DAO事件の原因になった再帰呼び出しバグの実践コードなどがコンテンツとして用意されている。
Consensys security best practice で学ぶ
https://github.com/ConsenSys/smart-contract-best-practices
コーディング時に気をつけるべき点がまとまっているベストプラクティス集。
現時点では最も良質かつ広範にカバーしている必読のドキュメント。
AUDIT
外部の会社に依頼してSmartContractコードをチェック・監査してもらう。
費用は$15,000〜$100,000 程度かかる。
コミュニケーションチャネル
ユーザとのコミュニケーションツールは、Slackを使うとHackされる可能性があるのでTelegramを使った方がよい。
実際に Enigma のICOの際、 Slackアカウントがハックされ、ハッカーによって偽のEthreumアドレスに入金を促すメッセージが投稿されたため、ICO応募者はその偽アドレスに送金し資金を盗まれてしまった。
参考:
https://techcrunch.com/2017/08/21/hack-enigma-500000-ico/
DDOS Protection
ハッカーがWebサイトをハックして内容を書き換えようと試みる際に、妨害のためにDDOS攻撃を仕掛けることが多い。そのため、DDOS対策を行っておくことが重要。
具体的には、以下のような対策を行っておくことが望ましい。
・ファイアーウォール、サードパーティツールによるDDOS対策
・2段階認証 によって本人以外からの利用を防ぐ
・https://hacked-emails.com/ を使って、過去に漏洩したことがあるメアドかチェックする