Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
EN
TA
Uploaded by
Tomohito Adachi
PPTX, PDF
1,154 views
Webシステム脆弱性LT資料
勉強会やLTで発表した資料です。 エンジニアだけでなくWebシステムに関わる人達にも。
Engineering
◦
Read more
1
Save
Share
Embed
Embed presentation
Download
Download to read offline
1
/ 23
2
/ 23
3
/ 23
4
/ 23
5
/ 23
6
/ 23
7
/ 23
8
/ 23
9
/ 23
10
/ 23
11
/ 23
12
/ 23
13
/ 23
14
/ 23
15
/ 23
16
/ 23
17
/ 23
18
/ 23
19
/ 23
20
/ 23
21
/ 23
22
/ 23
23
/ 23
More Related Content
PDF
【SQLインジェクション対策】徳丸先生に怒られない、動的SQLの安全な組み立て方
by
kwatch
PDF
SQL上級者こそ知って欲しい、なぜO/Rマッパーが重要か?
by
kwatch
PDF
O/Rマッパーによるトラブルを未然に防ぐ
by
kwatch
PDF
Doma SQLテンプレートのしくみ
by
Toshihiro Nakamura
PPTX
『例えば、PHPを避ける』以降PHPはどれだけ安全になったか
by
Hiroshi Tokumaru
PPTX
SecurityとValidationの奇妙な関係、あるいはDrupalはなぜValidationをしたがらないのか
by
Hiroshi Tokumaru
PDF
Vue入門
by
Takeo Noda
PDF
徳丸本に学ぶ 安全なPHPアプリ開発の鉄則2011
by
Hiroshi Tokumaru
【SQLインジェクション対策】徳丸先生に怒られない、動的SQLの安全な組み立て方
by
kwatch
SQL上級者こそ知って欲しい、なぜO/Rマッパーが重要か?
by
kwatch
O/Rマッパーによるトラブルを未然に防ぐ
by
kwatch
Doma SQLテンプレートのしくみ
by
Toshihiro Nakamura
『例えば、PHPを避ける』以降PHPはどれだけ安全になったか
by
Hiroshi Tokumaru
SecurityとValidationの奇妙な関係、あるいはDrupalはなぜValidationをしたがらないのか
by
Hiroshi Tokumaru
Vue入門
by
Takeo Noda
徳丸本に学ぶ 安全なPHPアプリ開発の鉄則2011
by
Hiroshi Tokumaru
What's hot
PDF
安全なPHPアプリケーションの作り方2013
by
Hiroshi Tokumaru
PDF
PHPの今とこれから2021
by
Rui Hirokawa
PDF
徳丸本に学ぶ 安全なPHPアプリ開発の鉄則2012
by
Hiroshi Tokumaru
PDF
CodeIgniter入門
by
Sho A
PDF
最新PHP事情 (2000年7月22日,PHPカンファレンス)
by
Rui Hirokawa
PDF
PHPの今とこれから2019
by
Rui Hirokawa
PPTX
PHP基礎勉強会
by
Yuji Otani
PDF
PHP の GC の話
by
y-uti
PDF
Symfony2でより良いソフトウェアを作るために
by
Atsuhiro Kubo
PDF
owasp_evening_okinawa_7_owasp_top_10-2017_injection
by
tobaru_yuta
PDF
Vue.js で XSS
by
tobaru_yuta
PDF
PHP勉強会 #51
by
Takako Miyagawa
PPT
PHP, Now and Then 2011
by
Rui Hirokawa
PDF
PHP Now and Then 2012 at PHP Conference 2012, Tokyo Japan (in japanese)
by
Rui Hirokawa
PDF
.htaccessによるリダイレクト徹底解説
by
Cherry Pie Web
PDF
最近の PHP の話
by
y-uti
PDF
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
by
Hiroaki KOBAYASHI
PPT
Titanium Mobile
by
Naoya Ito
PDF
Spring fest2020 spring-security
by
土岐 孝平
PDF
PHPの今とこれから2016
by
Rui Hirokawa
安全なPHPアプリケーションの作り方2013
by
Hiroshi Tokumaru
PHPの今とこれから2021
by
Rui Hirokawa
徳丸本に学ぶ 安全なPHPアプリ開発の鉄則2012
by
Hiroshi Tokumaru
CodeIgniter入門
by
Sho A
最新PHP事情 (2000年7月22日,PHPカンファレンス)
by
Rui Hirokawa
PHPの今とこれから2019
by
Rui Hirokawa
PHP基礎勉強会
by
Yuji Otani
PHP の GC の話
by
y-uti
Symfony2でより良いソフトウェアを作るために
by
Atsuhiro Kubo
owasp_evening_okinawa_7_owasp_top_10-2017_injection
by
tobaru_yuta
Vue.js で XSS
by
tobaru_yuta
PHP勉強会 #51
by
Takako Miyagawa
PHP, Now and Then 2011
by
Rui Hirokawa
PHP Now and Then 2012 at PHP Conference 2012, Tokyo Japan (in japanese)
by
Rui Hirokawa
.htaccessによるリダイレクト徹底解説
by
Cherry Pie Web
最近の PHP の話
by
y-uti
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
by
Hiroaki KOBAYASHI
Titanium Mobile
by
Naoya Ito
Spring fest2020 spring-security
by
土岐 孝平
PHPの今とこれから2016
by
Rui Hirokawa
Similar to Webシステム脆弱性LT資料
PDF
FuelPHP Osu Nagoya vol.1
by
Fumito Mizuno
PPT
20090218 第5回「PhpによるWebアプリケーションのセキュリティ入門」
by
Hiromu Shioya
PDF
FuelPHP活用事例
by
Yusuke Naka
KEY
最近、僕がハマったFuelPHPの紹介
by
Naoto Mawatari
ODP
ライブコーディングとデモで理解するWebセキュリティの基礎
by
Takahisa Kishiya
PDF
セキュリティは2016年も「熱男」で行こう!
by
Tomohiro Hanada
PPTX
FuelPHPにアプリと管理ツールを同居してみる
by
Makoto Shimoda
PDF
PHPでセキュリティを真面目に考える
by
Takuya Sato
PDF
とある診断員と色々厄介な脆弱性達
by
zaki4649
PDF
PHPカンファレンス2014セキュリティ対談資料
by
Yasuo Ohgaki
PDF
phpMyAdminにおけるスクリプト実行可能な脆弱性3種盛り合わせ
by
Hiroshi Tokumaru
PPTX
Wasbook読書会4章1,2節
by
Atsushi Uchida
PPTX
若手エンジニア会Lt
by
Akihiro Nitta
PPTX
若手エンジニア会Lt
by
Akihiro Nitta
PPTX
安全なPHPアプリケーションの作り方2014
by
Hiroshi Tokumaru
PPTX
XXE、SSRF、安全でないデシリアライゼーション入門
by
Hiroshi Tokumaru
PDF
汎用性の高い大規模共有型Webバーチャルホスティング基盤のセキュリティと運用技術の改善
by
Ryosuke MATSUMOTO
PDF
10分でわかるFuelPHP @ 2011/12
by
kenjis
PPTX
セキュアPHP
by
Matsuzawa Fumiaki
PPTX
安全なPHPアプリケーションの作り方2016
by
Hiroshi Tokumaru
FuelPHP Osu Nagoya vol.1
by
Fumito Mizuno
20090218 第5回「PhpによるWebアプリケーションのセキュリティ入門」
by
Hiromu Shioya
FuelPHP活用事例
by
Yusuke Naka
最近、僕がハマったFuelPHPの紹介
by
Naoto Mawatari
ライブコーディングとデモで理解するWebセキュリティの基礎
by
Takahisa Kishiya
セキュリティは2016年も「熱男」で行こう!
by
Tomohiro Hanada
FuelPHPにアプリと管理ツールを同居してみる
by
Makoto Shimoda
PHPでセキュリティを真面目に考える
by
Takuya Sato
とある診断員と色々厄介な脆弱性達
by
zaki4649
PHPカンファレンス2014セキュリティ対談資料
by
Yasuo Ohgaki
phpMyAdminにおけるスクリプト実行可能な脆弱性3種盛り合わせ
by
Hiroshi Tokumaru
Wasbook読書会4章1,2節
by
Atsushi Uchida
若手エンジニア会Lt
by
Akihiro Nitta
若手エンジニア会Lt
by
Akihiro Nitta
安全なPHPアプリケーションの作り方2014
by
Hiroshi Tokumaru
XXE、SSRF、安全でないデシリアライゼーション入門
by
Hiroshi Tokumaru
汎用性の高い大規模共有型Webバーチャルホスティング基盤のセキュリティと運用技術の改善
by
Ryosuke MATSUMOTO
10分でわかるFuelPHP @ 2011/12
by
kenjis
セキュアPHP
by
Matsuzawa Fumiaki
安全なPHPアプリケーションの作り方2016
by
Hiroshi Tokumaru
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