カテゴリー: Computer

ZendFrameworkで作る『イマドキ』のWebアプリケーション

技術評論社さんのPHPセキュリティ関連のブログ、なぜPHPアプリにセキュリティホールが多いのか?も執筆させて頂いていますが、新しくZendFrameworkで作る『イマドキ』のWebアプリケーションも執筆させていただくことにになりました。

今回の連載では私のブログでフィードバックや質問をお聞きしようと考えています。一般的な質問はMLなどでお聞き頂けるようお願いしますが、動作しない、動作がおかしい、説明がわかりづらい、これを説明してほしい、など記事に関連するご意見やご質問をお待ちしています。

Wikiにサポート用のページも用意しました。Wikiにはまとめや必要なリソースへのリンクなどを掲載します。
http://wiki.ohgaki.net/index.php?ZendFramework-Web-Application

今回、連載を開始するにあたりLinux, Mac, Windowsでできる限り同じ環境が作れるように工夫してみました。

当初はXAMPPをベースとした環境にしようと思ったのですが、64bit版が用意されていないのは現在のPC環境を考えると好ましくありません。そこで、PostgreSQLのバイナリ配布版であるPostgreSQL One-Click Installerを利用した環境を利用することにしました。PostgreSQL One-Click Installerを利用すると、Linux, Mac, Windowsでほぼ同じApache/PHP/PostgreSQLの動作環境を構築できます。

CentOS5を利用している環境が公開可能であるため、VMwareイメージも公開しています。VMwareイメージには以下のパッケージが含まれ、必要な設定が行われています。

– CentOS 5.2
– Apache 2.2
– PHP 5.2
– ZendFramework 1.7
– PostgreSQL 8.3
– Eclipse 3.4
– Mercurial 1.1

ダウンロード先など、詳しい情報はWikiをご覧下さい。

エンティティ化された文字による任意コード実行

小泉さんが発見され昨年末に公開された脆弱性です。詳しくはアドバイザリをご覧いただくとして概要を解説します。

CVE
http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2008-5557

アドバイザリ
[Full-disclosure] CVE-2008-5557 – PHP mbstring buffer overflow vulnerability

かなり特殊な設定といえる状況で問題となるようですが、ちょうどgihyo.jpで文字エンコーディングに関連したセキュリティ問題を解説しているので紹介します。

http://gihyo.jp/dev/serial/01/php-security/0019
http://gihyo.jp/dev/serial/01/php-security/0020

もっと読む

現行版のPHPに任意メモリ参照バグ – 攻撃コード付き

随分前から共有型Webホスティングサービスでは安全性を確保できないので、安全性を重視するサイト(ECなど)は最低限でも仮想ホスト型の共有サービスを利用すべきである、と言っています。

今回のエントリはPHPをApacheモジュールで共有型ホスティングサービスを利用しているユーザに影響します。SSLを利用している場合は秘密鍵を盗まれます。このバグはPHP 5.2.8でも修正されていません。当然ですがPHP 4.4.9でも修正されていません。
もっと読む

PHP開発者とユーザが知っておくべきシェルコマンドエスケープの内部処理

これから紹介する脆弱性はPHP 5.2.6で修正されています。修正された、とは言え注意が必要です。

PHPは古くからシェルコマンドとシェル引数をエスケープ処理する為に、escapeshellcmd関数とescapeshellarg関数を提供しています。

この関数はマルチバイト文字にも対応しているのですが、ビルドや環境によっては対応できていないときがあります。
もっと読む

PHP 5.3の名前空間仕様が変更されました

名前空間に関する議論は5年以上も行われていたのですが、今度こそ結論が出たようです。

何故このようなエントリを書くかというと、Software Design(技術評論社)の11月号にPHPの最新情報としてα版PHP 5.3を紹介しているからです。入稿後に仕様変更があったので最新号の記事ですが既に内容が古くなってしまいました。
# とは言ってもまだ新しい仕様のPHPは無いですが

α版なので仕様や機能が大きく変更される事もありますが大きな変更がありました。見本誌が刷り上がった頃に名前空間の区切り文字が”::”だと静的にメソッドを呼び出す場合やクラス定数を呼び出す場合に困る場合がある、とPHP開発者のMLで議論になり始めました。
もっと読む

