VMWare Fusion 1.1 beta vs. Paralells Desktop 3.0

VMWare Fusion 1.1 beta vs. Paralells Desktop 3.0

Boot CampでOSXとVistaをデュアルブートにして利用しています。Boot Camp 1.4 betaにアップグレードしてからParalellsの調子が非常に悪く、直ぐに固まるのでVMWare Fusionを試してみる事にしました。

キーボードの配列がAT配列になる、ディスプレイドライバの設定に問題があったのかVistaの画面がSVGAになった、Boot Campのドライバをインストールし直す必要があった、などのマイナーなトラブルは有りましたが普通に使えます。もっともチャレンジャーにもParalellsをアンインストールしないでVMWare Fusionをインストールした事が問題の原因かもしれませんが。

結論から言うとVMWareを使う事にしました。

– CPU消費が少ない
– 速い(体感的に)

が決め手になりました。Paralellsでぎくしゃくしていたアプリもかなり快適に動作するようになりました。フルスクリーンも使いやすいです。(OSXのメニューバーは邪魔なのでVMWareを使っている時のように隠れてくれるとうれしいのですが… 確かアプリ毎だった気がするのでOSでは変えれないのかもしれません。知らないだけで設定があるのかな?)

3DとDual Coreを有効にする設定も試してみましたが、3Dを有効にするとVistaでは無理ある(?)らしくまともに利用できませんでした。Dual Coreも有効にして少し使うとフリーズしたので無効にしました。

細かい所、例えばMacに無いキーが送信できるなどの機能はParalellsの方が良い感じです。しかし、VMWareは多少の問題は在りますが、軽快に動く方が助かるのでVMWareに乗り換えると思います。

Paralellsをインストールしている方でVMware Fusionを試したい方は最初にParallelsでWindowsを起動してParalells Toolをアンインストールした方が良いです。このツールはParallelsで起動していないとセットアッププログラムが動作しないようになっています。このツールを削除しておくとここに書いていたキーボードやドライバの問題は発生しないのかもしれません。

OSX 10.5 Leopardは10/19(大安)発売?

テキトーにMac OSXのニュースを見ていたらLeopardの発売日は10/19の大安ではないか?と言う説を見つけました。

過去発売日の4回のうち2回は大安、他も先勝などの縁起の良い日だったそうです。日本はAppleにとってお得意様だから縁起の良い日に発売しているのでは?と書かれていました。

ブックマークしなかったので元ネタURL無しで申し訳ないです。

追記:
見つけました。
http://blogs.itmedia.co.jp/2013/2007/10/mac_os_x_leopar_b514.html

http://japan.cnet.com/news/biz/story/0,2000056020,20358086,00.htm
によると10月26日(金)発売かも、となっています。

Netscape 9 ….

開発は継続していたのですね。広告収入だけでも結構な収入源になっているのしょうか?
中身はIEとFirefoxなので態々Netscape用にテストしなくても良いので開発者としては、在っても無くても良いブラウザです。このブログに過去30日間のアクセスしたブラウザの0.2%がNetscapeだったようです。

久しぶりにGoogle Analyticsを見て驚きました。IEのシェアが51.14%になっていました。Firefoxが39.40%でした。

最近公開されていたGoogle MailのXSS脆弱性もNoScriptを入れていると防げるケースも在ったようです。こういう事例がFirefoxユーザシェアを広げているのかも知れません。
# NoScriptはインストールすると明らかなXSSは防いでくれます。
# おかげでXSS関係の簡単なテストでも普段使いのFirefoxでできない
# のは不便ですが。

Boot Camp 1.4 beta

OSXのソフトウェアアップデートでEFI(MacのBIOSのようなもの)のアップデートがあったので、もしかして、と思ってBoot Campをダウンロードし直してみました。

現時点の日本語サイトでは「1.3 beta」と表示されていますが、ダウンロードした中身は「1.4 beta」になっていました。早速インストールしてドライバディスクを作成し、Vistaにドライバを入れてみました。特に変わったところは感じられませんがドライバ類は更新されたようです。

英語サイトのBoot Campのページは「1.4 beta」と表示され、大きくなったダウンロードサイズも正しく表示されていました。

安定性で困っている方、アップデートを試してみてはいかがでしょうか?

追記:
Pallarels Desktopと相性が良くないようです。私の環境ではフリーズしたようになって仮想環境(Boot Camp)が満足に利用できない状態です。

Python 3000は良いですね。

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

