OP25B(Outbound Port 25 Blocking)

スパムメールによるネットワーク負荷を減らす取り組み。
プロバイダが加入者の動的IPから外部ネットワークのSMTPサーバーに25番ポートで接続できないようにフィルタリングする。これによってスパムメール配信業者は、固定IPを使わざるを得なくなるので事実上送信数を減らせる。
ただ、一般ユーザーが外部ネットワークのSMTPサーバーへ接続できないのは不便なのでサブミッションポート(587番ポート)への接続を行うことになる。
懸念材料としては、
・587番ポートで待ち受けしていないSMTPサーバーへは接続できなくなる方向に今後進んでいくので、メールサーバーを管理するサーバー管理者は587番ポートでの待ち受けを検討する必要がある。
・自宅サーバーを運営しているユーザーにおいてはSMTPサーバーの運用が事実上できなくなるので、固定IPアドレスで運用するように変更するか、OP25Bの取り組みを行わないプロバイダへ移行するか、587番ポートで待ち受けするSMTP中継サーバーの利用を検討しなければならない。
niftyのOP25B説明ページ

Paros

最新バージョンは、3.2.12である。
使ってみた感じでは、Script Insertionを中心的にテストを行っているようだ。実際に運用中のWebアプリケーションの不具合をチェックすることができたので結構使えると思う。

使い方はこちらを参考にされたい。

Webアプリケーションの脆弱性

Webアプリケーションには主に14の脆弱性が含まれるらしい。

・XSS(Cross Site Scripting)
不正なスクリプトを埋め込ませることでクッキー情報などを他サイトに送りつけ不正取得などを可能にする。
参考サイト:マルチバイトの落とし穴

・Script Insertion
リクエスト内容がそのまま表示されてしまう脆弱性を悪用し、Javascriptをはじめとするスクリプトを埋め込むことで掲示板などを訪れたユーザーのCookie情報を取得したり、フィッシングを仕掛けたりできる。

・SQL Injection
正規のSQLに不正なコードを埋め込むことで、異なる条件による問い合わせや、まったく予期されない問い合わせを可能にする攻撃手法。

・CSRF(Cross Site Request Forgeries)

・ヌルバイト攻撃
ヌルバイトは文字列の終了を示すC言語の仕様を悪用した攻撃手法。バイナリセーフでない場合には、ヌルバイト以降に不正なコードを仕込むことでコード内に含まれるチェック機構をバイパスできる。

・Directory Traversal
予期しないディレクトリへのアクセスを可能にする攻撃手法。チェックさえ正しくされていればこのようなことは起こらないが、上位ディレクトリへのアクセスを許してしまうことで、Webアプリケーション実行ユーザーが許可されているファイルを取得できてしまう。

・HTTPレスポンス分割攻撃

・インクルード攻撃
PHPが外部URIをインクルードできてしまうため、他サイトの悪意あるコードを実行できてしまう。includeファイルにユーザーが入力可能な文字列を含めてしまうということ自体がそもそも脆弱性である。

・eval利用攻撃

・外部コマンド実行攻撃

・ファイルアップロード攻撃

・セッションハイジャック
セッションキーを無理やり指定してプログラムを実行させ、実行してしまったユーザーのセッション情報を後ですべて取得する方法。

・スパムメール踏み台攻撃
メール送信フォームが任意のユーザーに送れる場合に利用可能な攻撃方法。メール送信フォーム自体がスパムメール送信装置となってしまう。

XSSとSQL Injectionはかなり有名だが、ほかにも多くの脆弱性が考えられるとは。
PHPサイバーテロの技法にはこれらがサンプルコードとともに掲載されているので非常に分かりやすい。

プログラマの三大美徳

ラリーウォール先生が著した三大美徳について。プログラマは、以下の気質を持つべきとされる。
・無精
無駄なことはしない。つまりめんどくさがり屋であること。めんどくさいと思えば、冗長化したコーディングは行わない。
・短気
短気は損気とも言うが、短気であることはより処理速度の速いコーディングをできるようになるものだ。ただ最近はマシンのコストも下がってきたので、マシン頼みにすることもできるわけだが、経済的にも環境的にもよくないだろう。
・傲慢
傲慢であれば他人にケチをつけられないコーディングをできるようになる。
いずれも参考ページをもとに自分なりの解釈でもって書いてみた。自分もラリーウォール先生の教えに近づけるよう努力したい。

