セキュリティ


2008年6月 2日

Script Insertion

スクリプト注入。

掲示板などの書き込みができるサイトにおいてサニタイジング(無害化:たとえば、エンコーディングなどの処理)が不十分である場合にスクリプトが書き込まれ、それを閲覧したユーザーがスクリプトを実行してしまう。

Webアプリケーションの脆弱性も参照のこと。

2008年5月 1日

SHA-1 Broken

以前、SHA-1の暗号アルゴリズムのハッシュ値が衝突するというニュースが駆け巡ってどうやってDBへパスワードを保持するときにどの暗号化方式を使えばよいか迷ったことがある。

詳しい概要については、@ITにて参考にすることができる。

2007年7月 3日

セキュリティと利便性

つい先日、メインバンクの新生銀行のログイン方法が強化されて、口座番号+パスワード+ログインパスワードの従来の認証パターンに乱数表による認証が追加された。

おそらく推測されやすいパスワードによる不正アクセスに対応したものなのかもしれないが、さすがに乱数表を入れられてしまうと覚えられないので乱数表を持ち歩かなきゃいけなくなってしまう。

乱数表をなくしてもログインされることはないだろうけど、再発行されるまでログインできない。

セキュリティ強度を上げれば使いにくいシステムになることは仕方ないわけだけど、ユーザーのリスク認識に応じてセキュリティ強度を選べるようにしてほしい。

2006年9月21日

様々な攻撃手法

ブルート・フォース攻撃 総当り攻撃。効率が最も悪い。

Dos攻撃 特定のホストまたはネットワークへのネットワーク負荷を多くすることで、事実上サービス停止にする攻撃。

2006年6月11日

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サイバーテロの技法にはこれらがサンプルコードとともに掲載されているので非常に分かりやすい。