WASF2008



Similar documents
為 が 行 われるおそれがある 場 合 に 都 道 府 県 公 安 委 員 会 がその 指 定 暴 力 団 等 を 特 定 抗 争 指 定 暴 力 団 等 として 指 定 し その 所 属 する 指 定 暴 力 団 員 が 警 戒 区 域 内 において 暴 力 団 の 事 務 所 を 新 たに 設

Ver 改 訂 日 付 改 訂 内 容 1

Microsoft Word - 不正アクセス行為の禁止等に関する法律等に基づく公安

Microsoft PowerPoint - 報告書(概要).ppt

●労働基準法等の一部を改正する法律案

Taro-データ公安委員会相互協力事

ていることから それに 先 行 する 形 で 下 請 業 者 についても 対 策 を 講 じることとしまし た 本 県 としましては それまでの 間 に 未 加 入 の 建 設 業 者 に 加 入 していただきますよう 28 年 4 月 から 実 施 することとしました 問 6 公 共 工 事 の

社会保険加入促進計画に盛込むべき内容

(別紙3)保険会社向けの総合的な監督指針の一部を改正する(案)

Microsoft Word - 第3章.doc

いう )は 警 告 をしたときは 速 やかに その 内 容 及 び 日 時 を 当 該 警 告 を 求 める 旨 の 申 出 をした 者 に 通 知 しなければならないこととされ また 警 告 をし なかったときは 速 やかに その 旨 及 び 理 由 を 当 該 警 告 を 求 める 旨 の 申

< 目 次 > 8. 雇 用 保 険 高 年 齢 雇 用 継 続 給 付 27 ( 育 児 休 業 給 付 介 護 休 業 給 付 ) 8.1 高 年 齢 雇 用 継 続 給 付 画 面 のマイナンバー 設 定 高 年 齢 雇 用 継 続 給 付 の 電 子 申 請 高

川崎市木造住宅耐震診断助成金交付要綱

目 次 1. 論 理 関 数 IF IF の 概 要 論 理 式 の 種 類 等 号 不 等 号 具 体 的 な 使 い 方 ネスト 複 数 の 条 件 を 記 述...

PowerPoint プレゼンテーション

KINGSOFT Office 2016 動 作 環 境 対 応 日 本 語 版 版 共 通 利 用 上 記 動 作 以 上 以 上 空 容 量 以 上 他 接 続 環 境 推 奨 必 要 2

スライド 1

Microsoft Word - 19年度(行個)答申第94号.doc

タイトルを1~2行で入力 (長文の場合はフォントサイズを縮小)

<4D F736F F D20D8BDB8CFC8BCDED2DDC482A882E682D1BADDCCDFD7B2B1DDBD8B4B92F E646F63>

* 解 雇 の 合 理 性 相 当 性 は 整 理 解 雇 の 場 合 には 1 整 理 解 雇 の 必 要 性 2 人 員 選 択 の 相 当 性 3 解 雇 回 避 努 力 義 務 の 履 行 4 手 続 きの 相 当 性 の 四 要 件 ( 要 素 )で 判 断 され る 部 門 閉 鎖 型

(6) 事 務 局 職 場 積 立 NISAの 運 営 に 係 る 以 下 の 事 務 等 を 担 当 する 事 業 主 等 の 組 織 ( 当 該 事 務 を 代 行 する 組 織 を 含 む )をいう イ 利 用 者 からの 諸 届 出 受 付 事 務 ロ 利 用 者 への 諸 連 絡 事 務

(1)1オールゼロ 記 録 ケース 厚 生 年 金 期 間 A B 及 びCに 係 る 旧 厚 生 年 金 保 険 法 の 老 齢 年 金 ( 以 下 旧 厚 老 という )の 受 給 者 に 時 効 特 例 法 施 行 後 厚 生 年 金 期 間 Dが 判 明 した Bは 事 業 所 記 号 が

目 次 1. 積 算 内 訳 書 に 関 する 留 意 事 項 1 ページ 2. 積 算 内 訳 書 のダウンロード 3 ページ 3. 積 算 内 訳 書 の 作 成 (Excel 2003の 場 合 ) 6 ページ 4. 積 算 内 訳 書 の 作 成 (Excel 2007の 場 合 ) 13

<4D F736F F D D3188C091538AC7979D8B4B92F F292B98CF092CA81698A94816A2E646F63>

01_07_01 データのインポート_エクスポート_1

Microsoft Word - 目次.doc

スライド 1

<4D F736F F F696E74202D E36816A984A93AD8C5F96F CC837C A815B C E707074>

目 次 電 子 申 請 を 使 用 した 申 請 の 流 れ 1ページ 申 請 書 ( 概 算 保 険 料 申 告 書 )の 作 成 2ページ 作 成 した 申 請 書 の 送 信 31ページ 状 況 照 会 電 子 納 付 を 行 う 62ページ 返 送 書 類 の 取 得 75ページ お 問 い

Taro-2220(修正).jtd

