npmを使用して携帯電話でメルトダウンを介して放送する方法のストーリー

翻訳者からの序文



記事の内容に到達するまで、それを延期し、モニターから目をそらし、これがどのように起こるかを考えることをお勧めします。 いつものように、独創的なものはすべてシンプルです。 答えは表面にあります。 思った? 次に読み進めてください。



さて、ここにあなたのための正しい答えがあります。 まさか。 これは嘘です。 嘘のように、最近私たちが翻訳した記事「あなたのサイトの訪問者からクレジットカード番号とパスワードを盗む方法の物語」のタイトルと内容があります。



これはちょっとしたセキュリティ意識のある小さなファンタジーであることが私には明白に思えましたが、非常に多くの人がそれを真剣に受け止めたようです。たとえば、優れた記事「Node.js-癌性腫瘍」や、Ryanのインタビューの破れた記事の後、彼はGoを気に入っています。



意図的であろうと偶然であろうと、私は知りませんが、著者は誇大宣伝の話題についてファンタジーを書きました。 翻訳について議論するのはかなり馬鹿げていることは知っていますが、この翻訳はすべてのチャンネルで私をノックしています。 それで、私は彼に別の翻訳で答えます。 行こう



npmセキュリティが怖いですか? パニックにならないでください!



それで、最近の投稿が原因でnpmセキュリティをめぐってパニックに陥っていますか? 特にこの理由: 「あなたのサイトへの訪問者からクレジットカード番号とパスワードを盗む方法についての話 さて、あなたに伝えたいこと。 せいぜい、これはトローリングポストです。 理由を説明しましょう。 この馬鹿げた、間違った、なぜnpmjsに悪い光をあて、パニックをゼロから起こすのか。



テキストの冒頭で、著者はサイトに埋め込むことができる恐ろしいjavascriptコードを説明し、データを盗みます。 著者は、他の人のデータを取得するには、コードを他のサイトに配布する必要があることを理解しています。 彼はこのnpmを選択します。 新しくて驚くことは何もありません。 npmjs、pythonレジストリなど、誰でもトロイの木馬を実行できます。



ただし、パッケージがどこかで公開されているということは何の意味もありません。たとえば、ユーザーがアクセスしないWebサイトがあった場合と同じです。 そこで、問題が発生します-サイト所有者自身の助けを借りてトロイの木馬を導入する方法は? 著者はこれが主な問題であることを理解しており、プロジェクトに応じてパッケージを追加するgithubにリクエストプールを作成することで解決します。



以上です。

それがハック全体です。

テキストの内容全体がこの考えに帰着します。 魔法はありません。

npmjsサーバーでのリモートコード実行はありません。

リモートエクスプロイトはありません。

メルトダウンまたはゼロデイ脆弱性はありません。

npmjsへの呼び出しではなく、サポートの耳に2600hzをささやきます。



もう一度繰り返しましょう



著者は、トロイの木馬を拡散させ、開発者に依存関係として使用するよう説得しました。 落ちた。 座ってリラックスしてください。この革新的な攻撃ベクトルを検討します。



間違いなく、そのようなトリックを完了するには、著者に単純な驚くべきソーシャルエンジニアリングスキルを付与する必要があります。





ここでnpmはどちら側ですか? 正直なところ、私にはわからない。 私たちのJavascriptコミュニティで誰かがパニックに陥っている理由はまったくわかりません。 なぜnpmはスケープゴートでしたか? 問題はそこにありません。 むしろ、それは確かにそれ自身の問題を持っていますが、それらはこの物語に決して関係していません。



翻訳者注:ここでは、あまり成功していないアナロジーや、パスワードの盗難に関する話の半分がでたらめである理由についての説明は省略しました。



一般的に、オープンソースで作業していることを理解していますか?



今私は私たち全員について話している-あなたはあなたがオープンソースコミュニティで働いていることを理解していますか? それはどういう意味ですか? オープンソースは信頼の上に構築されています。 コミュニティ上、コミュニケーション上-これらは、コミュニティを信じられないほどにするコアバリューであり、私はそれを愛しています。



オープンソースプロジェクトに脆弱性はありますか? はい

誰かが新年に何百万人も失う可能性のあるオープンソースプロジェクトにパフォーマンスの問題がありますか? はい



エリック・レイモンドは、オープンソースの脆弱性が議論された状況を美しく説明しました :「目が多く、バグが少ない」、または、より正式には「ベータテスターと従業員が十分であれば、ほとんどすべての問題がすぐに検出され、誰かに明らかである」 。



オープンソースを受け入れると、それがもたらすリスクを受け入れます。 それは悪い、悪意のある、または放棄されたコードです。 したがって、この責任を受け入れてください。 npmでインストールするパッケージを確認する必要があります。npmは、コードを配信するための単なるサービスリンクです。



エピローグ



私はその投稿がパロディであることを理解していますが、反応とコメントは、人々がそれをあまりにも真剣に受け止めていることを示しました-パニックまで。 そして正直に言って、この記事がnpmとセキュリティ全般に与えた影響に非常に腹を立てたと言わなければなりません。



私自身もコンピューターのセキュリティに積極的に関与しており、Node.JS OWASPプロジェクトに参加しています。国際会議でNode.JSのセキュリティについて話します。 なぜ今これについて話しているのですか? 私がWebアプリケーションの危険性に対する認識を高めるためだけのものであることを示すため。 しかし、理由もなく、npmとコミュニティからパンチングバッグがどのように作成されるかを見るのは悲しいです。



私は元の記事の著者であるデビッド・ギルバートソンを個人的に知りませんが、私は彼をあらゆる点で尊敬し、彼には悪い意図がなく、彼の物語は純粋なフィクションであると確信しています。 しかし、私たちは読者の知性をもう少し信じて、そのようなホラーストーリーなしで危険について話すことができると信じています。 パニックの代わりに、何かを改善する方法について建設的に議論する方がよいでしょう。



翻訳者からのあとがき



著者が他の言語で言及したnpmアナログに加えて、maven、nuget、composer、独自のプラグインとテーマを備えた数千のフレームワークなどがあります(興味があれば、wordpressプラグインwp-invitesに悪意のあるコードがどのように現れたかを教えてください) 。 最後に、パッケージを複数の言語に直接配置できるgithubがありますが、そこに悪意のあるコードを公開していると非難する人はいません!



そして、何らかの理由で、キックはnpmを取得します。 そして、道徳、結論、提案なしで、ただ愚かで無意味なキック。 また、架空の物語のため。 私は、元の記事の著者のように、すべてが順調であり、懸念の原因がないことを言いたくありません。 すべてが壊れています。 でも私たちのいまいましいプロセッサ。



しかし、パニックにならないでください。 今すぐ修正できます。 または、npmパッケージでバックドアを検索するツールを作成します(もう1つ)。 または、少なくともバグを報告してください。 または、開発者への寄付を放棄します。 または、会社にロックとパッケージレビューを実装します。 そして、あなたはひどいnpmについて泣き叫ぶことができます。 選択はあなた次第です。



All Articles