PHP5/PHP6の開発もPython 3000 (Python 3.0)のようになれば素晴らしいのですが、難しいでしょうね…

後方互換性は非常に重要です。今まで動いていたプログラムがバージョンアップしたら動かなくなる、と言う事態は開発者であれば誰でも避けたいものです。しかし、後方互換性を重視するあまりツジツマが合わなくなる事がよくあります。時間と共に合わなくなったツジツマはだんだんと大きくなっていきます。最初のうちは合わないツジツマはあった方が良い物ですが、だんだんと使い辛いものなっていきます。

些細な事ですがPHPの場合、古い関数の命名規約は「thisisfunctionname」と単語の区切りを付けないルールでしたが今のルールは「this_is_function_name」と単語を_で区切るルールになっています。この為、システムにデフォルトで含まれる基本的な関数であっても2つの命名規約に則った関数名が使われています。PHPには関数のエイリアス機能があるので新しい命名規約に則った関数名と古い関数名両方が存在しても問題無く利用できる機能があります。にも関わらず新しい命名規約に則った関数は作られていません。(と言うより反対する人がいるので作れなかった)クラス名や関数名も最近の言語に習って大文字・小文字を区別する方が良いと思いますが、これも実現できませんでした。(PHP5開発の際に議論されたが却下)

代わりにPHPプロジェクトが選択している仕様変更の手順はメジャーバージョンアップ、マイナーバージョンの度に徐々に少しずつ仕様を変更していく手順を取っています。strtotimeが失敗した場合の戻り値が-1からfalseに変更されたのもその一例です。

Python 2.xとPython 3.xが描いているようなアップグレードが言語として理想的なアップグレードの一つだと思います。

JSPWiki?

JSPWikiの脆弱性がCVEに書いてあったので見てみました。

JSPWiki: http://jspwiki.org/

http://nvd.nist.gov/nvd.cfm?cvename=CVE-2007-5121

Cross-site scripting (XSS) vulnerability in
JSPWiki 2.5.139-beta allows remote attackers to inject
arbitrary web script or HTML via the redirect parameter
to wiki-3/Login.jsp and unspecified other components.

http://nvd.nist.gov/nvd.cfm?cvename=CVE-2007-5120

Multiple cross-site scripting (XSS) vulnerabilities
in JSPWiki 2.4.103 and 2.5.139-beta allow remote
attackers to inject arbitrary web script or HTML
via the (1) group and (2) members parameters in
(a) NewGroup.jsp; the (3) edittime parameter in
(b) Edit.jsp; the (4) edittime, (5) author, and
(6) link parameters in (c) Comment.jsp; the (7)
loginname, (8) wikiname, (9) fullname, and (10)
email parameters in (d) UserPreferences.jsp and
(e) Login.jsp; the (11) r1 and (12) r2 parameters
in (f) Diff.jsp; and the (13) changenote parameter
in (g) PageInfo.jsp.

http://nvd.nist.gov/nvd.cfm?cvename=CVE-2007-5119

JSPWiki 2.4.103 and 2.5.139-beta allows remote
attackers to obtain sensitive information (full path)
via an invalid integer in the version parameter
to the default URI under attach/Main/.

要約すると「クロスサイトスクリプティングをはじめセキュリティの事を全く考えずに作ってしまいました」という感じ(?)です。

安定版のソースをダウンロードして見てみました。JSPWikiとなっていたので、全部JSP?と思いましたが違いました。zipで6MBあるので結構な分量です。

[yohgaki@dev JSPWiki]$ find . -name “*.jsp” | wc -l
55
[yohgaki@dev JSPWiki]$ find . -name “*.java” | wc -l
430
[yohgaki@dev JSPWiki]$ find . -name “*.jar” | wc -l
29

インストールに必要な環境

* Java (1.4 for 2.2)
* To know what a WAR file is and how to use it.
* A Servlet 2.3 -compliant web server. JSPWiki of course runs on 2.4 -compliant servers, we just don’t require anything more than 2.3. Containers that are known to work include:
o Tomcat (4.0 and higher) works quite nicely. For best results, we recommend Tomcat 5.5.
o See below for more container-specific notes
* A server to run your Wiki on. It does not have to be a very big server: JSPWiki has been run on a 266 MHz Pentium II with 192 Mbytes of memory.
* Some patience (the setup is not as easy as I would like it to be)
* If you want to email things, you need JavaMail and the Java Activation Framework JARs. Email is needed for password recovery, or error logging (log4j) if you wish to configure it that way.

初めての脆弱性レポートなのか調べてみると

