PancakeSwap

PancakeSwap DNSハイジャック~2021年3月15日、その時何が起こったか~

重要なお知らせ
本記事はNinaがPancakeSwapシェフになる前に書かれたものです。個人の見解であり、PancakeSwapとは無関係です。

もいん!ニナ(@_ninahaus_)🦆です。

3月15日、Crypto界隈の有名DeFiプラットフォーム、C.R.E.A.M. FinanceとPancakeSwapがDNSハイジャック被害にあいました。それぞれMediumにレポートをあげていたので紹介します。
※現在、問題は解決されています。

C.R.E.A.M. Financeの記事はこちら。

CREAM Finance DNSハイジャック~2021年3月15日、その時何が起こったか~ もいん!ニナ(@_ninahaus_)🦆です。 3月15日、Crypto界隈の有名DeFiプラットフォーム...
ニナ
ニナ
「その時何が起こったか」シリーズでPancakeSwapを書くことになるとは…

 

目次
  1. PancakeSwapの報告
  2. 導入
  3. タイムライン
  4. PancakeSwapユーザーは何か心配すべき?
  5. なぜこのようなことが起こったのか?
  6. 再発防止策は?
  7. 被害を受けたユーザーは?
  8. 本件に関する他プロジェクトの反応
  9. 今回の騒動を経て思うこと

PancakeSwapの報告

PancakeSwapがMediumに記事を出したのは3月19日です。
タイトルは『DNSインシデントの振り返り』

 

ニナ
ニナ
インシデントとは一般的に「事件」「(好ましくない)出来事」を指しますが、情報セキュリティ分野においては「セキュリティを脅かす事象」を指します

 

以降は英語原文の記事を簡単に意訳しつつ、補足を加えたものです。

導入

3月15日、PancakeSwapはGoDaddyアカウントへのアクセスおよびDNS(ドメインネームサーバー)のハイジャックを実現できた攻撃者のターゲットにされました。これは組織的な攻撃であり、C.R.E.A.M. Financeも同じ組織に攻撃されたことが使用されたIPアドレスなどを含むGoDaddyのイベントログで確認されています。

現在調査中ですが、攻撃者はPancakeSwapのドメイン登録業者であるGoDaddyを何らかの方法で欺いて我々のアカウントへのアクセスに成功しました。そしてPancakeSwapサイトのURLを偽サイトにリダイレクトし、ユーザーにウォレットのシードフレーズを入力させようとしました。

PancakeSwapのコントラクトは影響を受けていません。今回の攻撃はコントラクトを操作するための手段のひとつであるウェブサイトのフロントエンドのみに限られていました。

タイムライン

原文はUTC +8時間表記です。その後ろに本ブログ時間軸のCET(UTC +1)をカッコ付きで表記しています。青字表記は公式のMedium記事に私が付け足したもので、私の主観です。

ニナ
ニナ
UTC +8はSGT、いつものシンガポール時間ですね。

 

3/15 21:10 (14:10) C.R.E.A.M Finance、DNSハイジャック

C.R.E.A.M FinanceがTwitterでDNSが乗っ取られたことを発表。

同様の問題が発生する可能性があるため、PancakeSwapシェフたちもDNSの調査を開始、厳戒態勢で状況を見守ることに。

ニナ
ニナ
この警戒のおかげでシェフの初動が早かったのでしょう。

 

3/15 22:22 (15:22) PancakeSwap サイトダウン

PancakeSwapテレグラム英語コミュニティにて、サイトにアクセスできなくなった旨の報告が上がり始めました。

私はBugsシェフにサイトのアイコンカラーに関する質問をしており、ちょうどこの時頻繁にサイトを更新していたので、サイトダウンにリアルタイムで気付きました。

他ユーザーから上がっていたサイトダウン報告と併せて事実確認をし、PancakeSwapコミュニティ管理メンバー(Chef、Admin)はこの件に集中することとなりました。

ニナ
ニナ
アヒルの報告を信じてくれるBugsシェフ尊い

 

ちなみにこの時私のブラウザではPancakeSwapアクセス時に「エラー522」が出ていました。このあたりは全く詳しくないので、そのうち直るものだと思っていました。

3/15 22:27 (15:27) シェフ、サイトダウンをツイート

PancakeSwapのウェブサイトにアクセスできないことをHopsシェフがツイート。

