【Webセキュリティの教科書②】「クッキー機能プラスα」と、典型的な攻撃パターンの一つ「SQLインジェクション」
こんにちは、ペンギン男です🐧
セキュリティというと暗号技術なんかもカバーしていると聞いたので、そんな側面からも関心ありました。しかし、そんなことに着手できるのは、先の先のようです💦小さいことからコツコツとです(by 西川きよし師匠)
出典はアマゾンさん。
【目次】
(ページネーションはkindleでの表記に従います)
クッキーの機能を少しだけ掘り下げ。expire属性とsecure属性以外の属性。
「属性」というと、なんだか特殊な語感ありますが、ここでは、「機能」くらいの意味合いです。これだけ耳にするクッキーなので、残りの属性も併せて紹介。ただし、httpOnly属性以外は、セキュリティ目的には、直接関係ないようです。
- domain属性→クッキーが送信されるドメインを指定する属性。しかし、サブドメインに送信されてはいけないクッキーを使いたい場合は、ドメイン指定はダメなのだとか。あんまり使い勝手が良さそうには思えませんが、もしかしたら、それなりに古い技術なのかも。
- path属性→サブドメイン以下にクッキーが送信されるような制限をしたい場合に使用。domain属性だとクッキーが送信される範囲が大きいので、それを限定した用途のよう。
- httpOnly属性→JavaScriptからクッキーの値を使用できなくなります。
クッキー技術は奥が深そう。クッキーだけで本が一つ書けるのでは💦
脆弱性を悪用する代表的な攻撃手法を二つ
クロスサイトスクリプティング
No.75
Webサイトを経由してユーザーにブラウザ上で動作する不正なスクリプトを送り込む攻撃のこと。
ちなみにHTMLなどの静的ページは対象外で、動的ページが問題になるようです。
例を一部割愛して挙げてみると
①http://zeijaku.comにマルウェアを仕込む↓
②http://kougeki.netにユーザーがアクセス↓
③上記②のトップページに次のソースを打ち込む↓
④<a href=“http://zeijaku.com/komatta l.cgi?name=<script>alert(“hello”);</script>ここをクリック</a>↓
⑤ユーザーがhttp://kougeki.net上の「ここをクリック」というリンクをクリックすると、http://kougeki.netからhttp://zeijaku.comに遷移↓
⑥http://zeijaku.comで、ユーザーが新規に入力した内容を、そのまま盗む
とにかく、アンカーテキストを活用して、マルウェアを仕込んだサイトに呼び込む手口。
SQLインジェクション
SQL機能を利用して、パスワードなどを書き換えて、情報漏洩などを狙う手口。
No.80
SELECT * FROM USER_DB WHERE usid =‘nakayama’ AND pass=‘12345678’ OR ‘1’ = ‘1’
「OR ‘1’ = ‘1’」によって、入力内容が常に「真」となり、「なかやま」さんで、パスワードが「12345678」の方の情報が抽出されてしまいます💦
HTTPレスポンス上のクッキー関連用語
セキュリティというと、どうしてもネットワーク系のナレッジが必要になります。しかし、ネットワーク系の学習をしようとなると、かなりな熱量が必要となること予想されるので、極力、クライアント側のだけで収めてきました。とはいえ、サーバとのやりとりの無視は出来ないし、その記録であるHTTPレスポンスはある程度読めたほうがよいのは確か。
ここでは、自分の備忘録の意味合いもあって、クッキー関連だけ抽出。
No.93
NAME=VALUE→クッキーにつける名前とその値
Expires=DATE→クッキーの有効期限(とくに指定のない場合はWebブラウザ終了時まで)
Max-Age=DATE→クッキーの残存寿命を秒数で指定(Max-Age=100なら100秒後にクッキー消去)
Domain=DOMAIN→クッキーの適用対象となるドメイン名(特に指定のない場合は、クッキーを生成したWebサーバーのドメイン名)
Secure→HTTPSで通信している場合のみクッキーを送信する
httpOnly→クッキーをJavascriptからアクセスできないよう制限する
最後に
あまり手を広げ過ぎても、作業が追いつかないのは分かるのですが、こういう内容に触れると、多かれ少なかれ、急いでネットワーク系のナレッジは齧っておいたほうが良いような洗脳を受けます💦
#Web担当者のためのセキュリティの教科書
#クッキー
#クラスサイトスクリプティング