要 な 指 示 をさせることができる ( 検 査 ) 第 8 条 甲 は 乙 の 業 務 にかかる 契 約 履 行 状 況 について 作 業 完 了 後 10 日 以 内 に 検 査 を 行 うものとする ( 発 生 した 著 作 権 等 の 帰 属 ) 第 9 条 業 務 によって 甲 が 乙 に

独立行政法人国立病院機構呉医療センター医療機器安全管理規程

SQLインジェクション対策再考

預 金 を 確 保 しつつ 資 金 調 達 手 段 も 確 保 する 収 益 性 を 示 す 指 標 として 営 業 利 益 率 を 採 用 し 営 業 利 益 率 の 目 安 となる 数 値 を 公 表 する 株 主 の 皆 様 への 還 元 については 持 続 的 な 成 長 による 配 当 可

PowerPoint プレゼンテーション

Microsoft Word - 12 職員退職手当規程_H 改正_

( 別 紙 ) 以 下 法 とあるのは 改 正 法 第 5 条 の 規 定 による 改 正 後 の 健 康 保 険 法 を 指 す ( 施 行 期 日 は 平 成 28 年 4 月 1 日 ) 1. 標 準 報 酬 月 額 の 等 級 区 分 の 追 加 について 問 1 法 改 正 により 追 加

原 則 として 事 業 主 は 従 業 員 から 扶 養 控 除 等 申 告 書 の 提 出 を 受 けた 後 に 給 与 の ( 事 業 主 )の 番 号 を 記 載 しなければならない ただし 事 業 主 が 人 の 場 合 には 人 番 号 は 一 般 に 公 表 されている 番 号 であるた

<4D F736F F D208DE3905F8D8291AC8B5A8CA48A948EAE89EF8ED0208BC696B18BA492CA8E64976C8F BD90AC E378C8E89FC92F994C5816A>

Microsoft Word - 20ガイドラインリーフレット案4ページ

【労働保険事務組合事務処理規約】

Microsoft Word - ★HP版平成27年度検査の結果

<4D F736F F D2095BD90AC E D738FEE816A939A905C91E D862E646F63>

<819A955D89BF92B28F BC690ED97AA8EBA81418FA48BC682CC8A8890AB89BB816A32322E786C7378>

する 婦 人 相 談 所 その 他 適 切 な 施 設 による 支 援 の 明 記 禁 止 命 令 等 をすることが できる 公 安 委 員 会 等 の 拡 大 等 の 措 置 が 講 じられたものである 第 2 改 正 法 の 概 要 1 電 子 メールを 送 信 する 行 為 の 規 制 ( 法

ができます 4. 対 象 取 引 の 範 囲 第 1 項 のポイント 付 与 の 具 体 的 な 条 件 対 象 取 引 自 体 の 条 件 は 各 加 盟 店 が 定 めます 5.ポイントサービスの 利 用 終 了 その 他 いかなる 理 由 によっても 付 与 されたポイントを 換 金 すること

臨 床 研 究 事 案 に 関 する 主 な 報 道 概 要 ディオバン 事 案 白 血 病 治 療 薬 タシグナ 事 案 (SIGN 試 験 ) ノバルティス 社 の 高 血 圧 症 治 療 薬 ディオバンに 係 る 臨 床 研 究 において データ 操 作 等 があり 研 究 結 果 の 信 頼

(現行版)工事成績書と評定表をあわせた_docx

Microsoft Word -

平成16年年金制度改正 ~年金の昔・今・未来を考える~

第4回税制調査会 総4-1

就 業 規 則 ( 福 利 厚 生 ) 第 章 福 利 厚 生 ( 死 亡 弔 慰 金 等 ) 第 条 法 人 が 群 馬 県 社 会 福 祉 協 議 会 民 間 社 会 福 祉 施 設 等 職 員 共 済 規 程 に 基 づき 群 馬 県 社 会 福 祉 協 議 会 との 間 において 締 結 す

公 的 年 金 制 度 について 制 度 の 持 続 可 能 性 を 高 め 将 来 の 世 代 の 給 付 水 準 の 確 保 等 を 図 るため 持 続 可 能 な 社 会 保 障 制 度 の 確 立 を 図 るための 改 革 の 推 進 に 関 する 法 律 に 基 づく 社 会 経 済 情

続 に 基 づく 一 般 競 争 ( 指 名 競 争 ) 参 加 資 格 の 再 認 定 を 受 けていること ) c) 会 社 更 生 法 に 基 づき 更 生 手 続 開 始 の 申 立 てがなされている 者 又 は 民 事 再 生 法 に 基 づき 再 生 手 続 開 始 の 申 立 てがなさ

った 場 合 など 監 事 の 任 務 懈 怠 の 場 合 は その 程 度 に 応 じて 業 績 勘 案 率 を 減 算 する (8) 役 員 の 法 人 に 対 する 特 段 の 貢 献 が 認 められる 場 合 は その 程 度 に 応 じて 業 績 勘 案 率 を 加 算 することができる

Microsoft Word 役員選挙規程.doc

Microsoft Word  要綱.doc

Taro-1-14A記載例.jtd

定款

