|
MoqはNuGetソフトウェアレジストリで配布されており、1日に10万回以上ダウンロードされています。リリース以来、4億7,600万回以上ダウンロードされています。 Moq の最近リリースされたバージョン 4.20.0 では、SponsorLink という別のプロジェクトがひっそりと追加されたが、これはオープンソース ソフトウェアの消費者の間で大きな騒動を引き起こし、彼らはこの動きを多数のユーザーの信頼を裏切るものだとみなしている。 SponsorLinkはオープンソースプロジェクトのように見えますが、実際にはNuGet上でクローズドソースコードとして配布されています。主な問題は、ユーザーのメールアドレスのハッシュを収集してSponsorLinkのCDNに送信する難読化されたDLLが含まれていることです。これにより、プライバシーに関する懸念が生じます。 Moq はユーザーの信頼に応えられなかった。約 2 週間前、Moq の所有者の 1 人である Daniel Cazzulino (kzu、SponsorLink プロジェクトも管理) が、Moq 4.20.0 以降に SponsorLink を追加しました。 この動きはオープンソース エコシステムで大きな話題となりましたが、主な理由は 2 つあります。Cazzulino 氏はプロジェクト Moq を変更する完全な権限を持っていたにもかかわらず、依存関係をバンドルする前にユーザー コミュニティに通知しなかったこと、および SponsorLink DLL に難読化されたコードが含まれていたためリバース エンジニアリングが困難で、完全に「オープンソース」ではなかったことです。 ドイツのソフトウェア開発者 Georg Dang 氏は、スキャン機能はビルド プロセス中に実行される .NET アナライザー ツールの一部であり、無効にするのが難しいと警告しました。 SponsorLink は、GitHub スポンサーをユーザー リポジトリに統合して、ユーザーがスポンサーに適切にリンクして機能をロック解除したり、ユーザーのプロジェクトをサポートしたことに対する正当な評価を受けたりできるようにする手段であると説明されています。 GitHubユーザーのMike (d0pare) 氏がDLLを逆コンパイルし、ソースコードの大まかなリファクタリングの結果を共有しました。このアナリストによると、このライブラリは「メールを取得するための外部gitプロセスを生成する」とのことです。 次に、電子メール アドレスの SHA-256 ハッシュを計算し、SponsorLink の CDN (hxxps://cdn.devlooped[.]com/sponsorlink) に送信します。 図1. MoqとSponsorLinkに隠されたテレメトリコード(画像出典:GitHub) 開発者は変更を擁護するコメントの中で、Cazzulino 氏はその理由を説明し、バージョン「4.20」は「実験的なもので、実際のフィードバックを得るのが難しかったので、コメントが少し厳しいものだったとしても、本当に感謝しています」と認めた。 Cazzulino氏はSponsorLinkプロジェクトのReadmeをさらに更新し、以下に示すような長文の「プライバシーに関するお知らせ」を追加しました。このお知らせでは、実際のメールアドレスは存在せず、ハッシュ値のみが収集されることが明記されています。このアップデートは強い反対を受けてリリースされました。 スポンサーリンクがユーザーの明示的な同意なしにメールアドレスを収集するのではないかと心配する方もいらっしゃいますが、これは事実ではありません。Fiddler を実行して現在発生しているトラフィックの種類を確認すれば、簡単に確認できます。 具体的には、スポンサーシップチェックを行う際に、実際のメールが送信されることはありません。ローカルシステム上のメールはSHA256でハッシュ化され、その後Base62でエンコードされます。使用されるのは、結果として得られる不透明な文字列のみです(元のメールが明らかになることはありません)。 SponsorLink は、SponsorLink GitHub アプリケーションをインストールして明示的な許可を与えた後にのみ、あなたのメールアドレスを取得します (この不透明な文字列をバックエンドで実際のメールアドレスと GH ユーザーに関連付けてスポンサーシップをリンクする操作を実行するため)。 さらに、アプリケーションを一時停止またはアンインストールすると、アカウントとメールに関連付けられたすべての記録が削除されます。 カズリーノ氏は過去にも、スポンサーリンクをクローズドソースのままにして難読化することで、特定のチェックを回避できないようにするという自身の決定を擁護したことがある。同氏によれば、このライブラリの不透明性は「意図的に設計された」ものだという。 潜在的なプライバシーの問題倫理的および法的観点から、Moq のようなプロジェクトにスポンサーリンクを静かに追加すると、プライバシーの問題が生じます。 まず、問題は次のとおりです。あまり目立たないクローズド ソースの依存関係 (スポンサー リンク) がオープン ソース チャネルを通じて配布され、人気の OSS プロジェクト (Cazzulino によって開発され、何百万回もダウンロードされている GitInfo など) に追加されます。 電子メール アドレス ハッシュの収集は完全に匿名ではない可能性があります。 少なくとも理論上は、スポンサーリンクの開発者は収集したハッシュを漏洩した電子メールアドレスのデータベースと比較してユーザーを特定することができ、ウォルター氏はカズリーノ氏にスポンサーリンクのパッケージについてより透明性を高めるよう求めた。 これに応じて、一部の開発者は、Moq の使用をやめて代替手段に切り替えると脅したり、SponsorLink を実行しているプロジェクトを検出してブロックするツールを構築したりしました。 中にはさらに踏み込んで、SponsorLink を使用するプロジェクトをボイコットし、NuGet レジストリに「SponsorLink」をマルウェアとして報告すると言っている人もいます。 Moq への物議を醸した変更は v4.20.2 で撤回されましたが (他者からの反対により)、同様の「機能」が Moq の将来のバージョンで再導入される可能性は残っています。 この記事はhttps://www.bleepingcomputer.com/news/security/popular-open-source-project-moq-criticized-for-quietly-collecting-data/から翻訳されたものです。転載する場合は元の出典を明記してください。 |