💭Web3開発者をねらったハッキング手口の全て(わたしは全て抜かれました...)2025/02/27に公開2025/03/0116件ブロックチェーンGitHubEthereum脆弱性ハッカーtechDiscussionフシハラ2025/02/27これって受け取ったgithubのレポジトリをそのままAIに投げて 「悪意のあるコードは含まれているか確認して下さい」的な事をお願いしたら見つけてくれますか? このような事件の対処法として「怪しい人から受け取ったソースを実行しない」というのは完全に防げますが、 実際は今回のように相手が怪しいかを確実に判断するのは不可能だし、現実的とはちょっと言えないと思うので そういう時に検知ができたかを知りたいです。 mameta_zk2025/02/27に更新これ、ぶん投げ出てAI見つけてくれます。実際この記事もAIに原因見つけてもらいながらまとめましたので。1回AI挟むのは定石になりそうですね。ありがとうございます、追加しまいた。 Sota Sugiura2025/02/28たまたま見つけたのでコメントなんですが、このような事例もあるのでその辺を加味して利用した方が良さそうかなと思いました。 https://www.trendmicro.com/ja_jp/research/25/b/invisible-prompt-injection-secure-ai.html (詳細なプロセスを赤裸々に書いてくれており、いろんな面で参考になる記事だなと思いました 🙏) mameta_zk2025/02/28追記&補足ありがとうございます! 返信を追加teatwo2025/02/27に更新辛いご状況にも関わらず詳細な開示ありがとうございます。たいへん参考になりました。 1.私が認証情報を入力 2.それが攻撃者のサーバーに送信 (上記の偽のwindow.ethereumのコード) 3.攻撃者は盗んだMetaMaskのパスワードを使用して、ウォレットのシードフレーズにアクセス 3が記事内容でどうやったのかわからなかったんですが記事掲載以外のコードに仕込まれていたんでしょうか?シードフレーズで派生した他のアカウントからも資金抜かれたんでしょうか? mameta_zk2025/02/28に更新ありがとうございます。こちら私の誤解があったようですみません、友人が難読化コードを解析してくれたことを元に記事を修正しました。追記 の部分をご確認ください。 端的にいうと、npm run devしたときにmetamaskのローカルで保存されている暗号化された秘密鍵などがすでに盗まれており、私が入力した認証情報で復号化した、といった流れになります。 返信を追加フシハラ2025/02/27metamaskを使っていないので的外れだったら申し訳ありませんが、 >一度画面共有を解除してConnect Walletボタンを押下してパスワード入力 ここで攻撃者が作った偽のログイン画面に認証情報を入力してしまったという事だと思いますが、 ブラウザのアドレス欄で気付くことは可能だったでしょうか? 例えばGoogleログインを要求された時、そのドメインがgoogle.comではない 例えばlocalhostだったり全く別のドメインだったら偽サイトの可能性が高いと判断出来ます。 「metamaskのコネクト画面はネイティブアプリだからアドレスバーはない。だからコネクト画面の外観だけで判断は出来ない」って事かな mameta_zk2025/02/28に更新 metamaskのコネクト画面はネイティブアプリだからアドレスバーはない。だからコネクト画面の外観だけで判断は出来ない まさにこの通りだと思います。今回の偽metamaskはポップアップのようなものですので、外観では判断できなさそうです。 フシハラ2025/02/28なるほど~ ブラウザならhtmlが全く信用できなくてもアドレスバーの情報は完全に信頼出来るけど ネイティブアプリだと、起動してるプロセスを直接見るくらい?それもPCローカルで任意コード実行されている段階でバイナリが差し替えられてる可能性もあって完璧じゃないし… そこで判別するのは無理そうか。 返信を追加みじんこ2025/02/28npm run startで実行されたコードがどのようにログインフォームに作用していたのかが気になります ローカルで立ち上げた偽のログインフォームに誘導された? 本物のログインフォームに悪意のあるコードを埋め込まれた?(拡張機能以外でそんなことが可能?) mameta_zk2025/02/28npm run dev ではローカルのMetamask拡張機能がある暗号化されたデータ(秘密鍵)をハッカーのサーバーに事前に送信しており、その後パブリックURLで入力したパスワードで復号化したという流れになります。 返信を追加すずねーう2025/02/28もう PC は初期化しましたか?してないならすぐにすることをおすすめします。 util.assets を使っている同系統の GitHub に落ちていたマルウェアを解析すると、JS を経由して難読化された Python コードを実行しており、それの難読化を戻すとキーロガーとマウスロガーが入っていました。 EdamAmex2025/02/28に更新亜種が大量にあるから、種類にもよりそうだけど 踏まされた時は初期化が一番 返信を追加r-sugi2025/02/28ツラいすね、、。 こういうサイバー犯罪?って犯罪者を捕まえるのは無理なんですかね。捕まってほしいし、損害分取り返せない?🫠 返信を追加hida2025/03/01公私混同しがちなので人のこと全く言えないですが、 普通の会社員は業務 (開発) 用のPCにプライベートのデータを入れないので (逆は言わずもがな)、たとえ副業案件でもOSのユーザーを作成して切り替える、Chromeのログインを分けるとか、ちゃんとすべきなのだろうな、と思うなど。 返信を追加あいや - aiya0002025/03/02鑑みると我々は常々、ユーザー権限といえどnodejsによる実行だけでなく様々なコード実行を許している気がするので(npmなど同様の各言語のパッケージマネージャーによるコード実行や、$ curl {url} | sh・ArchLinuxのAURなど。)、そういうときは一度思考を挟むことを癖つけるか、そもそもAIに全部実行をさせて、思考を挟ませるのがよさそうですね〜 返信を追加
フシハラ2025/02/27これって受け取ったgithubのレポジトリをそのままAIに投げて 「悪意のあるコードは含まれているか確認して下さい」的な事をお願いしたら見つけてくれますか? このような事件の対処法として「怪しい人から受け取ったソースを実行しない」というのは完全に防げますが、 実際は今回のように相手が怪しいかを確実に判断するのは不可能だし、現実的とはちょっと言えないと思うので そういう時に検知ができたかを知りたいです。 mameta_zk2025/02/27に更新これ、ぶん投げ出てAI見つけてくれます。実際この記事もAIに原因見つけてもらいながらまとめましたので。1回AI挟むのは定石になりそうですね。ありがとうございます、追加しまいた。 Sota Sugiura2025/02/28たまたま見つけたのでコメントなんですが、このような事例もあるのでその辺を加味して利用した方が良さそうかなと思いました。 https://www.trendmicro.com/ja_jp/research/25/b/invisible-prompt-injection-secure-ai.html (詳細なプロセスを赤裸々に書いてくれており、いろんな面で参考になる記事だなと思いました 🙏) mameta_zk2025/02/28追記&補足ありがとうございます! 返信を追加
mameta_zk2025/02/27に更新これ、ぶん投げ出てAI見つけてくれます。実際この記事もAIに原因見つけてもらいながらまとめましたので。1回AI挟むのは定石になりそうですね。ありがとうございます、追加しまいた。
Sota Sugiura2025/02/28たまたま見つけたのでコメントなんですが、このような事例もあるのでその辺を加味して利用した方が良さそうかなと思いました。 https://www.trendmicro.com/ja_jp/research/25/b/invisible-prompt-injection-secure-ai.html (詳細なプロセスを赤裸々に書いてくれており、いろんな面で参考になる記事だなと思いました 🙏)
teatwo2025/02/27に更新辛いご状況にも関わらず詳細な開示ありがとうございます。たいへん参考になりました。 1.私が認証情報を入力 2.それが攻撃者のサーバーに送信 (上記の偽のwindow.ethereumのコード) 3.攻撃者は盗んだMetaMaskのパスワードを使用して、ウォレットのシードフレーズにアクセス 3が記事内容でどうやったのかわからなかったんですが記事掲載以外のコードに仕込まれていたんでしょうか?シードフレーズで派生した他のアカウントからも資金抜かれたんでしょうか? mameta_zk2025/02/28に更新ありがとうございます。こちら私の誤解があったようですみません、友人が難読化コードを解析してくれたことを元に記事を修正しました。追記 の部分をご確認ください。 端的にいうと、npm run devしたときにmetamaskのローカルで保存されている暗号化された秘密鍵などがすでに盗まれており、私が入力した認証情報で復号化した、といった流れになります。 返信を追加
mameta_zk2025/02/28に更新ありがとうございます。こちら私の誤解があったようですみません、友人が難読化コードを解析してくれたことを元に記事を修正しました。追記 の部分をご確認ください。 端的にいうと、npm run devしたときにmetamaskのローカルで保存されている暗号化された秘密鍵などがすでに盗まれており、私が入力した認証情報で復号化した、といった流れになります。
フシハラ2025/02/27metamaskを使っていないので的外れだったら申し訳ありませんが、 >一度画面共有を解除してConnect Walletボタンを押下してパスワード入力 ここで攻撃者が作った偽のログイン画面に認証情報を入力してしまったという事だと思いますが、 ブラウザのアドレス欄で気付くことは可能だったでしょうか? 例えばGoogleログインを要求された時、そのドメインがgoogle.comではない 例えばlocalhostだったり全く別のドメインだったら偽サイトの可能性が高いと判断出来ます。 「metamaskのコネクト画面はネイティブアプリだからアドレスバーはない。だからコネクト画面の外観だけで判断は出来ない」って事かな mameta_zk2025/02/28に更新 metamaskのコネクト画面はネイティブアプリだからアドレスバーはない。だからコネクト画面の外観だけで判断は出来ない まさにこの通りだと思います。今回の偽metamaskはポップアップのようなものですので、外観では判断できなさそうです。 フシハラ2025/02/28なるほど~ ブラウザならhtmlが全く信用できなくてもアドレスバーの情報は完全に信頼出来るけど ネイティブアプリだと、起動してるプロセスを直接見るくらい?それもPCローカルで任意コード実行されている段階でバイナリが差し替えられてる可能性もあって完璧じゃないし… そこで判別するのは無理そうか。 返信を追加
mameta_zk2025/02/28に更新 metamaskのコネクト画面はネイティブアプリだからアドレスバーはない。だからコネクト画面の外観だけで判断は出来ない まさにこの通りだと思います。今回の偽metamaskはポップアップのようなものですので、外観では判断できなさそうです。
フシハラ2025/02/28なるほど~ ブラウザならhtmlが全く信用できなくてもアドレスバーの情報は完全に信頼出来るけど ネイティブアプリだと、起動してるプロセスを直接見るくらい?それもPCローカルで任意コード実行されている段階でバイナリが差し替えられてる可能性もあって完璧じゃないし… そこで判別するのは無理そうか。
みじんこ2025/02/28npm run startで実行されたコードがどのようにログインフォームに作用していたのかが気になります ローカルで立ち上げた偽のログインフォームに誘導された? 本物のログインフォームに悪意のあるコードを埋め込まれた?(拡張機能以外でそんなことが可能?) mameta_zk2025/02/28npm run dev ではローカルのMetamask拡張機能がある暗号化されたデータ(秘密鍵)をハッカーのサーバーに事前に送信しており、その後パブリックURLで入力したパスワードで復号化したという流れになります。 返信を追加
mameta_zk2025/02/28npm run dev ではローカルのMetamask拡張機能がある暗号化されたデータ(秘密鍵)をハッカーのサーバーに事前に送信しており、その後パブリックURLで入力したパスワードで復号化したという流れになります。
すずねーう2025/02/28もう PC は初期化しましたか?してないならすぐにすることをおすすめします。 util.assets を使っている同系統の GitHub に落ちていたマルウェアを解析すると、JS を経由して難読化された Python コードを実行しており、それの難読化を戻すとキーロガーとマウスロガーが入っていました。 EdamAmex2025/02/28に更新亜種が大量にあるから、種類にもよりそうだけど 踏まされた時は初期化が一番 返信を追加
hida2025/03/01公私混同しがちなので人のこと全く言えないですが、 普通の会社員は業務 (開発) 用のPCにプライベートのデータを入れないので (逆は言わずもがな)、たとえ副業案件でもOSのユーザーを作成して切り替える、Chromeのログインを分けるとか、ちゃんとすべきなのだろうな、と思うなど。 返信を追加
あいや - aiya0002025/03/02鑑みると我々は常々、ユーザー権限といえどnodejsによる実行だけでなく様々なコード実行を許している気がするので(npmなど同様の各言語のパッケージマネージャーによるコード実行や、$ curl {url} | sh・ArchLinuxのAURなど。)、そういうときは一度思考を挟むことを癖つけるか、そもそもAIに全部実行をさせて、思考を挟ませるのがよさそうですね〜 返信を追加
Discussion
これって受け取ったgithubのレポジトリをそのままAIに投げて
「悪意のあるコードは含まれているか確認して下さい」的な事をお願いしたら見つけてくれますか?
このような事件の対処法として「怪しい人から受け取ったソースを実行しない」というのは完全に防げますが、
実際は今回のように相手が怪しいかを確実に判断するのは不可能だし、現実的とはちょっと言えないと思うので
そういう時に検知ができたかを知りたいです。
これ、ぶん投げ出てAI見つけてくれます。実際この記事もAIに原因見つけてもらいながらまとめましたので。1回AI挟むのは定石になりそうですね。ありがとうございます、追加しまいた。
たまたま見つけたのでコメントなんですが、このような事例もあるのでその辺を加味して利用した方が良さそうかなと思いました。
(詳細なプロセスを赤裸々に書いてくれており、いろんな面で参考になる記事だなと思いました 🙏)
追記&補足ありがとうございます!
辛いご状況にも関わらず詳細な開示ありがとうございます。たいへん参考になりました。
1.私が認証情報を入力
2.それが攻撃者のサーバーに送信 (上記の偽のwindow.ethereumのコード)
3が記事内容でどうやったのかわからなかったんですが記事掲載以外のコードに仕込まれていたんでしょうか?シードフレーズで派生した他のアカウントからも資金抜かれたんでしょうか?
ありがとうございます。こちら私の誤解があったようですみません、友人が難読化コードを解析してくれたことを元に記事を修正しました。
追記の部分をご確認ください。端的にいうと、
npm run devしたときにmetamaskのローカルで保存されている暗号化された秘密鍵などがすでに盗まれており、私が入力した認証情報で復号化した、といった流れになります。metamaskを使っていないので的外れだったら申し訳ありませんが、
>一度画面共有を解除してConnect Walletボタンを押下してパスワード入力
ここで攻撃者が作った偽のログイン画面に認証情報を入力してしまったという事だと思いますが、
ブラウザのアドレス欄で気付くことは可能だったでしょうか?
例えばGoogleログインを要求された時、そのドメインがgoogle.comではない 例えばlocalhostだったり全く別のドメインだったら偽サイトの可能性が高いと判断出来ます。
「metamaskのコネクト画面はネイティブアプリだからアドレスバーはない。だからコネクト画面の外観だけで判断は出来ない」って事かな
まさにこの通りだと思います。今回の偽metamaskはポップアップのようなものですので、外観では判断できなさそうです。
なるほど~
ブラウザならhtmlが全く信用できなくてもアドレスバーの情報は完全に信頼出来るけど
ネイティブアプリだと、起動してるプロセスを直接見るくらい?それもPCローカルで任意コード実行されている段階でバイナリが差し替えられてる可能性もあって完璧じゃないし…
そこで判別するのは無理そうか。
npm run startで実行されたコードがどのようにログインフォームに作用していたのかが気になります
npm run devではローカルのMetamask拡張機能がある暗号化されたデータ(秘密鍵)をハッカーのサーバーに事前に送信しており、その後パブリックURLで入力したパスワードで復号化したという流れになります。もう PC は初期化しましたか?してないならすぐにすることをおすすめします。
util.assetsを使っている同系統の GitHub に落ちていたマルウェアを解析すると、JS を経由して難読化された Python コードを実行しており、それの難読化を戻すとキーロガーとマウスロガーが入っていました。亜種が大量にあるから、種類にもよりそうだけど
踏まされた時は初期化が一番
ツラいすね、、。
こういうサイバー犯罪?って犯罪者を捕まえるのは無理なんですかね。捕まってほしいし、損害分取り返せない?🫠
公私混同しがちなので人のこと全く言えないですが、
普通の会社員は業務 (開発) 用のPCにプライベートのデータを入れないので (逆は言わずもがな)、たとえ副業案件でもOSのユーザーを作成して切り替える、Chromeのログインを分けるとか、ちゃんとすべきなのだろうな、と思うなど。
鑑みると我々は常々、ユーザー権限といえどnodejsによる実行だけでなく様々なコード実行を許している気がするので(npmなど同様の各言語のパッケージマネージャーによるコード実行や、
$ curl {url} | sh・ArchLinuxのAURなど。)、そういうときは一度思考を挟むことを癖つけるか、そもそもAIに全部実行をさせて、思考を挟ませるのがよさそうですね〜