カテゴリー : 2012年 1月

[DoS攻撃] Teardrop攻撃(ティアドロップコウゲキ:Teardrop Attack)

Teardrop攻撃(ティアドロップコウゲキ:Teardrop Attack)について調べたメモ。

断片化されたIPパケットをつなぎ合わせる際の、TCP/IPの実装上の問題を突いた攻撃方法。ネットワーク上にデータを転送するとき、ネットワークによって決められている最大伝送単位(MTU)を超えるようなIPパケットは、複数の小さなIPパケットに分割されます。分割されたそれぞれのIPパケットには、分割される前のパケットのどの部分であるかを示すオフセット情報が含まれています。分割されたIPパケットを受け取った側は、このオフセット情報を元にしてIPパケットを組み立て、元のパケットを復元しようとします。
 Teardrop攻撃では、このオフセット情報を偽造することにより、オフセットが重複するような不正なIPパケットの断片を作成し、ターゲットとなるコンピュータに送信します。受信した側のコンピュータが、重複したIPパケットの断片をうまく処理できないというTCP/IPの実装上の問題を持っていた場合、システムはクラッシュしてしまうことがあります。この攻撃を防ぐためにはTCP/IPの実装上の問題を修正したパッチを当てる必要があります。

・引用元:Teardrop攻撃(ティアドロップコウゲキ。Teardrop Attack):RBB TODAY (ブロードバンド辞典) はてなブックマーク - Teardrop攻撃(ティアドロップコウゲキ。Teardrop Attack):RBB TODAY (ブロードバンド辞典)

分割されたIPパケット(インターネット上で送受信されるデータの単位)をつなぎ合わせる際の、TCP/IPの脆弱性を突いた攻撃手法。IPパケットに含まれる分割前のオフセットフィールド情報を偽造することで、システムを停止させる。

IPパケットによるデータ転送を行う場合、送信側で規定された最大伝送単位(MTU)を超えるIPパケットは、複数の小さなIPパケットに分割される。この分割されたIPパケットには、分割前のどの部分であるかを示すオフセット値が含まれており、この情報を元に、分割されたIPパケットを受信した側は、データを復元することができる。

Teardrop攻撃は、このオフセット値が重複するような不正なIPパケットの断片を偽造し、受信したPC(攻撃の標的)の処理を混乱させるものだ。TCP/IPのIPフラグメンテーション(断片化)の脆弱性を突くことで、データ再構築時にPCをクラッシュさせたりフリーズさせたりする。

対策としては、矛盾するオフセット値が含まれるデータを破棄するようにTCP/IPの実装を修正したり、TCP/IPの実装上の問題を修正したプログラムを適用するなどの対策が必要だ。

・引用元:Teardrop攻撃とは | 日立ソリューションズの情報セキュリティブログ はてなブックマーク - Teardrop攻撃とは | 日立ソリューションズの情報セキュリティブログ

[HTML/CSS] ウェブページ上でサイズ(px)を測るツール「MeasureIt!」 [Chrome][Firefox]

ウェブページ上でサイズを測るツール「MeasureIt!」が便利なのでご紹介します。

この拡張機能は、Chrome用のエクステンションと Firefox用のアドオンが存在します。

・Chrome用 DL:Chrome ウェブストア – MeasureIt!

・Firefox用 DL:MeasureIt :: Add-ons for Firefox はてなブックマーク - MeasureIt :: Add-ons for Firefox

・参考:ページ上でサイズを測る MeasureIt! -Google Chromeエクステンション- – YATのBlog はてなブックマーク - ページ上でサイズを測る MeasureIt! -Google Chromeエクステンション- - YATのBlog

以上です。
 

[Java] 日付・時刻情報を扱う Calendar クラス

Java で日付や時刻情報を扱う場合 Calendar クラスを使います。

Java

以上、Java の Calendar クラスを使っていく、現場の備忘録でした。

[フリーソフト] PNG画像を無劣化で圧縮できるWindows用アプリ「PNGGauntlet」

PNGを無劣化で圧縮できるWindows用フリーソフト「PNGGauntlet」が便利そうなのでメモ。

・DL:PNGGauntlet – PNG Compression Software | BenHollis.net はてなブックマーク - PNGGauntlet - PNG Compression Software | BenHollis.net

