SlideShare una empresa de Scribd logo
1 de 30
Webアプリのセキュリティ対策入門(仮)
目次
1.はじめに
2.SQLインジェクション
3.クロスサイトスクリプティング(XSS)
4.クロスサイトリクエストフォージェリ(CSRF)
5.今回のまとめ
1.はじめに
今回攻撃対象とするデモアプリ紹介
個人商店のお手軽通販サイトを想定
クオリティについてはお察しください(作成3時間程度)
ログイン機能
レビューを商品別に
書き込み
商品詳細画面
構成:JDK1.7 + Tomcat6.0 + HSQLDB
商品情報は
DBで管理
2.SQLインジェクション
2.SQLインジェクション
システムとして意図しないSQLが実行され、データベースの
内容の盗難・改ざんが行われることを言う。
SQLインジェクション デモンストレーション
想定される被害
1.データベース内の情報改ざん
2.不正ログイン
3.データベース内情報の漏えい(個人情報など)
などなど・・・
SQLインジェクションが発生する仕組み
アプリ
パスワード
ID
DB
ログイン認証
SELECT COUNT(*) FROM USERS WHERE USERID=‘
‘ AND PASSWORD=‘
‘;
ユーザが入力したID
ユーザが入力したPASS
文字列を連結してSQLを
生成し、DBに対して発行
例えばこんなアプリ
SQLインジェクションが発生する仕組み
アプリ
パスワード
hogePASS ’ OR ‘A’ = ‘A
ID
hogeID
DB
ログイン認証
SELECT COUNT(*) FROM USERS WHERE USERID=‘
‘ AND PASSWORD=‘
‘;
hogeID
hogePASS’ OR ‘A’=‘A
パスワード部分にインジェクショ
ンされたSQLによりPASSWORDの
部分は常にTRUE
パスワード認証を回避!
実際にあったSQLインジェクション
2005年5月に「価格.com」で発生。
・商品情報を管理するデータベースに対してSQLインジェクションが行われた。
・これにより、ホームページの改ざん、メールアドレスが流出し、閉鎖騒動ま
で発展した。
国内外問わず頻繁に発生しており、直近のIPAへの届出状況(※)によると、未だ
にソフトウェアの脆弱性として届出が行われている状況。
※ソフトウェア等の脆弱性関連情報に関する届出状況[2014年第1四半期(1月~3月)]
http://www.ipa.go.jp/security/vuln/report/vuln2014q1.html
対策方法
(方法1) 入力された値からクオートなど、SQLインジェクションとなり得る値を
除去する
実装次第で除去漏れが発生するし、何より毎回仕組みを作るのは面倒
(方法2) 先人たちが作った仕組みを使う
実績があり、仕組みを作らなくて済む!楽で確実!
却下
具体的な対策方法
Javaでの例(大体の言語で同等の仕組みがあるので利用すること)
修正前
String sql= “ SELECT COUNT(*) FROM USERS WHERE USERID=‘ “ + userId + “‘ AND PASSWORD=‘ “ + password + “’”;
SQLの実行
修正後
String sql = “ SELECT COUNT(*) FROM USERS WHERE USERID= ? AND PASSWORD= ?”;
PreparedStatement pst = conn..prepareStatement(sql);
入力値の埋め込み、SQLの実行
PreparedStatementを使用することで、JDBC
ドライバによって自動的にエスケープが行
われる!
3.クロスサイトスクリプティング
3.クロスサイトスクリプティング
入力値をそのまま画面上に出力する事により、意図しない
コードを画面上に出力させること。
XSSと略されることが多い。
クロスサイトスクリプティングデモンストレーション
想定される被害
1.セッションハイジャック(不正ログインなどが可能)
2.ページ書き換えによる不正サイトの構築
3.不正プログラムの強制的なダウンロード
などなど・・・
クロスサイトスクリプティングが発生する仕組み
アプリ
入力値
例えばこんなアプリ
入力値
入力された値を
画面に出力
クロスサイトスクリプティングが発生する仕組み
アプリ
例えばこんなアプリ
ほげ
JavaScriptコードがそのま
ま解釈され、「ほげ」とい
うアラートが出力される
<script>alert(“ほげ”);</script>
画面の書き換えが可能!
対策方法
(方法1) 入力された値からHTMLやJavaScriptとして解釈される文字を独力で
除去する
実装次第で除去漏れが発生するし、何より毎回仕組みを作るのは面倒
(方法2) 先人たちが作った仕組みを使う
実績があり、仕組みを作らなくて済む!楽で確実!
却下
具体的な対策方法
Strutsを使った例
<bean:write name=“hoge” />
4.クロスサイトリクエストフォージェリ
4.クロスサイトリクエストフォージェリ
とりあえずデモンストレーションを見よう!
CSRFやXSRFと略されることが多い。
クロスサイトスクリプティングデモンストレーション
想定される被害
1.意図しない犯行声明の書き込みによる冤罪
などなど・・・
クロスサイトリクエストフォージェリが発生する仕組み
デモンストレーションを用いて説明
実際にあったクロスサイトリクエストフォージェリ
2012年に発生したPC遠隔操作事件の1つ
・小学校への無差別殺人予告が横浜市の意見投稿コーナーに書き込まれ
た事件。
・クロスサイトリクエストリクエストフォージェリで他人に犯行予告を行わせた。
対策方法
・別サイトからのリクエストは受け付けないようにチェックする。
(リファラのドメインチェック、トークンチェックなど)
5.今回のまとめ
5.今回のまとめ
自分で処理を作りこまない事が大事。
先人達が作ったものを利用しよう。

