悪意あるGoパッケージがGoogleのUUIDライブラリを装い機密データを窃取

概要

過去4年以上にわたり、Goプログラミングエコシステムに潜む危険が明らかになりました。Socket Threat Research Teamのセキュリティ研究者たちは、人気のGoogleツールを装った2つの悪意あるソフトウェアパッケージを発見しました。これらの偽パッケージは、2021年5月から静かにデータを窃取していました。

詳細

悪意のあるパッケージは、github.com/bpoorman/uuidgithub.com/bpoorman/uidとして識別されています。これらは、正当で広く使用されているpbormanおよびGoogle UUIDライブラリとほぼ同じように見えるように設計されています。これらの正規ライブラリは、データベースの行、ユーザーセッション、ジョブ追跡などのユニークな識別子を生成するための業界標準です。

タイポスクワッティングの手口

攻撃者は「bpoorman」というユーザー名を使用し、「タイポスクワッティング」という手法を用いました。「pborman」(正当なメンテナー)と視覚的に似た名前を選ぶことで、開発者が名前を誤入力したり、多数の依存関係リストの中で違いに気づかないことを狙っていました。

巧妙なデータ窃取メカニズム

この偽ソフトウェアは実際に機能し、正規版と同様にユニークなIDを生成します。これにより、アプリケーションがクラッシュしたり、明らかなエラーを表示したりしないため、長期間にわたって隠蔽されることが可能でした。しかし、この偽コードには秘密のバックドアが含まれています。

悪意のあるコードには「Valid」というヘルパー関数が含まれています。正規のソフトウェアでは、開発者はこの名前の関数がIDが正しくフォーマットされているかをチェックすると予想するでしょう。しかし、偽のバージョンでは、より危険なことを行います。開発者がユーザーID、メールアドレス、セッショントークンなどのデータをこの「Valid」関数に渡すと、コードは秘密裏にその情報を暗号化します。そして、ハードコードされたAPIトークンを使用して、盗んだデータを公開テキスト共有ウェブサイトdpaste.comに送信します。攻撃者はこのデータを匿名で取得できます。データは被害者のコンピューターから離れる前に暗号化されるため、標準的なセキュリティツールでは機密情報が盗まれていることに気づかない可能性があります。

影響と対策

これらのパッケージは数年前に公開されたにもかかわらず、Goパッケージ発見サイトや公開ミラーで利用可能なままでした。公開インデックスには「インポート数0」と表示されていますが、これは誤解を招くものだと研究者は警告しています。インデックスはプライベートな企業リポジトリや内部ツールからのダウンロード数をカウントしないため、実際に影響を受けたシステムの数は不明です。

Socketは両パッケージをGoセキュリティチームに報告し、作者のアカウント停止を要請しました。開発者には、プロジェクトを監査し、github.com/google/uuidまたはgithub.com/pborman/uuidを使用していることを確認し、悪意のある「bpoorman」の偽物ではないことを強く推奨します。


元記事: https://gbhackers.com/malicious-go-packages-impersonate-googles-uuid-library/