カテゴリー
Computer Development

PHP4からPHP5への移行について

PHP4のサポート終了がアナウンスされことに伴い、技術評論社の方からPHP4からPHP5への移行の記事を書く事になりました。毎週新しい記事が公開されます。下記のURLが最初の記事で8/2(予定)から順次続きが公開されます。

http://gihyo.jp/dev/feature/01/php-migration/0001?page=1

記事を書いてみて思ったのですが、自分にとってはPHP4とPHP5両方で動作するコードを書くのはそう難しくないのですが時々PHPでコードを書いている方、PHPの開発状態を把握していない方には結構難しいのではないかと思いました。今回の記事は「移行」にのみ焦点をあててPHP5の新機能はほとんど紹介しませんでしたがかなりボリュームになってしまいました。それでも十分とは言えないです。PHP5への移行をお考えのかたは8/2から上記URLを参考にして頂ければ幸いです。

ところで、隔週(の予定…で実際は月一回くらい…)でセキュリティ関係の記事も http://gihyo.jp/ にて連載しています。こちらもよろしくお願いします。

http://gihyo.jp/serial/2007/php-security

どの記事でもコメントなどございましたらメールで頂けると助かります。

カテゴリー
Other

Sonyも仮想世界に参入

SecondLifeとか話題になっているのにSonyがPS3で参入しない手はない、と思っていたらPLAYSTATIOIN@Homeというサービスを予定しているのですね。ニュースになっていたのでしょうが知りませんでした。基本無料、一部有料というスタイルらしいです。タイトルをクリックすると紹介ムービーが見れます。PS3らしくかなり凝った3Dです。仮想世界は結構いろいろなところが参入/参入表明していますがハードを持っているSonyはなんだかんだいって強いかと思います。

アメリカで一番利用されているゲーム機はPS2とのニュースがありましが、システムソフトウェアのバージョンアップでPS2ゲームもフルスペックハイビジョン化(アップコンバート)できたり、さらに普通のDVDもフルスペックハイビジョン化、最新のシステムソフトウェアではCDを2倍、4倍でアップコンバートしたり、Cellの利点を生かした機能はいろいろ便利そうです。PS3ももう少しうれても良さそうなんですけどね。ハイビジョン対応のテレビの普及率の問題もあるのかな?

ドルビー(だったかな?もしかするとBOSEだったかも)がどんなソースでも5.1ch化する物を発表していましたが、何でも5.1ch化もあったら良いですね。(もしかしてもうある?)
# このニュースを見たときモノラルでも5.1ch化できるの?と疑問に
# 思ったのですがニュースには詳細は書いてありませんでした。

PS3は欲しいハードの一つなので年末商戦値下げで買っても良いくらいの値段になると良いですね。
# ゲームを全くしないので無駄遣いですが

カテゴリー
Security

カラーレザープリンタの印刷物に埋め込まれたコード

コピーすると「COPY」と印刷されてしまう機能は有名です。
コピー機、PhotoShopの紙幣複製を防止する機能も知っていましたが

カラーレーザープリンターで印刷されたものには全てこのように肉眼では判別し難い黄色いピクセルをバーコード(大きさは8×15ピクセル)のように印字することによって、プリンターのメーカー名、機種名、シリアル番号、印刷された日時の4つの情報を合計15バイトの情報としてコード化して埋め込まれているという。

プリンタ、コピー機業界では常識なのかもしれませんが知りませんでした。
# どこかで聞いたことがあるような気もしますが覚えてませんでした。

このバーコード、日本国内で販売されているカラーレーザープリンターでも印刷物にブラックライト(紫外線ランプ)を当てて丹念に調べれば肉眼で確認することができるという。

ブラックライトを持っていないので確認できません…

この機能、全うな目的で印刷する人には何の問題もありませんが不正な目的で印刷しようとする人を思いとどまらせる為に役立つかも知れません。印刷ログを残しておけば時間とプリンタでユーザまで特定できます。すべてのプリンタ、コピー機に入れても良いと思いますがどうでしょう?似たようなセキュリティソリューションを購入する必要もなくなります。

この機能、やはりカラープリンタそれもカラーレーザープリンタ向きの機能だと思うので、問題は全てのプリンタをカラーレーザープリンタにするのは導入とランニングコストがかかり過ぎることくらいでしょうか?

白黒コピー機でコピーしてもこのコードは読めるのかどうか気になります。多分読めないとは思いますが。

カテゴリー
Security

BIND9のDNSキャッシュ汚染

BIND9にDNSキャッシュ汚染の脆弱性だそうです。

