SocketはJavaScriptとPythonを超えてGoに進出

Table of Contents

SocketはJavaScriptとPythonを超えてGoに進出

インタビューオープンソース セキュリティ企業の Socket は、これまで JavaScript と Python のみを対象としていたソースコード依存関係チェッカーを拡張し、Go コードのチェックもサポートするようになりました。

シリーズ A の資金調達ラウンドで 2,000 万ドルを発表したこのセキュリティ ショップは、コード ツールキットに次の 3 つの追加を行う忙しい 1 週間を過ごしました。

  • Go エコシステムを完全にサポートします。これは、Socket が Golang 攻撃の顕著な増加を確認した後に追加されたものです。
  • ダウンロード前にオープンソース パッケージが安全であることを確認するための Chromium 拡張機能と Firefox バージョン。
  • 組織全体の依存関係の検索を可能にする有料の追加機能で、特にソフトウェア認証用に設計されています。

「オープンソースソフトウェアはアプリケーション開発の方法に革命をもたらしましたが、同時に独自の課題ももたらしました」と、同社のCEOであるフェロス・アブカディジェ氏はThe Register紙に語った。「最大の課題の一つは、現代のアプリケーションが依存する広大な依存関係のセキュリティを確保することです。」

アプリケーションは実に多くの依存関係を使用しており、その多さには驚かされます。一例として、Discordデスクトップクライアントが挙げられます。このクライアントは、200カ国以上、38万人以上の貢献者によって構築された19,000以上の依存関係を使用しています。

アブカディジェ氏は、Goへの拡張によって、Socketはセキュリティリスクを特定し、開発者がより安全なソフトウェアを開発できるよう支援しようとしていると述べた。あるいは、2023年8月3日の発表日に従って、2日後にそうする予定だ。

Aboukhadijeh氏は、「Goは開発者コミュニティ、特にSocketの顧客の間で急速に普及している言語です。Goはそのシンプルさと効率性で知られており、高性能アプリケーションで人気の選択肢となっています。しかし、他の言語と同様に、特に分散型VCSベースの依存関係フェッチアプローチを採用しているため、セキュリティリスクから逃れられるわけではありません」と述べています。

昨年デビューしたSocketは、個人開発者向けの無料プランに加え、チームおよびエンタープライズ向けの有料プランを提供しています。オープンソースパッケージを評価するセキュリティスキャナーは他にも存在しますが、それらは一般的に既知の脆弱性を対象とする点が競合他社との差別化要因となっています。Socketはこれとは逆のアプローチを採用し、すべてのオープンソースパッケージには悪意のある可能性があるという前提に基づいています。

「Socketはパッケージの動作を分析して、インストールスクリプト、難読化されたコード、シェル、ネットワーク、ファイルシステム、環境変数などの特権APIを捕捉します」とセキュリティ企業は昨年ツイートしている。

  • 警告: JavaScript レジストリ npm は「マニフェストの混乱」の悪用に対して脆弱です
  • Python Package Indexには週末のマルウェア攻撃を抑えるために1人の担当者が待機していた
  • コードの依存関係のセキュリティが心配ですか?GoogleのDeps.devをお試しください
  • ワームホール暗号化ファイル転送アプリ、Mozilla撤退後にFirefox Sendを再起動

Socketの出現は、ソフトウェアサプライチェーンに対する重大な攻撃が最近発覚したことを受けてのものです。これには、ビルドおよび統合プロセス中に実行されるサードパーティ製のライブラリやスクリプトを通じてソフトウェアアプリケーションを侵害しようとする試みが含まれます。

このような攻撃の急増により、米国連邦政府は、プログラマーに対し、ソフトウェア部品表 (SBOM) を通じてソフトウェア開発手法を文書化するよう義務付けるなど、関連する取り組みを進めています。

でも待って、まだある

Socketは、ChromiumベースのウェブブラウザであるFirefox向けに、NPMレジストリでホストされているコードパッケージのセキュリティ分析データを表示する無料のブラウザ拡張機能も発表しました。このプラグインは、AppleのSafariブラウザ用にもリリースされる予定です。

「私たちの目標は、開発者が何時間もかけて探し出す必要がある情報を作成し、アプリケーションに追加する新しいオープンソースパッケージを探している重要な瞬間に、開発者の手元にすぐに届けることです」とアブカディジェ氏は述べた。

JavaScriptのNPMパッケージマネージャーに不正なコードを忍び込ませ、開発者に不正なライブラリをアプリに追加させようとする悪意のある行為が蔓延しています。Socketブラウザ拡張機能はNPMパッケージのWebページを精査し、疑わしい点があるかどうかを容易に判断できるようにします。

「オープンソースソフトウェアのセキュリティ確保の課題は、再帰的なものです」とアブカディジェ氏は述べています。「アプリ開発者が安全な依存関係を選択するだけでなく、それらの依存関係自体が安全な依存関係に依存しているかどうかなども考慮する必要があります。こうした複雑さこそが、セキュリティ情報を広くアクセス可能にすることの重要性を浮き彫りにしています。」

アブカディジェ氏は、ソケット社は自社のウェブサイトでセキュリティ分析データを無料で提供できることを喜んでいると述べ、そうしたデータが開発者に悪質なコードを避けるよう警告できる例を挙げた。

例えば、公開時点でNPMがホストしているマルウェアに感染したパッケージに関するSocketパッケージレポートはこちらです:https://socket.dev/npm/package/bobjoll/overview/6.640.3。さらに詳しく調査したい開発者のために、Socketは悪意のあるファイルへのディープリンクを提供しています:https://socket.dev/npm/package/bobjoll/files/6.640.3/scripts/script.js

同社のブラウザ拡張機能を使用すると、そのデータは次のように関連する NPM パッケージの Web ページに表示されます。

ソケット拡張機能付きのbobjollパッケージのNPMページのスクリーンショット

ソケット拡張機能付きの bobjoll パッケージの NPM ページのスクリーンショット - クリックして拡大

Socketの有料プランをご利用のお客様向けに、組織全体を対象とした依存関係検索機能を提供する予定の製品もございます。この機能については、後日公開のブログ記事で詳しく説明しています。この機能により、組織はすべてのソフトウェアリポジトリから特定の依存関係を検索し、ネットワーク上の状況をより正確に把握できるようになります。

「ホワイトハウスのSBOMに関する指令は、ソフトウェアの透明性におけるその重要性を強調しました」と、Socketのソフトウェア開発担当者であるブラッドリー・メック・ファリアス氏、ミコラ・リセンコ氏、セグン・アデバヨ氏は投稿で述べています。「残念ながら、SBOMを収集する企業はほとんどなく、ましてや生産的に活用している企業はほとんどありません。Socketの依存関係検索は、これらのSBOMを収集するだけでなく、(有用な洞察)を提供することも目的としています。」

最後の文には「実行可能な」と「運用可能な」という言葉が含まれていたので、私たちはその文章を言い換えました。

「Socket社の顧客であるかどうかに関わらず、すべての開発者がどの依存関係を使用するかを決定する際に、この重要な情報をすぐに利用できるようにすべきだと私たちは考えています」とアブカディジェ氏は述べています。「このアプローチは、単に正しいことを行うというだけでなく、私たちが参加するオープンソースコミュニティへの恩返しでもあります。」®

Discover More