http://secunia.com/advisories/13285/

がありました。

Release Date: 2004-11-24
Last Update: 2005-02-21

3年前くらいによくありそうなQueryパラメータのクロスサイトスクリプティング脆弱性がレポートされています。どうしてこんな感じになってしまったのか時間がある時に調べたいです。

Webカメラの脆弱性

WebカメラのなどのデバイスはWebサーバ機能を持っています。脆弱性がありそうだな、と思っていましたが調べてみるとかなり危険な状態のようです。

* Cross-browser XSS phishing
* Replacing the legitimate video stream with our own
* Adding a Backdoor Root Account
* Stealing the ‘passwd’ File

最近のWebカメラはメモリも十分でプログラムも実行できるので普通のWebサーバとしても利用できるくらいになっています。ネットワークWebカメラの運用には注意が必要なようです。

Gmailに脆弱性

GnuCitizenとばしてますね。先日はPDFによるコード実行脆弱性を公開(ただし、詳細不明)していました。その前はQuickTimeでした。今度はGmailの脆弱性だそうです。

The technique used in this example is known as Cross-site request forgery, or simply put CSRF.

CSRF脆弱性だったそうです。リンク先のページではフィルタ設定を改竄するスクリーンショットが掲載されていました。

対策は簡単、予測不可能なリクエストIDを全てのデータ変更リクエストにつけるだけです。手っ取り早いのはセッションIDを流用する方法ですが、セッションID漏洩のリスクが増加するのであまりお勧めできません。次に簡単なのはセッション変数としてIDを保存する方法です。この方法を採用したのかな?POSTメソッドなので単純にセッションIDを利用したのかな?

追記:
中身は同じなのかも知れませんが、XSS(?)でも似たような攻撃ができたようです。

Google Vulnerability

PHP 5.3ブランチ

PHP 5.3のブランチが出来ています。

個人用のアプリケーションなら、「Release fast, release early」でも良いと思いますが、フレームワークに近い言語が「Release fast, release early」だと困る方も多いと思います。互換性を維持しないアップグレードは1年に一回以内、出来れば18ヶ月か24ヶ月サイクルくらいに留めた方が良いと思います。

モジュールを別途配布するようにすればかなり現実的になるのですけどね…
PHP Core, PHP Standard, PECL, 3rd party, 程度に分けて管理すれば良いと思います。

とにかく、準備が必要な方はテストで使ってみては?

http://cvs.php.net/viewvc.cgi/php-src/?pathrev=PHP_5_3

ImageMagickに脆弱性

少し前にPythonの画像処理デフォルトモジュールの脆弱性について書きました。「普通はデフォルトのライブラリは使わずにImageMagickとかを使うよね」というツッコミが入っていたので、画像ライブラリは脆弱性が多いことも紹介していたのですが、そのImageMagickに脆弱性です。DoS, Off by One, Integer overflowです。

http://labs.idefense.com/intelligence/vulnerabilities/display.php?id=596
http://labs.idefense.com/intelligence/vulnerabilities/display.php?id=595
http://labs.idefense.com/intelligence/vulnerabilities/display.php?id=594

影響する画像形式は一般的な画像形式でないので、あまり影響は大きくないのです。最近ImageMagickなどは脆弱性が多い、と書いていたので載せました。

Linuxの電源管理

Linuxパワーユーザには当たり前の情報が多いですが、IDFでlesswatts.orgがお披露目となったようです。

と同じ情報が掲載されているものが多いようです。

LinuxをノートPCで利用する場合に少しでも長くバッテリを利用する為のTipsが掲載されています。サーバの消費電力軽減にも役立つTipsもあります。Intelチップ専用のTipsもありますが、Intel以外でも使えるTipsもあります。Kernelやコマンドがサポートしていないと利用できない機能もあります。