Más contenido relacionado

La actualidad más candente

Azure AD による Web API の 保護
Azure AD による Web API の 保護 Azure AD による Web API の 保護
Azure AD による Web API の 保護 junichi anno
 
(A7)cross site scripting
(A7)cross site scripting(A7)cross site scripting
(A7)cross site scriptingOWASP Nagoya
 
20190208 脆弱性と共生するには
20190208 脆弱性と共生するには20190208 脆弱性と共生するには
20190208 脆弱性と共生するにはOWASP Nagoya
 
第6回鹿児島node.jsの会2資料_内村
第6回鹿児島node.jsの会2資料_内村第6回鹿児島node.jsの会2資料_内村
第6回鹿児島node.jsの会2資料_内村Koichi Uchimura
 
20181117-一般的な脆弱性の概要・対策を知り、ZAPで見つけてみよう!
20181117-一般的な脆弱性の概要・対策を知り、ZAPで見つけてみよう!20181117-一般的な脆弱性の概要・対策を知り、ZAPで見つけてみよう!
20181117-一般的な脆弱性の概要・対策を知り、ZAPで見つけてみよう!OWASP Nagoya
 
Sec018 windows hello_in_your_app_!_~_カスタム_
Sec018 windows hello_in_your_app_!_~_カスタム_Sec018 windows hello_in_your_app_!_~_カスタム_
Sec018 windows hello_in_your_app_!_~_カスタム_Tech Summit 2016
 
Windows Phone で Active Directory 認証 2011.12.1版
Windows Phone で Active Directory 認証 2011.12.1版Windows Phone で Active Directory 認証 2011.12.1版
Windows Phone で Active Directory 認証 2011.12.1版junichi anno
 
Webセキュリティ入門(xss)
Webセキュリティ入門(xss)Webセキュリティ入門(xss)
Webセキュリティ入門(xss)KageShiron
 
3分でわかるAzureでのService Principal
3分でわかるAzureでのService Principal3分でわかるAzureでのService Principal
3分でわかるAzureでのService PrincipalToru Makabe
 
Azure monitoring and alert v0.1.21.0422
Azure monitoring and alert v0.1.21.0422Azure monitoring and alert v0.1.21.0422
Azure monitoring and alert v0.1.21.0422Ayumu Inaba
 
MFA(2段階認証)でセキュリティ強化~Authyの設定
MFA(2段階認証)でセキュリティ強化~Authyの設定MFA(2段階認証)でセキュリティ強化~Authyの設定
MFA(2段階認証)でセキュリティ強化~Authyの設定Yuki Fujino Oita Univ.
 

La actualidad más candente (12)

Aws security ssrf
Aws security ssrfAws security ssrf
Aws security ssrf
 
Azure AD による Web API の 保護
Azure AD による Web API の 保護 Azure AD による Web API の 保護
Azure AD による Web API の 保護
 
(A7)cross site scripting
(A7)cross site scripting(A7)cross site scripting
(A7)cross site scripting
 
20190208 脆弱性と共生するには
20190208 脆弱性と共生するには20190208 脆弱性と共生するには
20190208 脆弱性と共生するには
 
第6回鹿児島node.jsの会2資料_内村
第6回鹿児島node.jsの会2資料_内村第6回鹿児島node.jsの会2資料_内村
第6回鹿児島node.jsの会2資料_内村
 
