Slide 1

Slide 1 text

Author: @progfay Provenance in Node学園 44時限 目

Slide 2

Slide 2 text

Name: 眞野 隼 輔 ま の しゅんすけ   @progfay ɾWeb Frontend Engineer ɾBrowser पΓͷಈ޲Λ௥͏ͷ͕झຯ ・ 最近は謎解きにハマっている (CTF 気分)

Slide 3

Slide 3 text

・ JSR の Provenance という機能を使ってみたので共有 ・ その中で得られた知識について ・ 嬉しそうなところ ・ イケてなさそうなところ 話すこと

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

・ せっかく作った package なので、いろんな実験をしてる ・ ESLint → Biome に移 行 してみたり ・ 脆弱性を 見 つけて CVE を発 行 してみたり ・ Jest → Vitest → Node.js Test Runner に移 行 してみたり @progfay/scrapbox-parser

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

No content

Slide 9

Slide 9 text

No content

Slide 10

Slide 10 text

そもそも Provenance ってなんだ?

Slide 11

Slide 11 text

https://eow.alc.co.jp/search?q=provenance

Slide 12

Slide 12 text

https://jsr.io/docs/trust 元となったソースコード と publisher を検証できるようにする

Slide 13

Slide 13 text

・ transparency log が表 示 できる ・ publish process が 自 動化される ・ token などの漏洩の危険性が減らせる ・ 実際には GHA から publish することのメリット ・ でも 自 動化のモチベーションになるのは喜ばしい package 開発者は何が嬉しい?

Slide 14

Slide 14 text

・ package の安全性を検証できる ・ Provenance 自 体は安全性を保証してくれるわけではない ・ 開発側が適切に package を publish する必要がある ・ 悪意のあるコードが混 入 しづらくなる ・ サプライチェーン攻撃などに 一 定の効果があるはず package 利 用 者は何が嬉しい?

Slide 15

Slide 15 text

やってみるか!

Slide 16

Slide 16 text

1 . `jsr.json` を作成する 2 . JSR package と GitHub Repository を link する 3 . GitHub Actions Workflow を追加する 4 . Workflow を trigger する Publish to JSR

Slide 17

Slide 17 text

No content

Slide 18

Slide 18 text

OIDC により access token の設定が不要 デフォルトで Provenance される!

Slide 19

Slide 19 text

No content

Slide 20

Slide 20 text

No content

Slide 21

Slide 21 text

ついでに npm も

Slide 22

Slide 22 text

npm では access token の設定が必要

Slide 23

Slide 23 text

No content

Slide 24

Slide 24 text

・ access token を管理する必要がない ・ 発 行 する必要すらないので、漏洩のリスクを減らすことができる ・ GitHub Actions を利 用 していれば Provenance される ・ Provenance を知らなくても勝 手 にやってくれるのは嬉しい JSR Provenance の良いところ

Slide 25

Slide 25 text

・ npm は GitHub Actions 以外でも Provenance ができる ・ GitLab なら `--provenance` をつけるだけ ・ その他でも `--provenanceFile` を使えばできるっぽい? npm Provenance の良いところ

Slide 26

Slide 26 text

・ 思ったより簡単にできた ・ Package の評価指標の 1 つにもなりそう ・ Provenance がされているか ・ リリース 手 順がどうなっているか 使ってみた感想