しかし 主 に 欧 州 の 一 部 の 回 答 者 は 受 託 責 任 について 資 源 配 分 の 意 思 決 定 の 有 用 性 とは 独 立 の 財 務 報 告 の 目 的 とすべきであると 回 答 した 本 ED に 対 する ASBJ のコメント レターにおける 意 見 経 営 者 の 受

福 山 市 では, 福 山 市 民 の 安 全 に 関 する 条 例 ( 平 成 10 年 条 例 第 12 号 )に 基 づき, 安 全 で 住 みよい 地 域 社 会 の 形 成 を 推 進 しています また, 各 地 域 では, 防 犯 を 始 め 様 々な 安 心 安 全 活 動 に 熱 心

者 が 在 学 した 期 間 の 年 数 を 乗 じて 得 た 額 から 当 該 者 が 在 学 した 期 間 に 納 付 すべき 授 業 料 の 総 額 を 控 除 した 額 を 徴 収 するものとする 3 在 学 生 が 長 期 履 修 学 生 として 認 められた 場 合 の 授 業 料 の

スライド 1

●不正アクセス行為の禁止等に関する法律の一部を改正する法律案

< 現 在 の 我 が 国 D&O 保 険 の 基 本 的 な 設 計 (イメージ)> < 一 般 的 な 補 償 の 範 囲 の 概 要 > 請 求 の 形 態 会 社 の 役 員 会 社 による 請 求 に 対 する 損 免 責 事 由 の 場 合 に 害 賠 償 請 求 は 補 償 されず(

1. アクセスする 2. 簡 易 検 索 画 面 (fig. 1) アクセスすると 最 初 に 出 る 画 面 です 検 索 語 入 力 ボックスにキーワードを 入 力 して 論 文 検 索 ボタンをクリックし ます 3. ボックス 下 部 のチェック 項

の 購 入 費 又 は 賃 借 料 (2) 専 用 ポール 等 機 器 の 設 置 工 事 費 (3) ケーブル 設 置 工 事 費 (4) 防 犯 カメラの 設 置 を 示 す 看 板 等 の 設 置 費 (5) その 他 設 置 に 必 要 な 経 費 ( 補 助 金 の 額 ) 第 6 条 補

第2回 制度設計専門会合 事務局提出資料

<4D F736F F D20819C486F70658F6F93588ED297708AC7979D89E696CA837D836A B E A2E646F63>

(3) その 他 市 長 が 必 要 と 認 める 書 類 ( 補 助 金 の 交 付 決 定 ) 第 6 条 市 長 は 前 条 の 申 請 書 を 受 理 したときは 速 やかにその 内 容 を 審 査 し 補 助 金 を 交 付 すべきものと 認 めたときは 規 則 第 7 条 に 規 定 す

Q10 適 用 年 度 の 前 事 業 年 度 末 日 に 雇 用 者 がいない 場 合 には 雇 用 増 加 割 合 が 算 出 できないため 適 用 年 度 において 雇 用 促 進 税 制 の 適 用 を 受 けることはできな いのか Q11 新 設 法 人 や 新 たに 事 業 を 開 始

目 次 表 紙... 1 目 次... 2 改 訂 記 録 目 的 対 象 製 造 部 門 品 質 部 門 組 織 PET 薬 剤 製 造 施 設 ( 施 設 長 )の 責 務 製 造 管 理 者 の 責 務... 7

通 知 カード と 個 人 番 号 カード の 違 い 2 通 知 カード ( 紙 )/H27.10 個 人 番 号 カード (ICカード)/H28.1 様 式 (おもて) (うら) 作 成 交 付 主 な 記 載 事 項 全 国 ( 外 国 人 含 む)に 郵 送 で 配 布 希 望 者 に 交

Ⅰ 調 査 の 概 要 1 目 的 義 務 教 育 の 機 会 均 等 その 水 準 の 維 持 向 上 の 観 点 から 的 な 児 童 生 徒 の 学 力 や 学 習 状 況 を 把 握 分 析 し 教 育 施 策 の 成 果 課 題 を 検 証 し その 改 善 を 図 るもに 学 校 におけ

加 算 税 制 度 の 見 直 し 等 1. 現 行 制 度 の 概 要 関 税 においては 国 税 ( 輸 入 貨 物 に 対 する 内 国 消 費 税 を 含 む 以 下 同 じ ) の 制 度 と 同 様 の 過 少 申 告 加 算 税 無 申 告 加 算 税 及 び 重 加 算 税 の 制

1. 前 払 式 支 払 手 段 サーバ 型 の 前 払 式 支 払 手 段 に 関 する 利 用 者 保 護 等 発 行 者 があらかじめ 利 用 者 から 資 金 を 受 け 取 り 財 サービスを 受 ける 際 の 支 払 手 段 として 前 払 式 支 払 手 段 が 発 行 される 場 合

岡山県警察用航空機の運用等に関する訓令

能勢町市街化調整区域における地区計画のガイドライン

1

2 1.ヒアリング 対 象 (1) 対 象 範 囲 分 類 年 金 医 療 保 険 雇 用 保 険 税 備 考 厚 生 年 金 の 資 格 喪 失 国 民 年 金 の 加 入 老 齢 給 付 裁 定 請 求 など 健 康 保 険 の 資 格 喪 失 国 民 健 康 保 険 の 加 入 健 康 保 険

平 成 27 年 11 月 ~ 平 成 28 年 4 月 に 公 開 の 対 象 となった 専 門 協 議 等 における 各 専 門 委 員 等 の 寄 附 金 契 約 金 等 の 受 取 状 況 審 査 ( 別 紙 ) 専 門 協 議 等 の 件 数 専 門 委 員 数 500 万 円 超 の 受

研究者情報データベース

企業におけるマイナンバーのセキュリティに関する実態調査

5 消 防 通 信 指 令 システム 側 に 作 業 が 発 生 した 場 合 ( 通 信 プログラム 改 修 対 向 テスト) 消 防 通 信 指 令 システム 業 者 側 の 費 用 は 本 構 築 費 用 に 含 まれるので しょうか 仕 様 書 P8 8 機 能 要 件 (4) 他 システム

国 家 公 務 員 の 年 金 払 い 退 職 給 付 の 創 設 について 検 討 を 進 めるものとする 平 成 19 年 法 案 をベースに 一 元 化 の 具 体 的 内 容 について 検 討 する 関 係 省 庁 間 で 調 整 の 上 平 成 24 年 通 常 国 会 への 法 案 提

現 行 工 業 地 域 準 工 業 地 域 商 業 地 域 近 隣 商 業 地 域 改 正 後 準 工 業 地 域 ( 特 別 業 務 地 区 ( 第 2 種 ) 及 び 指 定 集 積 区 域 を 除 く) 近 隣 商 業 地 域 2 / 7

SXF 仕 様 実 装 規 約 版 ( 幾 何 検 定 編 ) 新 旧 対 照 表 2013/3/26 文 言 変 更 p.12(1. 基 本 事 項 ) (5)SXF 入 出 力 バージョン Ver.2 形 式 と Ver.3.0 形 式 および Ver.3.1 形 式 の 入 出 力 機 能 を

平成27年度大学改革推進等補助金(大学改革推進事業)交付申請書等作成・提出要領

Microsoft Word - 参考資料.doc

平成19年9月改定

マネジメントシステム 認 証 規 則 目 次 1 章 総 則 1.1 一 般 2 章 マネジメントシステムの 登 録 2.1 一 般 2.2 登 録 原 簿 2.3 登 録 証 書 2.4 登 録 マークの 使 用 及 び 認 証 の 引 用 2.5 登 録 維 持 2.6 登 録 継 続 2.7

様式(補助金)

b) 参 加 表 明 書 の 提 出 時 において 東 北 地 方 整 備 局 ( 港 湾 空 港 関 係 を 除 く) における 平 成 年 度 土 木 関 係 建 設 コンサルタント 業 務 に 係 る 一 般 競 争 ( 指 名 競 争 ) 参 加 資 格 の 認 定 を 受 けて