マスターブートレコーダーがとんだ場合は

Fedora Coreをインストールするとgrubというブートローダーがインストールされる。
このあとにWindowsでリカバリーをかけると、場合によってはMBRを初期化しないケースがある。
その場合、grubだけが起動してしまって、その次のステージに進むことができない。
このようなケースには次の方法を利用すると解決できた。
grub内で・・・
chainloader +1
boot

Windowsが立ち上がったあとで・・
Windows回復コンソールを使う。
fixmbrコマンドを利用してMBRを修復する。

次の文献を参考にされたい。
http://www.geocities.co.jp/SiliconValley-Bay/3897/grub/grub-3.html
http://support.microsoft.com/default.aspx?scid=kb;ja;314058

Linux 2GBの壁

Linuxのバックアップソフトcpioには2GB以上のファイルもしくは60kByte以上のユーザーIDをもつイメージを展開できない。
展開しようとすると「cpio: standard input is closed: Value too large for defined data type」のようなエラーが発生する。この理由は符号付きinteger(2の32乗/2-1)によるもの。
Fedora Coreでは3のパッケージ(cpio-2.5-7)でこの問題が発生するが4ではcpioのバージョンがアップグレード(cpio-2.6-7)されており、こちらでは問題が解決されている。

富豪的?平民的?貧民的?

コーディングの仕方についてのもの。
最近はコンピュータリソースが昔ほどシビアでないので、多少無駄なことをやっても可読性を重視すべきだというのが平民的プログラミング。
平民的なプログラミングをする人間にとって見れば、組み込み系開発を行っている人間を貧民的と言う。ある意味古典的な職人芸だとも言う。
富豪的なプログラミングは、あきらかに無駄な処理を含むプログラミング。通常、logNのオーダーで処理すべきところをN2にするようなプログラム。
自分はどちらかといえば、平民的より貧民的に傾斜したプログラミングをするのであろう。

Internet Explorerのワナ

Internet Explorerはどうも再描画をする際に再描画に使用したメモリを開放しないようだ。
たとえば、定期的にrefreshするようなページをずっと表示させ続けると、メモリ領域を食いつぶして、スワップし始めてしまう。
この問題は、Windows Meでも見られたけれども、Microsoft製品によく見られる仕様なのかもしれない。
Internet Explorer 7では改善されていることを切に願うが、そもそも別のブラウザを使うときなのかもしれない。

activeモードとpassiveモード

FTPにはactiveモードとpassiveモードがある。
これらはlinuxのftpコマンドではpassiveコマンドによって切り替えられる。
-nオプションを使うことでFTP通信を自動化することができる。
以下をhogehogeで保存する。
————-hogehoge———
open hogehoge.com
user hoge_user hoge_pass
binary
get hoge_file
bye
——————————

ftp -n < hogehoge
といった感じだ。

awstatsを試してみた

ログ解析ソフトはずっとanalogを愛用してきたが、awstatsが高速に処理できる上にかなり綺麗であるので、試してみました。
生成の速度が早いこともあり、動的に過去のログも表示できるのだが、IIS環境下に限っては問題がありそうだ。まず、デフォルトの拡張IISログでは解析できない。ドキュメンテーションを見ると、オプション指定に制限があるらしい。
具体的には以下のように変更すると良い
(W3C拡張ログ形式)

date
time
c-ip
cs-username
s-ip
s-port
cs-method
cs-uri-stem
cs-uri-query
cs(User-Agent)


(変更後のログ方式)

date
time
c-ip
cs-username
cs-method
cs-uri-stem
cs-uri-query
cs-status
sc-bytes
cs-version
cs(User-Agent)
cs(Referer)

次に、analogでいう、LOGTIMEOFFSETの項目がない。これはIISがGMTでの時刻を記録するためで、これを調整するために項目がないと。。。
まぁ、IISがGMTで保存すること自体が問題なわけですが。