サイトの掲載されているTIPS:

  • SMPスケジューラの電源管理有効化

    echo 1 > /sys/devices/system/cpu/sched_mc_power_savings

  • SATA電源管理有効化

    hdparm -B 1 -S 12 /dev/sda

    -B set Advanced Power Management setting (1-255)
    -S set standby (spindown) timeout
    -y put IDE drive in standby mode
    -Y put IDE drive to sleep
    -Z disable Seagate auto-powersaving mode

  • ラップトップモードの有効化

    echo 5 > /proc/sys/vm/laptop_mode

  • CD/DVDをポールしない

    hal-disable-polling –device /dev/scd0

    デスクトップでもCD/DVDを挿入した場合に操作を選択するダイアログを表示されない為に利用すると便利。

  • WOL(Wake on LAN)の無効化

    ethtool -s eth0 wol d

  • Gigabit LANを100Mbpsに変更

    ethtool -s eth0 autoneg off speed 100

    1000Mbpsに戻すには最後のパラーメータを1000にしてethtoolを実行。

  • Intel Wirelessアダプタの省電源機能の有効化

    iwpriv eth1 set_power 5

    省電源機能を無効にするには最後のパラメータを6にして実行。

  • 自動アソシエートモードの無効化

    rmmod ipw2200
    modprobe ipw2200 associate=0

    WiFiアクセスポイントを一生懸命探さなくなる。

  • WiFiの無効化(電波OFF)

    for i in `find /sys -name “rf_kill” ; do echo 1 > $i ; done

    有効にするには

    for i in `find /sys -name “rf_kill” ; do echo 0 > $i ; done

  • Bluetoothの無効化

    hciconfig hci0 down
    rmmod hci_usb

  • バックライトの調整

    xbacklight -set 50

  • DMPS(ディスプレイの電源管理)有効化

    xset +dpms

    120秒のアイドルで電源OFF

    xset dpms 0 0 120

  • TV/VGA/DVI出力の無効化

    xrandr –output TMDS –off

  • Realtimeの有効化

    mount -o remount,relatime /

    atimeの様にアクセス時間の記録をsyncしない(直ぐにatimeをアップデートしない)のでディスクの利用が効率化する。デスクトップでもお勧め。

  • サウンドカードの省電源機能の有効化(AC97)

    echo 1 > /sys/module/snd_ac97_codec/parameters/power_save
    echo 1 > /dev/dsp

  • HDAサウンドの省電源機能の確認(HDAのみ)

    cat /sys/module/snd_hda_intel/parameters/power_save

    0より大きな数値で有効化されている。

  • BIOS設定の変更

    * Processor C1E support: This enables maximum power saving of the processor when idle.
    * Enhanced Speedstep (EIST): This allows Linux to optimally reduce the frequency and voltage of the processor when not using the maximum capacity.
    * Fan control: Set to “auto speed”; this allows the fans to slow down (and use less power) when the temperatures in the machine allow this.
    * Enable the HPET (often called “Multimedia timer”) option. This allows Linux with tickless idle to maximally save power by being idle longer.

    BIOS設定はハードウェア管理機能が不明なデバイスとして認識しないよう、一部の省電源機能を無効化しています。上記の機能を有効化すると消費電力が少なくなります。

AdobeはAdobe Readerのブラウザプラグインは止めるべき

AdobeはAdobe Readerのブラウザプラグインは止めるべきだと思います。PDFがブラウザから見れてもうれしい事は少なく、反対に迷惑な場合が多いです。Firefoxの人気拡張にPDF Downloadがある事からも私だけでなく、多くの方が迷惑だと思っていると考えられます。せめてプラグインのインストールはデフォルトでオプションにして、欲しい人だけインストールできるようにするべきです。

Adobe Readerですが、どうもPDFからシステム上のファイルを簡単に覗き見できる、ということらしいです。

[Full-disclosure] 0day: PDF pwns Windows

http://www.gnucitizen.org/blog/0day-pdf-pwns-windows

I am closing the season with the following HIGH Risk vulnerability:
Adobe Acrobat/Reader PDF documents can be used to compromise your
Windows box. Completely!!! Invisibly and unwillingly!!! All it takes
is to open a PDF document or stumble across a page which embeds one.

元ネタのGnuCitizenサイトにアクセスできないので具体的な攻撃方法は不明。

http://blog.ohgaki.net/index.php/yohgaki/2007/09/14/noscripta_rafia_a_s

に書いたようにNoScriptで全てのプラグインはデフォルトで実行しない設定にしている方が安全だと思います。

攻撃方法が詳細が分からないので、何とも言えませんが、Adobe ReaderからPDFを読み出してもファイルを読んで、外部に送れるような問題であれば防ぐのは難しいです。少なくともプラグインを禁止していれば「ページを見て攻撃される」リスクはかなり軽減すると思います。

追記
GNUCitizenにアクセスできたのでみてみると

My advise for you is not to open any PDF files (locally or remotely)

と、「ローカルでもリモートでも、PDFファイルは開くな」と記載されています。アタックベクタが不明なので、対処方法は安全性が保証できるPDF以外は開かないのが良いと思います。少なくとも、ブラウザプラグインでクリックしたら開いた、という状況は良くないと思います。

