SlideShare a Scribd company logo
1 of 25
OWASP
Proactive Controls 2016のご紹介
2016/3/30 Gotanda.pm
@mahoyaya
@mahoyaya
 Name: Daiki Ichinose
 Work : NWインフラ(?)
 Favorite: DIY
 Twitter: @mahoyaya
 blog: http://mahoyaya.hateblo.jp
 GitHub: https://github.com/mahoyaya
 Other:
OWASP Japan プロモーションチーム JOIN ⇐ NEW
質問
OWASP知っていますか???
What is OWASP?
OWASPは安全なソフトウェアの設計・開発・習 得・運用と維持
に関する活動を支援する、非営利の団体。
OWASPのツールやドキュメ ントなど、すべての成果物は無料で
利用可能。
国際的なコミュニティ
日本では?
OWASP Japan 2012.3
OWASP Kansai 2014.3
OWASP Kyushu 2015.3
OWASP Sendai ⇐ NEW
OWASP Fukushima ⇐ NEW
OWASP Okinawa ⇐ NEW
OWASP NightやOWASP DAYといった定期的な勉強会を実施し
ています。
どんなプロジェクトがあるの?
現時点で100以上の成果物が公開されています
https://www.owasp.org/index.php/Category:OWASP_Project
OWASPの成果物を利用しよう!
日本独自の成果物
プロモーションチーム松本さん主催の勉強会
https://security-testing.doorkeeper.jp
脆弱性診断ツール OWASP ZAPの使い方も教えてくれます
直近の開催予定
https://security-testing.doorkeeper.jp
OWASP Proactive Controls 2016日本語版リリース!!
https://www.owasp.org/images/a/a8/OWASPTop10ProactiveControls2016-Japanese.pdf
Proactive Controls 2016の紹介
PROACTIVE CONTROLSとは?
Proactive Controls 2016で列挙しているセキュリティ概念は、
すべてのソフトウェア開発プロジェクトで考慮しなければな
らないもの
すべてのソフ トウェア開発プロジェク
トで考慮しなければならないもの
 1.早期に、繰り返しセキュリティを検証する
 2.クエリーのパラメータ化
 3.データのエンコーディング
 4.すべての入力値を検証する
 5.アイデンティティと認証管理の実装
 6.適切なアクセス制御の実装
 7.データの保護
 8.ロギングと侵入検知の実装
 9.セキュリティフレームワークやライブラリの活用
 10.エラー処理と例外処理