≪補足≫
普段であれば発表前にざっと調査するところでしょうが、既にC.R.E.A.M.がドメイン乗っ取りをTwitterで報告していたため、おそらく同じ攻撃に遭っているいう想定の元、Hopsシェフは真っ先に「ユーザーに通知する」という選択をしました。後にDNSハイジャックである事が確定したことから考えるとこれは英断でした。

ニナ
ニナ
一般向けのツイートに「FE(フロントエンド)」と書いてしまったあたり、Hopsシェフの急ぎ具合が分かります

 

日本コミュニティ(なーちゃん(@crypto___baby)dicsord)では敏腕コンサルのぼのちん(@super_bonochin)さんがすかさず公式ツイートを共有し「フロントエンドのみのダウンであること」「資産は安全であること」を明記して日本ユーザーが落ち着けるように取り計らってくれました。

ちなみにこの時私のブラウザではPancakeSwapアクセス時に「エラー1016」が出ていました。

3/15 22:36 (15:33) DNSハイジャック被害が濃厚に

ウェブサイトにはアクセスできるようになりましたが、明らかに正規のルートではないことが確認できました。先述のDNSエラーが出た後https未使用になったのですから、もうこれはC.R.E.A.Mと同じ攻撃に遭っているのでは?と推測できました。

3/15 22:36 (15:36) シェフ、DNSハイジャック疑惑をツイート

PancakeSwapが、C.R.E.A.M.と同じくDNSハイジャックされた可能性をツイート。この時点ではまだDNSハイジャックは推測であり確証はありませんでしたが、シェフたちはユーザーを危険に晒さないことを第一とし、まず「PancakeSwapウェブサイトを利用しないで」と警告する決定をしました。ツイートと同時にHopsシェフが各テレグラムグループAdminメンバに本件を広く拡散するよう指示し、この情報は瞬く間に広がりました。

3/15 22:38 (15:38) シードフレーズウィンドウを確認

PancakeSwapサイトにアクセスするとウォレットのシードフレーズを尋ねるウィンドウがポップすることが確認されました。

3/15 22:42 (15:42) シェフ、DNSハイジャック確定ツイート

PancakeSwapのDNSが乗っ取られたと断定。シェフたちが解決に乗り出しました。
ユーザーの混乱が混乱を呼ぶことを防ぐため、PancakeSwap各コミュニティはミュートされました。

3/15 22:45 (15:45) シェフ、他サイトにリンク削除依頼

PancakeSwapへのリンクを貼っているサイトはたくさんありますが、本問題がある間はそれらが全て偽サイトへの入り口となります。シェフはCoinGeckoやCoinMarketCapなどの情報サービスプロバイダーに連絡を取り、可能な限りPancakeSwapへのリンクを削除したり、サイトに警告文を追加したりする依頼をしました。

3/15 22:48 (15:48) CZがDNSハイジャックについてツイート

Binance CEOのCZも本件に反応しました。

 

PancakeSwapテレグラム日本コミュは非常に静かだったのですが、お知らせメッセージが流れてしまうことを危惧してひとまずミュートされました。

 

3/15 22:50 (15:50) シェフ、バックアップドメインを準備

PancakeSwapはバックアップドメインとして「https://pancakeswap.ai」を購入し、ウェブサイトをそのドメインにデプロイする準備を始めました。
#これはあくまで一時的なドメインであって永続するものではないようですが、UIを通して本家PancakeSwapサイトと同じ操作でコントラクトにアクセスできます。

3/15 22:57 (15:57) ユーザーの不安が噴出

このあたりでユーザーから不安の声がどんどん出始めました。ウェブサイトダウンだけならまだしも、PancakeSwapサイトがウォレットのシードフレーズを訊いてくる。この異様な挙動から、ウェブ技術に明るくない人でもPancakeSwapが誰か悪意のある第三者に乗っ取られていることは明らかに分かります。

「攻撃対象はフロントエンドだけだから大丈夫」「コントラクトは無事」と言われても、一般ユーザーはそのフロントエンドを介してコントラクトにアクセスしているわけですから資産の安全性について不安が募るのも無理はありません。

「コントラクトrevoke方法を案内すべきか」「ユーザーはスマートコントラクトを直叩きしてPool/Farmからトークンを取り出しておくべきか」という話はAdmin間でも出ました。今回はフロントエンドのみへの攻撃だからそれらは不要だろう、というのが多数の見解でしたが、この時点では「本当にDNSハイジャックだけで終わるか」は分かりませんでした。

