Submit Search
Upload
Webシステム脆弱性LT資料
•
Download as PPTX, PDF
•
1 like
•
1,136 views
T
Tomohito Adachi
Follow
勉強会やLTで発表した資料です。 エンジニアだけでなくWebシステムに関わる人達にも。
Read less
Read more
Engineering
Report
Share
Report
Share
1 of 23
Download now
Recommended
【SQLインジェクション対策】徳丸先生に怒られない、動的SQLの安全な組み立て方
【SQLインジェクション対策】徳丸先生に怒られない、動的SQLの安全な組み立て方
kwatch
SQL上級者こそ知って欲しい、なぜO/Rマッパーが重要か?
SQL上級者こそ知って欲しい、なぜO/Rマッパーが重要か?
kwatch
O/Rマッパーによるトラブルを未然に防ぐ
O/Rマッパーによるトラブルを未然に防ぐ
kwatch
Doma SQLテンプレートのしくみ
Doma SQLテンプレートのしくみ
Toshihiro Nakamura
『例えば、PHPを避ける』以降PHPはどれだけ安全になったか
『例えば、PHPを避ける』以降PHPはどれだけ安全になったか
Hiroshi Tokumaru
SecurityとValidationの奇妙な関係、あるいはDrupalはなぜValidationをしたがらないのか
SecurityとValidationの奇妙な関係、あるいはDrupalはなぜValidationをしたがらないのか
Hiroshi Tokumaru
Vue入門
Vue入門
Takeo Noda
徳丸本に学ぶ 安全なPHPアプリ開発の鉄則2011
徳丸本に学ぶ 安全なPHPアプリ開発の鉄則2011
Hiroshi Tokumaru
Recommended
【SQLインジェクション対策】徳丸先生に怒られない、動的SQLの安全な組み立て方
【SQLインジェクション対策】徳丸先生に怒られない、動的SQLの安全な組み立て方
kwatch
SQL上級者こそ知って欲しい、なぜO/Rマッパーが重要か?
SQL上級者こそ知って欲しい、なぜO/Rマッパーが重要か?
kwatch
O/Rマッパーによるトラブルを未然に防ぐ
O/Rマッパーによるトラブルを未然に防ぐ
kwatch
Doma SQLテンプレートのしくみ
Doma SQLテンプレートのしくみ
Toshihiro Nakamura
『例えば、PHPを避ける』以降PHPはどれだけ安全になったか
『例えば、PHPを避ける』以降PHPはどれだけ安全になったか
Hiroshi Tokumaru
SecurityとValidationの奇妙な関係、あるいはDrupalはなぜValidationをしたがらないのか
SecurityとValidationの奇妙な関係、あるいはDrupalはなぜValidationをしたがらないのか
Hiroshi Tokumaru
Vue入門
Vue入門
Takeo Noda
徳丸本に学ぶ 安全なPHPアプリ開発の鉄則2011
徳丸本に学ぶ 安全なPHPアプリ開発の鉄則2011
Hiroshi Tokumaru
安全なPHPアプリケーションの作り方2013
安全なPHPアプリケーションの作り方2013
Hiroshi Tokumaru
PHPの今とこれから2021
PHPの今とこれから2021
Rui Hirokawa
徳丸本に学ぶ 安全なPHPアプリ開発の鉄則2012
徳丸本に学ぶ 安全なPHPアプリ開発の鉄則2012
Hiroshi Tokumaru
CodeIgniter入門
CodeIgniter入門
Sho A
最新PHP事情 (2000年7月22日,PHPカンファレンス)
最新PHP事情 (2000年7月22日,PHPカンファレンス)
Rui Hirokawa
PHPの今とこれから2019
PHPの今とこれから2019
Rui Hirokawa
PHP基礎勉強会
PHP基礎勉強会
Yuji Otani
PHP の GC の話
PHP の GC の話
y-uti
Symfony2でより良いソフトウェアを作るために
Symfony2でより良いソフトウェアを作るために
Atsuhiro Kubo
owasp_evening_okinawa_7_owasp_top_10-2017_injection
owasp_evening_okinawa_7_owasp_top_10-2017_injection
tobaru_yuta
Vue.js で XSS
Vue.js で XSS
tobaru_yuta
PHP勉強会 #51
PHP勉強会 #51
Takako Miyagawa
PHP, Now and Then 2011
PHP, Now and Then 2011
Rui Hirokawa
PHP Now and Then 2012 at PHP Conference 2012, Tokyo Japan (in japanese)
PHP Now and Then 2012 at PHP Conference 2012, Tokyo Japan (in japanese)
Rui Hirokawa
.htaccessによるリダイレクト徹底解説
.htaccessによるリダイレクト徹底解説
Cherry Pie Web
最近の PHP の話
最近の PHP の話
y-uti
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
Hiroaki KOBAYASHI
Titanium Mobile
Titanium Mobile
Naoya Ito
Spring fest2020 spring-security
Spring fest2020 spring-security
土岐 孝平
PHPの今とこれから2016
PHPの今とこれから2016
Rui Hirokawa
AITCシニア技術者勉強会 「今さら聞けないWebサイト開発」 vol1
AITCシニア技術者勉強会 「今さら聞けないWebサイト開発」 vol1
近藤 繁延
Windows Azure PHP Tips
Windows Azure PHP Tips
Microsoft Openness Japan
More Related Content
What's hot
安全なPHPアプリケーションの作り方2013
安全なPHPアプリケーションの作り方2013
Hiroshi Tokumaru
PHPの今とこれから2021
PHPの今とこれから2021
Rui Hirokawa
徳丸本に学ぶ 安全なPHPアプリ開発の鉄則2012
徳丸本に学ぶ 安全なPHPアプリ開発の鉄則2012
Hiroshi Tokumaru
CodeIgniter入門
CodeIgniter入門
Sho A
最新PHP事情 (2000年7月22日,PHPカンファレンス)
最新PHP事情 (2000年7月22日,PHPカンファレンス)
Rui Hirokawa
PHPの今とこれから2019
PHPの今とこれから2019
Rui Hirokawa
PHP基礎勉強会
PHP基礎勉強会
Yuji Otani
PHP の GC の話
PHP の GC の話
y-uti
Symfony2でより良いソフトウェアを作るために
Symfony2でより良いソフトウェアを作るために
Atsuhiro Kubo
owasp_evening_okinawa_7_owasp_top_10-2017_injection
owasp_evening_okinawa_7_owasp_top_10-2017_injection
tobaru_yuta
Vue.js で XSS
Vue.js で XSS
tobaru_yuta
PHP勉強会 #51
PHP勉強会 #51
Takako Miyagawa
PHP, Now and Then 2011
PHP, Now and Then 2011
Rui Hirokawa
PHP Now and Then 2012 at PHP Conference 2012, Tokyo Japan (in japanese)
PHP Now and Then 2012 at PHP Conference 2012, Tokyo Japan (in japanese)
Rui Hirokawa
.htaccessによるリダイレクト徹底解説
.htaccessによるリダイレクト徹底解説
Cherry Pie Web
最近の PHP の話
最近の PHP の話
y-uti
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
Hiroaki KOBAYASHI
Titanium Mobile
Titanium Mobile
Naoya Ito
Spring fest2020 spring-security
Spring fest2020 spring-security
土岐 孝平
PHPの今とこれから2016
PHPの今とこれから2016
Rui Hirokawa
What's hot
(20)
安全なPHPアプリケーションの作り方2013
安全なPHPアプリケーションの作り方2013
PHPの今とこれから2021
PHPの今とこれから2021
徳丸本に学ぶ 安全なPHPアプリ開発の鉄則2012
徳丸本に学ぶ 安全なPHPアプリ開発の鉄則2012
CodeIgniter入門
CodeIgniter入門
最新PHP事情 (2000年7月22日,PHPカンファレンス)
最新PHP事情 (2000年7月22日,PHPカンファレンス)
PHPの今とこれから2019
PHPの今とこれから2019
PHP基礎勉強会
PHP基礎勉強会
PHP の GC の話
PHP の GC の話
Symfony2でより良いソフトウェアを作るために
Symfony2でより良いソフトウェアを作るために
owasp_evening_okinawa_7_owasp_top_10-2017_injection
owasp_evening_okinawa_7_owasp_top_10-2017_injection
Vue.js で XSS
Vue.js で XSS
PHP勉強会 #51
PHP勉強会 #51
PHP, Now and Then 2011
PHP, Now and Then 2011
PHP Now and Then 2012 at PHP Conference 2012, Tokyo Japan (in japanese)
PHP Now and Then 2012 at PHP Conference 2012, Tokyo Japan (in japanese)
.htaccessによるリダイレクト徹底解説
.htaccessによるリダイレクト徹底解説
最近の PHP の話
最近の PHP の話
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
Titanium Mobile
Titanium Mobile
Spring fest2020 spring-security
Spring fest2020 spring-security
PHPの今とこれから2016
PHPの今とこれから2016
Similar to Webシステム脆弱性LT資料
AITCシニア技術者勉強会 「今さら聞けないWebサイト開発」 vol1
AITCシニア技術者勉強会 「今さら聞けないWebサイト開発」 vol1
近藤 繁延
Windows Azure PHP Tips
Windows Azure PHP Tips
Microsoft Openness Japan
20130203 oss-db-lpi
20130203 oss-db-lpi
Shinichi Matsuda
20130203 OSS-DB Exam Silver 技術解説無料セミナー
20130203 OSS-DB Exam Silver 技術解説無料セミナー
Kazuko Itoda
コンテナーによるIT基盤変革 - IT infrastructure transformation -
コンテナーによるIT基盤変革 - IT infrastructure transformation -
日本ヒューレット・パッカード株式会社
Azure API Management 俺的マニュアル
Azure API Management 俺的マニュアル
貴志 上坂
徳丸本に載っていないWebアプリケーションセキュリティ
徳丸本に載っていないWebアプリケーションセキュリティ
Hiroshi Tokumaru
サービスリリースから安定軌道に乗せるまでに行った開発施策
サービスリリースから安定軌道に乗せるまでに行った開発施策
Keiichi Hagiwara
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
Hiroh Satoh
System4 comment
System4 comment
Jun Chiba
Site Reliability Engineering (SRE)を可能にするOpenPIEのご紹介
Site Reliability Engineering (SRE)を可能にするOpenPIEのご紹介
OSSラボ株式会社
Chefで始めるWindows Server構築
Chefで始めるWindows Server構築
Takashi Kanai
DevOps and Compliance and Security
DevOps and Compliance and Security
Kazushi Kamegawa
[db tech showcase Tokyo 2015] D16:マイケルストーンブレーカー発の超高速データベースで実現する分析基盤の簡単構築・運用ステ...
[db tech showcase Tokyo 2015] D16:マイケルストーンブレーカー発の超高速データベースで実現する分析基盤の簡単構築・運用ステ...
Insight Technology, Inc.
エンジニアのための Azure 基礎知識
エンジニアのための Azure 基礎知識
Daiyu Hatakeyama
PowerShell and Release Management Server
PowerShell and Release Management Server
Kazushi Kamegawa
ゼロからのプログラミングRails講座 Codeanywhere版
ゼロからのプログラミングRails講座 Codeanywhere版
DIVE INTO CODE Corp.
配布用Cacti running with cherokee
配布用Cacti running with cherokee
yut148atgmaildotcom
文字コードに起因する脆弱性とその対策(増補版)
文字コードに起因する脆弱性とその対策(増補版)
Hiroshi Tokumaru
GruntでJavaScript 前作業の自動化!
GruntでJavaScript 前作業の自動化!
leverages_event
Similar to Webシステム脆弱性LT資料
(20)
AITCシニア技術者勉強会 「今さら聞けないWebサイト開発」 vol1
AITCシニア技術者勉強会 「今さら聞けないWebサイト開発」 vol1
Windows Azure PHP Tips
Windows Azure PHP Tips
20130203 oss-db-lpi
20130203 oss-db-lpi
20130203 OSS-DB Exam Silver 技術解説無料セミナー
20130203 OSS-DB Exam Silver 技術解説無料セミナー
コンテナーによるIT基盤変革 - IT infrastructure transformation -
コンテナーによるIT基盤変革 - IT infrastructure transformation -
Azure API Management 俺的マニュアル
Azure API Management 俺的マニュアル
徳丸本に載っていないWebアプリケーションセキュリティ
徳丸本に載っていないWebアプリケーションセキュリティ
サービスリリースから安定軌道に乗せるまでに行った開発施策
サービスリリースから安定軌道に乗せるまでに行った開発施策
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
System4 comment
System4 comment
Site Reliability Engineering (SRE)を可能にするOpenPIEのご紹介
Site Reliability Engineering (SRE)を可能にするOpenPIEのご紹介
Chefで始めるWindows Server構築
Chefで始めるWindows Server構築
DevOps and Compliance and Security
DevOps and Compliance and Security
[db tech showcase Tokyo 2015] D16:マイケルストーンブレーカー発の超高速データベースで実現する分析基盤の簡単構築・運用ステ...
[db tech showcase Tokyo 2015] D16:マイケルストーンブレーカー発の超高速データベースで実現する分析基盤の簡単構築・運用ステ...
エンジニアのための Azure 基礎知識
エンジニアのための Azure 基礎知識
PowerShell and Release Management Server
PowerShell and Release Management Server
ゼロからのプログラミングRails講座 Codeanywhere版
ゼロからのプログラミングRails講座 Codeanywhere版
配布用Cacti running with cherokee
配布用Cacti running with cherokee
文字コードに起因する脆弱性とその対策(増補版)
文字コードに起因する脆弱性とその対策(増補版)
GruntでJavaScript 前作業の自動化!
GruntでJavaScript 前作業の自動化!
Webシステム脆弱性LT資料
1.
WEBシステムのセキュリティーについて (+FuelPHPでの対策方法) 2015/09/06 安達 知仁
2.
自己紹介(1) • 安達 知仁(アダチ
トモヒト) • エンジニア歴:十数年 – フリーランス兼2社の役員 – プレイングマネージャー、フルスタックエンジニア(?) – 要件定義から運用・CSまで – サーバーサイド、フロントエンド、インフラ、スマホアプリまで幅広く – PHP/Java(J2EE/Android)/C#.NET/Javascript/C/VisualBasic(VBA)/XML/CSS/etc • Facebook: https://www.facebook.com/adachi.tomohito • Twitter: https://twitter.com/adachi_0523 • オウンドメディア:「Extend」http://extend.jpn.com/
3.
自己紹介(2) • 2010年:ベンチャー起業創業メンバーで加わり、他者の資金に頼らない ブートストラップで成功。CTO取締役として一からソーシャルアプリシステ ムを開発、構築し、会社の収益基盤を作る。 • 総ユーザー数:150万人、展開プラットフォーム:Mobage、GREE、Y!モバゲ ー、AIMA、DMM、REAL
WORLD • 2015年:現在はフリーランスとして働きながら、コンサルティング会社の取 締役(CTO)として新規事業開発を担う。 • 知人のスタートアップや新規事業、サービス開発の支援やアドバイスも行 う。 • エンジニア交流会やビジネスモデル勉強会などを主催している。
4.
基本的内容(おさらい) • WEBシステムの脆弱性 – ユーザーなど外部からの入力を扱う動的な処理を行うWEBシステムで、 脅威となる行為(システムの乗っ取りや機密情報の漏洩など)に 利用される可能性のある欠陥や仕様上の問題 –
正常なリクエストと同じ(とみなされる)形で送信されるため、 ファイアーウォールやウィルス対策ソフト、侵入検知システムの導入などでは防 げない http://www.itmedia.co.jp/enterprise/articles/0506/16/news030.html – IPA(独立行政法人 情報処理推進機構)も注意喚起と対策情報を公開している http://www.ipa.go.jp/security/ • 起こり得る被害 – 情報の流出・改ざん、サイトの改ざん、データ・システムの破壊、 サービスの停止など – ユーザー端末への被害
5.
背景 • エンジニアのセキュリティーや脆弱性対策の知識・スキル不足 • 恒久的なエンジニア不足と短納期(低コスト)化 –
セキュリティー・脆弱性面の試験や品質の確保が困難 • リーン開発/MVP開発などでプロトタイプシステムから本番公開版 (β版以降)サービス移行時に 脆弱性対策が行われずに持ち越されるケース • 外部委託やオフショア開発などで、 開発要件/要求仕様に入っていないケース • 古いバージョンのCMSやフレームワークなどを使用していて 脆弱性が放置されているケース
6.
SQLインジェクション • 前提条件 – データーベースを使用しているシステム –
ユーザーからの入力値をパラメーターとして扱う – 例:ログインフォーム、会員登録フォームなど • 簡単な説明 – 任意のSQLを入力して実行される – 例: 入力内容:a’ OR 1=1; -- →SELECT * FROM users WHERE name = ‘a’ OR 1=1; --‘ ・・・usersテーブル全件取得(”--”以降はコメント行とみなされる) • 危険性 – SQLで実行できる操作全て、SELECT、INSERT、UPDATE、DELETE、など – 情報の流出、改ざん、データ破壊
7.
SQLインジェクション • 基本的な対策方法 – SQLが実行される前に入力された内容の特殊文字を適切にエスケー プする('
→'‘) – クライアント側の文字コードにシフトJISを使わない(マルチバイト文字 の問題対策) – Prepared Statementあるいはバインドメカニズムを用いる • セカンドオーダーSQLインジェクション • ブラインドSQLインジェクション などの発展形も。 • 参考資料 – SQLインジェクション - Wikipedia – 星野君のWebアプリほのぼの改造計画(9):隠されていたSQLイン ジェクション (1/2) - @IT – Security&Trust ウォッチ(42):今夜分かるSQLインジェクション対策 - @IT
8.
クロスサイトスクリプティング(XSS) • 前提条件 – ユーザーの入力内容を画面に出力するシステム –
例:掲示板、wikiシステムなど • 簡単な説明 – 任意のjavascriptが実行される – 入力例:<script>alert(“XSS")</script> →画面上に上記スクリプトが埋め込まれ、その画面(掲示板など)を見たユー ザーのブラウザ上で”XSS”とアラート表示される • 危険性 – サイトの改ざん – 偽のページを作り出しフィッシングに用いられる
9.
クロスサイトスクリプティング(XSS) • 基本的な対策方法 – 画面表示処理を行う前に HTMLの実体参照を用いてエスケープする (&
→ & 、< → < 、> → > 、" → " ) – タグの属性値は必ず “~” (ダブルクオート)で括る – プログラムファイルの文字エンコードはUTF-8で。 – CSP(Content Security Policy)では不十分 • セッションハイジャックやクロスサイトリクエストフォージュリに発展 • 「DOM Based XSS」、「ユニーバーサルXSS(UXSS)」などもある。 • 参考資料 – クロスサイトスクリプティング – Wikipedia – ユニバーサルクロスサイトスクリプティング(UXSS)とは | 日立ソリュー ションズの情報セキュリティブログ
10.
クロスサイト・リクエスト・フォージュリ (CSRF) • 前提条件 – ログインやユーザー認証や行うシステム –
例:facebookやmixiなどのSNSやその他(ブログ等)管理者用画面 • 簡単な説明 – 特定のサイトで利用した人のアカウントとして任意の操作を行わせる ような仕組みを持った攻撃用ページを公開して利用させる – 例: <img src="http://example.com/bbs/register.cgi?title=攻撃者が指 定した題名&article=攻撃者が指定した本文"> →このページにユーザーAがアクセスすると、example.comの掲示板 に ユーザーAの投稿として”攻撃者が指定した本文”が書きこまれる • 危険性 – 日記やコメントに意図しない投稿をさせられる – オンラインショップで勝手に買い物をさせられる
11.
クロスサイト・リクエスト・フォージュリ (CSRF) • 基本的な対策方法 – リクエスト(ユーザーからのアクセス)を受け付けた際に、 キーとなる値をCookie値およびformのhidden値(隠しパラ メーター)として発行し、ユーザーからの操作が行われる 際にその両者の値の同一性をサーバー側で検証する –
XSS対策をしておくことが前提 • 参考資料 – クロスサイトリクエストフォージェリ - Wikipedia
12.
クリックジャッキング • 前提条件 – ログインやユーザー認証や行うシステム –
例:facebookやmixiのSNSやその他(ブログ等)管理者用画面 • 簡単な説明 – 正常なサイトの上にiFrameなどを用いてOHPフィルムのような透明な 罠ページに重ねて偽装し、ユーザーが意図しない操作を行わせる • 危険性 – アカウントが乗っ取られる(フィッシング) – IDやパスワードが漏えいする – 日記やコメントに意図しない投稿をさせられる – オンラインショップで勝手に買い物をさせられる
13.
クリックジャッキング • 基本的な対策方法 – HTTPレスポンスにX-FRAME-OPTIONS
の設定を記述する – ユーザー側で(極力)最新のブラウザを使用してもらう →古いブラウザではX-FRAME-OPTIONSが未実装(無効) – CSP(Content Security Policy)では不十分 • 参考資料 – IPAから「クリックジャッキング」に関するレポート出ました | 徳丸浩の 日記 – あの徳丸本にも間違いはある! 自分で確認することが大切です - A Day in Serenity @ kenjis – 知らぬ間に自ら「設定変更」~クリックジャッキング攻撃を防ぐ - 第1 回 SNSの個人情報がさらされる、昔ながらの攻撃だが対策は後手: ITpro – » クリックジャッキングって? TECHSCORE BLOG
14.
FuelPHPについて • PHPのWebアプリケーションフレームワーク • オープンソース •
HMVCパターン • MITライセンス • 参考資料 – FuelPHP - Wikipedia – FuelPHP開発入門_01 – Qiita
15.
FuelPHPについて • バグ・脆弱性 – (1.7.1以下対象)任意のコードが実行される脆弱性 –
JVN#94791545: FuelPHP において任意のコードが実行される脆弱性 – (1.6.1 以下対象)DB quote_identifier() の SQL インジェクション – (1.6.1 以下対象)xss_clean() の Unicode EM Space の処理の問題によ る XSS – FuelPHP 1.6.1 以下へのセキュリティ勧告(脆弱性) - A Day in Serenity @ kenjis – (1.6以下対象)RestコントローラでのXSS脆弱性 – 本当は怖いFuelPHP 1.6までのRestコントローラ — A Day in Serenity (Reloaded) — PHP, FuelPHP, Linux or something – など – FuelPHP のバグ情報 : FuelPHP まとめ Wiki ・・・出来るだけ最新バージョンを使いましょう
16.
FuelPHPでの対策方法 SQLインジェクション • 安全な方法 – Query
Builder (クエリビルダー)を用いる $result = DB::select()->from('users')->where(‘user_id', '=', 1)->execute(); – ORMパッケージを使用する(内部でQuery Builder が使われる) $result = Model_User::query()->where('user_id', $user_id)->get_one(); – プリペアドステートメントを用いる(PDOStatementのprepareやbind) • 危険な例 – DB::query()メソッドでパラメータをそのまま使用した場合はSQLインジェク ションが可能になるので注意! DB::query(‘SELECT * FROM users WHERE user_id=' . $user_id)->execute(); • 参考資料 – FuelPHP でのセキュリティ対策(2) - A Day in Serenity @ kenjis – fuelphpのSQLインジェクション対策とSQLインジェクションの機械的 チェック - kiriya-systemの日記
17.
FuelPHPでの対策方法 XSS • 安全な方法 – 入力パラメーターをコントローラーからビューに渡す時点で自動的にエスケープさ れるようにFuelはデフォルトで設定されている –
$this->template->content = View::forge(‘hoge/index’, Input::get(‘id’)); • 安全でない方法(エスケープしたくない場合に使用) Viewクラス forge()メソッドの第三引数に「false」を設定 – $this->template->content = View::forge('hoge/index', $data, false); 変数を指定してエスケープしない値をビューに渡す – $this->template->content->set_safe('hoge_html', $data['hoge_html']); MVCに則った構成でない場合は適用されない – <?php echo Input::get(‘id’); ?> • 参考資料 – FuelPHP でのセキュリティ対策(1) - A Day in Serenity @ kenjis
18.
FuelPHPでの対策方法 クリックジャッキング • 安全な方法 – ベースとなるクラスを作成してbefore内に記述して全クラスで継承 すると楽 –
しかし、古いブラウザでは実装されていないため最新バージョンの ブラウザを使ってもらうことが必要。 • 参考資料 • FuelPHP - Controller間共通でHTTPヘッダを追加する方法 – Qiita $this->response->set_header(‘X-FRAME-OPTIONS’, ‘SAMEORIGIN’); X-Frame-Options には、3 種類の値を設定できます: DENY …サイト側の意図に関わらず、ページをフレーム内に表示することはできません。 SAMEORIGIN …自身と生成元が同じフレーム内に限り、ページを表示することができます。 ALLOW-FROM uri …指定された生成元に限り、ページをフレーム内に表示できます。
19.
FuelPHPでの対策方法 クリックジャッキング • Webサーバー設定ファイルでの対応方法 – ApacheやNginx、IISなどでも設定可能。一括・一律に対応できるので、 可能ならそのほうがお勧めです。 •
参考資料 – クリックジャッキング対策(Apache/IIS) | Webセキュリティの小部屋 – X-Frame-Options レスポンスヘッダ - HTTP | MDN # (Apache)httpd.conf 設定例 $ sudo vi /etc/httpd/conf/httpd.conf # クリックジャック対策 Header always append X-FRAME-OPTIONS SAMEORIGIN # Apache再起動 $ sudo service httpd restart
20.
他にもたくさん • アカウント乗っ取り • セッションハイジャック •
OSコマンドインジェクション • HTTPヘッダインジェクション • パス/ディレクトリトラバーサル • バックドアとデバッグオプション • Cookieポイズニング • DDoS攻撃 • 参考資料: – Webアプリの常識をJSPとStrutsで身につける(11):Webアプリにおけ る11の脆弱性の常識と対策 (1/4) - @IT
21.
サーバー環境による問題 • ハートブリード – ハートブリード
- Wikipedia – より危険な日本の「ハートブリード」問題:日経ビジネスオンライン • ShellShock(シェルショック) – Shellshockとは | 日立ソリューションズの情報セキュリティブログ – ShellShockの衝撃 -- バグの舞台裏 – 記者の眼 - 記者は「ShellShock」に触れてみた、そして震え上がった:ITpro • POODLE: SSLv3.0 脆弱性 – POODLE: SSLv3.0 脆弱性 (CVE-2014-3566) - Red Hat Customer Portal – SSL v3.0の脆弱性「POODLE」ってかわいい名前だけど何?? - Padding Oracle On Downgraded Legacy Encryptionの仕組み - — Mobage Developers Blog • GHOST – http://japan.zdnet.com/article/35059585/
22.
静的コンテンツでの問題 • 公開前のIR情報が閲覧可能になっていたという事例 – 公開前の情報がネット流出、重大ミス防ぐ「5カ条」
:日本経済新聞
23.
まとめ • セキュリティー脆弱性の対策方法は、サーバーサイドのシス テム開発に関わるエンジニアは知っておくべき技術 • 攻撃を受けた場合の損害は会社経営に与えるインパクトが 大きい •
開発が進み後になるほど脆弱性の対策はより困難になり規 模・コストが何倍にも増加する • 開発の初期段階で対策方針を決めてコーディング規約化す ることで、開発メンバー間の認識を合わせて一定の品質を保 つのに役立てることができる • 脆弱性は発見されるので日ごろからアンテナを張り情報を キャッチアップしていくことが大切 – セキュリティー系のメルマガ、OWASP、IPAサイト など
Download now