何が起こったのかわからなくても、おそらくニュースを見たことがあるでしょう。
あなたがJavaScriptプログラマーであり、呼び出されたモジュールのペアのいずれかまたは両方に依存していない限り faker.js
& colors.js
.
これらのプロジェクトのいずれかのユーザーであり、コードのレビューやテストを行わなくても、ソースコードのすべての更新を自動的に受け入れる傾向がある場合(またはそうだった場合)…
…あなたはおそらく何が起こったのか、そしてそれがあなたにどのように影響したのかを正確に知っているでしょう。
サプライチェーン攻撃
Naked Securityの長期的な読者は、いわゆる問題に精通しているでしょう。 サプライチェーン攻撃 オープンソースソフトウェアライブラリでは、プログラミングエコシステムにおけるこの種の問題について以前に書いたことがあります。
を含む多くのコーディングコミュニティに突然現れたセキュリティホールについて書きました PHP プログラマー、 パイソンニスタ, ルビー ユーザー、および NPM ファン。
昨年、私たちにも理由がありました 道徳について議論する Linuxカーネルのソースコードリポジトリを恥ずかしがらずに呼んでいるもののテストの場として故意に使用した自称の学術研究者の 偽善者はコミットします.
ソフトウェアサプライチェーン攻撃は通常、攻撃者がネットワークに侵入して正面からの攻撃を仕掛ける直接ハッキングとは異なり、ネットワークまたは開発チームに間接的に感染する、有毒、危険、または意図的に変更されたコンテンツを伴います。
サプライチェーン攻撃は、多くの場合、あなたのXNUMX人によって完全に無意識のうちに受け継がれます。 製品およびサービスのサプライヤー、上流の誰かから許可されていない変更を自分で取り込んだ可能性がある人など。
サプライチェーン攻撃について詳しく知る
ポッドキャストの任意のポイントにスキップするには、下のサウンドウェーブをクリックアンドドラッグします。
また、ワイルドカード*を使用すると、任意の文字にマッチし、XNUMXつのコマンドで複数のファイルを削除することができます。 直接聞く Soundcloud、または 完全なトランスクリプトを読む.
非倫理的、おそらく、しかし時には犯罪的ではない
ただし、前述したように、この種のサプライチェーンの問題は、最終的に非倫理的(または幼児、または考え抜かれた、あるいはそれらの組み合わせ)と判断されたとしても、必ずしも犯罪の意図から生じるとは限りません。
すでに述べました 偽善者はコミットします、これは、それ自体ではセキュリティホールを導入しないが、それらを組み合わせると脆弱性を生み出すXNUMXつ以上の変更のカバーの下で、悪意のあるバックドアコードを挿入する可能性があることをすべて私たちに思い出させることを目的としています。
そして、私たちは、彼が故意にアップロードした危険なソフトウェアパッケージを作成することがいかに簡単であるかを私たちに思い出させることに熱心だった「研究者」の話にリンクしました それらの4000に近い 「有用性」の持続的なバーストで。
当時提案したように、偽善者と過負荷者の両方の「専門家」は、やりがいのある仕事は価値があるという利己的なモットーを採用しているようです。 やり過ぎ...
…それにより、LinuxとPythonのコミュニティでそれぞれ他の無実のボランティアのために膨大な量の不要な作業を作成します。
ColorsとFakerが不正になります
今回は、XNUMXつの人気のあるJavaScriptコーディングモジュールの創設者として知られています colors.js
& faker.js
わずかに異なるXNUMXつのスパナを作品に投入しました。
色 は小さくてシンプルなツールキットで、コンソール出力に色付きのテキストを追加するのに役立ちます。多くの場合、情報をより見やすく、読みやすくするために使用します。
たとえば、私たちが Log4Shell –映画 最近のビデオでは、モックアップされたLDAPサーバーの出力に色を追加して、着信要求の追跡を容易にしました。ターミナル出力のANSI制御シーケンスを使用して、成功と失敗を示す緑と赤のマークを追加しました。
残念ながら colors.js
プロジェクトの創設者であるユーザーは、2019年以降更新を公開していなかった後、リリース番号を取得するための新しいコードを突然追加しました 1.4.0
やや珍しいバージョン識別子に 1.4.4-liberty-2
.
どうやら、彼は自分の仕事を使用している多くの人々から自分がふさわしいと感じた経済的認識を得ることができなかったので、次のような無限ループを追加して自分のコードをゴミ箱に捨てました。
/* remove this line after testing */ let am = require('../lib/custom/american'); am(); for (let i = 666; i < Infinity; i++) { if (i % 333) { // console.log('testing'.zalgo.rainbow) } console.log('testing testing testing testing testing testing testing'.zalgo) }
このコードの最後のループはテキストを出力します testing testing ... testing
と呼ばれる関数を適用した後、何度も何度も zalgo
それに。
ザルゴ化
ザルゴ化、聞いたことがない場合は、通常のローマ字にアクセント、セディーユ、ウムラウトなどのいわゆる文字を散らかして、奇妙で無意味に見えるようにする方法です。 分音記号 –バンドに名前を付けるのと少し似ています モーターヘッド モーターヘッド、ただし、XNUMXつの余分なシンボルを追加するだけの制限はありません。
Zalgoedテキストは無意味であるだけでなく、テキストを作成して表示するためにレイアウトしようとしている基盤となるテキストレンダリングソフトウェアに大きな負荷をかけることがよくあります。
人間の書道家は、それがまったく意味をなさないことを知って、単語内のすべての文字にすべての可能なアクセントを追加するように求められることに呆然とします。
しかし、コンピューター化されたコンポジターは、あなたが要求するすべてのマーキングを組み合わせて、あなたのバンドに与えることによって、単に義務を負わせようとします ザルゴメタル 次のような定型化された名前:
アーロンシュワルツの記念碑
ファーカー ユーザーは別の種類の更新を経験しました。プロジェクトは基本的に消去され、 README
ファイルを求める 「実際に何が起こったのか アーロンシュワルツ? "
シュワルツ、彼がすべきだと思った学術論文への不正アクセスに関連する連邦犯罪で起訴された「ハクティビスト」 ペイウォールの後ろに置かれないでください、彼の裁判を待つストレスの下で悲しいことに自殺した。
Fakerは、開発者にとって便利なツールキットであり、開発中にユーザーデータベースに追加できる100,000の名前やアドレスを作成するなど、品質保証のために現実的でありながら構成された大量のデータを簡単に生成できました。
偽のデータは、テストされていない不完全なコードで作業しているときにプライバシーの災害を回避するための重要な側面です。これは、本物の機密データを軽率な(場合によっては違法な)方法で公開していないことを意味します。
Fakerの作者はどうやら プロジェクトを商業化する 2021年の間に、しかし成功しなかったので、彼は今コードを与えられているように見えます クーデター.
コードがMITライセンスの下で長年リリースされていることを考えると、基本的には、自分で作成したと主張しない限り、商用のクローズドソース製品でも誰でも無料で使用できることを意味します。既存のユーザーが以前のバージョン、または実際にはそれ以前のバージョンを継続することを妨げるものは何もありません。
彼らは彼らが望むように彼ら自身の修正と改善をすることさえできます…
…したがって、プロジェクトをダウンロードして展開したユーザーのライセンスを遡及的に書き換えることができないことを考えると、プロジェクトをこれほど見事に破棄した場合の最終的な結果が作成者にとってどのようなものになるかは明らかではありません。
誰かが勝ちますか、それとも私たち全員が負けますか?
一つとして 苦しんでいるコメンター (おそらく、何が変更されたかを確認せずに更新を本番環境に移行し、その結果一時的な停止に見舞われた人)、それは誰にとっても実際にはうまく終了していません:
評判のない人が評判に価値がないと思っているのはおもしろいですね。 ここにいるすべての人々に、「私たちは自由ソフトウェアを信頼することについての貴重な教訓を教えられてきました」と言っています。 これを理解します…
私に15分の悲しみを引き起こしたのは、マラクがしなければならなかったのは、彼自身の評判を取り返しのつかないほど破壊することでした。
このような場合、あなたはどちらの側にいますか? 以下のコメントでお知らせください…
ソース:https://nakedsecurity.sophos.com/2022/01/11/javascript-developer-destroys-own-projects-in-supply-chain-lesson/