・参考:PNGを無劣化で圧縮できるWindowsソフト「PNGGauntlet」:phpspot開発日誌 はてなブックマーク - PNGを無劣化で圧縮できるWindowsソフト「PNGGauntlet」:phpspot開発日誌

Webサイトの表示速度を上げるためにも、できるだけ画像サイズを小さくするなどの工夫は必要ですよね。
 

簡単にGIFアニメーションを作れるウェブサービス「Picasion」

GIFアニメーションを作れるウェブサービス「Picasion」が簡単に使えて便利だったのでご紹介します。

Picasion – Create GIF animations online – Make an Animated GIF – GIF Animator はてなブックマーク - Picasion - Create GIF animations online - Make an Animated GIF - GIF Animator

「Image」から、アニメーションにしたい画像を複数選択して、「Size」や「Speed」を設定して、「Create animation」ボタンをクリックすると、すぐにGIFアニメーションが完成します。

以上です。
 

[Facebook] プロフィール画像のURLを色んなサイズで取得する

Facebookでプロフィール写真のURLを取得する方法をまとめてみました。

まず、プロフィール画像を取得する基本的なURL。

http://graph.facebook.com/ユーザID/picture

下記のように、画像サイズを指定することもできるみたいです。

http://graph.facebook.com/ユーザID/picture?type=large

typeパラメータに指定できる値は、4通りです。

・square (50x50)
 
・small (50 pixels wide, variable height)
 
・normal (100 pixels wide, variable height)
 
・large (about 200 pixels wide, variable height)

また、return_ssl_resources=1 というパラメータをつけるとSSLで画像のURLが取得できます。

http://graph.facebook.com/ユーザID/picture?return_ssl_resources=1

単純に、https://で始めてもOKみたい。

https://graph.facebook.com/ユーザID/picture

以下、情報ソース(Facebook公式)です。

You can specify the picture size you want with the type argument, which should be one of square (50×50), small (50 pixels wide, variable height), normal (100 pixels wide, variable height), and large (about 200 pixels wide, variable height):

http://graph.facebook.com/your_username/picture?type=large

If you need a picture to be returned over a secure connection, you can set the return_ssl_resources argument to 1:

http://graph.facebook.com/your_username/picture?return_ssl_resources=1

・引用元:Graph API – Facebook Developers

以上です。

[Ruby on Rails] フォームの submit ボタンを押した後に、確認用ダイアログを表示させる方法

Ruby on Rails 3.1 にて、form の submit ボタンを押した後に、確認用ダイアログを表示させる処理をご紹介します。

submit_tag に :confirm というパラメータでダイアログに表示させるメッセージを渡すだけでOKです。

submit_tag "Save", :confirm => "Are you sure?"
# => <input name='commit' type='submit' value='Save' data-confirm="Are you sure?" />

これで、submitボタンを押すと下記のようなダイアログが表示されます。

以上です。

参考情報

[PHP] mbstring.language=”japanese” で言語環境を日本語に設定

php.iniの mbstring.language を下記のように設定することで、言語環境を日本語にできるそうです。

mbstring.language="japanese"

mb_send_mail関数などの動作に影響する、とのこと。

・参考:PHP/tips/日本語環境php.ini設定 – yohgaki's wiki

[PHP] コマンドラインで phpinfo() を実行する方法

Linux のコマンドライン上で phpinfo() を実行する方法を教えてもらったのでメモ。

# php -r ‘phpinfo();’

出力はもちろんコマンドラインにされるのでかなり見にくいですが、すぐに確認したいときに覚えておくと便利かもしれませんね。

[Tomcat] ポート(Port)番号を変更する設定方法

Tomcat のポート番号を 8080 から 80 に変更したので、その設定方法をご紹介します。

tomcat/conf/server.xml

変更前

<!-- Define a non-SSL Coyote HTTP/1.1 Connector on port 8080 -->
<Connector port="8080"
		   maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
		   enableLookups="false" redirectPort="8443" acceptCount="100"
		   debug="0" connectionTimeout="20000" 
		   disableUploadTimeout="true" />

↓ port=”8080″ の部分を port=”80″ に書き換えます。

変更後

<Connector port="80"
		   maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
		   enableLookups="false" redirectPort="8443" acceptCount="100"
		   debug="0" connectionTimeout="20000" 
		   disableUploadTimeout="true" />