目 次 1. 検 討 会 ( 第 3 回 )までの 取 消 料 に 関 する 論 点...P 海 外 募 集 型 企 画 旅 行 の 取 消 料 について...P4~ 海 外 募 集 型 企 画 旅 行 の 最 少 催 行 人 員 未 達 の 場 合 の 解 除 権 行 使

text

第 8 条 乙 は 甲 に 対 し 仕 様 書 に 定 める 期 日 までに 所 定 の 成 果 物 を 検 収 依 頼 書 と 共 に 納 入 する 2 甲 は 前 項 に 定 める 納 入 後 10 日 以 内 に 検 査 を 行 うものとする 3 検 査 不 合 格 となった 場 合 甲 は

セルフメディケーション推進のための一般用医薬品等に関する所得控除制度の創設(個別要望事項:HP掲載用)

H28記入説明書(納付金・調整金)8

2 出 願 資 格 審 査 前 記 1の 出 願 資 格 (5) 又 は(6) により 出 願 を 希 望 する 者 には, 出 願 に 先 立 ち 出 願 資 格 審 査 を 行 いますので, 次 の 書 類 を 以 下 の 期 間 に 岡 山 大 学 大 学 院 自 然 科 学 研 究 科 等

Transcription:

WAS Forum Conference 2008 Developers Day SQLインジェクション 対 策 再 考 2008/07/05 HASHコンサルティング 株 式 会 社 代 表 取 締 役 徳 丸 浩 http://www.hash-c.co.jp/ Copyright 2008 HASH Consulting Corp. 1

アジェンダ 本 日 の 構 成 正 しくないSQLインジェクション 対 策 の 今 昔 SQLインジェクション 対 策 の 考 え 方 SQLインジェクション 対 策 の 実 際 議 論 の 焦 点 入 力 値 検 証 とは 何 か SQLのエスケープ 方 法 詳 細 数 値 項 目 の 対 策 最 近 のトピックス Copyright 2008 HASH Consulting Corp. 2

第 1 部 正 しくないSQLインジェクション 対 策 の 今 昔 Copyright 2008 HASH Consulting Corp. 3

正 しくない 例 1(2001 年 ) 正 しい これは 余 計 でもこれは 2001 年 の 記 事 だから 実 践! セキュアなWebプログラミング 日 経 オープンシステム2001 年 5 月 号 から 引 用 Copyright 2008 HASH Consulting Corp. 4

