タグ: Ruby

Railsのリモートコード実行脆弱性、今昔

去年、今年とStruts2、Drupalのリモートコード実行脆弱性が問題になりました。記憶に新しい方も多いと思います。Railsにもリモートコード実行脆弱性が複数レポートされており、Railsユーザーであればよくご存知だと思います。

ざっと思い付く昔の脆弱性から最近の脆弱性まで簡単にまとめてみます。

もっと読む

APIを過信するとおかしな事になる例 – SAML認証成り済まし

今年の2月にSAMLライブラリの脆弱性が報告されていたことを覚えている人も居ると思います。

この脆弱性はXMLコメント(<!– –>)の取り扱いの違いによって、本来のユーザーではない攻撃者を認証してしまう事が問題であったとしています。

攻撃用の文字列サンプルは以下のような物です。

<NameID>user@example.com<!—->.evil.com</NameID>

攻撃が可能になる理由はXMLコメントの取り扱いの違いにあります。

  • あるライブラリは<!– –>までの文字列(user@example.com)までをNameIDとして取り扱う
  • 別のライブラリは<!– –>を取り除いた文字列(user@example.com.evil.com)をNameIDとして取り扱う

これにより攻撃者が別のユーザーに成り済ませてしまう問題が発生しました。1

もっと読む

Railsユーザーが真っ先にするべきセキュリティチェック – Brakeman

Railsユーザーがソースコード検査やWebサイト診断を受ける前に真っ先に使った方が良いセキュリティ検査ツールがあまり使われていないように感じています。

Brakemanはかなり良くできたツールです。私は何年も前から補助的に使っています。

もっと読む

コンピュータは数値さえ正確に扱えない

コンピュータで数値を正確に扱うのは「実は結構難しい」です。つまり「コンピューターは数値を正確に扱えない」という事です。「コンピューターが数値を正確に扱えない?!何を言ってるんだ?!」と思った方は是非読んでみてください。

もっと読む

Rails ActriveRecordとSQLインジェクションと実際のアプリケーション

先日はActive RecordのSQLインジェクションパターンを紹介しました。今回は脆弱なコードを見つける事を試みようと思います。脆弱とは言っても攻撃可能であることは意味しません。コーディングとして脆弱であるという意味です。実際に攻撃可能であるかどうかまでは確認していません。

 

もっと読む

なぜRubyと違い、PHPの正規表現で^$の利用は致命的な問題ではないのか?

Rubyデフォルトの正規表現では^は行の先頭、$は改行を含む行末にマッチします。PHPのPCREとmbregexでは^はデータの先頭、$は改行を含む行末にマッチします。

この仕様の違いはデータのバリデーションに大きく影響します。

参考: PHPer向け、Ruby/Railsの落とし穴 の続きの解説になります。こちらのエントリもどうぞ。

 

もっと読む

岡山Ruby会議02のプレゼンテーション資料「Rials4 Security」

岡山Ruby会議02が先週末の土曜日にありました。私は「Rails 4 セキュリティ」をテーマに講演させていただきました。

プレゼン資料だけでは分かりづらいと思いますが、参考までに公開します。

Rails4Security.pdf

追記:肝心なところで記述漏れがあり、誤解もあったので解説を追加しています。こちらも合わせてご覧ください。

http://blog.ohgaki.net/rails4

もっと読む

Rails4 Windows `require’: cannot load such file — sqlite3/sqlite3_native (LoadError)

多分、WindowsにRails4をインストールしようとして困っている方も多い(?)と思うので簡単にエントリを書きました。

Rails4をWindowsで使うにはWindows版のRuby 2.0とDevKitがあれば良いとあったのでこれらをインストールした後に

gem install rails

を実行するとしばらくするとインストールが完了したが、テストアプリを作り実行しようとしたら もっと読む

日本PostgreSQLユーザ会北海道支部 / Ruby札幌 合同セミナーのお知らせ

2月16日(土)に、日本PostgreSQLユーザ会(JPUG)北海道支部とRuby札幌の合同セミナーが開催されます。

日本PostgreSQLユーザ会北海道支部 / Ruby札幌 合同セミナーのお知らせ

私も講師の一人として参加させて頂きます。PostgreSQLとMySQLのベンチマークについて話す予定です。ご都合がよい方はお越しください。

有料と聞いていないので無料セミナーだと思います。アナウンス文には無料と記載されていないので主催者に問い合わせてみます。

追記:
現在は無料であることがアナウンス文に追加されています。

Rails 1.2.6 リリース

1.2.4などで修正を試みたセキュリティ上の問題が完全ではなかったようです。
セッションIDの固定化が可能な脆弱性が(こんどは完全に?)修正されたようです。

The rails core team has released ruby on rails 1.2.6 to address a bug in the fix for session fixation attacks (CVE-2007-5380). The CVE Identifier for this new issue is CVE-2007-6077.

PHPの場合、Session Adoptionに脆弱(普通にアプリを作るとSession Fixationにも脆弱なる設定がついこの間までデフォルト…)ですがいつ直すつもりなんでしょう… パッチはあるのですけどね…

Rails

Rubyを使っている方やMLを覘いている方(私はこちらです)はWebフレームワークのRuby on Railsをご存知と思います。Ruby使いではないのでMLをさらっと横目で見ている程度なので詳しくは知らなかったのですが

http://www.rubyonrails.org/

QuickTimeの紹介ムービーがあったので見てみました。10分ほどのムービーですが簡単にWebアプリケーションが作れる事が分かります。

Rails、面白そうですね。MLで盛り上がる訳ですね :)