カテゴリー
Other

b2evolutionバージョンアップ

セキュリティ問題の修正を含むアップグレード版がリリースされています。

http://b2evolution.net/news/2007/01/22/b2evo_1_8_7_and_1_9_2_released

「意味がある形での攻撃は難しいだろう」と書いてありますがアップグレードしておいた方が良いと思います。

正規表現がおかしてくリンクが正しく表示されない問題は直っていないですね。

カテゴリー
Windows

Windows税の返金?

少し古いですがLinux.comに「Windows税の返金をDELLから受けた」といった記事が載っています。

私はWindowsも使うのでサーバ以外であれば返金して欲しい、と思わないですが日本でも可能なのかと少し気になります。何時間もかけて$52.50の返金だったので著者自身も勧めてはいません。

Tipsとして

  • 返金してもらう資格がある(日本の法律ではどうなんでしょう?)
  • すべて(やり取りを)記録する
  • (時間の浪費や面倒なやり取りを)覚悟しておく
  • 礼儀正しく
  • 粘り強く
  • 愛想よく

と記載されています。コールセンター構築に関わっていた事があるので「礼儀正しく」「愛想よく」と書いてある点には好感が持てます。

しかし、メーカーサイドとしてはこの手のリクエストは厄介ですね。バンドルしたソフトなどの返金を求められても困りますね… しかし、LinuxやBSDが代替OSとして利用可能なのでOS無しでの販売もして欲しいです。個人的に困ったのは欲しいノートPCがWindows XP Homeしかバンドルしてなくて仕方なくWindows XP Homeを買わされたで事した。後でステップアップグレード版でHome->Professionalへアップグレードしました。Vistaでも同じような事で困るかも知れません。

カテゴリー
Development PHP Security Security

SHA1でハッシュ化したパスワードは危険になった

パスワードを平文で保存するのは論外で、MD5やSHA1でハッシュ化するのは当たり前です。しかし、SHA1を2000倍早くクラックする方法などが発見され「SHA1は脆弱だ」(ちなみにMD5はもっと危険)とされてからしばらく経ちます。アメリカ政府や大手企業はSHA1は使わない、としています。

Slashdot.orgにまた載っているので更に高速化できた、ということか?

参考:

カテゴリー
Computer Database

PostgreSQLでSHA1

MS Access 2003でSHA1を使おうと思ったらどうもうまく動作しませんでした。
.NETのmbcorlibにMD5,SHA1等のハッシュ関数が定義されていてVBからはMSDNに書いてるサンプルで動作するのですがMS AccessのVBAからはいろいろ試しても動作しませんでした。サンプル通りだとオブジェクトを生成する行でシンタックスエラーになり、多少変更しても動作しませんでした。
# 普段VBAでプログラミングはしないので私が無知なだけかもしれませんが…
# Windowsプログラマの方はハッシュはあまり使わない??

VBAでハッシュが使える方が良かったのですが、しかた無くPL/Pythonでハッシュ値を取得し返す関数を定義することにしました。

PL/Pythonの場合、

CREATE OR REPLACE FUNCTION SHA1HASH( TEXT ) RETURNS CHAR(40) AS ‘
import sha
hash = sha.new( args[0] )
return hash.hexdigest()
‘ LANGUAGE plpythonu;

言語を登録していない場合

CREATE LANGUAGE plpythonu;

を先に実行しておきます。8.0からplpythonはplpythonuに名前が変更されています。(Untrustedな言語なのでuが付く)

PL/Perlの場合は多分こんな感じ(こちらは試していません)

CREATE OR REPLACE FUNCTION SHA1HASH( TEXT ) RETURNS CHAR(40) AS ‘
use Digest::SHA1 qw(sha1);
return sha1($args[0]);
‘ LANGUAGE plperl;

同じようなコードでMD5, SHA256, SHA512等が簡単に作れます。

普通パスワードはハッシュ化したパスワードを保存するのでユーザ情報テーブルのパスワードフィールドはハッシュ値になっています。

SELECT * FROM user WHERE username = ‘USERNAME’ AND password = sha1hash(‘PASSWORD’);

といった感じでクエリできるようになります。アプリの言語側でハッシュが使える場合はアプリ側でハッシュ化する方が好ましいのですがVB等でライブラリが制限されている場合には便利かも知れません。

カテゴリー
Computer Security

なぜPHPアプリにセキュリティホールが多いのか?

技術評論社の新サイトで「なぜPHPアプリにセキュリティホールが多いのか?」をテーマにブログ風の記事を掲載させていただく事になりました。第一回は「CVEでみるPHPアプリケーションセキュリティ」です。

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

CVEをフォローしている方であればPHPアプリケーションの脆弱性レポートの多さが目立っていることはよくご存知と思います。何故CVEエントリが多いのか解説しています。よろしければご覧下さい。

技術評論社の須藤さんに編集していただいているので私が書いた文章より読みやすいです。

今、気が付いたのですが、SecurityForcusに次の様な記載がありました。

The problem is, PHP applications accounted for about 43% of the security issues in 2006, according to the National Institute of Standards and Technology (NIST).

http://www.securityfocus.com/columnists/427

数えると凡そ半分と言っても良いくらいPHPアプリの脆弱性レポートがあったのですね。

カテゴリー
Other

b2evolution 1.8.6にXSS脆弱性

このブログのb2evolutionは1.9.1なので、1.9.1のコードを確認してみたところ、1.9.1にも厳格な入力チェックが行われていないなど、確かに好ましくない処理が行われていました。XSSと言うよりHTTP Response Splittingに脆弱なコードになっていました。

攻撃を成功させるには幾つかの条件が必要でした。

  • 普通のクロスサイトスクリプティングであるため、ログインするページを表示する場合に他人が用意した罠ページのログインリンクをクリックしないとならない
  • その後、ログイン操作を実際に行わなければならない
  • PHPのバージョンが古くheader関数が脆弱である

特に重要なのはPHPのバージョンが古くなければならない点です。PHP 4.4/PHP5.xなら問題ありません。このサーバで利用しているPHPも大丈夫なので対処は行っていません。

例えばRHEL 4はPHP 4.3なので攻撃が成功するかも知れません。(パッチを確認すれば脆弱性を攻撃できるか直ぐ分かるのですが未確認)いずれにせよ、公開用のPHPスクリプトを書く場合、比較的古いバージョンのPHPも広く利用されている事を前提にコーディングしなければならないです。

この脆弱性の危険度はCVEでHighになっていますが、SecuniaではLowになっています。どちらに設定するかは微妙なところです。環境が古ければ「非常に危険」と考える事もできますが、現在PHPプロジェクトが正式にサポートしているバージョンは4.4と5.2で両方とも影響を受けません。

話は変わりますがb2evolution 1.9.1は使わない方が良いかも知れません。正規表現に問題があるらしくアンカータグが正しく処理できない事がよくあります。本家サイト見るとサポートされているバージョンが1.8系と1.9系だけになっているのでバージョンアップを考えている方は1.8系を先に試す事をお勧めします。1.8.6で正しく表示されるかどうかは検証していませんが、少なくとも1.9.1は問題が多いです。

カテゴリー
Security

クライアントサイドで認証とは… 在りない事が起きるのがWebサイト…

Macworldサイトのハッキングでジョブズ氏講演の優待席を無料ゲット 」したハッカーがいるらしい。なんと認証がクライアント側で行われていたそうです。

ありえない…