Open acid-chicken opened 5 years ago
@syuilo What do you think about this proposal?
よくわからない
未リリースのパッチを割り込んで入れられる
@syuilo 説明不足でしょうか?
😕
どうやっていいですかね npmのライブラリをソースコード内に取り込んでこのパッチを適用すればいいんですか?
Snyk が勝手にやってくれるので Snyk 入れたら終わります。
dependbotみたいに自動化でPR送ってくれるサービスですね https://snyk.io/
PR で自動で割り込み設定を入れてくれて、パッケージのインストール時に実際の割り込みを行ってくれます。
disableされてるかも 謎ですね
まあいつの間にか消えてるのはよくあるのでおそらく消されてると思いますけど……。
😇
🐢
そうこうしてるうちにlodashのリリースが出た
リリース出たところで直接的な依存関係ではないので、(yarn を使わない限り || 依存関係が全て更新されない限り)脆弱性修正を受けられない。
あ、でもどうせ video-thumbnail-generator だけか。
でもどの道 yarn を使ってるユーザーのみしか resolutions 上書きは通用しないし、やっぱこの方法のまま続けるのは良くない。あるいは Mastodon のように yarn の使用を推奨すべき。
セキュリティのためにyarn強制しても良さそう
セキュリティ vs @syuilo の依存関係を増やしたくない気持ち https://github.com/syuilo/misskey/pull/4623#issuecomment-478549602
うーむ @syuilo npm install -g yarn
の代わりに npx yarn
使えばちょっと環境依存減らせることができそうですがどうですか?
ん、yarnってnpm経由でインストールできるの?
はい。逆に npm 以外でインストールする方法を知らない。(よろしくない)
こういう風になります
私は公式サイトからインストーラーをダウンロードしてきてインストールしましたね
ユーザーの手間が増えないならyarnでいいと思います
議論の流れがややこしくなってしまったので一応勘違いのないように補足しますが、yarn は Snyk がやってくれる機能を補ってくれるわけではない。
@syuilo この際お聞きしたいのですが、dependabot はどうして息をしていないんでしょうか。
npm経由、あんまり推奨されてない気がする
Install via npm
Note: Installation of Yarn via npm is generally not recommended. When installing Yarn with Node-based package managers, the package is not signed, and the only integrity check performed is a basic SHA1 hash, which is a security risk when installing system-wide apps.
For these reasons, it is highly recommended that you install Yarn through the installation method best suited to your operating system.
https://yarnpkg.com/lang/en/docs/install/#alternatives-stable
a security risk when installing system-wide apps.
だから Misskey の用例ならまあ大丈夫だと思う。(そんなことはなかった。)
どっちにしろnpmがsha1しか検証しないことには変わりない気がするしどうしてもyarnを入れたくない場合にのみ使うべきっぽい
ここで「sha1しか検証しない」の対象はyarn本体のパッケージのみのことなので、npm i -g ではなくnpxでyarnを呼び出す場合いつも最新のパッケージがfetchされるのでnpmレポジトリーのyarnパッケージが汚染されてない限り大丈夫だと思います。(強いて言えばこの方法のセキュリティーリスクはyarnパッケージに限って今と比べて全く同じですね)
いや、その fetch においてセキュリティリスクをはらんでいる可能性がある気がする。
yarnが汚染されるとそれによりインストールされるライブラリも汚染される可能性があるので結局npm直の時とリスクが変わらなくなる
(yarnをnpmで入れる場合
まあそれでもlockはできるのでまだマシ
一番良い: yarnをシステムの署名検証の仕組みを使ってインストールする 妥協案: npx yarn (署名はアレだがとりあえずlockはできる) やりたくない: npm install (lockができない
ちなみにnpxは node_modulesに呼び出すパッケージが
で、どうしますか。
たいていすぐリリースされそうだからいらない気がするわ
lodash の件も脆弱性発覚から1ヶ月以上かかっていますが、それは本当に「すぐ」と言えるのでしょうか?
オフトピ気味: そもそもそんなに脆弱性発覚から修正にかかるようなパッケージを依存関係に入れることが好ましくない気はする…
で、どうしますか。
これプルリクの方だと思ってました、とりあえず保留でいいんじゃないですかね…
今度は https-proxy-agent
の方でパッチが出ています。
ping
https-proxy-agent
は 修正済みのものがReleaseされていた
https://github.com/TooTallNate/node-https-proxy-agent/releases/tag/3.0.0
To apply some unreleased security patches.