20181117-一般的な脆弱性の概要・対策を知り、ZAPで見つけてみよう!
20181117-一般的な脆弱性の概要・対策を知り、ZAPで見つけてみよう!20181117-一般的な脆弱性の概要・対策を知り、ZAPで見つけてみよう!
20181117-一般的な脆弱性の概要・対策を知り、ZAPで見つけてみよう!
 
Sec018 windows hello_in_your_app_!_~_カスタム_
Sec018 windows hello_in_your_app_!_~_カスタム_Sec018 windows hello_in_your_app_!_~_カスタム_
Sec018 windows hello_in_your_app_!_~_カスタム_
 
Windows Phone で Active Directory 認証 2011.12.1版
Windows Phone で Active Directory 認証 2011.12.1版Windows Phone で Active Directory 認証 2011.12.1版
Windows Phone で Active Directory 認証 2011.12.1版
 
Webセキュリティ入門(xss)
Webセキュリティ入門(xss)Webセキュリティ入門(xss)
Webセキュリティ入門(xss)
 
3分でわかるAzureでのService Principal
3分でわかるAzureでのService Principal3分でわかるAzureでのService Principal
3分でわかるAzureでのService Principal
 
Azure monitoring and alert v0.1.21.0422
Azure monitoring and alert v0.1.21.0422Azure monitoring and alert v0.1.21.0422
Azure monitoring and alert v0.1.21.0422
 
MFA(2段階認証)でセキュリティ強化~Authyの設定
MFA(2段階認証)でセキュリティ強化~Authyの設定MFA(2段階認証)でセキュリティ強化~Authyの設定
MFA(2段階認証)でセキュリティ強化~Authyの設定
 

Similar a Webアプリのセキュリティ対策入門(仮)

第9回勉強会 Webセキュリティー
第9回勉強会 Webセキュリティー第9回勉強会 Webセキュリティー
第9回勉強会 Webセキュリティーhakoika-itwg
 
Webアプリのセキュリティ 20170824
Webアプリのセキュリティ 20170824Webアプリのセキュリティ 20170824
Webアプリのセキュリティ 20170824Masakazu Ikeda
 
ライブコーディングとデモで理解するWebセキュリティの基礎
ライブコーディングとデモで理解するWebセキュリティの基礎ライブコーディングとデモで理解するWebセキュリティの基礎
ライブコーディングとデモで理解するWebセキュリティの基礎Takahisa Kishiya
 
機械学習でWebアプリの脆弱性を見つける - Reflected XSS 編 -
機械学習でWebアプリの脆弱性を見つける - Reflected XSS 編 -機械学習でWebアプリの脆弱性を見つける - Reflected XSS 編 -
機械学習でWebアプリの脆弱性を見つける - Reflected XSS 編 -Isao Takaesu
 
すぐできるWeb制作時のセキュリティTips
すぐできるWeb制作時のセキュリティTipsすぐできるWeb制作時のセキュリティTips
すぐできるWeb制作時のセキュリティTipsyoshinori matsumoto
 
体系的に学ばないXSSの話
体系的に学ばないXSSの話体系的に学ばないXSSの話
体系的に学ばないXSSの話Yutaka Maehira
 
RoR周辺知識15項目
RoR周辺知識15項目RoR周辺知識15項目
RoR周辺知識15項目saiwaki
 
アプリケーションのシフトレフトを実践するには
アプリケーションのシフトレフトを実践するにはアプリケーションのシフトレフトを実践するには
アプリケーションのシフトレフトを実践するにはRiotaro OKADA
 
Active Directory 侵害と推奨対策
Active Directory 侵害と推奨対策Active Directory 侵害と推奨対策
Active Directory 侵害と推奨対策Yurika Kakiuchi
 
Java/Androidセキュアコーディング
Java/AndroidセキュアコーディングJava/Androidセキュアコーディング
Java/AndroidセキュアコーディングMasaki Kubo
 
5 moriya security-seminar2005_05
5 moriya security-seminar2005_055 moriya security-seminar2005_05
5 moriya security-seminar2005_05Eiichi Moriya
 
AWS WAF 全機能解説 @2021夏(文字化けあり)
AWS WAF 全機能解説 @2021夏(文字化けあり)AWS WAF 全機能解説 @2021夏(文字化けあり)
AWS WAF 全機能解説 @2021夏(文字化けあり)Yuto Ichikawa
 
第7回rest勉強会 バリデーション編
第7回rest勉強会 バリデーション編第7回rest勉強会 バリデーション編
第7回rest勉強会 バリデーション編ksimoji
 