そのため私は独断と偏見でdicsord日本コミュニティにEmergencyWithdrawへのリンクとpidーLPトークンの対応表を貼りました。ただ貼っただけでなく、私はこの時念のためにCAKE PoolとメインFarmからトークンを全て引き上げました。

≪中略≫

ニナ
ニナ
pidリスト作ってるの引かないで!

 

この時Bugsシェフがdiscord日本コミュを気にしていたので、そちらも共有。

3/15 23:00 (16:00) シェフがDNS復旧に着手

シェフたちがDNSの復旧作業を開始。

3/15 23:01 (16:01) おや、日本コミュの様子が…?

日本ユーザーは終始非常に冷静だったので火消しに走る必要なんてまったくありませんでした。むしろこの件で皆普通に「投資家」なんだなと感心しました。
普段「キティル!」とか「パンケーキ焼くよ🥞」とかしか言わないのに…。

柴犬ユーザー
柴犬ユーザー
これでバブル終わるかな
闇ユーザー
闇ユーザー
CAKE売られますかね~
ニナ
ニナ
シェフたちが神対応しても「1回ハイジャックされた」っていう事実は辛いかもしれないですね
鉛筆ユーザー
鉛筆ユーザー
チャンス来た!
ユーザー
ユーザー
押し目 これから?
ユーザー
ユーザー
落ちたらシコたま買ったろwwww
冷えユーザー
冷えユーザー
FTXは反応早いけど買いも入ってきてる

ニナ
ニナ
いや、やっぱりあたパン(頭パンケーキ)も混ざってるな

 

3/16 00:03 (17:03) シェフ、DNSフルアクセス権を掌握

シェフがDNSへのアクセス権を全て掌握。
設定内容をDNSハイジャック前のものに復旧しました。

 

3/16 00:30 (3/15 17:30) C.R.E.A.M.の支援

C.R.E.A.M.をBinanceに接続し、サービスの復旧を支援。

ニナ
ニナ
ここの詳細はよく分かりません

 

3/16 01:05 (18:05) テレグラム日本コミュ、アンミュート

テレグラム日本コミュを念のためミュートしていたのを解除しました。日本時間は既に深夜2時をまわっていたので誰も来ないかと思いましたが、皆しっかり起きていました。

手ユーザー
手ユーザー
チェフ達の対応に感謝
ユーザー
ユーザー
お疲れ様です
ユーザー
ユーザー
本当にお疲れ様です
ニナ
ニナ
皆シェフに甘すぎでは!?
Bugsシェフ
Bugsシェフ
皆様のご辛抱感謝します
ニナ
ニナ
ハッキングされてんじゃねーよ丸焼きにするぞ!!とか言わないの?
ウパユーザー
ウパユーザー
お疲れさまウパ~
挨拶ユーザー
挨拶ユーザー
シェフさんのおうち一軒一軒廻っておにぎり差し入れたい

日本コミュはいつも暖かいね…。

3/16 06:00 (3/15 23:00) IPFSバックアップ

IPFSのバックアップを展開。

ニナ
ニナ
IPFSって何やねん?はここで書くと長くなるので割愛。

 

3/17 00:49 (3/16 17:49) DNSハイジャック被害、完全復旧

PancakeSwapのDNSは完全に伝播され、すべてのユーザーにとって正常状態に復旧。

3/17 10:01 (03:01) メタマスクの警告画面を撤去依頼

PancakeSwapサイトが完全に復旧したので、フィッシング詐欺の警告画面を削除するようHarry.eth(@sniko_)さんがMetaMaskにプルリクエストを出してくれました。

PancakeSwapユーザーは何か心配すべき?

攻撃者はユーザーにシードフレーズの入力を要求する素朴なフィッシング攻撃を行いました。偽サイトでシードフレーズを入力していなければ、何も心配する必要はありません。

なぜこのようなことが起こったのか?

まだ調査中ですが、PancakeSwapへの攻撃はC.R.E.A.M攻撃と非常によく似ています。攻撃者はソーシャルエンジニアリングによってGoDaddyのカスタマーサービスを経由して我々のGoDaddyアカウントに侵入したと思われます。このようなセキュリティの欠如は、GoDaddyにとって珍しいことではないことは明らかです。
参照:GoDaddy Employees Used in Attacks on Multiple Cryptocurrency Services

 

