ディスカッション (11件)
AIエンジニアの皆さんに緊急の警告です。PyTorch Lightningのライブラリ内で、映画『デューン』に登場する砂漠の巨大生物「Shai-Hulud(シャイ・フルード)」をテーマにした悪意あるコードが発見されました。ライブラリを利用している方は、依存関係を今すぐチェックすることをお勧めします。
「創造主と、その水に恵みを」
GitHubで検索してみたら、「A Mini Shai-Hulud has Appeared」というテキストが含まれるリポジトリが2.2K件も見つかったよ。全部ここ1日で作成されたものみたい。
https://github.com/search?q=A%20Mini%20Shai-Hulud%20has%20Appeared&type=repositories
PyTorch Lightning 2.6.2および2.6.3のセキュリティ問題について報告してくれたコミュニティのみんな、ありがとう。現在鋭意調査中です。
それまでの間、2.6.4をリリースするまでは2.6.1を使ってください。
詳細はこちら:https://github.com/Lightning-AI/pytorch-lightning/security/advisories/GHSA-w37p-236h-pfx3
依存関係ゼロの状態、待ち遠しいな。
極端な例だけど、娘のために教育用インタラクティブアプリを作るときは、Opusを使ってプレーンなJSとHTMLだけで書くようにしてる。二重振り子から流体シミュレーションまで、一発で動くんだ。以前は数百もの依存関係があったのにね。
幸い、MITライセンスのコードならOpusに必要なパーツだけ抽出させて埋め込んだり、自分のユースケースに合わせて調整したりできる。今のところ趣味のプロジェクトでは最高だけど、将来的にプロダクション環境のソフトウェアでも依存関係が一切なくなることを願ってるよ。
頻度錯覚かもしれないけど、最近メジャーなパッケージで注目を集めるサプライチェーン攻撃が増えている気がする。今もHNのトップページには複数の攻撃事例に関する記事が並んでるよね。
10年前の left-pad 事件を振り返ると、今の方が攻撃の成功数は増えているのかな?おそらくそうだろうし、成功した時の価値も間違いなく上がってる。じゃあ、コミュニティ全体としてパッケージ公開「前」に検知する能力は向上しているんだろうか?複雑な領域だし、商用ソフトウェアベンダーはもっとやるべきことがあるはず。CIスキャンツールのような優れた商用製品はあるにせよ、趣味や個人開発から始まって、気づけば多くのプロジェクトで依存されるようになるコードに対しては、誰でも簡単に使えるツールが不足しているように感じる。
SAPのサプライチェーン攻撃のスレッドに投稿したコメントをこちらにも転載しておくね 0。
GitHubで4月20日のこんなメッセージを見つけたんだけど、ちょっと混乱してる。
「deependujha: hi @thebaptiste, 問い合わせありがとう。内部的な理由で2.6.2のリリースはブロックされています。リリースしたら通知します」
もし彼らがそれだけ前から問題を把握していて、今まで警告を出さなかったとしたら正直最悪だな。何か詳細を知っていて説明できる人がいたら教えてもらえると助かる。
https://github.com/Lightning-AI/pytorch-lightning/issues/21681#issuecomment-4283816148
今週、Pythonバージョンの管理にuvを使うのがいいのかどうか考えてたんだ。
公式サイト [1] によると、
Pythonは公式の配布可能バイナリを提供していません。そのため、uvはAstralのpython-build-standaloneプロジェクトの配布物を使用します。詳細はPython配布ドキュメントを参照してください。
とあって、このGitHubリポジトリ(https://github.com/astral-sh/python-build-standalone )を指してるんだけど、そこにはさらに別のリンク(https://gregoryszorc.com/docs/python-build-standalone/main/running.html#obtaining-distributions )が記載されている。
理解が正しければ、Pythonビルド用のソースコードはpython.orgから直接取得しているわけじゃないんだよね。どれくらい安全なのかちょっと確信が持てない。
asdf [2] についても同じ懸念がある。ただ、彼らはpyenv [3] を使っているから、こっちの方が公式っぽくて安心感があるような気がするんだけど。
誰か解説してくれないかな?Pythonのインストールにはuvとasdf、どちらの方がより安全なんだろう?
[1] https://docs.astral.sh/uv/guides/install-python/
[2] https://github.com/asdf-community/asdf-python
[3] https://github.com/pyenv/pyenv/tree/master/plugins/python-build
Fast.AIのディープラーニングコースを受けていた時、機械学習プロジェクトが抱えるPythonの依存関係の多さに驚かされたよ。Webフロントエンドプロジェクトもサードパーティ製の依存関係が多いことで知られていたけど、機械学習のエコシステムの方がよっぽど複雑に絡み合っているように見える。それに、セキュリティが重視され、長年の経験から堅実なベストプラクティスが蓄積されてきたWeb開発と違って、機械学習の開発はもっと場当たり的で、一般的なソフトウェア工学のプラクティスが適用されていないことが多いんだ。
例えば当時、機械学習モデルの配布にはPythonのpickleが使われていた。あれは何の制限もない実行可能なオブジェクトなんだよ。pickle形式のモデルは、読み込んだPC上で何でも実行できてしまう。そんな「無法地帯」のような初期のエコシステムでは、セキュリティ侵害が起きやすくなるし、結果としてサプライチェーン攻撃も一般的になってしまうよね。
最近の自分の pip install は、Claude Codeが提案してくるものをそのままエンターキー押すだけになっていることが多い。モデルは数ヶ月前に学習されたものだから、今週何がハッキングされたかなんて全く知らないはず。僕らは「このパッケージは今本当に安全か?」を判断するための、考えうる限り最悪のフィルターを作ってしまっているのかもしれない。
Claude Codeはほぼ毎日、時には1日に何度も更新されるからね。
いつかAnthropicが侵害されたら、僕ら全員終わりだな。