さて続き続き。
ちょい長いので記事をわけわけ。
なお、記事の分け方に一定のルールはありません
You can do it!! 元気出していきましょー!
セキュアなWebアプリのためのそのイーチ!
◇バグとセキュリティホール
○バグとは?
ー期待する動作と実際のプログラムの動作がことなること
ー人的ミスによって発生する!!
=> だから完全に消すのは無理!!でも減らせ。限界まで減らせ!!
○セキュリティホールとは?
システムの
・機密性
・完全性
・可用性
に影響を及ぼすバグ
=> つまりバグの一種。いってしまえばヤバいバグ。
==>> バグへらせばセキュリティホールへらせるじゃん。減らせ。限界まで減らせ!!
セキュリティホール=機密性、完全性、可用性に影響を及ぼす
バグなのでバグを減らすことで
結果的にセキュリティホールも減る。
☆☆重要
機密性、完全性、可用性
は重要なので覚えておくこと(キ、カ、カでおぼえてね♪)
◇入力値は信頼するんじゃない
新人:
この内容正しいフォームからおくられてきたからOKですよね?
とおしちゃいます♪
リーダー:
まて。
すーべーてーの入力値は操作可能!
よって信用するべからず!
今までうまれたすべての入力値とこれからうまれるすべての入力値を
チェックしたい。この手で(キリッ
この手でかどうかはさておき。
すべてのユーザ入力値は一切信用してはいけません
HTMLで入力制限かけてようが攻撃者はそんな壁を超えて悪意のあるコードを
送ってきます。
入力制限を回避する方法例は(回避を回避する方法にアラズ)
・ローカルHTMLの書き換え
ブラウザにうつしたWEBページをローカルPCに保存し、
HTMLを編集、再度ブラウザに表示して好きな値を送ることができる
・ブラウザの拡張機能によるHTMLの書き換え
ローカルではなくてブラウザの拡張機能によりHTMLを書き換えて
すきな値を送る方法
IE Developer Toolbar、Web Developerなどが使える
・ローカルプロキシ
Burp Proxy
ローカルでうごくプロキシサーバ
ブラウザ -> HTTPリクエスト -> Burp Proxy (HTTPリクエストを書き換え) -> サーバ
というふうに
Httpリクエスト/レスポンス、HTTPヘッダなどを書き換えて使うことができちゃう。
比較的簡単に扱えるので悪用されると怖い
・HTTPで直接通信する
telnetとか、ねぇ。httpリクエスト直におくれちゃうので
いくらでもすきな内容おくれちゃう
◇入力値は信頼するんじゃない2
新人:
まじですか。
じゃフォームとHTTPリクエストだけみとけば大丈夫ですよね?
チェックしときまーす。
リーダー:
まった。まだある!
あらゆるすべての、つまりアプリケーションが利用するすべての入力データが対象だ。
入力はフォームだけではない。
やつらはどこにでもいる。そうわれわれの足下にも。。。
足下かどうかはさておき。
・メール
メールリンクやメールを読み込んで出力するアプリなどは
メールが入力手段になる場合がある。
・データベース
DBに格納されたデータをアプリケーションが利用する場合、
格納データが安全ものであるかどうかチェックが必要。
格納する際に十分なチェックがされていなかったり、
DBのデータが壊れていたりする場合があるのでDBデータ=安全
であるとは言い切れない。
・ファイル
データファイルやログファイルなど安全性の検証が十分ではない場合がある。
例えば攻撃コードが含まれたログを解析したときに、コードが動き
攻撃につながることもある。
>>続きます
0 件のコメント:
コメントを投稿