• 竹島の日: 日本の領土は日本人しか守れない

    日本青年会議所が主催者となり、不法占拠されている日本の領土を守るためのオンライン署名が行われています。オフラインも署名が行われているようです。

    私たちの 領土:いえ は 私たちで守ろう
    企画者: 社団法人 日本青年会議所
    提出先: 内閣総理大臣
    開始日: 2009年02月07日
    我が国には北方領土及び竹島、尖閣諸島といった多くの領土・領海問題が存在しますが、日本の領土であることは事実であります。交渉相手の軍事大国でもある隣国を含む国際社会に、日本国ははっきりと自国の主張をしていかなくてはなりません。その主張を後押しするのが国民世論です。そのためにも私たちは、領土と領海を正しく認識し、国家国民が同一の見解を持って問題解決に向けて取り組んでいくべきであると考えます。
    その第一歩として、世論を高めるための署名運動を実行します。
    北方領土の返還と、竹島の開放を要望します
    国境の離島を守るための政策の策定を要望します

    http://www.shomei.tv/project-652.html

    2月22日を政府制定の竹島の日に!
    企画者: 2009年度(社)日本青年会議所中国地区協議会領土領海問題会議
    提出先: 外務省、及び内閣府
    開始日: 2009年02月07日
    署名運動趣意書、並びに署名のお願い

    ■知っていますか? 2月22日は竹島の日
    竹島(島根県隠岐郡)が韓国に不法占拠されていることの認知向上を目的に、2005年島根県議会が2月22日を「竹島の日」とする決議を採択しました。その後、韓国政府や韓国国民が竹島の日制定に対して強い抗議を行い、国際問題となったことはみなさんの記憶に新しいことと思います。島根県においてその後も毎年2月に竹島の日記念式典が行われ、この竹島問題を啓発する運動を継続して行っています。しかしながら、竹島における韓国の不法占拠の状況は変わらず、残念ながら私たちの国土が戻ってくる気配はありません。

    http://www.shomei.tv/project-737.html

    竹島は日本の領土です!(島根県)
    http://www.pref.shimane.jp/section/soumuka/shucho/

    竹島問題(外務省)
    http://www.mofa.go.jp/mofaj/area/takeshima/index.html

    Dokdo-or-Takeshima? (双方の立場からの議論 – 英語・日本語・韓国語サイト)
    http://dokdo-or-takeshima.blogspot.com/

    竹島や北方領土は不法占拠されています。外国の侵略行為を許していたため、韓国では対馬も韓国領土だと主張せよ、韓国の国会議員が主張する状況です。さらに尖閣諸島の海域に地下資源が豊富であることが判明すると、尖閣諸島は日本固有の領土であるにも関わらず、中国が領有宣言しています。最近では沖縄は中華文化圏だ、とも言いはじめています。侵略行為はとどまる所を知らずにエスカレートしていると感じるは私だけではないと思います。

    平和な日本を維持し子供達に平和な日本を受け継ぐ為には、日本の世論が「日本の主権は日本人が守る」と強く主張しなければなりません。

    何もしないのは侵略を受け入れ平和と安全を放棄するのと同じです。
    主権とは領土であり国民です。領土も守れない国が国民を守れるはずがありません。
    日本の領土は日本人しか守れません。

    竹島の日に見ると良い動画を紹介します。硫黄島の話です。

    子供たちの未来の為に日本を守る責任が大人にあります。

  • Flashのセキュリティ設定 – Flash Cookie

    Flash Playerの設定はAdobe(Macromedia)のページで行う事は、Web開発者には常識だと思います。このブログをあまり一般的なユーザが見ている、とは思えませんが一般ユーザ向けに書いています。

    Flashの設定は以下のWebページから行います。

    Flashセキュリティ設定のページ(MomongaLinux x86_64+Flash10 Alpha)
    Disable Flash Cookie
    http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager03.html

    デフォルトで「サードパーティ製のFlashコンテンツにコンピュータ上のデータを格納する事を許可します」にはチェックが入っています。

    これはFlash Cookie(ローカル共有オブジェクト – SharedObject)とも呼ばれているFlash用のローカル(ブラウザを実行しているPC)ストレージです。ブラウザのクッキーはたったのサイトあたり4KBしか利用できませんが、Flashはデフォルトで100KBまで使えます。
    (さらに…)

  • Strict Sessionパッチ – PHP 5.2.8

    PHP 5.2.8がリリースされてしばらくたち、既にPHP 5.2.9RC1が出ています。更新が遅れていましたが、PHP 5.2.8用のStrict SessionパッチをWikiに入れておきました。

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

    参考: 
    PHP:既知のセキュリティ脆弱性 – Session Adoption
    PHP4.4.9のセキュリティ状態

  • 「ハッカー」に逆襲、パスワード盗み返す 中3書類送検

    今年、流行するだろうと予測していることに、素人によるWebアカウントのクラックが増える、があります。

    少年はゲームの動きが悪くなったことからキーロガーに気づき、ソフトを解析。操作の履歴の送付先になっていた男性のメールアドレスやID、パスワードを割り出したという。

    http://www.asahi.com/national/update/0205/NGY200902050001.html

    キーロガーを送りつけられ、それに気づいた中学生が犯人を割り出して、逆にクラックした事件だそうです。加害者でもあり、被害者でもあるクラッカーは気が付かなかったようなのでスクリプトキディーだとしてもなかなかのものです。

    Webアカウントのクラックはもっと簡単です。パスワードが盗めたり、セッションが盗めるサイトは多数あります。パスワードは結構簡単にクラックできます。例えば、md5でハッシュ化しているパスワードで小文字アルファベットと数字だけ(1-8文字)

    abcdefghijklmnopqrstuvwxyz0123456789

    の辞書サイズはたったの36GBです。(単純にハッシュ化したデータを保存している訳ではないので解析できる可能性は99.904%) オンラインで巨大な辞書(レインボーテーブル)を公開しているサイトもあるので自分で辞書を作る必要もありません。

    この少年がWebアカウントでなくWindowsアカウントですが、関連事例として書いておきます。

    関連: http://blog.ohgaki.net/2009

  • Zend_Toolの使い方 – パスに入れない

    Zend_ToolのzfコマンドがZendFrameworkのバージョンによって使えたり、使えなかったりする問題で困っていたのですが原因が分かりました。

    Zend_Toolのzfコマンドでプロジェクトを作成すると

    $ zf create project

    ZendFrameworkのファイルをカレントディレクトリのlibraryに全てコピーします。プロジェクトの雛形にはapplication/boostrap.phpが含まれ、ここでinclude_pathが設定されます。boostrap.phpは、エントリポイントとなるpublic/index.php

    // @see application/bootstrap.php
    $bootstrap = true;
    require ‘../application/bootstrap.php’;

    から毎回必ず呼ばれるので

    // you may wish to add other paths here, or keep system paths: set_include_path(‘../library’ . PATH_SEPARATOR . get_include_path()
    set_include_path(‘../library’);

    ZendFrameworkのアーカイブはどこに展開しても構わないようになっています。

    この事は知っていたのですが、zfコマンドを使わないでZendFrameworkを使えるよう、PEARをインストールしたディレクトリにlibrary/Zendディレクトリをコピーし、デフォルトのphp.iniでinlcude_pathに設定してZendFrameworkを使うようにしていました。

    これがどうもダメだったようです。Zend_Toolのディレクトリ構成を見て、似通った構成だったのでもしかして、と思いinclude_path設定を変えて試してみました。すると動かないと思っていたバージョンでもzfコマンドが動作するようになりました。インクルードパスにZendFrameworkのライブラリをパスにいれると、意図しないスクリプトが読み込まれてエラーになったりしていたようです。中途半端に動く物もあったりしたのでですが「previrew版だから仕方ないか」と思って詳しく調べていませんでした。これで一つすっきりしました。

    Zend_Toolを試す場合、ZendFrameworkのZendディレクトリはinclude_pathに入れないようにした方が良いようです。基本的な事ですが、探しても情報が見つからなかったので書いておきます。

  • Session Adoptionが攻撃に有用な実例

    PHP:既知のセキュリティ脆弱性 – Session AdoptionでWebmailアプリケーションであるSquirrelMailとRoundCubeがこの攻撃に脆弱であることを紹介しました。

    タイミング良く(?)同じくPHPベースのWebmailアプリであるIMPにクロスサイトスクリプティング脆弱性が発見され修正されました。(IMP-4.3.3未満/IMP-4.2.2未満)

    試しに、ソースコードをチェックしてみました。
    (さらに…)

  • In Session Phishing

    In Session Phishingという興味深いアドバイザリが公開されています。

    具体的な記載はありませんが、現在広く利用されているInternet Explorer, Firefox, Safari, ChromeでJavaScriptを利用するとユーザが特定のサイトにログインしていたか判別できるようです。

    Recently Trusteer CTO Amit Klein and his research group discovered a vulnerability in the JavaScript engine of all leading browsers – Internet Explorer, Firefox, Safari, and Chrome – which allows a website to check whether a user is currently logged onto another website. The source of the vulnerability is a specific JavaScript function. When this function is called it leaves a temporary footprint on the computer and any other website can identify this footprint. Websites that use this function in a certain way are traceable. Many websites, including financial institutions, online retailers, social networking websites, gaming, and gambling websites use this function and can be traced.

    ユーザが訪問したことがあるサイトを検出する方法はあります。訪問済みのURLは色が変わることを利用して検出します。マーケティング目的で実際に利用されています。しかし、この方法ではユーザが実際に今ログインしているかどうかは判別できません。アドバイザリによると、ログインしているかどうか判別できる足跡が検出できる、としています。

    自分がサイトにログインしている最中に「現在、攻撃されている可能性があるので再ログインをしてください」とメールを送ればより効果的なフィッシングが行えます。

    もうしばらくすれば詳細が明らかになるかも知れませんが、最近のブラウザ全てに影響するようなのでJavaScriptやDOMの仕様に関係する問題の可能性が高いです。その場合は簡単に修正できない可能性がかなり高いのではないかと思います。

    フィッシングでなくてもマーケティング目的で利用されそうな気もします。

  • PHP:既知のセキュリティ脆弱性 – Session Adoption

    追記:より新しい情報については間違いだらけのHTTPセッション管理とその対策をどうぞ。

    PHPには広く知られているにも関わらず放置されている既知のセキュリティ脆弱性が幾つかあります。その一つがセッションモジュールのセッションアダプション(Session Adoption)脆弱性です。この脆弱性は現在広く利用されているWebアプリケーションの安全性に、非常に大きな影響を与える脆弱性です。

    セッションアダプション脆弱性とはセッション固定化攻撃を可能とする脆弱性の一種です。セッションアダプションに脆弱なセッション管理システムは、ユーザ(ブラウザ)が送信してきた未初期化のセッションIDを受け入れ、セッションを初期化してしまいます。PHPに限らず、RailsやJavaのフレームワーク等、多くのWebフレームワークに発見されている脆弱性です。

    セッションアダプション脆弱性を利用すると、攻撃者は長期間に渡って他人のIDを使う成りすましが可能になる場合があります。IDを盗みたい犯罪者には利用価値の高い脆弱性です。

    この脆弱性は、10年以上前から問題視されている国別TLD(ccTLD)の属性ドメイン(国別Top Level Domain, co.jp, or.jpなどのドメイン)にも下位ドメインからクッキーが設定でき、サブドメインのクッキー設定が無視される(送信順序、優先順位がいい加減)、というとんでも無いクッキーの仕様と組み合わせると、大量の他人のユーザセッションIDを取得(設定)し、成りすます事ができます。

    セッションアダプション問題は全てのPHP、PHP 4.4.9/PHP 5.2.8/PHP 5.3/PHP 6.0に共通する脆弱性です。

    最近、影響範囲はかなり狭くなりましたが、まだまだ注意が必要な脆弱性であり、根本的な解決にはパッチと適切なセキュリティ対策が必要です。

    (さらに…)

  • 文字エンコーディングとセキュリティ(3)

    gihyo.jpのブログ型の連載である「なぜPHPアプリにセキュリティホールが多いのか?」の

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

    で、PHPのサンプルコードを書いているのに「JavaScriptなど」とJavaScript用のサンプルコードであるかの様に書いていました。

    JavaScript -> PHPに書き換えても良いのですが、両方JavaScriptのサンプルを掲載するように編集者の方に依頼しておきました。

    ご指摘頂いた方、ありがとうございます。

  • PHP4.4.9のセキュリティ状態

    PHP4のサポートは2008/8/8を持って終了しました。サポート終了に合わせて、最後のPHP4リリースとなる4.4.9がリリースされています。サポートが終了していますが、稼動中のPHPの半分はまだPHP4であるとる統計情報もあり、まだまだ現役です。

    PHPプロジェクトのサポート終了したため、PHP 4.4.9のセキュリティ脆弱性はCVEなどでも報告されなくなりました。この為、普通にセキュリティ情報を収集していてもPHP4.4.9に対する脆弱性情報は入手できません。

    (さらに…)

  • 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関数を提供しています。

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

  • 2009年に流行るもの

    新年あけましておめでとうございます。

    去年、1月に2008年に流行るものとして64bit OSを挙げています。

    http://blog.ohgaki.net/2008/1/

    2007年には64bit OSはまだ、珍しい感じがありましたが2008年は普通になったと思います。しかし、まだ当たり前に使われる状態にまではなっていません。Macは完全に64bit/32bit環境は統合されています。LinuxでもFedora10では64bit版でも32bit版とのアプリケーション互換性が大幅に向上しています。Windowsの場合は32bit版, 64bit版の間で互換性の問題があるため敬遠されていますが、8GBのメモリが標準的なれば、MSがPAEをVistaでサポートしない限り64bitが普及することでしょう。

    さて、2009年に流行るものとして「Webアカウントへの不正アクセス」を予想しています。2008年もSQLインジェクションなどの攻撃で不正取得したアカウント情報で、不正アクセスを行ったのではないか、と思われる事例が大量に発生していました。しかし、今年は更に多くの不正アクセスが行われるのではないか、と予想しています。昨年はプロの犯罪者による大量の不正アクセスがありましたが、プロの犯罪者の犯行も増えると思いますが、今年はセミプロやアマチュアと言える犯罪者による不正アクセスが増えるのではないか、と予想しています。

    Webのアカウントには同じパスワードを使わないようにしましょう!