見出し画像

PancakeSwap が不正アクセス(DNSハイジャック) された顛末の簡単なまとめをした

※お断り

・私は問題が解決する直前で事件を知りました
・「不正なサイト」を私の目で直接確認できませんでした
・Twitter のタイムラインを元に、
 何が起こった(と思われるか)をユーザ目線でまとめました
・間違いはコメントやDM等で突っ込み頂けると嬉しいです

パンケーキは焼けるけど、
DNS, インターネットの仕組みはあまり詳しくない... 
そんな人向けに書きました。

----

PancakeSwap で、悪意を持つ第三者からの
不正が攻撃が発生してしまったようです。

公式の運営がTwitter 上で声明をだしていました。

「今、パンケーキにアクセスしないで!」

何が起こった?

・「https://pancakeswap.finance/」(正しいURL) 

を、ブラウザへ入力しても、
 「不正なサイト」
が表示されました

ポイントは、

いつも使っている正しい URL を
 入力しているのに、
 実は普段とまったく違うサイトへ
 つながっている

という点です。

たとえ、ブックマークからアクセスしても、
同じです。

2021年3月15日 23:00 頃?

2021年3月16日 01:10 頃?

頃にアクセスした方は、
ウォレットの残高を念のため確認した方が
よいと思われます。

見た目もいつもの "カワイイパンケーキ" です。
でも、ちょっと違うのです。

----

超おおざっぱに仕組みを解説します。

IPアドレスという
インターネットの住所のようなものがあります。

・1~255 の数字
・ 4つ
・ドット ( . ) で区切る

例えば、

192.168.0.1

こんなのです。

本来はこの住所を指定して、
アクセスする必要があるのですが、
この数字の列は、人間にやさしくありません。

「人間にわかりやすい名前」を付けて、
IPアドレスを意識しなくてもよくしました。

これを実現する仕組みが「DNS」です。

今回の例でいうパンケーキの場合、
「pancakeswap.finance」

これが「人間にわかりやすい名前」にあたります。

太郎「pancakeswap.financeの住所おしえて!」
花子「192.168.0.1 だよ!」
太郎「ありがとう。アクセスするよ!」

技術屋からは怒られると思いますが、
こんな解釈でいいです。

今回の例にすると、、、

悪意ある攻撃者 三郎が現れます。

三郎は、

・「192.168.0.100」 という住所を取得する
・本物である「192.168.0.1」のプログラムをコピーして、
 上記「192.168.0.100」 に設置 (ホスティング)する
・コピーの一部を改竄(かいざん)して、
 シードフレーズを聞き出す悪い処理を入れる

という事前準備をした上で、
DNS をハイジャックしました。

太郎「pancakeswap.financeの住所おしえて!」
???「192.168.0.100 だよ!」
太郎「ありがとう。アクセスするよ!」

いつもと変わらないはずなのに、
不正なサイトが表示されてしまうとは、
こういうことなのです。

----

この「不正なサイト」は

超・超・超・超・重要な、
「シードフレーズ」を
聞いてくる、という
タチが悪いものだったようです。

・見た目は普段の"カワイイパンケーキ" と一見おなじ
・ウォレットへ接続しようとすると、
 普段なら現れない
 「Connect Wallet with Seed Phrase」
 という画面が出た

ここで、自分のウォレットのシードフレーズを
入力したら?

アウト。

ダメ、絶対。

メタマスク等のウォレットは、
シードフレーズの変更ができないので、

できることは... 

・速やかに新しいウォレットを作成
・新ウォレットへ旧ウォレットからせっせと送金

...だけかもしれません。

画面の人のように、「分かっている」人は
茶化したメッセージを投げ込んで遊んでいたようですが...。

怪しいな、と思ったら?

・入力せずに、画面をそっと閉じる
・公式の情報を参照する
 例) Twitter, Telegram, Discord, 

いつもと違うなら、
触らない。

もう一度。

いつもと違うなら、
触らない。

おかしいな...? と思ったとき、
普段から「運営が誰か、コミュニティはどこか」を
正しく知っておく
ことが大切だな、と思わされました。

まだフォローしていない人は?
これを機会にフォロー、参加すると良いと思われます。

公式Twitter 

日本の公式なパンケーキユーザコミュニティ