今日はここ
1.早期に、繰り返しセキュリティを検証する
「早期に、繰り返しセキュリティを検証」とは、脆弱性の検
査を開発プロセスの中で繰り返し行うべきであるということ。
2.クエリーのパラメータ化
“静的”プレースホルダを使うべきであるということ
抜粋:
SQLインジェクションを防ぐには、信頼できない入力値がSQLコマンド
の一部として解釈されるのを避ける必要があります。最も良い方法は
「クエリーのパラメータ化」と呼ばれる実装方法です。この方法では、
SQLの問い合わせ構文とパラメータは、それぞれ別々にデータベース
サーバーに送信され、データベース上で解析されます。
※構文とパラメータが別々にDBへ送信されるのは静的プレースホルダのみ
なぜ静的である必要があるのか?
動的プレースホルダ(俗にいうクライアントサイド・プリペアードス
テートメント)は、呼び出し側でSQLを構文解析するため、API仕様と
して構文解析が適切でなかった場合に問題が発生する可能性を秘めてい
る。
これに対して静的プレースホルダは、データベースサーバ上で構文を
「確定」させてからパラメータを挿入するため、理論上インジェクショ
ンの余地が無い。
具体的にどうするの?
抜粋:
Rails、Django、Node.jsといったフレームワークでは、データベースと
のやりとりにはORモ デル(Object-Relationalモデル)が採用されています。
ORモデルを採用しているこれらのフ レームワークでは、データの参照
や更新の際には自動的にクエリーのパラメータ化が行わ れています。
しかし、OQLやHQLといったオブジェクトクエリーにユーザーからの入
力値を 用いる場合は注意が必要です。これ以外にもフレームワークが
サポートしている形式があ れば、同様に注意する必要があります。
(゚д゚ ) Perlは?
Perl+MySQLをゆるふわに静的にしてみた
my $dbh = DBI->connect( 'DBI:mysql:database=xxx;host=xxx;mysql_server_prepare=1;mysql_enable_utf8=1',
'xxxx', 'xxxx');
if (! $dbh) { is_error(); }
my $sql = "INSERT INTO foo (bar, baz) VALUES ( ?, ? )";
my $sth = $dbh->prepare( $sql );
$sth->execute( $bar, $baz );
でも、DBIをそのままで使わないよね
俺達のAniki
my $db = MyProj::DB->new(connect_info =>
["dbi:mysql:dbname=mydb;host=$dbhost;port=$dbport:mysql_server_prepare=1;mysql_use_utf8=1;", “user",
“pass"]);
システム要件を加味した上で、
可能な限り”静的”プレースホルダを使いましょう
ありがとうございました
WEBをたしかなものに

More Related Content

Viewers also liked

Python札幌 2012/06/17
Python札幌 2012/06/17Python札幌 2012/06/17
Python札幌 2012/06/17
Shinya Okano
 
mixiアプリ『the Actress』運用にあたっての課題へのチャレンジ
mixiアプリ『the Actress』運用にあたっての課題へのチャレンジmixiアプリ『the Actress』運用にあたっての課題へのチャレンジ
mixiアプリ『the Actress』運用にあたっての課題へのチャレンジ
Shinya Okano
 
Python札幌201406
Python札幌201406Python札幌201406
Python札幌201406
Shinya Okano
 
自分でできるWebアプリケーション脆弱性診断 - デブサミ2010
自分でできるWebアプリケーション脆弱性診断 - デブサミ2010自分でできるWebアプリケーション脆弱性診断 - デブサミ2010
自分でできるWebアプリケーション脆弱性診断 - デブサミ2010
Sen Ueno
 

Viewers also liked (18)

Python札幌 2012/06/17
Python札幌 2012/06/17Python札幌 2012/06/17
Python札幌 2012/06/17
 
Biblnk
BiblnkBiblnk
Biblnk
 
Python勉強会資料(MessageBoard作成)
Python勉強会資料(MessageBoard作成)Python勉強会資料(MessageBoard作成)
Python勉強会資料(MessageBoard作成)
 
mixiアプリ『the Actress』運用にあたっての課題へのチャレンジ
mixiアプリ『the Actress』運用にあたっての課題へのチャレンジmixiアプリ『the Actress』運用にあたっての課題へのチャレンジ
mixiアプリ『the Actress』運用にあたっての課題へのチャレンジ
 
Django最速デバッグ指南 PyConAPAC 2013
Django最速デバッグ指南 PyConAPAC 2013Django最速デバッグ指南 PyConAPAC 2013
Django最速デバッグ指南 PyConAPAC 2013
 
hello waf, hello phoenix
hello waf, hello phoenixhello waf, hello phoenix
hello waf, hello phoenix
 
Pythonではじめる野球プログラミング - kawasaki.rb #15 2014/8/27
Pythonではじめる野球プログラミング  - kawasaki.rb #15 2014/8/27Pythonではじめる野球プログラミング  - kawasaki.rb #15 2014/8/27
Pythonではじめる野球プログラミング - kawasaki.rb #15 2014/8/27
 
Djangoフレームワークの紹介 OSC2015北海道
Djangoフレームワークの紹介 OSC2015北海道Djangoフレームワークの紹介 OSC2015北海道
Djangoフレームワークの紹介 OSC2015北海道
 
Webフレームワークパネル(Django) at PyConJP 2012
Webフレームワークパネル(Django) at PyConJP 2012Webフレームワークパネル(Django) at PyConJP 2012
Webフレームワークパネル(Django) at PyConJP 2012
 
Python札幌201406
Python札幌201406Python札幌201406
Python札幌201406
 
Gunma.web #24 MySQL HA
Gunma.web #24 MySQL HAGunma.web #24 MySQL HA
Gunma.web #24 MySQL HA
 
素振りのススメ at Python入門者の集い
素振りのススメ at Python入門者の集い素振りのススメ at Python入門者の集い
素振りのススメ at Python入門者の集い
 
Django learning Part2
Django learning Part2Django learning Part2
Django learning Part2
 
価値を届ける技術 #bpstudy 96
価値を届ける技術 #bpstudy 96価値を届ける技術 #bpstudy 96
価値を届ける技術 #bpstudy 96
 
ゲームインフラとGoogle Cloud Platformと酒!
ゲームインフラとGoogle Cloud Platformと酒!ゲームインフラとGoogle Cloud Platformと酒!
ゲームインフラとGoogle Cloud Platformと酒!
 
Pycon2014 django performance
Pycon2014 django performancePycon2014 django performance
Pycon2014 django performance
 
サイバー考古学@ささみ 2017.2.20
サイバー考古学@ささみ 2017.2.20サイバー考古学@ささみ 2017.2.20
サイバー考古学@ささみ 2017.2.20
 
自分でできるWebアプリケーション脆弱性診断 - デブサミ2010
自分でできるWebアプリケーション脆弱性診断 - デブサミ2010自分でできるWebアプリケーション脆弱性診断 - デブサミ2010
自分でできるWebアプリケーション脆弱性診断 - デブサミ2010
 

Recently uploaded

Recently uploaded (12)

Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 

OWASPとProactive Controls 2016のご紹介

Editor's Notes

  1. 僕のことは忘れてもOWASPだけは覚えて帰ってください
  2. 2、3ヶ月に1回のミーティングや勉強会を行っています
  3. 2年に1回更新
  4. この項目が2番目にあるということは、バリデーションが最適ではないということ
  5. いわゆる信頼境界を越えて入ってくるデータは注意が必要
  6. デフォルトが動的