Postgre SQL security_20170412
Postgre SQL security_20170412Postgre SQL security_20170412
Postgre SQL security_20170412Kazuki Omo
 
[CB16] Electron - Build cross platform desktop XSS, it’s easier than you thin...
[CB16] Electron - Build cross platform desktop XSS, it’s easier than you thin...[CB16] Electron - Build cross platform desktop XSS, it’s easier than you thin...
[CB16] Electron - Build cross platform desktop XSS, it’s easier than you thin...CODE BLUE
 
web技術 〜セキュリティ編〜.pdf
web技術 〜セキュリティ編〜.pdfweb技術 〜セキュリティ編〜.pdf
web技術 〜セキュリティ編〜.pdfKoudaiKumazaki
 

Similar a Webアプリのセキュリティ対策入門(仮) (20)

第9回勉強会 Webセキュリティー
第9回勉強会 Webセキュリティー第9回勉強会 Webセキュリティー
第9回勉強会 Webセキュリティー
 
Webアプリのセキュリティ 20170824
Webアプリのセキュリティ 20170824Webアプリのセキュリティ 20170824
Webアプリのセキュリティ 20170824
 
ライブコーディングとデモで理解するWebセキュリティの基礎
ライブコーディングとデモで理解するWebセキュリティの基礎ライブコーディングとデモで理解するWebセキュリティの基礎
ライブコーディングとデモで理解するWebセキュリティの基礎
 
機械学習でWebアプリの脆弱性を見つける - Reflected XSS 編 -
機械学習でWebアプリの脆弱性を見つける - Reflected XSS 編 -機械学習でWebアプリの脆弱性を見つける - Reflected XSS 編 -
機械学習でWebアプリの脆弱性を見つける - Reflected XSS 編 -
 
すぐできるWeb制作時のセキュリティTips
すぐできるWeb制作時のセキュリティTipsすぐできるWeb制作時のセキュリティTips
すぐできるWeb制作時のセキュリティTips
 
体系的に学ばないXSSの話
体系的に学ばないXSSの話体系的に学ばないXSSの話
体系的に学ばないXSSの話
 
RoR周辺知識15項目
RoR周辺知識15項目RoR周辺知識15項目
RoR周辺知識15項目
 
アプリケーションのシフトレフトを実践するには
アプリケーションのシフトレフトを実践するにはアプリケーションのシフトレフトを実践するには
アプリケーションのシフトレフトを実践するには
 
Active Directory 侵害と推奨対策
Active Directory 侵害と推奨対策Active Directory 侵害と推奨対策
Active Directory 侵害と推奨対策
 
Java/Androidセキュアコーディング
Java/AndroidセキュアコーディングJava/Androidセキュアコーディング
Java/Androidセキュアコーディング
 
5 moriya security-seminar2005_05
5 moriya security-seminar2005_055 moriya security-seminar2005_05
5 moriya security-seminar2005_05
 
AWS WAF 全機能解説 @2021夏(文字化けあり)
AWS WAF 全機能解説 @2021夏(文字化けあり)AWS WAF 全機能解説 @2021夏(文字化けあり)
AWS WAF 全機能解説 @2021夏(文字化けあり)
 
第7回rest勉強会 バリデーション編
第7回rest勉強会 バリデーション編第7回rest勉強会 バリデーション編
第7回rest勉強会 バリデーション編
 
XSSについて.pdf
XSSについて.pdfXSSについて.pdf
XSSについて.pdf
 
Postgre SQL security_20170412
Postgre SQL security_20170412Postgre SQL security_20170412
Postgre SQL security_20170412
 
Apache ManifoldCF
Apache ManifoldCFApache ManifoldCF
Apache ManifoldCF
 
Apache ManifoldCF
Apache ManifoldCFApache ManifoldCF
Apache ManifoldCF
 
[CB16] Electron - Build cross platform desktop XSS, it’s easier than you thin...
[CB16] Electron - Build cross platform desktop XSS, it’s easier than you thin...[CB16] Electron - Build cross platform desktop XSS, it’s easier than you thin...
[CB16] Electron - Build cross platform desktop XSS, it’s easier than you thin...
 
web技術 〜セキュリティ編〜.pdf
web技術 〜セキュリティ編〜.pdfweb技術 〜セキュリティ編〜.pdf
web技術 〜セキュリティ編〜.pdf
 
20180216 sapporo techbar_db_migration
20180216 sapporo techbar_db_migration20180216 sapporo techbar_db_migration
20180216 sapporo techbar_db_migration
 

Último

SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 

Último (9)

SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 

Webアプリのセキュリティ対策入門(仮)