CODE BLUE 2023 の開催が迫る。今年の開期は来週 11月 8 日 (水) から 9 日 (木) まででフィジカル開催のみ。当日券より 3 万円安い通常チケットの販売は本日 11 月 2 日 (木) 23:59 まで。
本稿では昨年開催された CODE BLUE 2022の講演の中から、特に興味深かったセッションを厳選し、蔵出しでレポート記事をお届けする。
--
よいプログラマーなら「Stack Overflow」や「OpenAI」を参照する際には慎重さを忘れないだろう。なぜなら、これらが提供するコードには既知の脆弱性が含まれている可能性が高いからだ。同様に、OSS を筆頭とする既存ライブラリ・レポジトリ、外部モジュールの利用も同じ注意が必要だ。
●このコードはどこから来た?
ジョナサン・ライチュー氏は「ダン・カミンスキー基金」の初代フェローでもあるハッカーだ。GitHub からも支援を受けている。故ダン・カミンスキー氏は DNS キャッシュポイズニングの効果的な攻撃手法であるカミンスキーアタックを発見したことで有名な「天才ハッカー(といったバカみたいな表現が許される、そしてそれが適切ですらある技術者)」だったが、惜しまれながら 2021 年に 42 歳という若さで夭折した。
ライチュー氏は、本稿で紹介する OSS の脆弱性を一掃する取り組みが評価され、カミンスキー氏の没後設立された基金のフェローに選ばれている。
ライチュー氏は、とくに GitHub のようなオープンレポジトリのライブラリやソフトウェアに潜む脆弱性の検知と修正に力を注いでいる。研究開発から商用ソフトウェアまで、ソフトウェア開発のインフラにもなっている GitHub のコードは、じつは Stack Overflow(質問サイト)や OpenAI(コード生成 AI)と同様な問題を抱えている。集合知の一形態ともいえる質問サイトや機械学習 AI は、必然として過去の脆弱性をもコピーし学習しているからだ。
彼がこの問題に着目し取り組み始めたのは、自分のコードをレビューしていたときだという。コードの依存性解決のための行に身に覚えのない HTTP リクエストが入っていた。いまどき HTTPS ではない呼び出しだ。こんなリクエストは中間者攻撃の恰好の餌食となる。
「どこから来たコードだ?」と疑問に思い、コードのコピペが原因ではないかと気づく。調べると Maven のようなリポジトリに同様な脆弱性を発見する。それもごく普通に。Spring、RedHat、Kotlin、Jenkins、Apache、JetBrains、Gradle、groovy などあらゆるプロジェクトも例外ではない。そしてこれらのプロジェクトは、Oracle、LinkedIn などメジャーな企業サービスだけでなく NSA のような国家機関のシステムも利用している。
●OSSプロジェクトの体質を改善せよ
ライチュー氏によれば、レポジトリを調査したところ、HTTP リクエストを使ったものが 25 %も存在したという。主だった OSS プロジェクトにコンタクトをとり、「HTTP 排除」運動を呼び掛けた。Maven、JCenter、Spring、Gradle などはすぐに反応し改善に動いた・・・かに見えた。