実は少し前に流行っていたPDFファイル付きスパムメールのPDFを自分で開いた事がないです。これにファイルを盗み見れる攻撃が仕込まれていたとすると脅威ですね。

PDFプラグインの実行はNoScriptでも制御できます。
詳しくは
http://blog.ohgaki.net/index.php/yohgaki/2007/09/14/noscripta_rafia_a_s

Pythonも同じか?!

PHPのモジュールには脆弱なコードが多かったが、PHPのモジュールに限らないはず、と言っていましたがまた別の例がありました。

Full-Disclosure(9/16)に投稿されたメッセージによると

The module imageop contains a lots of int overflow, which result in heap overflow, and maybe memory dump.
The files imageop.c and rbgimgmodule.c are examples.

という状態らしいです。モジュール(ライブラリ)は叩けば埃が沢山出てくると思います。

imageopのコードフラグメントを見ると整数オーバーフローに全く注意していないコードになっているのは明らかです。

「標準モジュールでimageopなんてモジュールだれも使ってないよ。ImageMagickなど使っている」と反論がありましたが

Maybe the real question is, if they don’t know how secure an int overflow in imageop module, maybe other modules are vulns too.

と、投稿者は書いています。確かにその通りだと思います。

で、ImageMagickですが今は以前に比べてあまり脆弱性が報告されなくなりましたが少し前まで脆弱性が山ほどレポートされていました。最近レポートされている脆弱性もあります。

http://osvdb.org/searchdb.php?action=search_title&vuln_title=ImageMagick&Search=Search
http://secunia.com/search/?search=ImageMagick

裏を返せば古いバージョンを使っていて脆弱なシステムも意外と多いかも?と思ってしまいます。これはPythonに限った事ではありません。

画像、映像、音声処理ライブラリは脆弱性の固まりだと思っていた方が良いです。

コマンドを呼び出していれば他の言語と同じ、速度や使うリソースの問題がありますが、Javaはこの点に関してかなり有利だと思います。

Second Lifeプロトコルハンドラのバグ

Second Lifeは使ったことが無いので知らなかったのですが、IEを拡張してsecondlife://プロトコルを追加しているのですね。このプロトコルハンドラが脆弱でユーザIDを盗める脆弱性があるそうです。

Second Life is configured to handle ’secondlife://’ protocol urls. Internet Explorer, and browsers based on Internet Explorer, copy all information from a src or href attribute to launch the SecondLife application. Using this, a malicious website can specify an iframe or anchor tag which redirects login through a server not under Linden Lab control.

現在のところ修正中らしいです。

You can remove the association for the secondlife:// protocol until we release a fixed client by deleting the registry entry.

Second Lifeを利用している方は上記に記載されているようにWindowsレジストリを削除した方が良いと思います。

NoScriptのIE版があればiframeも禁止できるのですけどね。

PHPにもプロトコルハンドラを簡単に追加できるのですが、ハンドラの開発者がセキュリティ対策を行っていないと穴だらけになってしまいます。IEの場合も事情は一緒なのかも知れません。

プロトコルハンドラを拡張しているアプリ(主にネットワークゲーム?)には注意が必要なのかも知れません。

Content-Access-Controlヘッダ

Flashも同じような事ができるので、JavaScript(XMLHttpRequest)でもできるようにしてしまおう、という規格…

This restriction on “read” access to web resources is very strict and generally appropriate. However, there are scenarios where an application would like to “read” data from another resource on the web without these restrictions and in these scenarios the browser’s default “security sandbox” has to be extended or eased.

つまり「Same Originポリシー」を緩くする規格です。

使い方は簡単

Content-Access-Control: allow <*.example.org> exclude <*.public.example.org>
Content-Access-Control: allow <webmaster.public.example.org>

Means that every subdomain of example.org can access the resource including webmaster.public.example.org, but with the exclusion of all other subdomains of public.example.org.

Content-Access-Control: allow <example.org> <*.example.org>

Means that example.org and all its subdomains can access the resource.

です。選択的にアクセス可能なドメインをContent-Access-Controlヘッダで処理できる、という訳です。

セキュリティ的には「Same Originポリシー」を緩くするのはリスクが高くなる事を意味します。Webセキュリティの根幹である「Same Originポリシー」はどちらにしてもブラウザとプラグイン任せなので、少し緩くしても同じ、という考えなのでしょう。

XMLHttpRequestのプロキシは必要なくなります。確かに作り易くはなりますが必要なのか考えさせられます。