Node.js コミュニティの 2 つの重要なドメイン、npmjs.com と nodejs.org には DMARC 電子メール セキュリティ ポリシーがないため、悪意のある人物が簡単に偽装した電子メールをコミュニティに送信できる可能性があります。
この問題は、niftylettuceという匿名の開発者からThe Registerに報告された。この開発者は、この種の偽造メールは、広く使用されているnpmパッケージを制御するためにユーザーアカウントを乗っ取ろうとするフィッシング攻撃を容易にする可能性があると懸念を表明した。
多くのドメインはDMARCを実装しておらず、メールメッセージにおけるドメインスプーフィングの可能性を残しています。しかし、npmパッケージの作者に対するフィッシング攻撃が成功した場合、乗っ取られたアカウントを介して大量のマルウェアが拡散される可能性があるため、その影響は特に懸念されます。
近年、開発者アカウントに対する注目に値する攻撃がいくつか発生しています。
「これは私がこれまで見た中で最も単純な攻撃であり、基本的に何の努力も要らない」とniftylettuce氏は述べ、GitHubとnpmからユーザーアカウントのメールアドレスをスクレイピングし、これら2つのウェブサイトのいずれかから送信されたように見えるフィッシングメッセージをスパム送信するのは簡単だと指摘した。
彼らにとって DMARC は死んだのでしょうか?
ドメインベースのメッセージ認証レポートおよび適合性(DMARC)により、ドメイン所有者は、ドメイン名のメールにおける不正使用への対処方法を指定できます。DMARCレコードは、ドメインのDNSレコードの一部として公開されるテキスト文字列で、SPFチェックとDKIMチェック(2つのメール認証方式)が評価された際にメールポリシーを宣言します。
DMARCポリシー宣言(文字列全体に含まれるキーと値のペア)はp=none
、、、p=quarantine
のいずれかになりますp=reject
。DMARC設定がないと、悪用される可能性があります。
完全な DMARC エントリは次のようになります。
v=DMARC1; p=拒否; rua=mailto:[email protected]
この種の攻撃は、偽造された From: アドレスや、npmjs.io などの類似ドメインを利用する可能性があります。
Node.js 開発者をターゲットにしたフィッシング攻撃がいかに簡単かを示すために、niftylettuce は Amazon SES (npmjs.com は DKIM 署名なしで使用) 経由で自分自身に偽装した npmjs.com メールを送信しました。以下に示すように、このメールから、marks は偽のパスワード リセット ページに誘導され、認証情報を収集する可能性があります。
騙されたかも…クリックして拡大
「このメールはnpmユーザー全員の受信トレイに届く可能性があります(DMARCが実装されていないため)。おそらくかなりの数のユーザーがフィッシング攻撃に引っかかるでしょう」とniftylettuce氏はメールで説明した。「npmのウェブサイトの過去のソースコードはGitHubでオープンソース化されているため、ウェブサイトを複製するのは非常に簡単です。」
開発者のnpm認証情報が入手できれば、悪意のあるコードを追加することで、開発者が管理するパッケージを簡単に改ざんできる可能性があります。「もしこの侵害が発生した場合、npmデータベース全体のパスワードをリセットする必要があり、ロックアウトされるでしょう」とniftylettuceは書いています。
The Registerは、3月にnpmを買収したMicrosoft傘下のGitHubに対し、これを深刻なセキュリティ問題と見なしているかどうかを尋ねた。GitHubはDMARCの実装を検討しているが、設定変更によってメールの配信が妨げられるなどの意図しない結果が生じないように、ゆっくりと進めているとの回答があった。®