正 しくない 例 2(2007 年 ) (1) 入 力 値 のチェック 中 略 データベースで 扱 う 値 に 対 して 上 記 のような 文 字 種 文 字 数 等 の 条 件 を 明 確 にし ブラウザか ら 渡 された 値 が 入 力 値 として 正 しい 形 式 であるかどうかをチェックする 条 件 を 細 かく 設 定 し 厳 密 にチェックすることによって 任 意 のSQL 文 の 混 入 を 避 けることができる 場 合 もある (2) 特 殊 記 号 のエスケープ 1) シングルクォート ' のエスケープ 正 しい 中 略 3) セミコロン ; の 拒 否 次 の 特 殊 記 号 が 含 まれているときは パラメータを 受 理 しない わけにいかない ; 受 理 しない ; は SQL 文 のコマンドの 区 切 りに 使 用 される 中 略 5) その 他 の 特 殊 記 号 のエスケープ(Microsoft Jetエンジン) またMicrosoftのJetエンジンでは 次 の 文 字 も 機 能 をもつ 特 殊 記 号 として 扱 われる VBAステートメント 実 行 文 字 どうやってエスケープ? IPA ISEC セキュア プログラミング 講 座 :Webアプリケーション 編 第 6 章 入 力 対 策 :SQL 注 入 より 引 用 http://www.ipa.go.jp/security/awareness/vendor/programmingv2/contents/502.html Copyright 2008 HASH Consulting Corp. 5

正 しくない 例 3(2008 年 ) 前 提 1 Webアプリケーションは 文 字 列 を 入 力 として 受 理 できる リレーショナル データベース 管 理 システムと 連 携 入 力 の 例 DECLARE%20@S%20NVARCHAR(4000)SET%20@S=hogehoge EXEC(@S) 文 字 列 として 入 力 特 殊 文 字 を 文 字 として 扱 うために を 挿 入 パーセントエンコー ドをデコードしてか らでないと 無 意 味 むやみに を 挿 入 しても ; は 削 除 セミコロンを 勝 手 入 力 値 チェックの 結 果 に 削 除 しないで! DECLARE %20@S %20NVARCHAR (4000 )SET %20@S =hogehoge EXEC (@S ) 前 提 2 SQLクエリーはアプリケーションで 生 成 SQL 構 文 に 用 いるような 文 字 列 はユーザーの 入 力 としてはありえない 意 味 不 明 入 力 の 例 ( 入 力 値 チェックの 結 果 ) DECLARE %20@S %20NVARCHAR (4000 )SET %20@S =hogehoge EXEC (@S ) SQL 構 文 に 用 いられる 代 表 的 な 文 字 列 をフィルタリングして 削 除 アットマーク(@)はデータベース 上 で 変 数 の 識 別 子 やスクリプト の 実 行 に 用 いられることがあるため 削 除 サニタイズ!! サニタイジングの 例 %20S %20 (4000 ) %20S =hogehoge (S ) 被 害 が 続 くSQLインジェクション 攻 撃,もう 一 度 対 策 を 見 直 そうより 引 用 http://itpro.nikkeibp.co.jp/article/column/20080514/301660/ Copyright 2008 HASH Consulting Corp. 6

なぜ 誤 った 解 説 がなくならないのか 攻 撃 方 法 からの 発 想 攻 撃 に 使 用 する 文 字 文 字 列 を 削 除 改 変 するアプローチ いわゆる サニタイズ 脆 弱 性 が 混 入 する 根 本 原 因 からのアプローチではない 実 はアプリケーションなんか 書 いたことがない 人 が 説 明 している? セキュリティのプロが 全 員 アプリケーションを 書 けるとは 限 らない そのサンプルコード 動 かしてみた? でもテスト 環 境 構 築 するだけでも 大 変 だしぃ コピペの 悪 弊 昔 の 間 違 った 解 説 が 延 命 されられる みんな 攻 撃 が 大 好 きだww Copyright 2008 HASH Consulting Corp. 7

参 考 なぜセミコロン ; を 削 除 したがるのか? 実 はセミコロンの 削 除 には 実 効 的 な 意 味 はあまりない セミコロン 削 除 の 意 図 は 複 文 実 行 の 防 止 と 思 われる SELECT * FROM XXX WERE ID= ;UPDATE XXX SET SQLインジェクションの 文 脈 で 複 文 が 実 行 できるのは MS SQL とPostgreSQL 現 実 にMS SQLは 複 文 を 使 った 改 ざん 事 件 が 多 発 しかし MS SQLは セミコロンなしでも 複 文 が 書 ける SELECT * FROM XXX WERE ID= UPDATE XXX SET でもよい すなわち セミコロンの 削 除 で 保 険 的 にせよ 意 味 があるのは PostgreSQLの 場 合 だけ 続 きはWebで http://www.tokumaru.org/d/20080502.html http://www.tokumaru.org/d/20080627.html Copyright 2008 HASH Consulting Corp. 8

危 険 文 字 と 言 わないで Copyright 2008 HASH Consulting Corp. 9