The paper shows that BIND 9 DNS queries are predictable – i.e. that the source UDP port and DNS transaction ID can be effectively predicted. A predictability algorithm is described that, in optimal conditions, provides very few guesses for the “next” query (10 in the basic attack, and 1 in the advanced attack), thereby overcoming whatever protection offered by the transaction ID mechanism. This enables a much more effective DNS cache poisoning than the currently known attacks against BIND 9. The net effect is that pharming attacks are feasible against BIND 9 caching DNS servers, without the need to directly attack neither DNS servers nor clients (PCs). The results are applicable to all BIND 9 releases [1], when BIND (the named daemon) is in caching DNS server configuration.

まだ中身を見れていないのですが、最適な条件であれば基本的な攻撃で10回、高度な攻撃で1回で次のトランザクションIDを推測できる、としています。最適な条件がどれくらいあるのか?は読んでみないとわからないです。

All stable versions of BIND 9 to date (except the ones released simultaneously with this paper) are vulnerable, i.e. BIND 9 versions 9.4.0-9.4.1, 9.3.0-9.3.4, 9.2.0-9.2.8, 9.1.0-9.1.3 and 9.0.0-9.0.1.

とあるので、BIND9の最新版では問題は修正されているそうです。 http://www.isc.org/index.pl を見ると確かに今月リリースの9.xが紹介されています。

CVEはこれ
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-2926

BIND8, BIND4には影響がないとされています。

カテゴリー
Other

Flashをブロックして意外と使えると思った副作用

数日前のエントリで書いた通りFlashコンテンツが自動的に再生されるリスクを回避するために、明示的に指示しないとFlashコンテンツが再生されないFirefoxアドオンを利用しています。

Flashblock
https://addons.mozilla.org/ja/firefox/addon/433

私はサイト上の広告はほとんど気にしない方なので広告をブロックするような拡張は使っていませんが、Flashをブロックすると動きがある広告が表示されなくなりページが読みやすくなりました。気にはしていなかったのですが文章を読んでいる最中にすぐ横でアニメーション広告があると非常に邪魔です。

私の使い方では作者コメントに書いてあるようにクラッシュが頻繁に発生することも無いようです。セキュリティが気になる方には当然お勧めのアドオンですが、アニメーション広告が邪魔で仕方ない方にもお勧めだと思います。
# アニメーションGIFの広告もあるのでこちらは別途ブロックしないと
# ブロックできません。念のため。

カテゴリー
Computer Security

globで任意コード実行の脆弱性

FirstにPHPのglobで任意コード実行の脆弱性、とあったのでCVSを見てみるとglob用のメモリ構造体を未初期化で使用しているコードが修正されていました。未初期化の構造体メモリを任意データで書き換える必要があるので、攻撃を行うには攻撃が可能となるメモリレイアウトを作る比較的特殊なコードが必要になると思われます。

任意コード実行の脆弱性として

Remotely Exploitable : Yes
Locally Exploitable : Yes

の割には

Rated as : Moderate Risk

となっています。これは攻撃可能なメモリレイアウト作成はあまり直感的ではないから、もしくはPoCレベルの通常では起こりえない状況用の攻撃コードのみ作成されているからだと思われます。

これはPHP5.2.3以下の脆弱性です。以下はHEADのパッチです。
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/dir.c?r1=1.166&r2=1.167
見ての通り、1 linerパッチです。

PHP4のサポートが終了しますが「ディストリビュータのサポートは別途で長いから」とディストリビュータのサポートに期待している方も多いと思います。ディストリビュータがどの程度セキュリティパッチをサポートしてくれるのかちょうどよいベンチマークになると思います。

カテゴリー
Other

Flashもブロック対象の時期か…

Flash Player関連のセキュリティ問題は結構レポートされています。最近見つかった脆弱性もかなり危険です。デフォルトでFlashを実行するのはリスクが高いですがFlashがないとまともにナビゲーションできないサイトも多いのでインストールしない訳にもいきません。

Firefoxの場合ならFlashblockアドオンでFlashをブロックし、選択してから実行できるようになります。

Flashblock
https://addons.mozilla.org/ja/firefox/addon/433

Firefox coreのバグで頻繁にクラッシュする、とコメントにありますがとりあえず入れてみました。Firefoxでインストールする必須セキュリティ関係アドオンリストに加えるべきか試してみたいと思います。

他のセキュリティ関係アドオンでお勧め

NoScript- JavaScriptを実行しない
https://addons.mozilla.org/ja/firefox/addon/722

HttpOnly – IEの「JavaScriptにクッキーを読ませない機能」をFirefoxに追加
https://addons.mozilla.org/ja/firefox/addon/3629

この2つは安定していると思います。すべてのユーザにお勧めです。HttpOnlyはすべてのサイトでJavaScriptからクッキーが読めなくなるアドオンではありません。WebアプリがMS独自拡張のhttponly属性を追加してクッキーを設定した場合にのみJavaScriptからクッキーが読み出せなくなります。PHP5のsetcookie/setrawcookieにはhttponly属性を送信するオプションが追加されています。