PHPのSessionモジュールの脆弱性

たまたま目に止まったブログがあるので紹介します。

PHP:session_set_save_handlerリファレンスマニュアルのサンプルにパス・トラバーサル脆弱性
http://www.tokumaru.org/d/20080818.html#p01
[php]session_set_save_handlerのパストラバーサルで任意コマンドの実行が可能
http://www.tokumaru.org/d/20080819.html#p01

この危険性はStrict Sessionパッチが作られた頃にも議論されていました。このパッチを摘要するとセッションアダプション脆弱性も修正します。もし、互換性なので要件で厳格なSession管理ができない場合でもセッションIDに利用可能な文字は安全な文字のみに限定されるのでパストラバーサルなどの問題は発生しません。

話は横道にそれますが、セッションアダプションの問題については、PHP 4.4.9リリース前にPHP Security Response Teamと議論しました。リリースノートを見れば解りますが、残念ながら良い結果ではありませんでした。いくつかの脆弱性をレポートしましたが、その内の一部の脆弱性のみに対応しただけです。これについては時間が出来次第エントリを書きます。

話を戻しますが、セッションモジュールの問題は随分前(何年も前)に議論されており、開発者のスタンスとしては「ユーザ側の問題」「ファイルストレージがあるのに態々自分作って自分の足を打つようなユーザが問題」「RDBMSをストレージに使ってエスケープしないでSQLインジェクションされるのと同じ」といった結論になってしまったと記憶しています。

セッションアダプションの問題を解決すれば、パストラバーサルの問題もSQLインジェクション問題も解決するのですが…

セッションアダプション脆弱性はリスクが不当に低く評価され過ぎです。PHPを利用されている方全てにStrict Sessionパッチをお勧めします。

Pythonの脆弱性

Googleがクラウドコンピューティングの言語としてPythonを採用したのでセキュリティ研究家が脆弱性を調査し、今年はPythonの脆弱性が多く報告されるはず、とこのブログで予想しています。また新たな脆弱性が報告されているので書いておきます。

今回は整数オーバーフローが多いので、整数オーバーフローを中心に調査したのだと思われます。
Python 2.5.3以上でないと穴だらけと言えますが….

http://python.org/download/

と言った状況のようです。

しかし、予想通りとはいえ数が多いですね。

CVE-2008-3144
Multiple integer overflows in the PyOS_vsnprintf function in Python/mysnprintf.c in Python 2.5.2 and earlier allow context-dependent attackers to cause a denial of service (memory corruption) or have unspecified other impact via crafted input to string formatting operations. NOTE: the handling of certain integer values is also affected by related integer underflows and an off-by-one error.

CVE-2008-3143
Multiple integer overflows in Python before 2.5.2 might allow context-dependent attackers to have an unknown impact via vectors related to (1) Include/pymem.h; (2) _csv.c, (3) _struct.c, (4) arraymodule.c, (5) audioop.c, (6) binascii.c, (7) cPickle.c, (8) cStringIO.c, (9) cjkcodecs/multibytecodec.c, (10) datetimemodule.c, (11) md5.c, (12) rgbimgmodule.c, and (13) stropmodule.c in Modules/; (14) bufferobject.c, (15) listobject.c, and (16) obmalloc.c in Objects/; (17) Parser/node.c; and (18) as…

CVE-2008-3142
Multiple buffer overflows in Python 2.5.2 and earlier on 32bit platforms allow context-dependent attackers to cause a denial of service (crash) or have unspecified other impact via a long string that leads to incorrect memory allocation during Unicode string processing, related to the unicode_resize function and the PyMem_RESIZE macro.

CVE-2008-2316
Integer overflow in _hashopenssl.c in the hashlib module in Python 2.5.2 and earlier might allow context-dependent attackers to defeat cryptographic digests, related to “partial hashlib hashing of data exceeding 4GB.”

