30日目 - スマートコントラクトセキュリティ入門
今日は、スマートコントラクトセキュリティ入門する日だった。日がかわってしまいましたが。1ヶ月の最後の最後にセキュリティ。
ソフトウェア開発をするなら、
最低限知ろうとするべきと自分に言い聞かせる。
ただ一日程度でできることは少ない
(知らないよりは、学ばないよりはずっとよいはず)
ということで
例によって学んだことの備忘録はそっとおいておきます。
↑なるほど。
パブリックブロックチェーンであることも相まって、予期しない呼び出しにや悪意ある呼び出しによる脆弱性の罠がたくさんあるのは改めて理解。
スマートコントラクトのプログラムを書く際、関数の可視性、状態の更新の順序など、基本的なプログラミングのやり方を間違えるだけでも、あっという間に大事なアセットを失いそう。
考えてみると、たしかにそういうインシデント的なニュースがたくさんあったような気がするな。
自動で実行できる静的解析ツールは利活用するのは必須
脆弱性の情報も一定間隔でチェックしに行く
といった気持ちの準備はととのいました。
普通に実装していたら、ある程度は防げるのかもしれないが油断大敵。
イーサリアム上でSolidityのバージョンアップによる変更によって、事情が変わることはあるようですね。バージョンは要チェック。
正直、重大なテーマに対して、学びの内容が非常に薄いという不安のようなものが否めない。継続学習がんばります。
セキュリティは奥が深く、プロもたくさんいるので、予防接種みたいなものと割り切ってはいます。
備忘録を兼ねて、
今回学んだときの観点をそっとおいておきます。5つの観点を予め立てて学習しました。
Ethereum.orgが紹介しているサービスには目を通す
マスタリングイーサリアムで紹介されているアンチパターンにしっかり目を通す
信頼できるスマートコントラクトのセキュリティ脆弱性と対策の情報源を抑える
知らない用語は調べて理解する
参考情報は整理しておく
Axie Infinityのハッキング事件のように、秘密鍵の漏洩も脅威。
https://hedge.guide/news/ronin-brifge-hacking-bc202204.html
GMOさんが検証したと言われている記事を確認。
余談ですが、スマートコントラクトのセキュリティなどと題してはいるものの、実態としては、ブロックチェーンのプラットフォームによっても発生しうる脆弱性が異なるようです。Cosmos SDKのCosmWasmでは、リエントランシー攻撃に対してアーキテクチャ設計時点で対策が施されているという記事を読みました。
なんだか、Cosmos学びたい気持ちがまた高まりました。
一応、今回はイーサリアム学ぶ軸なので、なんとかブレずに思いとどまっています。
よし、今日はこれでおしまい。
明日は7月最終日。
これまで参照した情報などを一通りまとめる時間にしようと思います。
またあした!
この記事が気に入ったらサポートをしてみませんか?