本イベントは、世界トップクラスのサイバーセキュリティ専門家による国際会議として、10月27~28日の2日間、東京・渋谷パルコDGビル 18階 カンファレンスホール “Dragon Gate”にて開催されました。欧米の著名研究者が参加して研究成果を共有するとともに、日本の若手研究者の研究も発信する場としても知られています。
GMOインターネットグループからは、GMOサイバーセキュリティ byイエラエ社がトップスポンサーとして協賛し、セッションやワークショップへの出展などで参加しました。
目次
イベント概要
- 日 時:2022年10月27日(木)~ 28日(金)
- 会 場:渋谷パルコDGビル 18階 カンファレンスホール “Dragon Gate” + オンライン配信
- 主 催:CODE BLUE実行委員会
- 公式HP:https://codeblue.jp/2022/
CODE BLUEとは
CODE BLUEはセキュリティに関する国際会議で、2013年の第1回開催以来、今回で10回目の開催となりました。初回には米国BlackHat創設者で、DEFCONも主催するジェフ・モス氏が登壇。2020年には台湾のデジタル担当大臣オードリー・タン氏を招聘するなど、幅広い著名講師陣を招いての講演も魅力。今年の基調講演は長年BlackHatなどで活動しているセキュリティ専門家のニール・R・ワイラー氏でした。日本語と英語合わせて、2日間で40近いセッションもあり、イベントの密度は高い。
イエラエ社は、企業ブースの出展に加え、ワークショップ会場ではWebハッキング体験 for ビギナーズを開催。トークセッションでは「Web3セキュリティ解体新書」と題したプレゼンも実施しました。
登壇セッション「Web3セキュリティ解体新書」
GMOサイバーセキュリティ byイエラエ社は、1日目のトークセッションの1コマとして、同社高度解析部高度解析課の緑川志穂、名古屋謙彦、浅野泰輝の3人が「Web3セキュリティ解体新書」と題した講演を行いました。
「Web3はソフトウェアやソリューションとしてはかなり充実してきた頃合いですが、Web3に対するセキュリティの観点ではまだまだ手探り状態にあります」。緑川はそう話し、その要因として、そもそも「Web3ソリューションそのものの構造」がモデル化できないと指摘。Web3自体の定義・分解手法があやふやというのも大きな理由で、Web3のセキュリティ対策も体系化できないと言います。
そうした出発点からスタートした緑川らの研究では、次の3つの研究課題に据えました。
- Web3の理想。Web3とはもともと何をしたかったのか?
- Web3の現実。実際のWeb3ソリューションがどのようなものか。
- 私たちの考えるWeb3セキュリティ。
1のWeb3の理想では、まずその概念の提唱時までさかのぼります。最初に言及されたのは、元NSA(米国家安全保障局)局員だったエドワード・スノーデンによるリーク事件。これは「米国が、世間が想像していた以上に監視社会であることを知らしめた」(緑川)のですが、それに対する反応として「監視されたくない」「プライバシーを守りたい」「自分の情報は自分で設定したい」といった個人主義的な考え方に落ち着いてきたと緑川は言います。
そして「これを実現する方法はないだろうか?というのが最初の(Web3の)モチベーションと」と緑川。これらを踏まえたWeb3の言葉の定義として、最初に「Web 3.0」という言葉を提唱したGavin Woodを取り上げます。Woodは「Web 3.0または”ポストスノーデン”Webと呼ばれるもの」と概説。それは、プライバシーが国や組織によって脅かされないネットワーク、という定義になっています。
ちなみに、こうした考え方は1988年にすでに存在し、Timothy C. Mayによる「The Crypt Anarchist Manifesto」においては「暗号無政府主義」として「暗号技術を用いて、誰からの監視もなく、なおかつ何らか特定の信頼を置く必要もない社会」が提唱され、続く1993年にEric Hughesが「A Cypherpunk’s Manifesto」で「サイファーパンク」という考え方を提唱しました。
サイファーパンクの系譜を受け継ぐコミュニティにおいて発生したというのがBitcoinで、緑川は「ブロックチェーン技術自体がWeb3と無関係というわけではない状態」と説明しました。
前述のWoodによる「DApp(Decentralized Application)」という概念についても説明され、ポストスノーデンWeb上でソフトウェアがどのように動くべきか、どう振る舞うべきかを定めたものとのこと。重要なのが「zero-trust interaction system」で、「すべての名前は仮名によって行われなければならない」「それらは全てセキュアに実行されなければならない」「ほとんどのサービスはtrustlessでなければならない」というのがDAppの条件とされています。仮にこのDAppが存在した場合、その実行基盤にはどういう条件が必要なのか。Woodはこれを次の4カ条にまとめているそうです。
- static content publication
- dynamic message
- trustless transactions
- integrated user-interface
「これらが揃っている基盤こそがWeb3(Web 3.0)と呼べる」というのがWoodの考えで、ここまで説明したのが「Web3の理想」だと緑川は言います。では現在、現実にWeb3として考えられているものに何があるか。デジタル庁が開催したWeb3.0研究会第1回資料を引いて、NFT、DeFi、暗号資産取引所、NFTマーケットプレイスといった例を挙げます。
「研究の元々のモチベーションは、Web3アプリケーションを一般化して、もっと普遍的にWeb3セキュリティ自体を議論したいというもの」で、上記のようなアプリケーションなどを解体して、普遍的な成分だけを取り出すというのもひとつのやり方ではあるとしつつ、定まったやり方があるわけではない、と緑川は言います。
すでに様々な研究論文や分解方法が提案されており、緑川らが採用したのは、2022年8月に発表されたQin Wangらによる「Exploring Web3 From the View of Blockchain」という論文。ブロックチェーンの立場からWeb3全体を概説したサーベイ論文だとしています。
論文では、Open、Trustless、Permissionless、Anonymous、High availabilityという5つの要件が挙げられていますが、Web3アプリケーションの分解モデルも提示されており、緑川らはこのモデルを採用しているとのこと。
Web3アプリケーションは、Date Access、Data Computation、Data Storageという3レイヤーによるアーキテクチャ・モデルで説明可能としており、12のパターンで分解できるというのがこの論文の説明で「少々荒っぽいパターン分けでしかない」としつつ、セキュリティ側として重視したいのはデータフローとそのプライバシーで、その観点でこの分解方法は利便性が高いとしています。
緑川は、こうしたモデリングが可能なブロックチェーン関連のアプリケーションは「基本的に(前述の)5カ条を目指していると言える」と指摘。ただ、理想的なWeb3をブロックチェーン以外で実現しているものは「他に存在しない」と話し、「結果として”現実的なWeb3″を特徴付けているのがこの5カ条」だとしています。
加えて緑川は、「Web3とはブロックチェーンであるという議論は、短期的には真であるが、長期的には必ずしも真ではない」と話し、長期的には交換可能性も検討しなければならないと指摘。 「もし今後、Web3に本気で取り組むのであれば、ブロックチェーンに依存しないデータモデリングを考える必要がある」とまとめました。
Web3セキュリティとは何か
続いて登壇した名古屋は、Web3でも従来のソフトウェアセキュリティに近い部分が存在しているとしつつ、それだけではないという部分に言及します。それが、Web3の理想、現実の双方から検討した結果、「信頼という観念が不要な契約」(Trustless)という点が共通しているという点です。
現実のWeb3では、ブロックチェーンとその外部との接続が必ず発生し、そのインタフェースを「ウォレット」と表現しています。Web3アプリの認証・認可では秘密鍵を使っており、ウォレットとの認証操作が、そのまま認証・認可のトリガーとなると名古屋は説明します。「しかし今、私たちがWeb3の内部と外部を接続するインタフェースとしてのセキュリティアセスメントは足りているのでしょうか?」と名古屋は問いかけます。そこで「分権性」「Web3における認証・認可」「スマートコントラクト」という3点に重点を置いた検討を行ったとします。
分権性は、英語のdecentralization(非中央集権)ということで、権利が中央に集中しているのではなく、権利、権能が複数の場所に分かれているという意味で分権性と表現しているそうです。これは、ブロックチェーンネットワークの分権性と、DAppの分権性という2つの観点があり、前者はコンセンサスアルゴリズムの分権性に依拠していると言います。
例えば対象となるDAppがHybrid Storageにあたる場合、オフチェーンのストレージが存在するため、中央集権の部分もあり、「セキュリティの観点から見た場合、分権性と中央集権が混在し、権能が偏っているのは結構重要な意味を持っている」と名古屋。ブロックチェーンにおいては、権能の大きさと攻撃を受けた場合の影響範囲が近似となります。現時点では「誰が、どの権能を、どのぐらい持っているのか」という点をDAppのWeb3活用において検討することを推奨する、と名古屋は話します。
認証・認可においては、ブロックチェーンにアクセスするためのインタフェースとなるウォレットが重要になると言います。問題はオフチェーンの場合で、通常のWebサイトへのログイン、APIの利用、モバイルアプリの利用といった場合に、どのような手段で正しく認証するのが問題になると名古屋。
手法としてはデジタル証明書があり、Ethereumでも使われるEIP-712と呼ばれる、署名に決まった型とデータを使って署名するという手法があります。ただ、現状では「ユーザーに確認の責任を負わせている状態にある」と指摘します。
現状の通常のWeb(Web2)にはFIDO認証があり、これもフィッシング耐性のある認証手法とされていますが、これはブラウザやOSがサイトのオリジンを保証して認証することでフィッシングなどを防止しますが、ブラウザやOSを信頼する形になるため、Web3で参考にするには分権性の問題が出てくるので検討が必要になります。「オフチェーンでの確認には限界があるということを踏まえて設計する必要がある」と名古屋は強調します。
スマートコントラクト
スマートコントラクトに関しては浅野が担当。EthereumとSolidityを想定して説明がされました。こうした環境では、Web3特有としてチェーン上にすべてのデータを公開する性質やアドレスに対する権限の管理といった、「スマートコントラクトのオリジナルの視点が必要になってくる」と浅野。
そのため、Web3以外のWebで使われるようなCWEといった指標はそのまま使えない。「言うなれば、スマートコントラクト専用のCWEのようなものが必要になる」というのが浅野の説明です。
Ethereumでは、それをEIP-1470でSWCとして定義されています。専用解析ツールMythrilで、ある程度のSWCに抵触しているかどうかを判断できるそうですが、SWC自体は更新・メンテナンスが止まってしまっています。それでもSolidityのコードを書く上で陥りやすいミスなどはある程度カバーできるそうです。
「スマートコントラクトに対するセキュリティの虎の巻みたいなものは存在していない」と浅野。スマートコントラクトにおけるセキュリティが発展途上ということではあるのですが、その中でも重要なトピックとして浅野氏が挙げるのは「Reentrancy」と「selfdestruct」の2点です。
Reentrancyでは、JavaのConcurrentModificationExceptionという例外を例に、シングルスレッドでも「並行制御を考慮しなければならないと言っても過言ではない」(浅野)として、スマートコントラクト開発でも並行制御の視点は広く浸透していくべき、というのが浅野の考えです。
スマートコントラクトではゼロトラストという性質があり、権限の管理が非常に重要になってきます。過去には、selfdestruct命令の権限が適切に設定されていなかった事例があり、自己削除できるselfdestructを実行するにあたっては権限の設定に不備がないかを慎重にチェックする必要があります。
イエラエ社がスマートコントラクトの診断を実施したところ、Reentrancyに関する問題点は発見されたものの、selfdestructにもとづく問題点はまだ存在していなかったそうです。浅野は「セキュリティとしてまだ土台が固まっていないスマートコントラクト、Web3の開発においては、常にどこかで脆弱性が見つかり、安全だと思っていたものはすぐにレガシーになってしまう危険性をはらんでいる」と強調。そうした状況を放置するのではなく、selfdestructなどを使ってうまくいなして共存できるようになる、と主張します。
最後に再び登壇した緑川は、「2つの標語を提案したい」と言います。
- Web3は誰でもが参加できて、誰もが権能を持つ
- コントラクトの人生は完全に管理しろ
加えて緑川は、自動車やIoTにおけるセキュリティが同じような考え方になっていると説明。すでにこの方面ではある程度の知見がたまっているので、そのまま流用はできないまでもアーキテクチャリングやモデリングに関しては有用という判断をしているそうです。緑川は、そうした他分野との相互作用ができることを期待し、将来的な取り組みとして今後も研究を重ねていきたいと話しました。
→後編へ続きます
ブログの著者欄
採用情報
関連記事
KEYWORD
CATEGORY
-
技術情報(423)
-
イベント(159)
-
カルチャー(35)
-
デザイン(17)
TAG
- 5G
- Adam byGMO
- AI
- AWX
- BIT VALLEY
- blockchain
- ChatGPT
- cloudnative
- CloudStack
- CM
- CNDO
- CNDT
- CODEGYM Academy
- ConoHa
- CS
- CSS
- CTF
- DC
- Designship
- Desiner
- DevSecOpsThon
- Docker
- DTF
- GitLab
- GMO Developers Day
- GMO Developers Night
- GMO GPUクラウド
- GMO Hacking Night
- GMO kitaQ
- GMO SONIC
- GMOアドパートナーズ
- GMOアドマーケティング
- GMOイエラエ
- GMOグローバルサイン
- GMOデジキッズ
- GMOペイメントゲートウェイ
- GMOペパボ
- GMOリサーチ
- Go
- GTB
- Hardning
- Harvester
- HCI
- iOS
- IoT
- ISUCON
- JapanDrone
- Java
- JJUG
- K8s
- Kids VALLEY
- LLM
- MetaMask
- MySQL
- NFT
- NVIDIA
- OpenStack
- Perl
- PHP
- PHPcon
- PHPerKaigi
- QUIC
- Rancher
- RPA
- Ruby
- Selenium
- splunk
- SRE
- SSL
- Terraform
- TLS
- TypeScript
- UI/UX
- VLAN
- VS Code
- アドベントカレンダー
- インターンシップ
- オブジェクト指向
- オンボーディング
- お名前.com
- カルチャー
- コンテナ
- スクラム
- スペシャリスト
- ソフトウェアテスト
- チームビルディング
- ドローン
- ネットワーク
- プログラミング教育
- ブロックチェーン
- ゆめみらいワーク
- リモートワーク
- 京大ミートアップ
- 基礎
- 多拠点開発
- 大学授業
- 宮崎オフィス
- 応用
- 技育プロジェクト
- 新卒
- 暗号
- 機械学習
- 決済
PICKUP