CVE-2008-2315
Multiple integer overflows in Python 2.5.2 and earlier allow context-dependent attackers to have an unknown impact via vectors related to the (1) stringobject, (2) unicodeobject, (3) bufferobject, (4) longobject, (5) tupleobject, (6) stropmodule, (7) gcmodule, and (8) mmapmodule modules.

未修正のPHP脆弱性を募集

PHP4のサポート終了に伴い、幾つかの未修正のセキュリティホールについてPHP Security Response Teamとやり取りしています。

ついでなので出来る限り多くの脆弱性が修正されるようにしたいと考えています。PHP4.4.8, PHP 5.2.6で未修正の脆弱性やセキュリティ上の問題をご存知の方は是非教えて下さい。

現時点はどの脆弱性をレポートしているのか書けませんが、もしPHP本体やモジュールで修正されていない脆弱性をご存知の方は教えて頂けると助かります。メールやこのブログのコメント、このブログのContactページ等からご連絡ください。

結果については後日このブログにて公開します。

PHPプロジェクトのセキュリティに対する姿勢

久しぶりにPHPプロジェクトに貢献すべく、私が確認したセキュリティ上の問題をPHP Security Response Teamに送りました。

具体的な対応については準備が整ってからにしますが、まずは大まかな感想だけ書きます。

PHPのセキュリティは随分改善された、とお墨付きをScanの報告書「Open Source Software 2008」で貰っており、バッファオーバーフロー等の欠陥コード減っているのは事実です。Month of PHP Bug (MOPB)でセキュリティレスポンスチームのセキュリティ意識も改善されたと思っていました。

まだメールのやり取りをしている段階なので断定できませんが、セキュリティに対する意識の改善は十分では無いと言えるようです。

詳しい状況や事情、セキュリティの問題などは8月の終わりくらいには書けるかも知れません。

PHP 4.4.8用のStrict Sessionパッチ

桝形さんから

http://blog.ohgaki.net/php-5-2-strict-session 

で公開したパッチのPHP4.4.8版を送っていただきました。私のWikiにも添付ファイルとして掲載させていただきました。

http://d.hatena.ne.jp/masugata/20080714#p2

に掲載されているパッチと同じパッチです。

私は全てのPHPユーザがStrict Sessionパッチ適用すべきと考えています。詳しくはWikiをご覧ください。

http://wiki.ohgaki.net/index.php?PHP%2Fpatch%2FStrictSession

桝形さん、パッチありがとうございました。

6/28 オープンセミナー@四国、会場変更

「オープンセミナー2008@四国」開催のご案内

でご紹介したオープンソースとインターネットをテーマにした無料セミナーの件です。いよいよ明日(6/28)になりました。好評の為座席が足りない事が確実となりました。会場となる会議室を大きな会議室に変更しました。

旧:66会議室(30名)
新:61会議室(144名)

ご興味をお持ちの方はサンポート高松ホール棟6階の61会議室にお越しください。12:30頃から開場致します。

懇親会も飛び入り参加可能です。是非、ご参加ください。

自ら顧客離れを促進するバッファロー、不必要なアプリケーション利用制限とQ&Aの嘘

比較的最近無線LANのアクセスポイントをNEC製からBaffalo製のWiFi Gamers (WCA-G) に交換しました。

ゲームの為にこのアクセスポイントにしたのではなく、ルータ機能は不必要であること、PCが無くても最低限の状態がわかるように液晶ディスプレイが付いていることが気に入ったので購入しました。このアクセスポイントには安全にアクセスポイントに接続する為のWPS (WiFi Protected Setup) 、WPSに良く似たBuffalo独自のAOSSをサポートしています。付属のCDにはBaffalo製品以外のネットワークカードでもWPSまたはAOSSを利用して簡単かつ安全に無線LANをセットアップする「クライアントマネージャV」(Windows Vista用)と「クライアントマネージャ3」(XP用)が付属しています。

もっと読む

「オープンセミナー2008@四国」開催のご案内

追記:会場が変更されました。旧:66会議室、新:61会議室。参加者が予想より多いため大きな会議室になりました。

毎年四国で行っているオープンソース(特にPostgreSQL)とコンピュータ関連の話題をテーマに無料セミナーを行っています。今年も6/28(土曜)に高松市にて行います。