第 2 部 SQLインジェクション 対 策 の 考 え 方 Copyright 2008 HASH Consulting Corp. 10

そもそもなぜSQLインジェクションが 発 生 するのか? 原 因 は リテラルとして 指 定 したパラメータが リテラルの 枠 をは み 出 し SQLの 一 部 として 解 釈 されること 文 字 列 リテラルの 場 合 シングルクォートで 囲 まれた(クォートされた) 範 囲 をはみ 出 す SELECT * FROM XXX WHERE A= OR A =A 数 値 リテラルの 場 合 数 値 でない 文 字 ( 空 白 英 字 記 号 など)を 使 う はみ 出 した 部 分 SELECT * FROM XXX WHERE A=1OR TRUE Copyright 2008 HASH Consulting Corp. 11

エスケープは 檻 にしっかり 入 れるイメージ 檻 に 入 っている 分 には 中 身 の 危 険 性 を 気 にする 必 要 なはい 危 険 性 がなくても 檻 から 出 てしまうのはバグ select * from animals whre kind=' ' 危 険 な 文 字 文 字 列 ; ' @ declare union xp_cmdshell @... Copyright 2008 HASH Consulting Corp. 12

SQLインジェクションは 檻 から 逃 げるイメージ パラメタがリテラルからはみ 出 し SQL 文 の 命 令 として 解 釈 される 状 態 select * from animals whre kind=' ' 危 険 な 文 字 文 字 列 ; ' @ declare union xp_cmdshell @... Copyright 2008 HASH Consulting Corp. 13

[プロの 礼 儀 作 法 としての 参 考 文 献 ] ライオン エスケープ http://www.rakuten.co.jp/torito/659325/660549/ から 引 用 Copyright 2008 HASH Consulting Corp. 14

第 3 部 SQLインジェクション 対 策 の 実 際 Copyright 2008 HASH Consulting Corp. 15

ではどうすればいいのか? 基 本 は リテラルをしっかりと 檻 に 閉 じ 込 めること 方 法 1:バインド 機 構 の 利 用 ( 推 奨 ) my $sth = $db->prepare("select ERRMSG FROM ERRINFO WHERE ERRNO=?"); my $rt = $sth->execute($n); バインド 機 構 の 実 装 にバグがない 限 り 安 心 (どうやって 確 認 する?) 方 法 2:SQLの 動 的 組 み 立 て+エスケープ ただし 数 値 の 場 合 は 別 の 方 法 が 必 要 Copyright 2008 HASH Consulting Corp. 16

第 二 の 選 択 肢 動 的 SQL 生 成 +エスケープ なぜバインド 機 構 を 利 用 しないのか プラットフォームの 制 約 フレームワークの 制 約 古 いアプリケーションの 保 守 Copyright 2008 HASH Consulting Corp. 17

動 的 SQL 生 成 の 場 合 は 文 字 列 と 数 値 で 対 応 が 変 わる 文 字 列 の 場 合 エスケープ 数 値 の 場 合 変 数 に 型 のある 言 語 Java C#など 数 値 型 を 使 っている 場 合 は 問 題 ない 文 字 列 型 を 使 って 数 値 を 処 理 する 場 合 は 変 数 に 型 のない 言 語 と 同 じ 方 法 変 数 に 型 のない 言 語 Perl PHP Ruby VBScript(ASP)など 数 値 の 妥 当 性 確 認 Copyright 2008 HASH Consulting Corp. 18

文 字 列 リテラルのエスケープ どの 文 字 をエスケープするのか? SQL 製 品 の 文 字 列 リテラルのルールに 従 う ISO 標 準 では ' '' MySQLとPostgreSQLは ' '' PostgreSQLの 場 合 は standard_conforming_stringsおよび backslash_quoteの 影 響 を 受 ける standard_conforming_strings=onの 場 合 は ISO 標 準 と 同 じ 方 法 になる backslash_quote=off の 場 合 は ' ' というエスケープがエラーになる Oracle MS SQL IBM DB2 MySQL PostgreSQL 元 の 文 字 エスケープ 後 または ( を 推 奨 ) Copyright 2008 HASH Consulting Corp. 19

参 考 商 用 RDBMSの 文 字 列 リテラルの 定 義 Oracle:cは データベース キャラクタ セットの 任 意 の 要 素 です リテラル 内 の 一 重 引 用 符 ( )の 前 には エスケープ 文 字 を 付 ける 必 要 があります リテラル 内 で 一 重 引 用 符 を 表 すには 一 重 引 用 符 を2つ 使 用 します http://otndnld.oracle.co.jp/document/products/oracle10g/102/doc_cd/server.102/b19201-02/sql_elements.html#41297 DB2:ストリング 区 切 り 文 字 で 始 まりストリング 区 切 り 文 字 で 終 わる 文 字 のシー ケンス この 場 合 のストリング 区 切 り 文 字 はアポストロフィ( ) です 中 略 文 字 ストリング 内 で 1 つのストリング 区 切 り 文 字 を 表 したいときは ストリング 区 切 り 文 字 を 2 つ 連 続 して 使 用 します http://publib.boulder.ibm.com/infocenter/db2luw/v9r5/index.jsp?topic=/com.ibm.db2.luw.sql.ref.doc/doc/r0000731.html MS SQL: 単 一 引 用 符 で 囲 まれた 文 字 列 に 単 一 引 用 符 を 埋 め 込 む 場 合 は 単 一 引 用 符 を 2 つ 続 けて 並 べることで 1 つの 単 一 引 用 符 を 表 します http://technet.microsoft.com/ja-jp/library/ms179899.aspx Copyright 2008 HASH Consulting Corp. 20

