世界を動かす技術を、日本語で。

Ruby on Rails監査完了

2025年6月12日原文(ostif.org)

概要

  • Open Source Technology Improvement Fund による Ruby on Rails のセキュリティ監査結果の発表
  • X41 D-SecGitLabSovereign Tech Agency の協力による監査プロセス
  • 監査期間は 2024年12月から2025年3月、合計4ヶ月間
  • 7件のセキュリティ影響を持つ指摘6件のハードニング推奨
  • Ruby on Railsのセキュリティ成熟度の向上と今後の課題提案

Ruby on Rails セキュリティ監査の概要

  • Ruby on Rails は、オープンソースの フルスタックWebアプリケーションフレームワーク
  • Model-View-Controllerパターン に基づく データベース連携型Webアプリケーション開発 を支援
  • X41 D-SecGitLab Security Research TeamSovereign Tech Agency の協力体制
  • 監査期間は 2024年12月~2025年3月、4ヶ月間、 5つのステークホルダー が参加
  • 監査および報告は X41 D-Sec が担当、 GitLab がサポート

監査プロセス

  • 監査開始時に 脅威モデル を作成
    • 機能、デプロイシナリオ、エントリポイント、信頼境界、脅威、Rails固有の脆弱性を定義
  • 脅威モデリング後に 手動コード監査 を実施
    • ツールファザー を活用したコードベースの検証
  • X41 D-Sec による調査・分析体制

監査結果

  • セキュリティ影響を持つ指摘:7件
    • 高リスク:1件
    • 低リスク:6件
  • ハードニング推奨事項:6件
  • カスタム脅威モデリング を通じたセキュリティ評価
  • Ruby on Rails のセキュリティ成熟度の向上を評価
  • プロジェクトの規模や期間制約により未カバー領域も存在

謝辞と今後

  • Railsメンテナコミュニティ への感謝
  • X41 D-Sec (Eric Sesterhenn, J.M., Markus Vervier, Robert Femmer, Antonela Conti)への特別な謝意
  • GitLab (Joern Schneeweisz)、 Sovereign Tech Agency への協力感謝
  • 監査レポート はこちら
  • X41 D-Secのブログ はこちら
  • OSTIF 10周年記念ミートアップ 案内
    • 活動報告、学び、OSSセキュリティの未来展望
    • ミートアップカレンダー:https://lu.ma/ostif-meetups

Hackerたちの意見

Djangoもやってくれないかな?

一つはお金を払ってでもできるよ。早い、安い、いいのどれか二つを選んでね。多分、非営利の基金がこのRoR監査に数万ドル払ったんだろうね。Djangoの監査のために同じ金額を集めるか、既に集めたお金を使ってくれる基金を説得できる?できたら最高だね!

いいニュースだね!Railsの大ファンだけど、こんなに脆弱性が少ないとは正直驚いたよ。こんな大きなコードベースなのに、もっとあると思ってた。でも、ないって聞いて嬉しい!

コードベースの完全な監査を意図しているわけではないと思うし、実際、最終報告書にもそれが示唆されてるよね[0](ただ、言い回しが変で、以前の報告書から更新するのを忘れたのかも):> Ruby on Railsのサイズのため、以下のテストプランのすべてのテストとタスクをカバーすることはできません。実施されたテストは最終報告書に含まれ、今後の監査で注力すべき点についての提案もあります。こういう監査は通常、成熟した広く使われているフレームワークよりも、個別のアプリケーションに対して行われる印象があるね。開発者が何をしているかを確認するためのもので、コードベースについて何かを証明するためではないと思う。まあ、何もしないよりはマシだけど。[0] セクション3.7, https://ostif.org/wp-content/uploads/2025/06/X41-Rails-Audit...

Railsアプリケーションサーバー(例:Puma、Unicorn) それはRackアプリケーションサーバーと呼ぶ方が適切だと思うよ。RackはRuby CGI Railsが実装しているものだから。ちょっとした指摘だけどね。

Ruby on Railsのセキュリティ向上に向けた努力を見られて嬉しいよ。正直、これでフレームワークがまだ最も実用的な選択肢だと思う。

B2Bの「CRUD」ソフトウェアにおけるRailsの生産性は比類がないね。もっと新しいスタートアップが使ってるのを見ないのが意外だよ!

2012年のシーンは全部Railsを使ってたんだ。でも、スケールするのが難しいことに気づいて、全部Goで書き直したんだよね。

エリクサーとフェニックスで数年プログラミングしてきたけど(その前にレールズの経験がたくさんあった)、レールズを選ぶ理由が全然わからない。エリクサーはパフォーマンスが高いし、コンパイラの安全性もどんどん良くなってるし、ウェブ開発のためにゼロから設計されてる(アーランVMをベースにしてるからね)。それに…単純に楽しいんだよね(主観的なのはわかってるけど)。エリクサーは、僕がいつもルビーに求めていたものだし、これからの型推論が楽しみで仕方ない。エリクサーでプログラミングしてると、ルビーが古い世代の言語に感じる。ルビーがコボルやフォートランに対してそう感じさせてくれたのと同じくらい、ほんとにその差は大きい。

僕は約7年間レールズのコンサルタントをやってた。その後、好奇心からフェニックスに切り替えたんだけど、それ以来振り返ったことはないよ。「シンプルがベター」って哲学を信じてなかった人も、フェニックスを使ったらそう思うようになるよ。開発時間は短くなるし、コンパイル時にバグをキャッチできるから、バグもずっと少ない。開発体験は比類がないよ。それに、パフォーマンスも言ったかな?箱から出しただけで驚異的なパフォーマンスが得られるよ。

RoRの人気が落ちた原因は何だろう?約10〜12年前にはRoRがスタートアップのデファクトスタンダードだったように思う。ある日のHNのフロントページには、RoRに関する複数のアイテムがあったよね。

こんなに多くの生成AIツールがある中で、もっとマイナーな言語を選ぶのはマイナスだよ。AIモデルは、何かを頼んだときに引き出せるトレーニングの深さが少ないからね。それに、B2Bウェブアプリの技術選択は、ビジネスの成功や失敗を決定する唯一の要因にはならないことが多い。コミュニティがパフォーマンス指標やベンチマーク、フレームワークを比較するのが好きだけど、みんなが「良い」と思うものには個人の好みがあるから、そういう議論はほとんど無意味だよ。チームが快適に使えるもの、そして知識が深いものを選ぶのが良いプラクティスだね。だから、レールズを選んでビジネスの問題を解決することに集中しよう!

Hacker Newsで議論の続きを見る