ニナ
ニナ
ここはちょっとグレーな書き方ですね。今回の件はレジストラ責任ぽいですが、PancakeSwapがセキュリティ欠如の過去事例をきちんと調べて他業者に鞍替えしていたら防げたんじゃないの?とツッコむこともできます。

 

再発防止策は?

最も安全にドメインを管理するため、PancakeSwapはGoDaddyからMarkMonitorに移行しています。また、緊急時にもサイトにアクセスできるよう、IPFS上およびIPFS外に複数のバックアップドメインを維持しています。
PancakeSwapシェフチームが所有する全てのアカウントに最高レベルのセキュリティ設定を施し、サービスにアクセスする際のセキュリティ設定を全体的に改善しました。
(レガシーTLSプロトコルの削除、pancakeswap.financeドメインではメールスプーフィングができないことの確認、DNSSEC)

被害を受けたユーザーは?

幸いなことに、これまでのところ本攻撃によってユーザーが損失を被ったという報告は確認されていません。

シードフレーズを偽サイトに入力し攻撃者に資金を盗まれたという証拠がある場合は、法執行機関に直接報告し、Binanceや他のBSC対応の取引所で盗まれた資金の受取アドレスをブラックリスト化するようフォローアップすることをお勧めします。

我々は、我々を助けるために連絡を取ってくれたすべての人々、そして本件の間、コミュニティが忍耐強くサポートしてくれたことに大きな感謝を捧げたいと思います。ご迷惑をおかけしましたことをお詫び申し上げますとともに、ご理解をお願いいたします。

ありがとうございました。🐰

 

ニナ
ニナ
PancakeSwapからのレポートはここまでです。

 

本件に関する他プロジェクトの反応

Crypto界隈は「テクノロジーの進歩のため手を取り合いましょう」といったスタンスのプロジェクトが多いですが、同分野のプロジェクトは当然競合なわけで、こういった事件時に人間性が出ます。

特にPancakeSwapはBSCにおいて圧倒的トップですから、それを良く思わないプロジェクトもいるわけで…。discord日本コミュで他プロジェクトの反応が話題になっていたので私も調べてみました。

ニナ
ニナ
何を感じるかはあなた次第!

 

ApeSwap:営業

 

ApeSwap
ApeSwap
Pancakeが停止している間、ApeSwapのDEXを使って取引を続けてください。もし本件の影響を受けているイールドファームがあったら連絡してください、ApeSwapでセットアップします!みんな安全にね❤

Beefy Finance:応援メッセージ+Syrup Pool参加

 

Beefy
Beefy
moofamilyの皆さん、@PancakeSwap、@CreamdotFinanceがDNSハイジャック攻撃を受けています。シードフレーズは絶対どこにも入れないでください。他の人がハッキングされるのを防ぐためにこの情報を広めてください。

この翌日PancakeSwapはBeefy FinanceのPool実装投票を行い、それが可決されたため3/17、PancakeSwapにてBeefy Poolがオープンしました。もともと計画されていたものなのか、Beefyが何か申し出たのかは分かりません。

Swamp Finance:応援メッセージ+Farm追加+CAKE GiveAway

 

Swampy
Swampy
ページが表示されないときの気持ち、よく分かります。Pancakeを応援して、安全に過ごしましょう。
ニナ
ニナ
Swamp Financeは3/14にDDos攻撃に遭い、ウェブサイトが一時落ちたことからこのように発言しています。

同日中に5種のCAKE-LP Farmを実装。こちらもDNSハイジャック以前から計画されていたのか、被害にあったPancakeSwap応援のため入れたのかは分かりません。


翌16日にはCAKEのギブアウェイを行いました。

 

ニナ
ニナ
こちらに関しては「PancakeSwapのため」という言質を取りましたよ!

ニナ
ニナ
PancakeSwapのDNSハイジャック直後にCAKEギブアウェイするの感心しちゃった。Swampyちゃんは優しいのね。
Swampy
Swampy
その前日にDDos攻撃でサイト落とされたもの、気持ちよく分かる。
Swampy
Swampy
特に私たちは生まれてまだ2日だったから。皆にラグだって思われちゃった。

Goose Finance:RTで注意喚起拡散

Goose Financeは「PancakeSwapがDNSハイジャックに遭った可能性がある」というツイートのみリツイート。

