月: 2008年3月

APCにStack Overflow脆弱性

件名の通り、APCのStack Overflow脆弱性が公開されています。

http://sla.ckers.org/forum/read.php?3,21615,21615#msg-21615

このポストに書いてある通り、PHP4ではインクルード攻撃に脆弱なアプリならallow_url_fopenをoffにしていても効果はありません。PHP4+APCを使っている方は今すぐAPCをCVSバージョンにバージョンアップするか、APCをロードしない方が良いでしょう。

MomongaLinux等、パッケージをビルドする際にstack smashing attackから防御するstack protectorオプションを使ってビルドしているバイナリであればリンク先の攻撃方法では攻撃できません。しかし、インクルード攻撃に脆弱であれば、他の脆弱性を利用してカナリア値を盗む事も可能なので安全とは言えません。いずれにせよAPCを利用している場合はバージョンアップする方が良いでしょう。

追記:
CVSを見てみました。

http://cvs.php.net/viewvc.cgi/pecl/apc/apc.c?r1=3.20&r2=3.21

fileinfoがスタック変数、strcpyでオーバーフローしてます… 教科書通りの解りやすい脆弱性です…

「例えば、PHPを避ける」ってなぁにその曖昧な書き方?

この記事のタイトルは参照しているページのタイトルをそのまま使っています。

誤解を招く記事 – LAMPセキュリティを強化する4つの方法で、

実行できる最も重要な対策は、PHPを使わないことです。

と、理解できない対策を勧めています。セキュリティの事を解っていない素人が書いた事は、記事の内容と趣旨から明らかです。

しかし、IPAにも同じような事が書いてあったのですね。「例えば、PHPを避ける」ってなぁにその曖昧な書き方?で書かれています。去年から掲載されていたと思います。

IIS+ASPのアプリにダメダメなWebアプリが多いのも事実ですが、言語を問わずダメなプログラムだらけです。LAMPのPをPHPからPerl/Python/Rubyに替えるだけではセキュリティは向上しない証拠では最近発見されたPythonベースのCMS、Ploneの脆弱性を紹介していますが、Java, Perlも同じです。

特に「LAMPセキュリティを強化する4つの方法」にPHPからPerl等に替えれば安全になるように勧めていますが、著者はPerlで作った恐ろしく穴だらけのCGIの数々を見たこともないのでしょう。探さなくてもそこら中にあるのですが…. フレームワークの利用は安全性向上に役立ちますが、フレームワークを使うだけでは安全になりません。JSFやRailsで作ったから、といって自動的に安全なWebアプリは作れません。

セキュリティを向上させるために他の言語に替えて再構築するリソースがあるなら、使っているプログラム(OS,Web,言語,フレームワーク,アプリ)きちんとバージョンアップをした上で、開発者が正しいセキュリティ知識を習得できるよう努力すべきです。

企業ならソースコードレベルの監査とコンサルティングを依頼した方が、言語を替えるよりよっぽど効果的で、コストも少なく効率的です。言語を替えても設計・ソースコードレベルでのセキュリティ監査はセキュリティ維持には欠かせません。

.Net用OCaml – F#の入門書 – Expert F#

OCamlはプログラミングコンテストで優勝するチームや開発者御用達の言語であることは以前から知っていましたが、個人的に利用しようと思ったありませんでした。しかし、最近関数型言語の人気が非常に高まってきています。関数型言語の簡潔なコードや副作用の少ないコードの生産性が認められてきたからだと思います。

OCamlを勉強しようかと思いましたが、AmazonでちょうどF#の本(英語版)が昨年末出版されている事を見つけて購入しました。
もっと読む

LAMPセキュリティを向上させる方法

LAMPはLinux, Apache, MySQLとPHPまたはPerl, Pythonを利用したWebシステムの総称として利用されている用語です。

特にLinux/Apache/MySQL/PHPはよく見かけるシステム構成です。ホスティングサービスを提供する会社でこの構成をサポートしていない会社を探すのが難しいくらいではないかと思います。広く使われていますが、「十分に安全な状態」と言える状況で運用されているケースはほとんどありません。

関連エントリ
LAMPのPをPHPからPerl/Python/Rubyに替えるだけではセキュリティは向上しない証拠
誤解を招く記事 – LAMPセキュリティを強化する4つの方法

もっと読む

LAMPのPをPHPからPerl/Python/Rubyに替えるだけではセキュリティは向上しない証拠

誤解を招く記事 – LAMPセキュリティを強化する4つの方法で紹介した記事ように、最近「言語を替えるとセキュリティが向上する」といった間違った認識が広まりつつあるように思えます。

結論からいうと、セキュリティに関連する機能が同等な言語であれば「言語を替えるとセキュリティが向上するいう考え」は妄想です。言語を替えても、正しいセキュリティ知識を持ち合わせた開発者が開発しないと、危ないアプリケーションが簡単に作れます。
もっと読む

誤解を招く記事 – LAMPセキュリティを強化する4つの方法

LAMPセキュリティを強化する4つの方法

http://enterprisezine.jp/article/detail/311

書いてある情報は有用な事も記載されていますが、偏狭な視点からの記述により誤解を招く記事になっていると考えられます。著者はセキュリティの専門家ではないようなので仕方ないかも知れませんが、間違った認識は有害です。

# 原本は読んでいません。もしかすると日本語訳にも問題があるのかも知れません。

もっと読む