本年度でJPUG四国支部 担当理事を山下さんに交代したので、次のオープンセミナーからは山下さんが取りまとめ役を行います。

JPUGサイトのセミナーの告知文
http://www.postgresql.jp/branch/shikoku/300c30aa30fc30f330bb30df30ca30fc2008-56db56fd300d958b50ac306e304a77e53089305b

セミナー告知用のテンプレートです。興味がある方、ML等にお知らせ頂けると助かります。

○○@□□です。

「オープンセミナー2008@四国」開催のご案内をさせて頂きます。

2008年6月28日(土)にサンポート高松(香川県高松市)にて開催します。
参加費無料です。是非ご参加頂きますようお願い致します。

このメールは転送自由です。ご興味があると思われる方、メールリストに転送
頂ければ幸いです。

—————————————————————

       「オープンセミナー2008@四国」 開催のお知らせ

                       主催:
                       NPO法人 日本PostgreSQLユーザ会
                             瀬戸内Linuxユーザ会
                               四国BSDユーザ会
                       協力:
                              日本UNIXユーザ会

「オープンセミナー2008@四国」は毎年技術者向けにオープンソースとインターネットを
テーマとして開催している無料セミナーです。昨年は「オープンセミナー2007@四国」、
「オープンセミナー2007@徳島」としてそれぞれ7月と11月に開催されました。2008年
もオープンソースとインターネットをテーマに香川県高松市にて無料セミナーを開催致し
ます。事前登録は必要ございません。プログラミング、セキュリティ、オープンソースや
インターネットに興味をお持ちの技術者、管理者、学生の皆様をお待ちしています。

セミナーに使用する会議室の定員は30名です。定員を超える可能性もあります。定員を超
えた場合、立ち見となる場合がございます。お早めにお越し下さい。

当日夜に高松駅近辺にて懇親会も予定しています。予約を行うため懇親会の参加には申し
込みが必要です。懇親会に参加をご希望の方は問合せ先にEメールでご連絡下さい。
(メール末尾を参照)

                  記

オープンセミナー2008@四国 − 四国で学べるオープンソースとインターネットの世界

主催:  日本PostgreSQLユーザ会(JPUG)
     瀬戸内Linuxユーザ会(STLUG)
     四国BSDユーザ会(S*BUG)
協力:  日本UNIXユーザ会 (JUS)
開催日: 2008年6月28日 13:00 〜 18:00 (12:50受付開始)
開催場所:サンポート香川ホール棟6F 61会議室
http://www.sunport-hall.jp/shisetu/kaigi.htm
アクセス: JR高松駅より徒歩1分
懇親会: JR高松駅近辺

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
13:00 – 13:10 開会のご挨拶

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
13:10 – 14:00 KOFの過去、今、これから
講師:中野秀男 大阪市立大学 学術情報総合センター 所長・教授/
        大学院創造都市研究科 教授、KOF実行委員長
   法林浩之 日本UNIXユーザ会 副会長、KOF実行委員

近年ソフトウェアコミュニティの活動が各地でさかんになっていますが、関西では
「オープンソースならびにコミュニティが元気に交流できる場を、関西でも作ろう」
という目的の下に集った有志により、「関西オープンソース+関西コミュニティ大決戦」
(通称KOF)を2002年から開催しています。

本講演では、今年7年目を迎えるKOFの活動について、これまでの経緯、活動の経験
から得たもの、今年の予定、そして今後はどういう方向に向かっていくのかをお話し
します。

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
14:10 – 15:00 PG Cluster
講師:三谷 篤 株式会社SRA西日本/日本PostgreSQLユーザ会

PostgreSQLは本格的なオープンソースRDBMSと広く利用されています。PostgreSQL 8.3
では更なる高速化など大規模システムに欠かせない機能が追加されています。対規模DBに
はクラスタリングソリューションが欠かせませんが、PostgreSQL本体にクラスタリング
機能は組み込まれていません。

本講演では、PostgreSQLのクラスタリングソリューションとして実績を積んでいるPG
Clusterの技術と最新動向を紹介します。

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
15:10 – 16:00 最新セキュリティ事情
講師:片山 昌樹 有限会社マギシステム