Panda Yield:RTで注意喚起拡散

Panda Yieldは「PancakeSwapがDNSハイジャックに遭った可能性がある」「PancakeSwapのDNSハイジャックが確定したことに対するCZの反応」ツイートのみリツイート。

Kebab Finance:言及無し

kebab
kebab
…。
ニナ
ニナ
おしゃべりケバブ、ここで黙るんかい!

 

今回の騒動を経て思うこと

PancakeSwapの対応について

騒動最中の情報の速さと透明さ◎

PancakeSwapのサイトダウンお知らせツイートからDNSハイジャック確定ツイートまではわずか20分でした。その後もシェフはTwitterを頻繁に更新し、状況を共有することでユーザーの不安を軽減していたと思います。このあたりはさすがユーザーからの信頼厚いシェフの経営手腕です。

DNSハイジャックレポートがやや不明瞭・専門的で分かりづらい

まだ調査中であるため公開する情報を絞っているのかもしれませんが、PancakeSwapがレジストラの認証情報をどう扱っていたのか、騒動最中にドメイン管理システムに何が起きていたのかなどはあまり見えませんでした。その点はC.R.E.A.M. Financeのほうが詳細に報告していましたね。
またレポートにはセキュリティ関係のIT用語が多く並んでおり、そちらに明るくない人には伝わりづらい点も多々あると思われます。

ニナ
ニナ
情報学の授業じゃないんだからググれって言われたらそれまでですけど…。

 

全体を通してユーザーはシェフたちの働きを高く評価していました。その証拠にCAKE価格もほとんど下がりませんでした。

 

今後の心配

この項目は DNSハイジャックの勉強をした後、大きく編集しました。

【DNSって?】DNSハイジャックとキャッシュポイズニングについて調べてみた【サイバー攻撃】 もいん!ニナ(@_ninahaus_)🦆です。 昨日、C.R.E.A.M. FinanceとPancake...

 

 

これは人間不信なアヒルの考えすぎだったら良いし、皆を不安にさせたいわけではないのですが…

今回の攻撃者の犯行はちょっと杜撰でした。

DNSハイジャックの王道は「ユーザーに知られず本物そっくりの偽のサイトに誘導して、本物サイトでの操作をさせて情報やモノを盗む」です。今回の場合は「https無効」「ウォレットのシードフレーズを訊く」という本物ではあり得ない挙動をするサイトに誘導しており、多くのユーザーがサイトにアクセスした時点で違和感を抱くことになりました。このおかげで被害が大きくならなかったと思います。

残念ながらこのような攻撃は今後も起こり得るし、起こった場合、犯行手口はより巧妙になってくるでしょう。今回の件でC.R.E.A.M. FinanceとPancakeSwapがセキュリティを改善したのと同じように、攻撃者側も攻撃手法を磨いてくるはずだからです。

C.R.E.A.M. FinanceとPancakeSwapには「ドメイン管理をGoDaddyで行っている」という共通項がありました。C.R.E.A.M. FinanceのMedium記事に「犯人はログインパスワードリセットを試みた」とあるため、ログインID・パスワードが初めから流出していたわけではありません。そうすると「ログイン認証情報が漏れていた2つのプロジェクトが同時に攻撃された」わけではなく、「GoDaddyのログインシステムには何らかの脆弱性があり、GoDaddyを利用していた両者がターゲットにされた」と考えるほうが自然です。

GoDaddyが本件の調査に本腰を入れて脆弱性を修正しない限り、GoDaddy経由でドメイン登録していて、かつ、セキュリティリテラシーが高くないプロジェクトは今後もDNSハイジャックされる危険に晒されます。プロジェクトのセキュリティ意識の「高さ」は実施対策から伺えますが、逆の「低さ」は見えづらく判断しづらいです。その場合ユーザーのとれる自衛策は「プロジェクトのWhois情報をチェックして、GoDaddy利用の場合は投資しない」くらいでしょうか…。

個人的な興味ですが、今回のC.R.E.A.M. Finance、PancakeSwap DNSハイジャック事件の後で「セキュリティ強化のお知らせ」を出すBSCプロジェクトがどれだけあるかウォッチしたいと思います。見つけた場合はぜひ教えてください!

https://ninahaus.com/2021/03/20/cream-finance-dns-hijack/

COMMENT

メールアドレスが公開されることはありません。

CAPTCHA