ハッキングによりデータ流出
暗号資産(仮想通貨)取引ソフトウェアを提供する3Commasは29日、ネット上で公開されていたユーザーデータが本物であることを確認したと発表した。ハッキングにより、APIキーが大量に流出していた形だ。
3Commas Statement:
1) We have seen the hacker's message and can confirm that the data in the files is true. As an immediate action, we have requested that Binance, Kucoin and other supported exchanges revoke all keys that were connected to 3Commas. pic.twitter.com/ZMuzCqeF1j
— 3Commas (@3commas_io) December 28, 2022
3Commasは、バイナンス、Kucoinやその他の、同ソフトウェアを使用できた仮想通貨取引所に対して、3CommasのAPIにおけるユーザーの接続キー(APIキー)を、すべて取り消すよう要請した。
さらに、追加のセキュリティ対策を実施し、法執行機関と共に、徹底的な調査を実施する予定だとしている。
APIキーとは
APIサービスの提供事業者が独自に発行している認証情報。プロジェクト単位で発行することが可能で、権限を持たない者からの接続を防ぐなど、セキュリティを高める。APIは、「Application Programming Interface」の略で、アプリやソフトウェア同士をつなぐ役割を果たす。
▶️仮想通貨用語集
3Commasは、内部犯行の可能性も含めて、できる限りの調査を行ったが、内部犯行を示す証拠は見つからなかったとしている。インフラにアクセスできる少数の技術系社員についても、11月19日以降、アクセスできないような措置を講じていると説明した。
3Commasは、ユーザーが、仮想通貨取引所で自動的に取引するボットを作ることができるソフトウェアだ。それぞれの取引所に対してAPIのキーを生成し、ユーザーは、そのAPIキーを3Commasに接続させて利用する。
3Commasは、すべてのユーザーに対して、取引所でAPIキーを再発行することを推奨した。キーを更新しなければ、セキュリティを守るため、取引所の方から無効とされる可能性があるとしている。
また、11月16日以降に生成されたAPIキーは危険にさらされていないとも説明した。
ハッカーが盗んだAPIキーを公開
背景として28日、あるツイッターユーザーが、3Commasユーザーのものとされる1万個以上のAPIキーを公開。約10万個のAPIキーを盗み出したと主張していた。今回、3Commasはそれが事実であったことを確認した形だ。
3Commasのユーザーは10月より3CommasのAPIを介した被害を報告していた。APIを介して、何者かによりバイナンス、KuCoin、コインベースなどの取引所で、勝手にユーザーアカウントで取引を行われた形だ。
3Commasも、様々なユーザーが合計約8億円(600万ドル)の損害を受けていることを認めていたが、当初3Commasは、ハッキングによる情報漏洩ではなく、フィッシングが原因だろうと述べていた。
I am reasonably sure there are wide spread API key leaks from 3Commas. If you have ever put an API key in 3Commas (from any exchange), please disable it immediately.
Stay #SAFU.
— CZ 🔶 Binance (@cz_binance) December 28, 2022
バイナンスのCZ CEOも、「3CommasからAPIキーが広範に漏洩したことを確信している」と述べ、取引所のAPIキーを3Commasに接続している場合は、すぐに無効にしてほしいと呼びかけている。
12月初めには、ツイッターで「CoinMamba」を名乗るユーザーが、3Commasで作成された自身のAPIを介して、バイナンスのアカウントがハッキングされたと主張していた。
CZ氏は、CoinMamba氏とやり取りして、「調査の結果、この事例は補償の対象ではなく、自身のAPIの管理が重要だ」と述べている。
<!– ¥nhttps://imgs.coinpost-ext.com/uploads/2021/11/cyber-hack-bzb-1.png –>
a.linkscode{padding:.2em .5em;margin:4px 0 0 .5em;display:inline-block;color:#777;text-decoration:none !important;font-size:90%;border-radius:3px;} a.linkscode:hover{background:#eee;} #comments{padding:0 .5em;} .talkee{padding:.5em !important;} .talkee .talkee-editor {border: none;} .talkee .talkee-editor-area {font-size: 16px;border-bottom: 1px solid #e0e0e0 !important;outline: none !important;box-shadow: none !important;padding: 0 !important;border-radius: 0 !important;} .talkee .talkee-editor-area:focus {border-bottom: 1px solid #333 !important;} .talkee .talkee-editor-ctrl {padding-right: 0;} .talkee .talkee-sort-button {margin-bottom: 0 !important;} .talkee .talkee-meta-tweet-button, .talkee .talkee-meta-like-button {margin: 0 !important;line-height: 0 !important;font-size: 12px !important;} .talkee .talkee-editor-submit {background: #5a97a6;display: flex;border-radius: 6px;} .talkee .talkee-comment {background-image: none;} .talkee .talkee-comment-right {padding: 0;font-size: 16px;} .talkee .talkee-comment-content {padding: 0;} .talkee .talkee-comment-content-more {color: #5a97a6;} .talkee .talkee-comment-meta {margin-top: 12px;line-height:1;font-size:15px;} .talkee .talkee-comment-right-top {padding: 0;font-size: 13px !important;height: 24px;} .talkee .talkee-comment-avatar {margin: 0;} .talkee .talkee-tap-to-login {color: #5a97a6;text-decoration: none;font-weight: bold;} .talkee .talkee-editor-mask {background-color: #f8fafc;} .talkee .talkee-tap-to-login {background-color: #5a97a6;height: 42px;padding: 0 20px;color: white;display: flex;align-items: center;font-weight: normal;border-radius: 6px;padding-left: 50px;background-size: 25px 20px;background-repeat: no-repeat;background-position: 16px 10px;} .talkee-meta-reply-button-wrapper, .talkee .talkee-meta-like-button-wrapper{padding:0;width:calc(100% – 24px – 40%);text-align:left;height: 24px;} .talkee .talkee-meta-reply-button-wrapper{justify-content: left;} .talkee .talkee-meta-like-button-wrapper{width:40%;text-align:right;} .entry-content ul.talkee-sub-comments-ul{border:none;background:transparent;font-weight:normal;} .talkee .talkee-button.talkee-meta-tweet-button{height: 24px;background-size: 120%;background-position: 50% 50%;} .talkee .talkee-sub-comments .talkee-comment.sub .talkee-comment-content{font-size:15px;} .talkee .talkee-sub-comments .talkee-comment.sub .talkee-comment-meta {margin-top: 6px;} .talkee .talkee-button.talkee-sub-comments-submit{margin:0 0 0 auto;display:block;} .talkee .talkee-sub-comments .talkee-comment.sub .talkee-comment-right-top{font-size:12px;} .talkee .talkee-comment-time{font-size:11px;} .talkee-meta-like-button-wrapper:has(.favored){border:1px solid #5a97a6;} .talkee .talkee-sub-comments .talkee-sub-comments-editor{margin-bottom:0;} .talkee .talkee-sub-comments .talkee-sub-comments-editor{font-size:15px;} .talkee .talkee-sub-comments .talkee-comment.sub{margin-bottom:15px;} .talkee .talkee-sub-comments{background-color:#f8fafc;} .talkee .talkee-button.talkee-meta-like-button, .talkee .talkee-button.talkee-meta-reply-button, .talkee .talkee-button.talkee-meta-tweet-button{font-size:12px;} .talkee-meta-like-button-wrapper span{font-size:12px;border-radius:4px 0 0 4px;display: inline-block;height: 24px;line-height: 25px;padding:0 0 0 4px;vertical-align:bottom;border-right:none;background:#fff;} .talkee-meta-like-button-wrapper button.talkee-button.talkee-meta-like-button{font-size:12px;border-radius:0 4px 4px 0;padding:0 4px 0 20px;border-left:none;background-color:#fff;} .talkee-sub-comments .talkee-meta-like-button-wrapper{width: calc(100% – 24px);} .talkee .talkee-button.talkee-meta-reply-button{padding: 0 5px;color: #666;border: 1px solid #ddd;font-weight: normal;line-height: 24px;} .talkee .talkee-editor{border:none !important;} .talkee .talkee-meta-reply-button-wrapper {justify-content: left !important;} .talkee .talkee-button.talkee-meta-reply-button {padding: 0 5px !important;color: #666 !important;border: 1px solid #ddd !important;font-weight: normal !important;line-height: 24px !important;font-size:12px !important;}