参 考 MySQLの 文 字 列 リテラルの 定 義 8.1.1. 文 字 列 一 部 のシーケンスは 個 々の 文 字 列 内 で 特 別 な 意 味 を 持 ちます これらのシーケンスは いず れも エスケープ 文 字 として 知 られるバックスラッシュ( )で 始 まります MySQLでは 次 の エスケープシーケンスが 認 識 されます 文 字 列 に 引 用 符 を 含 める 方 法 は いくつかあります で 囲 んだ 文 字 列 内 で を 使 用 する 場 合 と 記 述 することができます 後 略 MySQL :: MySQL 5.1 リファレンスマニュアル :: 8.1.1 文 字 列 から 引 用 http://dev.mysql.com/doc/refman/5.1/ja/string-syntax.html Copyright 2008 HASH Consulting Corp. 21

参 考 PostgreSQLの 文 字 列 リテラルの 定 義 4.1.2.1. 文 字 列 定 数 SQLにおける 文 字 列 定 数 は 単 一 引 用 符 ( )で 括 られた 任 意 の 文 字 の 並 びです 例 えば This is a string です 文 字 列 定 数 内 の 単 一 引 用 符 の 記 述 方 法 は 2つ 続 けて 単 一 引 用 符 を 記 述 することです 中 略 エスケープ 文 字 列 の 中 では バックスラッシュ 文 字 ( )によりC 言 語 のようなバック スラッシュシーケンスが 始 まります バックスラッシュと 続 く 文 字 の 組 み 合 わせが 特 別 なバイト 値 を 表 現 します bは 後 退 (バックスペース)を fは 改 頁 を nは 改 行 を rは 復 帰 (キャリッジリターン)を tはタブを 表 します また digitsという 形 式 もサポートし digitsは8 進 数 バイト 値 を 表 します xhexdigitsという 形 式 で は hexdigitsは16 進 数 バイト 値 を 表 します ( 作 成 するバイトの 並 びがサーバの 文 字 セット 符 号 化 方 式 として 有 効 かどうかはコード 作 成 者 の 責 任 です )ここに 示 した 以 外 のバックスラッシュの 後 の 文 字 はそのまま 解 釈 されます したがって バ ックスラッシュ 文 字 を 含 めるには 2つのバックスラッシュ( )を 記 述 してください また 通 常 の''という 方 法 以 外 に 'と 記 述 することで 単 一 引 用 符 をエスケープ 文 字 列 に 含 めることができます http://www.postgresql.jp/document/current/html/sql-syntax-lexical.html#sql-syntax-constants Copyright 2008 HASH Consulting Corp. 22

MySQLとPostgreSQLで のエスケープが 必 要 な 理 由 SELECT * FROM XXX WHERE ID='$id' $id として 'or 1=1# が 入 力 されると 'or 1=1# エスケープ( のエスケープをしない 場 合 ) ''or 1=1# 元 のSQLに 適 用 すると SELECT * FROM XXX WHERE ID=' '' or 1=1#' すなわち SQLの 構 文 が 改 変 された( で 一 文 字 と 見 なされる) Copyright 2008 HASH Consulting Corp. 23

Shift_JISの 問 題 DB 側 の 日 本 語 処 理 が 不 完 全 な 場 合 表 ' 0x95 0x5c 0x27 フロント 側 でのエスケープ 処 理 表 ' ' 0x95 0x5c 0x27 0x27 データベース 側 の 解 釈 0x95 0x95 0x5c 0x27 ' で' 一 文 字 0x27 ' がエスケープされずに 余 る フロント 側 の 日 本 語 処 理 が 不 完 全 な 場 合 表 ' 0x95 0x5c 0x27 フロント 側 でのエスケープ 処 理 (0x5cと0x27をそれぞれエスケープ) 0x95 0x5c 0x5c 0x27 データベース 側 の 解 釈 0x95 0x5c 表 一 文 字 0x5c 0x27 'で 一 文 字 0x27 0x27 ' がエスケープされずに 余 る Copyright 2008 HASH Consulting Corp. 24

