- 解説コラム「日本3大SNSのログイン画面について、SSL利用状況を検証する」
- JavaScript入門書の脆弱性
- 自伝:第1回 ブログが全ての始まりだった
- 記事広告:徳丸に仕事を依頼するには
お申し込みは、こちらから。申し込み頂くと配信済みのバックナンバーのURLとパスワードが送信され、お読み頂けます。
お申し込みは、こちらから。申し込み頂くと配信済みのバックナンバーのURLとパスワードが送信され、お読み頂けます。
HASHコンサルティング株式会社は徳丸が一人でやっておりますので、記事は徳丸が書きます。例外的に、どなたかの寄稿記事を載せる可能性はあり得ますが、その場合は著者名を明記いたします。
メールマガジンはHASHコンサルティング株式会社の営業活動の一環です。読者の皆様に有益な情報をお届けする代わりに、弊社の広告を配信させていただくものです。
これは正直分かりません。読者の方に有益なサービスや情報をお届けすることにより、結果として記事広告読者が増えればと考えます。
当メルマガの目的は宣伝ですので、個人情報取得は配信に最低限のものといたします。具体的には、住所や電話番号は入力欄がありません。その結果として、入力いただいた連絡先に、弊社から電話したりや手紙を送付することもありません。
ビジネス目的で弊社と連絡が取りたい場合には、問い合わせページがご利用いただけます。
ブログとメルマガは特性の異なるメディアですし、ブログによる情報発信を徳丸は好んでいますので、ブログは今後も続けます。
特に、緊急性の高い情報については、ブログにより広く・早く告知することが重要と考えます。また、いったんメルマガのみに配信した情報であっても、後に体裁を変更してブログに公開する可能性はあります。
メルマガのバックナンバーの取り扱いは現在検討中です。
学生・生徒・児童の場合は、企業名の代わりに所属の学校名か、単に「学生」、「なし」などと記入ください。記事広告を見ない場合は、企業名欄は空欄でも構いません。
記事広告をご購読いただいて結構ですが、その場合は上記を参考に企業名欄に記入してください。
お申し込みの際に、記事広告を希望しない方には、記事広告は配信されません。
それ以外に、弊社が競合と考える企業の方には、記事内容によっては記事広告の取捨をする可能性があります。ただし、そのようなケースはあまりないと予想しています。
記事広告以外の記事については、全員に同一の記事を配信いたします。
個人情報の取り扱いについては、個人情報保護方針を参照ください。
個人情報保護方針以外の規約は現在ありませんが、虚偽の情報による申し込みや、弊社コンテンツの不正利用等があった場合は、メルマガの購読を解除させていただく場合があります。
JavaScriptやCookieを無効にした状態でもメルマガの申し込みは可能です。ただし、アクセス解析を目的として、Google Analyticsが発行する第一者Cookieを利用しています。詳しくは個人情報保護方針を参照ください。
少なくとも当面の間は無料で配信する予定です。
日付 | 2012年04月21日(土曜日) |
時間 | 15時30分~16時10分 |
場所 | 札幌市産業振興センター |
演題 | 徳丸本に載っていないWebアプリケーションセキュリティ |
日付 | 2012年03月27日(金曜日) |
時間 | 19時00分~20時30分 |
場所 | 日本橋公会堂 |
演題 | ここが変だよ、グローバルスタンダードの脆弱性対策~入力値の考え方~ |
※リンク、ブックマーク等は、PDF直接ではなく、このページにお願いします。
SiteGuard | SiteGuard for Server | SiteGuard Lite | |
配置方式 | ネットワーク型 | ホスト型 | ホスト型 |
実装形態 | Proxy | Proxy | Apacheモジュール |
シグネチャ検査 | ○ | ○ | ○ |
ホワイトリスト検査 | ○ | ○ | |
Cookie暗号化 | ○ | ○ | |
セッション管理 | ○ | ○ | |
クローキング | ○ | ○ | |
ライセンス費用 | 178万円 | 79万円 | 約30万円 |
このスクリプトにはSQLインジェクション脆弱性があります。それをSiteGuard Liteで防御してみましょう。<?php session_start(); header('Content-Type: text/html; charset=UTF-8'); $author = $_GET['author']; $con = pg_connect("host=localhost dbname=wasbook user=postgres password=wasbook"); $sql = "SELECT * FROM books WHERE author ='$author' ORDER BY id"; $rs = pg_query($con, $sql); ?> // 以下略
http://example.jp/books.php?author='+and+cast((select+id||':'||pwd+from+users+offset+0+limit+1)+as+integer)>1--以下のようにブロックされています。
仮にscriptをブラックリストに指定したとしましょう。それでもまだ不十分です。<IMG>タグでXSSが発動することをご存じでしょうか?プログラムなどでは<IMG>タグは画像添付に必須であり、WAFで禁止することは難しいのが実情で、ブラックリスト方式の課題となっています。という箇所についてですが、XSS Cheat Sheetに出てくるimg要素によるXSSの攻撃パターンのうちの一つが以下です。
http://example.jp/books.php?author=jav%09ascript:alert('XSS');これについても、きちんとブロックしています。
SQLインジェクション対応の駄目な例として挙げられるのは、複文などの直接攻撃しか考慮していないケースです。簡単に言うと、master..execなどの直接攻撃のみ禁止しているWAFは甘く、union selectなどのunionインジェクションを考慮したWAFはまだマシであると言えます(攻撃者の観点が分かっているという意図でマシと記載しました)。マシなWAFは「union select」は考慮するが、「union/**/select」はほとんどのWAFは通り抜けるということですが、SiteGuard Liteはどうでしょうか。
このブラックリストを通り抜けるにはコメントを使用します。たとえば、union/**/selectではどうなるでしょうか? 残念ながらほとんどのWAFは通り抜けてしまいます。
author=17871+update+employee+set+number%3DREPLACE(cast(このパターンでも、SiteGuard Liteはブロックしました。
Providing a credit union is a valuable benefit, and at Southern Select CCU, it will not cost your company a thing.
出展: http://www.southernselectccu.com/JoinUs.aspx (won'tをwill notに変更)次に、ライザムーン攻撃についてもModSecurityはブロックしますが、以下の単純なパターンでもModSecurityはブロックしてしまいます。
author=17871+update極めつきとして、ModSecurityは以下もブロックします。
author=夏目漱石CRSには標準で「英数字以外が4文字連続するとブロック」というルールがあるからです。
SecRule "ARGS" "@rx \\W{4,}" "phase:2,log,capture,t:none,t:urlDecodeUni,block,id:960024,rev:2.2.3,msg:'SQL Character Anomaly Detection Alert - Repetative Non-Word Characters',logdata:%{tx.0},setvar:tx.anomaly_score=+%{tx.warning_anomaly_score},setvar:tx.sql_injection_score=+1,setvar:tx.msg=%{rule.msg},setvar:tx.%{rule.id}-WEB_ATTACK/RESTRICTED_SQL_CHARS-%{matched_var_name}=%{tx.0}"
SecRuleRemoveById 960024
ab -c 50 -n 1000 "http://example.jp/books.php?author=Shakespeare&zip=113-8663&addr=%E6%9D%B1%E4%BA%AC%E9%83%BD%E6%96%87%E4%BA%AC%E5%8C%BA%E6%9C%AC%E9%A7%92%E8%BE%BC2-28-8&tel=03-1234-5678"結果を以下に示します。
WAFなし | SiteGuard Liteあり | ModSecurityあり | |
秒間リクエスト数 | 30.05 | 29.94 | 27.56 |
相対性能 | 100% | 99.6% | 91.7% |
WAFなし | SiteGuard Liteあり | ModSecurityあり | |
秒間リクエスト数 | 365.34 | 284.85 | 127.80 |
相対性能 | 100% | 78.0% | 35.0% |
実運用に影響を与えない程度の控えめなブラックリストをチューニングして、それを全パラメータ共通で使用する。そうすれば、手間も掛らないし、機械化されたSQLインジェクション攻撃程度であれば十分な効力がある。それでも運用に影響が出るパラメタもある(ブログや掲示板など)が、そのパラメタだけはブラックリスト検査を除外して、その代わりしっかり脆弱性検査をして対策もアプリ側でとっておけばよい。【中略】SiteGuard Liteは、3年半に出現を予告した製品が、ようやく世の中に出てきたように私には見えましたw
また、WAFの低価格化は必須だ・・・というより、ホワイトリスト機能を使わないのであれば、安いWAFで十分だ。
日付 | 2011年10月14日(金曜日) |
時間 | 13時40分~14時20分 |
場所 | 東京工大大岡山キャンパス |
演題 | Webアプリケーションでパスワード保護はどこまでやればよいか |
日付 | 2011年09月10日(土曜日) |
時間 | 16時30分~17時10分 |
場所 | 大田区産業プラザ PiO |
演題 | 徳丸本に学ぶ 安全なPHPアプリ開発の鉄則2011 |