読者の皆様へ: あなたのリクエストに応じて、大切な情報を見逃すことなく、ノイズを減らす機能を開発しました。お気に入りのトピックを選択して、メールとウェブで通知をもらいましょう。
Redpointは、NPMパッケージへの署名とその検証を行なうツールであるpkgsignをローンチした。NPMレジストリにアップロードおよびダウンロードするパッケージの信頼性を保証することによる、セキュリティの向上がその目的だ。
NPMを使って開発を行なう場合、潜在的なセキュリティ上の問題のひとつとして、パッケージの作成者が検証できないことがある。これはつまり、悪意のあるパッケージが正当品を装ってアップロードされ、その結果として、それに依存するアプリケーションが通常通り実行される可能性があるということだ。
この問題の所在は、先日発生した、いくつかのパッケージが偶然NPMレジストリから削除されてしまった時に、代わりに9つの不明なパッケージがその場所にアップロードされたインシデントにおいて証明されている。問題はすでに解決されたが、信頼されないコードがあたかも正当なコードであるかのように、誤って使用されていた期間があったのだ。
この種のリスクを軽減するため、Redpointはpkgsignを導入した。
pkgsignは、NPMとYarnのパッケージにシグネチャを追加するとともに、既知のシグネチャを使用してそれらのパッケージを検証するためのツールです。PGP秘密鍵やkeybase.ioで、パッケージへの署名を簡略化することも可能です。
Keybaseとpkgsignをインストールすれば、パッケージディレクトリに移動してコマンドをひとつ実行することで、パッケージへの署名が可能になる。
pkgsign .
これを行うと、“signature.json”ファイルがパッケージに追加される。このファイルは、他のユーザが作成者の真実性を検証するために使用できるものだ。
Keybaseを使用することで、署名をさまざまなソーシャルメディアのアカウントに結び付けることもできるので、署名者の身元のさらなる検証が可能になる。PGP署名も可能なので、大手企業に代わってPGP鍵を生成して、パブリックドメインにアップロードすることができる。
動作中のパッケージの依存性を検証するには、同じくひとつのコマンドを発行すればよい。
pkgsign verify .--full
パイプライン内での“署名の代行”機能もあり、依存関係の所有者が署名していない場合でも、パッケージがその依存関係のコンテンツに署名することができる。これにより、パッケージの完全署名が実現する。
ツールはまだ新しいため、多くのパッケージが依然として署名されていない点に注意が必要だ。
pkgsignは今のところ、署名されていないパッケージに依存しています(新しいツールですから!) pkgsignをGitHubあるいはNPMからインストールした場合、依存関係を検証することはまだできません。
ツールが普及すれば状況は変わるかも知れないが、現時点では、正しいバージョンを確実に使用するため、GitHubから直接クローンすることが推奨される。それ以外には、NPMレジストリから署名なしで直接インストールする方法もある。
この記事を評価
- 編集者評
- 編集長アクション