文 字 コードの 問 題 例 えば Shift_JISを 避 ける 言 語 レベルで 文 字 コードを 意 識 したものを Java # 元 々 内 部 はUnicode Perl5.8 # それ use utf8; で PostgreSQLの 対 応 (8.1.4) 常 にサーバ 側 で 無 効 なコードのマルチバイト 文 字 を 拒 否 するように 修 正 されました (8.1 系 ~7.3 系 ) これにより 一 律 にすべての 文 字 エンコーディングのすべてのテキスト 入 力 に 対 して 検 査 が 行 わ れ 単 に 警 告 が 出 るのではなく 常 にエラーが 出 るようになりました この 変 更 は CVE-2006-2313 に 記 述 されているような SQLインジェクション 攻 撃 に 対 抗 するものです 文 字 列 リテラル 中 の 安 全 でない ' を 拒 否 する 機 能 が 追 加 されました (8.1 系 ~7.3 系 ) CVE-2006-2314 に 記 述 されている 類 のSQLインジェクション 攻 撃 をサーバ 側 で 防 ぐため SQL 文 字 列 リテラルとして だけを 受 け 付 け を 受 け 付 けないように 変 更 されました 中 略 この 振 る 舞 いを 調 整 するため 新 たな 設 定 パラメータbackslash_quote が 追 加 されました なお CVE-2006-2314 を 完 全 に 防 ぐには おそらくクライアント 側 の 修 正 も 必 要 です backslash_quote は 安 全 でないクライアントが 安 全 でない ことを 明 らかにするのを 目 的 として います http://www.sraoss.co.jp/postgresql/8.1.4/changes.html Copyright 2008 HASH Consulting Corp. 25

数 値 リテラルの 場 合 数 値 としての 妥 当 性 確 認 をSQL 組 み 立 て 時 に 行 うとよい 最 初 に 妥 当 性 検 証 していても 気 にしないで 再 度 検 証 する 大 したオーバーヘッドにはならない # 呼 び 出 し 例 eval { my $sql = "SELECT ERRMSG FROM ERRINFO WHERE ERRNO=". int_check($n);... } if ($@) { # エラー 発 生 時 の 処 理 }... # 整 数 チェック 関 数 の 例 sub int_check { my $val = shift; if ($val =~ /^-?[0-9]+$/) { return $val; } else { die " 整 数 値 エラー"; # エラーメッセージは$@に 格 納 } } Copyright 2008 HASH Consulting Corp. 26

SQLエスケープの 実 装 はどれを 使 う? 安 全 なウェブサイトの 作 り 方 改 定 第 3 版 (P7) には 以 下 の 記 述 があるが データベースエンジンによっては 専 用 のエスケープ 処 理 を 行 うAPI を 提 供 しているものがあります(たとえば Perl ならDBIモジュールのquote()な ど)ので それを 利 用 することをお 勧 めします DBIのquote()が 全 てDB 側 で 用 意 したAPIを 呼 んでいるわけでは ない DBD::PgPPでの 実 装 $s =~ s/(?=[ ])/ /g; # PostgreSQLのAPIを 呼 んでいない return "'$s'"; 安 全 なウェブサイトの 作 り 方 の 趣 旨 には 同 意 するが 具 体 的 に どの 関 数 メソッド APIなら 安 全 というガイドラインがないと 開 発 現 場 では 使 えない プロジェクトの 度 にコンサルタント 雇 って 調 べさせる? Copyright 2008 HASH Consulting Corp. 27

入 力 値 検 証 は 何 をすればよいか アプリケーションレベルで や ; を 削 除 あるいは 拒 否 するわ けにはいかない クォートやセミコロンも 正 しく 処 理 できるよう バインド 機 構 やエスケープを 用 いる ミドルウェアレベルでは 半 端 なマルチバイトコード や UTF-8 の 冗 長 表 現 をチェックし エラーにすべき アプリケーションレベルでは 業 務 要 件 にしたがって 入 力 値 検 証 する 結 果 としてSQLインジェクション 対 策 になる 場 合 もあれば ならない 場 合 も ある メタ 文 字 ではなく 制 御 文 字 (ヌル 文 字 を 含 む)のチェックは 必 要 ( 改 行 タブ 以 外 の 制 御 文 字 はミドルウェアレベルでチェックして 欲 しい) Copyright 2008 HASH Consulting Corp. 28

おまけ: 述 語 LIKEのワイルドカードのエスケープ 述 語 LIKEのワイルドカード _ % にも 注 意 狭 義 のSQLインジェクションとは 違 うが サーバーに 過 負 荷 をか ける 場 合 がある( 全 件 検 索 ) MySQL 以 外 の 場 合 はESCAPE 句 の 利 用 LIKE #%% ESCAPE # -- #% で 文 字 としての % を 示 す MySQLの 場 合 は によりエスケープ LIKE %% -- % で 文 字 としての % を 示 す 商 用 RDBMSの 場 合 は 全 角 の _ や % にも 注 意 Copyright 2008 HASH Consulting Corp. 29

まとめ 提 言 そろそろ 入 力 値 の 未 検 証 という 表 現 はやめよう バインド 機 構 の 利 用 促 進 正 しいエスケープ 方 法 の 普 及 安 全 なフレームワーク 安 全 なバインド 機 構 はどれ? 安 全 なエスケープ 関 数 はどれ? 安 全 なウェブサイトの 作 り 方 のさらに 具 体 的 なガイドライン の 必 要 性 Copyright 2008 HASH Consulting Corp. 30

ご 清 聴 ありがとうございました Copyright 2008 HASH Consulting Corp. 31