日本人が日本語で投稿しているので、
英語が苦手な方はこちらがよいかもしれません。

----

暗号通貨の価格・チャートを表示する
CoinMarketCap, CoinGecko は

「今、サイトがおかしいから、
 シードフレーズとか入れないでね!」

と「Cakeトークン」の画面で
注意喚起画面を出したようです。

CoinMarketCap

画像1

CoinGecko

画像2

業界を守ろうとする姿勢。

とても良い動きですね。

----

2021年3月16日 午前1時17分現在、
「問題は解消した」

と、公式の運営チームが発表しました。

現在は正常にアクセスできているようです。

DNS のTTL は300 (5分) なので、

保守的にみて、1時10分以降にアクセスしておけば、
正常なサイトが閲覧できるかな?と思います。

以上、何が起こったか?のまとめでした。

理解のお役に立てれば幸いです。

----



個人的なメモを残したくなりましたので、
以下はお読み頂く必要はありません。

残念ながら、、、不正なサイトを
捕獲することができませんでした。

よく使うDeFi (CeDeFi?) のAレコードを定点観測しておくの、
悪くないのかもしれません。

「pancakeswap.finance.」

A

・104.26.2.169
・172.67.75.76
・104.26.3.169

AAAA

2606:4700:20::681a:3a9
2606:4700:20::681a:2a9
2606:4700:20::ac43:4b4c

DNSの状態

現在は、3つのAレコード (AAAA も3つ) を返すようです。

CloudFlare 使っているんですね。
移譲先の「abdullah.ns.cloudflare.com」に直接聞いてみました。

ラウンドロビンしてますが、3つ以外は返りませんでした。
AAAA (IPv6) 知りたい場合は、末尾に 「AAAA」とつけて、
聞きたいレコードの種類を指定すればでます。
@abdullah.ns.cloudflare.com. 

~$ dig pancakeswap.finance. @abdullah.ns.cloudflare.com.; date
; <<>> DiG 9.16.1-Ubuntu <<>> pancakeswap.finance. @abdullah.ns.cloudflare.com.
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 43946
;; flags: qr aa rd; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1
;; WARNING: recursion requested but not available
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;pancakeswap.finance.           IN      A
;; ANSWER SECTION:
pancakeswap.finance.    300     IN      A       104.26.2.169
pancakeswap.finance.    300     IN      A       172.67.75.76
pancakeswap.finance.    300     IN      A       104.26.3.169
;; Query time: 11 msec
;; SERVER: 162.159.44.203#53(162.159.44.203)
;; WHEN: Tue Mar 16 01:07:59 JST 2021
;; MSG SIZE  rcvd: 96

Tue Mar 16 02:01:35 JST 2021
~$ dig pancakeswap.finance. NS +short
becky.ns.cloudflare.com.
abdullah.ns.cloudflare.com.

adbullah と bechy が正しいようですね。

今は正しい状況のようです。

DNSハイジャック

パンケーキの前に、Cream Finance でも
DNSハイジャックが起きていたようです。

こちらは「cream.finance」「app.cream.finance」が
奪われたまま、元に戻らなくなってしまったようですね...。

app.cream.finance もCloudFlare のレスポンスがあります。
CloudFlare 特有の問題があるのでしょうか?

しかしながら、CloudFlareほどの技術力を持った基盤で、
ジャックが起きるとはOps の観点で考えにくいな...
と私は考えます。

よって、利用者側(運営のこと)のミスなのかな?
と想像します。

CloudFlare サービスを利用者として
使った経験が無いので、
知ってる人の解説が知りたいナァ。

証明書

DNS とは無関係ですが、
ぱっと見だと証明書が正しいか、壊れていたか。

ブラウザでチェック... できると、
「おかしいぞ?」と気付けたり... するのは難しいですかね。

Chrome でURLバーの左側、
「鍵マーク」で表示

画像3

SNI の証明書使っているんですね。
対象は、

DNS Name=sni.cloudflaressl.com
DNS Name=pancakeswap.finance
DNS Name=*.pancakeswap.finance

ブラウザURLバーが緑色になる
EV証明書はもうオワコンで使われないんですかね?

もし何かのお役に立てましたら、サポートを頂けると嬉しいです。