Ethereum スマートコントラクトのセキュリティ研究
大阪大学
大学院情報科学研究科
セキュリティ工学講座
矢内直人

自己紹介
• メインテーマ：情報セキュリティ– 学位論文：暗号技術の設計と証明可能安全性を研究– 現職：セキュリティ技術の開発研究と安全性検証• 2014：筑波大博士課程修了• 2014-2021/12：阪大・助教• 2021/12-：現職• 2016-2018/3：JST ACT-I– サイバーセキュリティの安全性を証明する数理モデル• Web: https://github.com/naotoyanai/websecmodel• スマートコントラクト: https://github.com/naotoyanai/RA• 2021-：CREST 主たる共同研究者– 地域を支える知のデジタライゼーションと共有基盤

1

参考資料
ブロックチェーンの解説を国内雑誌
IEICE B-plusに寄稿 (2020年6月）

シンボリック実行ツールの開発を国内
論文誌 JIP に掲載 (2021年9月）

Ethereum 上でアクセス制御アプリの開発 (被引用数200越え)

Ethereum の脆弱性の機械学習検知
技術の提案

2

スマートコントラクト• ブロックチェーン上のプログラムの実行環境– 暗号通貨は通貨残高を記録– スマートコントラクトは実行コード / 変数も記録

ブロックチェーン
• 非中央集権型のプラットフォーム• 全ての情報をハッシュ関数に入力・連結させる
ことで、データの改ざん耐性・透明性を実現
Hash

Hash
Block
data data

...

Block
data data...
3

スマートコントラクトの原理• ブロックチェーンのノード上にプログラム公開• 誰が実行しても同じ結果 → 結果の公開検証が可能
スマートコントラクト
存在せず

検証

検証

検証

検証

ブロックチェーン
4

Ethereum の場合• Ethereum 上のブロックにプログラムをデプロイ• 燃料（gas） を消費することで実行 → gas がな
くなれば停止Ethereum

取引者A

ブロック

実行の
トランザクション

コントラクト

ブロック
生成者

検証

取引者B

実行結果の確認gas

取得
5従来のプログラムとEthereum の違い

攻撃者の優位性
解析し易く、永遠に残る

スマート
コントラクト挙動が従来の環境と異なる（動作が想像しにくい）

バイトコードの公開

gasの取り扱い

解析できる

金銭的処理

ユーザが抱える困難

gas

特有の要素

知見の不足
リターンが巨大攻撃を誘引しやすい

若すぎる技術6

Ethereumスマートコントラクトの脆弱性• ネットワーク上で実行コードを公開– Ethereumネットワーク上でプログラムが実行可能– 攻撃者によるコードの閲覧，解析が容易[CAYC20]

Ethereum
Networkblockchain
cod
e

value

• 脆弱性への対策– 記述言語のコンパイラ更新– 脆弱性の解析ツール開発

コ脆
ン弱
ト性
ラが
クあ
トる
数

？
年/月
対策

[CAYC20] 知念ら, “スマートコントラクト ―ブロックチェーンからなるプログラミングプラットホーム―”, 信学会, b-plus, 2020.

7

Ethereumスマートコントラクトの脆弱性調査
脆弱性に関する実態調査[DFAC20]• 2019年までの47,587件のコントラクトの脆弱性を調査• 脆弱性の傾向変化の要因については未調査
脆弱性解析ツールの性能評価[PDCS18]• 既存のオープンソース解析ツールに対する性能評価• 性能の高いツール：SmartCheck[TVI+18]
開発者のセキュリティに関する意識調査[WXL+21]• 開発時のセキュリティ対策についてのヒアリング調査• 多くの開発者が使用するコンパイラは安定した古いバージョン[DFAC20] T. Durieux, et al., “Empirical Review of Automated Analysis Tools on 47,587 Ethereum Smart Contracts”,
ICSE 2020.
[PDCS18] R. Parizi, et al., “Empirical Vulnerability Analysis of Automated Smart Contracts Security Testing on
Blockchains”, CASCON2018[TVI+18] S. Tikhomirov, et al., “SmartCheck: Static Analysis of Ethereum Smart Contracts”, WETSEB 2018.

8実際の被害• パリティ多重署名ウォレット攻撃– 2017年に発生– Locked Moneyが発見された事件– 約1億5000万USドルの被害• The DAO
– 2016年に発生– Reentrancyを起点とした攻撃– 約6000万USドルの被害

1 https://techcrunch.com/2017/11/07/a-major-vulnerability-has-frozen-hundreds-of-millions-of-dollars-of-ethereum/2 https://www.gemini.com/cryptopedia/the-dao-hack-makerdao

9スマートコントラクトにおける研究領域
海
外
ト
ッ
プ
ラ
ボ
は
全
て
や
る

アプリ開発

インターフェース設計• アクセス制御アプリ• サプライチェーン

コードの解析

ソフトウェア工学の世界• 形式検証• シンボリック実行

プラットフォームの拡張
アーキテクチャ設計• アルゴリズム理論• コンパイラ開発
10日本の立ち位置はどうか？
• サイバーセキュリティ分野では国際的プレゼン
スがものすごく低い…
– セキュリティトップ会議にブロックチェーン論文は日本からほとんど通らず• 一個一個の論文の規模として– 海外トップラボはすべてやる（ETH Zurich や
INRIA、TU Wien などがすごく強い）– 国内では、「どれか一層」（個人的に必要と思ってること）「個人型」から「チーム型」研究への移行・
チーム内で層ごとの分担と連携（一人で全てやるのは無理）
11

Blocklab Meeting (in December’19)

12

ブロックチェーンを使った面白い取り組みUCSD が開発してる科学データ管理基盤（Hyperledger Fabric ベースで、実験データの再現性を保存・保証）

13

役割ベースアクセス制御（RBAC）• RBAC はユーザとサービス間のアクセス制御関係を反映する技術• とくにブロックチェーンを使って組織間向け推移的役割ベースアクセス制御を構成– (Torans-Organizational Roll-based Access Control: TORBAC)

•
USERS

ROLES

SERVICESCOMPUTERSHOPUNIVERSITYPROFESSOR“Student”“Discounted Price”

STUDENT14

RBAC における認証機構の必要性• 役割の誤った利用はセキュリティ上の懸念→ 対策としての認証機構の導入• しかしながら、電子的な証明書の導入は管理コ
ストが大きい• また、メリットがないと企業の参画を促せない
infrastructure (PKI).
UNIVERSITYCOMPUTER
SHOP

スマートコントラ
クトを使ったら、
簡単に構成可能15

組織間向け役割ベースアクセス制御 (RBAC-SC)• ブロックチェーンをベース技術として利用し、各組織・ユーザごとの役割(role）間の関係をチェーンで反映– 組織所属のユーザにコインを配布 → 外での利用– 様々な権利管理を可能にする(取引の個人化と承認)– タイムスタンプ機能を、役割の有効期限として利活用

XYZ

XYZ

11

RBAC-SC の詳細アカウントアドレス
𝒖. 𝐁𝐀 の提示

サービスプロバイダ(𝒐𝟐)

A-大学(𝒐𝟏)

InfoVerify

ユーザ (𝒖)

平文 (𝑚)
Response

署名 (𝑆)

Challenge𝒐𝟏. 𝐁𝐀𝒊 → 𝒖. 𝐁𝐀 の
トランザクション検証
𝒐𝟏が 𝒐𝟏. 𝐁𝐀𝒊 を持っているか𝒐𝟏. 𝐁𝐀𝒊 の役割を判定

署名 𝑆 = 𝑆𝑖𝑔𝑛(𝒖. 𝐁𝐏𝐊, 𝒖. 𝐁𝐀, 𝑚)
ResponseVerify (𝒖. 𝐁𝐀, 𝑚,𝑆)

ResponseVerify

48機械学習 × 静的解析 × スマートコントラクト• 機械学習×静的解析：ソフトウェアの特徴量をモデルに与えて、任意のソフトウェアを分類
解析時間の短縮

新規の脆弱性に対応

スマートコントラクト◼ スマートコントラクトのコードリリースは時間勝負◼ 解析時間の短縮と解析精度の向上が重要
18スマートコントラクトの脆弱性
脆弱性に基づくインシデントの多発• The DAO ハック: $60百万 Ethers の盗み出し

脆弱なコードの再利用による拡散• コントラクトが再利用されたなら、その中の脆弱性も利用される• 多くの類似コードが発見（最新バージョンでは約8割が使いまわし）
Reuse

19

静的解析
プログラムの一般的な解析手法• 脆弱性の発見

高級言語• マルウェア解析

アセンブリ

バイトコード静的解析への機械学習への利用◼ プログラムの特徴量を機械学習モデルに与えることで高速な解析を実現
解析時間の短縮

新規の脆弱性の発見
20

問い: 特徴量の抽出• とくにコードが書き換えられたときに脆弱性の検知精度が劣化

最適な特徴量抽出は非自明 [ZL+19][ZL+19] Zou, et al., "Smart Contract Development: Challenges and Opportunities”, IEEE TSE, 2019. 21

研究の技術的課題と講演者の活動
技術的課題• 特徴量抽出の最適化• コードの書き換えに対するロバスト性• 高速な解析
講演者の活動• 自然言語処理技術を活用した検知技術の設計

自然言語処理技術の活用により、コードの書き換えに対してもロバストな検知技術の提案
22

Eth2Vec の設計• 目的関数
𝐷𝑖𝑐𝑡 𝒰 𝐶𝑖 𝒮 𝑓𝑠 ℐ 𝑠𝑒𝑞𝑖 𝒯 𝑖𝑛𝑗෍ ෍ ෍ ෍

෍

𝐶𝑖

𝑡𝑐

𝑓𝑠

𝑠𝑒𝑞𝑖

𝑖𝑛𝑗

𝑘

log 𝜎 𝑋+ ෍ 𝔼𝑡𝑑 ~𝑃𝑛 𝑡𝑐

𝑡𝑑 ≠ 𝑡𝑐 log 𝜎 𝑋

𝑖=1

23

セキュリティ・AI・ブロックチェーンの連携
Security/Privacy of AI,
IDS/IPS

SecurityAI

Secure Integrationof AI and Blockchain
Role-based
access control

Blockchain

Vulnerability
detection of
Smart Contract

24

ブロックチェーンとセキュリティのこれから• 1st step: 融合領域の更なる模索– 機械学習との融合– ソフトウェア工学との融合も重要– セキュリティ/AI/ブロックチェーンの融合がこれからを支える• 2nd step: “ユーザ”自体の意識向上– セキュリティ/AI/ブロックチェーンの教材を開発・導入– 技術的課題によらない教育的課題

Naoto Yanai: yanai@ist.osaka-u.ac.jp25