各地で発生している様々なインシデントについて、最新の情報を交えつつ紹介します。

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
16:05 – 16:35 ライトニングトーク

1人5分程度でユーザ会や技術動向などを紹介するコーナーです。
ライトニングトーク講師を募集中です。コンピュータやインターネットに関連する
事であればテーマは自由です。応募される方は yohgaki@ohgaki.net までご連絡く
ださい。お待ちしております。

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
16:40 – 17:30 Rails 2.1
講師:吉田 和弘 日本Rubyの会, 株式会社ミッタシステム 取締役

RailsはWeb開発の現場でも広く利用されるようになりました。Rails 2.1では新機能が
数多く盛り込まれています。特にO/Rマッパ(ActiveRecord)の新機能についてご紹介し
ます。

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
17:40 – 18:30 JavaScriptで書かれたPIC-BASICエミュレータ
講師:白石 啓一 詫間電波工業高等専門学校

PIC基板を持ってなくともPIC-BASICプログラミングを楽しめる環境を作るため,Web
ブラウザに実装されたJavaScriptでPIC-BASICエミュレータを実装しました。本エミュ
レータの設計や実装方法を紹介します。

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
18:30 閉会のご挨拶

—-
日本PostgreSQLユーザ会 http://www.postgresql.jp/
瀬戸内Linuxユーザ会 http://www.stlug.org/
四国BSDユーザ会 http://www.bbsbrain.ne.jp/~sbug/
日本UNIXユーザ会 http://www.jus.orjp/

問い合わせ先:
日本PostgreSQLユーザ会 四国支部 (株式会社Result内)
四国支部長: 山下 武志 TEL: 087-832-5527
メール:tyama@mbp.ocn.ne.jp
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

懇親会費は約4000円を予定しています。会場から徒歩で移動可能な居酒屋などを
予定しています。懇親会参加をご希望の方は以下のメールをお送りください。
……………………………………………………………
To: tyama@mbp.ocn.ne.jp
Subject: [オープンセミナー2008@四国 懇親会 参加申込]
——————–
※ 氏名(ふりがな): ( )
 所属:
 連絡先郵便番号:
 連絡先住所:
 Tel:
 Fax:
※ E-Mail:

注1 先頭に”※”がある項目は必須項目です。他はオプショナル項目です。
……………………………………………………………

BootcampのWindows VistaがParallelsで起動するとライセンス認証エラーでログインできない

先月のWindows Update以降、BootcampからはVistaは正常に起動し使えるのですが、Parallelsから起動するとWindowsライセンス認証のエラーが発生しログインできない状態になってしまいました。ちょっと探してみただけでは同じような問題で困っている方の情報は見つかりませんでした。

この状態はかなり使い勝手が悪いので、なんとかしたかったのですが時間の都合で放置していました。ようやく直す事ができました。

Windows側で何かしなければならないと思っていたのですが、Parallelsをアンインストールして再度インストール、ライセンス認証を求められるので認証を行うと使えるようになりました。

環境
OSX 10.5.3
Parallels Desktop build 5600
Windows Vista Business SP1

同じような問題でお困りの方、一度Parallelsをアンインストールしてみましょう。

PostgreSQLカンファレンス2008

PostgreSQLカンファレンス2008が今週金曜日(6/6)に開催されます。

http://www.postgresql.jp/events/postgresql-conference-2008

例年通り参加費が必要ですが懇親会費込みです。

参加費:
カンファレンス ならび に懇親会 4,000 円
チュートリアルも含むカンファレンス ならびに 懇親会 10,000 円

今回のカンファレンスの目玉は色々ありますが、その一つはチュートリアルセッションです。まだ、空席が残っているようなのでライセンスもBSDでMySQLよりも使いやすいPostgreSQLを始めてみたい方には良いチャンスだと思います。新人研修の一環としても良いと思います。

* MySQLユーザのためのPostgreSQL入門
(リナックスアカデミー 学校長 濱野 賢一朗 氏)

興味がある方は是非カンファレンスにお越し下さい。