セキュスペ
hogehoge.www.example.jp.の解決に対し、 応答がこうなる。 アンサーセクションANSWER SECTION hogehoge.www.example.jp. 86400 IN A なんでもいい 解決した結果。 ここは何でも良い。 権威セクションAUTHORITY SECTION www.example.jp. 86400 IN NS dns1.攻…
サポートの切れたOSやソフトウェア 脆弱性が見つかっても、脆弱性を解消するための修正プログラムが作成されないため危険。 ネットワークからの攻撃対策 ファイアウォール機器(企業) ブロードバンドルータ(個人) パーソナルファイアウォール スケアウェア 脅…
企業の情報資産を、許可なく持ち出さない 大切な情報は持ち出さない、仕事を家に持って帰らないこと。 情報漏えいの原因となった管理ミスの例 引越し後に個人情報の行方がわからなくなった 例:誤廃棄 受け取ったはずの個人情報が紛失した 受け渡し確認が不…
トロイの木馬 怖い機能 別のマルウェア(ウイルス)を次々に取り込む(ダウンローダとなる) 自分自身をアップデートする事で、ウイルス定義を無効化する ウイルス対策ソフトの無効化を試みる 自分自身を隠蔽する(rootkitとなる) 検知したら 業務パソコンの場…
preg_match('/example.com/',$url); これは$urlにexample.comが含まれることを確認する正規表現だが、 このように、example.comをファイル名に含むファイルを作っておくことで回避できる。http://wana.com/example.com.php 次に、/dir/test.phpのような、ス…
例えば、ショッピングサイトの場合 正規サイトの内容をiframeで偽懸賞サイトの上にかぶせる。このとき、偽懸賞サイトのの応募と正規サイトの購入ボタンの位置を合わせる事で、もし正規サイトにログインしているユーザがボタンを押したら意図せず商品を購入さ…
検索画面で、検索した文字列を //keywordはクエリdocument.write(keyword);や document.innerHTML=keyword; こうしてエスケープ処理せずに表示するとkeywordにscriptタグが書けるのでXSSが可能な場合がある。 安全なやり方 文字表示用のdivを作っておき、var…
他テーブルをUNIONで結合するとき、列名にNULLを用いる理由は UNIONは列の数を合わせる必要があるため。 NULLでなくても、'a'とか0でも構わない。たぶん文字列やDATE型等にはNULL、数値には0を使う。
SQLの実行結果がそのまま表示されないページでもSQLインジェクションが可能な場合がある。 例えば会員登録フォームで、「このIDはすでに使われています。」と出る時にkatoというIDのユーザがすでに居るとする。 kato'AND SUBSTR((SELECT pass FROM user WHER…
前の記事で書いたものは省略しています。 OSコマンドインジェクション 失敗例 「"」と「;」、「'」、「<」、 「>」、「|」、「 (空白)」を削除する関数を使っていた。 失敗の理由 コマンド引数に、入力された値を使用するときは、 シェルで特別な意味を持つ…
ウェブサーバ OS やソフトウェアの脆弱性情報を継続的に入手し、脆弱性への対処を行う ウェブサーバをリモート操作する際の認証方法として、パスワード認証以外の方法を検討する 総当りこうげきとうにで突破されるおそれがある。 暗号技術に基づいた公開鍵認…
SQLインジェクション 根本的な対策 SQL 文の組み立ては全てプレースホルダで実装する プレースホルダに実際の値を割り当てる処理はバインドと呼ばれる。 DBエンジンがバインドする静的プレースホルダが望ましい。 SQL 文を動的プレースホルダで生成する場合…
グローバル変数の同期を取る方法を書くが、volatileは意味をなさないそうだ。 なぜか: Javaにはメインメモリとスレッドごとのキャッシュ領域があり、 synchronizedはメインメモリのフィールドに直接ロックをかける。 一方、volatileはスレッドのキャッシュ…