SlideShare uma empresa Scribd logo
1 de 41
Baixar para ler offline
ソースコード検査に
耐えるコードとは?
~Webアプリ編 2016年度版~
エレクトロニック・サービス・イニシアチブ
http://www.es-i.jp/
コンテンツ
• セキュリティとは?
• セキュリティ標準とベストプラクティス
• セキュアなコードとは?
(c) Electronic Service Initiative, Ltd. All rights reserved 22016/6/18
セキュリティとは?
基本的な要素を簡単に解説します
(c) Electronic Service Initiative, Ltd. All rights reserved 32016/6/18
セキュリティ対策 = セキュリティマネジメント
• リスクを変化させる為のプロセス
• リスクを発生させる活動を開始しない、または継続しないことを決断するこ
とによりリスクを回避する
• 機会を獲得する為にリスクを選択または増加させる
• リスクの原因を排除する
• 発生の頻度を変える
• 結果を変える
• 他の組織(契約企業やリスクの資金的
処理を含む 訳注:保険など)とリスクを共有し
• 見聞のある選択によりリスクを抑える
• 否定的な結果をもたらす事象のリスク対応は、”リスク緩和策”、”リスク
排除策”、”リスク防止策”、”リスク削減策”などと呼ばれる事がある
ISO27000の「リスク対応」(Risk Treatment)の定義
(c) Electronic Service Initiative, Ltd. All rights reserved 4
 国際ITセキュリティ標準ISO 27000の定義
2016/6/18
リスク(脆弱性)の排除
や削減はセキュリティ対
策の一部でしかない
リスク緩和策はセキュリティ対策
• 否定的な結果をもたらす事象のリスク対応は、
• ”リスク緩和策”
• ”リスク排除策”
• ”リスク防止策”
• ”リスク削減策”
• などと呼ばれる事がある
(c) Electronic Service Initiative, Ltd. All rights reserved 5
 国際ITセキュリティ標準ISO27000の定義
POINT! 緩和策をセキュリティではない
と勘違いしない
POINT! 排除策、防止策、削減策は
セキュリティ対策の一部
2016/6/18
セキュリティ定義とセキュアコード
• セキュリティ対策と
は脆弱性を除去する
ものだけがセキュリ
ティ対策ではない
セキュリティ対策
≠脆弱性除去
• 安全性を変化させる
施策すべて
• セキュリティ対策
セキュリティ
対策 • ソフトウェアは非常
に複雑
• バグの完全排除は困
難
安全性指向
コード
• コードの安全性をマ
ネジメントしやすい
コード
• 安全性の高いコード
防御的コード
(c) Electronic Service Initiative, Ltd. All rights reserved 6
 防御的プログラミングは「プログラミング原則」のひとつ
2016/6/18
例)ログの取得は重要
なセキュリティ対策!
セキュリティの基本概念
• 境界防御
• 信頼境界線で防御
• 縦深防御(多層防御)
• 信頼境界線内で防御
OS
ライブラリ
アプリケー
ション
ネットワー
ク
(c) Electronic Service Initiative, Ltd. All rights reserved 7
境界防御が基本かつ
最も重要
 アプリケーション内の
縦深防御(多層防御)が重要
各レイヤー内でも小さな
範囲で境界防御を実施
2016/6/18
セキュリティの6要素
= セキュアなアプリケーションの要素
• Confidentiality(機密性)
• Integrity(完全性)
• Availability(可用性)
• Reliability(信頼性)
• Authenticity(真正性)
• Non-Repudiation(否認防止)
Accountability(追跡性)
セキュ
リティ
機密性
完全性
可用性
信頼性
真正性
追跡性
 国際ITセキュリティ標準ISO 27000の定義
(c) Electronic Service Initiative, Ltd. All rights reserved 82016/6/18
セキュアな開発はPDCAサイクルに対応
• 要件
• 仕様
PLAN
• システム構築
• この中もPDCA
DO
• 品質検査
• 安全性検査
CHECK
• 問題点確認
• 改善への行動
ACTION
(c) Electronic Service Initiative, Ltd. All rights reserved 9
✓ PDCAマネジメントは国際標準ISO規格の根幹
2016/6/18
セキュリティ標準とベストプラクティス
開発者が実践すべき標準とプラクティス
(c) Electronic Service Initiative, Ltd. All rights reserved 102016/6/18
セキュリティ標準規格
• ISO27000
• 国際標準のITセキュリティ標準規格
• JISとしても定義
• IT開発者必修
• http://www.iso.org/iso/home.html
• PCI DSS
• カード会社が中心となって策定した規格
• クレジットカードなどの取り扱いに必須
• https://ja.pcisecuritystandards.org/minisite/en/
(c) Electronic Service Initiative, Ltd. All rights reserved 112016/6/18
Web開発者必修ベストプラクティス
• CERT Top 10 Secure Coding Practices
• 米カーネギーメロン大学のCERTが公開しているセキュアコーディング標準トップ10
• CERTは1988年に設置され、ソフトウェアセキュリティの草分け的な組織として現在に至る
• https://www.securecoding.cert.org/confluence/display/seccode/Top+1
0+Secure+Coding+Practices
• OWASP Secure Coding Practices – Quick Reference Guide
• OWASP(Open Web Application Security Project):PCS DSS標準でも言
及されているセキュリティ推進団体
• 多数公開されているガイドの対策をまとめた文書。チェックリスト形式でセキュアコーディングの
実施状態を確認できる。
• https://www.owasp.org/index.php/OWASP_Secure_Coding_Practices_-
_Quick_Reference_Guide
2016/6/18(c) Electronic Service Initiative, Ltd. All rights reserved 12
CERT Top 10 Secure Coding Practices
• 1. 入力をバリデーションする
• 2. コンパイラの警告に用心する
• 3. セキュリティポリシーの為に構
成/設計する
• 4. 簡易にする
• 5. デフォルトで拒否する
• 6. 最小権限の原則を支持する
• 7. 他のシステムに送信するデー
タを無害化する
• 8. 縦深防御を実践する
• 9. 効果的な品質保証テクニック
を利用する
• 10. セキュアコーディング標準を
採用する
2016/6/18(c) Electronic Service Initiative, Ltd. All rights reserved 13
http://blog.ohgaki.net/cert-top-10-secure-coding-standard
OWASP Secure Coding Practices
– Quick Reference Guide
• 入力バリデーション
• 出力エンコーディング
• 認証とパスワード管理
• セッション管理
• アクセス制御
• 暗号の取り扱い
• エラー処理とログ
• データ保護
• 通信セキュリティ
• システム設定
• データベース管理
• ファイル管理
• メモリ管理
• 一般的コーディング実践
2016/6/18(c) Electronic Service Initiative, Ltd. All rights reserved 14
http://blog.ohgaki.net/owasp-secure-coding-practices-quick-reference-guide
Web開発者必修ガイドライン
• CWE/SANS TOP 25
• 最も危険なアプリケーション脆弱性トップ25とその対策
• CWE(Common Weakness Enumeration):米国MITRE社の脆弱性カタログ
• SANS:セキュリティ研究・教育を行う米の組織
• https://www.sans.org/top25-software-errors/
• OWASP TOP 10
• Webアプリケーションに特化した最も危険な脆弱性トップ10
• https://www.owasp.org/index.php/Main_Page
(c) Electronic Service Initiative, Ltd. All rights reserved 152016/6/18
開発者必修プログラミング原則
• Defensive Programming(防御的プログラミング)
• Secure Programmingとも呼ばれる
• バグを最小限に留めるためのプログラミングプラクティス
• Intelligent source code reuse
• Legacy problems
• Secure input and output handling
• Canonicalization
• Low tolerance against "potential" bugs
• All data is tainted until proven otherwise
• All code is insecure until proven otherwise
• Design by contract
• Assertions
• Prefer exceptions to return codes
• その他
(c) Electronic Service Initiative, Ltd. All rights reserved 16
安全な入出力の管理
これを行うだけでもWebアプ
リのセキュリティ問題の大多
数を解決可能
 安全な入出力管理以外の原則は入出力管理に関連
 またはそれらの緩和策と機能する
2016/6/18
開発者必修CWE/SANS TOP25の
「怪物的セキュリティ対策」
• CWE/SANS TOP25では個別の脆弱性対策以外に一般的対策として
「怪物的セキュリティ対策」(Monster Mitigations)を定義
• 怪物的セキュリティ対策の第一位と第二位
(c) Electronic Service Initiative, Ltd. All rights reserved 17
安全な入出力の管理
これを行うだけでもWebアプ
リのセキュリティ問題の大多
数を解決可能
 プログラミング原則 – 防御的プログラミング
 ISO27000 – 同様の要求
• 入力バリデーションをシステム全体で行う
一位:確実な入力の管理
• 安全な出力をデフォルトで利用
• エスケープ、安全なAPI、バリデーション
二位:確実な出力の管理
2016/6/18
セキュアなコードとは?
アプリケーション開発者が知るべきセキュアなコードの特徴
(c) Electronic Service Initiative, Ltd. All rights reserved 182016/6/18
ソフトウェアは非常に複雑
• 簡単なコードでも背後で動作して
いる多数の関数
• しかもこれらは頻繁に更新
• 機能追加・リファクタリング・バグフィック
ス
• アプリ自身は更新しなくても、ライブラリ
やプラットフォームのバージョンが更新
• 攻撃者はたった一つの弱点を見つけ
れば勝ち
(c) Electronic Service Initiative, Ltd. All rights reserved 19
IISのコールグラフ
https://twittech.wordpress.com/2013/05/06/building-kernel-modules-with-autotools/
 防御的プログラミングが有効
2016/6/18
防御的プログラミングの概念とツール
- セキュアプログラミング
• 防御的プログラミングの要素
• Intelligent source code reuse
• Legacy problems
• Secure input and output handling
• Canonicalization
• Low tolerance against "potential" bugs
• All data is tainted until proven otherwise
• All code is insecure until proven otherwise
• Design by contract
• Assertions
• Prefer exceptions to return codes
• その他
• セキュリティ標準・ガイドラインをツールとして利用
• ISO27000
• CWE/SAN TOP 25
• CERT Secure Coding
• OWASP TOP 25
• OWASP Guide
• OWASP Chart Sheet
• マニュアル・リファレンス
• プロトコルの仕様
• 外部システムの入出力仕様
• ライブラリの仕様
• 言語・関数の仕様
(c) Electronic Service Initiative, Ltd. All rights reserved 20
安全な入力・出力
処理には正確な仕
様の理解が欠かせ
ない
 防御的プログラミングには仕様の理解が不可欠 信頼できる、と保障できない物(入出力
データ、ライブラリ、コード)は信頼し
ない
2016/6/18
一般的なプログラムの構造
2016/6/18(c) Electronic Service Initiative, Ltd. All rights reserved 21
リクエスト
を受信
何らかの
処理
レスポンス
を送信
IISのコールグラフ
Webサーバーの基本動作は単純
基本動作は単純でも
内部構造は複雑
防御のポイント
• 入力処理
• バリデーション(ホワイトリストが基本)
• ロジック処理
• ベストプラクティス
• OWASP・CWE・ISO・その他のガイドラ
イン・標準を利用
• 出力処理
• エスケープ、安全なAPI、バリデーション
(ホワイトリストが基本)
(c) Electronic Service Initiative, Ltd. All rights reserved 22
 デフォルトでエスケープ
 例)HTML出力
 全ての入力をバリデーション
ロジックにはベストプラクティス
 認証・認可・セッション管理・
ログ・エラー処理など
2016/6/18
入力処理でバリデーション
出力処理を既定として安全性を担保
まずアプリケーション全体を防御
• 入力処理
• バリデーション(ホワイトリスト優先)
• 出力処理
• エスケープ、安全なAPI、バリデーショ
ン(ホワイトリスト優先)
(c) Electronic Service Initiative, Ltd. All rights reserved 23
 デフォルトでエスケープ
 例)HTML出力
 全ての入力をバリデーション
※ ISO27000の要求事項
防御対象アプリケーション
境界での保護が第一
 境界防御 – セキュリティの基本原則
2016/6/18
入力処理でバリデーションし
無用なリスクを排除
出力処理の安全性を確実に担保
入力
処理
出力
モジュール・関数レベルも同じ
• 入力処理
• バリデーション(ホワイトリスト優先)
• 出力処理
• エスケープ、安全なAPI、バリデーショ
ン(ホワイトリスト優先)
(c) Electronic Service Initiative, Ltd. All rights reserved 24
 異常な出力を防止(無効な値など)
 Assertや契約プログラミングが有効
 全ての入力をバリデーション
 Assertや契約プログラミングが有効
入力処理でバリデーション
出力処理を既定として安全性を
担保
 モジュール・関数レベルで見ると境
界防御だが、アプリレベルと見ると
縦深防御(多層防御)
 縦深防御もセキュリティの基本原則
2016/6/18
アプリ・モジュール・関数の
境界を防御
• 基本アーキテクチャ – アプリケーション、モジュール、関数・メソッド、粒度に
関わらず共通
セキュアなソフトウェアアーキテクチャ
2016/6/18(c) Electronic Service Initiative, Ltd. All rights reserved 25
入力
入力処理
ロジック処理
出力処理
出力
アプリケーション
入力処理
ロジック処理
出力処理
入力処理
ロジック処理
出力処理
モジュール 関数・メソッド
各レイヤーの
境界防御
が防御の基本
 アプリケーションレベル
の境界防御が特に重要
セキュアなコード
= セキュリティの基本要素を守るコード
• 入力・出力制御
• セッション管理
• 認証・認可
• 暗号・ハッシュ
• フェイルセーフ
• 認証ログ、操作ログ、エラーログ
• テスト・品質検査
• コードレビュー
(c) Electronic Service Initiative, Ltd. All rights reserved 26
セキュ
リティ
機密性
完全性
可用性
信頼性
真正性
追跡性
ベストプラクティス
を最大限に利用
 フレームワークやライブラリ
が必ずしもベストプラクティ
スを実装しているとは限らな
い点に注意
2016/6/18
セキュアなコード
= コードの安全性がひと目で分かる
(c) Electronic Service Initiative, Ltd. All rights reserved 27
• PHPの例
$id = isset($_GET[‘id’]) ? $_GET[‘id’] : null;
$id = validate($_GET[‘id’], ‘int’, 0, PHP_INT_MAX); // invalidはエラーで停止
入力バリデーションはセキュリティ対策であり、
入力パラメータは可能な限り厳格にチェック
入力バリデーションエラーはプログラムの実行を停止
パラメータが設定されているか
のみをチェック?!
NG
2016/6/18
セキュアなコード
= コードの安全性がひと目で分かる
(c) Electronic Service Initiative, Ltd. All rights reserved 28
• PHP+HTMLの例
<div id=“<?php echo $integer_id ?>” > …..</div>
<div id=“<?php echo hemlspecialchars($integer_id, ENT_QUOTES,
‘UTF-8’) ?>” > …..</div>
入力バリデーションは「入力」の「境界防御」
防御的プログラミングでは出力を行う場合にも「出力」
の「境界防御」を行う(出力対策は入力対策と独立)
入力バリデーションで「入力」の安全性は担保
そのまま出力して安全?!
NG
2016/6/18
Webアプリケーションの世界はテキストが基本
• 安全なテキスト処理がセキュリティ対策の基本
• 入力・出力の仕様を正確に理解
• HTML、CSS、JSON、SQL、LDAP、XML、XPATH、SMTP、HTTP他
• OSコマンド、C言語文字列、PHP文字列、JavaScript文字列他
• 一文字でも意味がある文字を持つ場合、インジェクション攻撃が可能と仮定
• 実際、一文字でも特別な文字があるとインジェクション攻撃に脆弱に
• ヌル文字インジェクション、改行インジェクション(SMTP、HTTP)
• テキスト処理をする場合、まず特殊文字があるか調べる
• 一文字でもある場合、エスケープ方法・関数があるか調べる
• エスケープ方法が定義されていても、エスケープAPIが無い場合も多い
• 安全なAPIがあれば利用する
• 安全と言われるAPIでも制限はある。例)プリペアードクエリは識別子、
SQL語句のパラメータ化は対応していない。変数も埋め込める。
• バリデーションは“ホワイトリスト方式”が基本中の基本
• バリデーションエラーになる無効な入力を受け付ける意味は通常ないので拒否する
(c) Electronic Service Initiative, Ltd. All rights reserved 29
正確・安全なテ
キスト処理を知
り、実践する
安全なコードへ
の最短距離
 APIさえ使っていれば大丈夫、
は遠回りかつ危険
2016/6/18
セキュリティと速度・コスト
• セキュリティ対策の多くはトレードオフ関係
(c) Electronic Service Initiative, Ltd. All rights reserved 30
境界防御、縦深防御(多層防御)、
防御的プログラミング
実行速度増加、実装コスト増加
2016/6/18
防御的プログラミングを行わないコスト
• 防御的プログラミングを行わないメリット・デメリット
(c) Electronic Service Initiative, Ltd. All rights reserved 31
コード記述量が減る、一見システ
ムが正常(安全)に動作している
ように見える(構築期間短縮)、
システムの動作が軽快
隠れたバグの増加、セキュリティ
に影響するバグの増加、構築期間
が短く見えてもバグ修正のコスト
が増大
 スーパープログラマが全てのコードを一人で書けばバグフリー
も可能だが、現実の開発ではほぼ不可能
2016/6/18
CSRF ‐ Cross Site Request Forgery
CSRFは真正性の問題
• 真正性はISO27000でセキュリティの要素として定義されている
• 利用者、プロセス、システム、情報などが本物であることを確実にするということ。
Webアプリケーションはリクエストの詐称が容易
• 罠ページを用意して認証済みのユーザー権限で不正なリクエストを送信
• Webアプリケーションでは広くみられるセキュリティ問題
更新系のリクエスト全てにCSRF対策が必要
• リクエストにランダムかつ一意なトークンを付与し、サーバーでバリデーション
• CSRF対策は入力バリデーションの一種
2016/6/18(c) Electronic Service Initiative, Ltd. All rights reserved 32
セキュア(防御的)プログラミングの学習
• セキュリティ標準・ガイドライン
• ISO27000
• CERT Secure Coding Standard
• CWE/SAN TOP 25
• OWASP TOP 10
• OWASP Secure Coding Practices
• OWASP Guide
• OWASP Chart Sheet
• マニュアル・リファレンス
• プロトコルの仕様
• 外部システムの入出力仕様
• ライブラリの仕様
• 言語・関数の仕様
• メソドロジー
• 契約プログラミング(契約による設計)
• OpenSAMM
どこから手をつけて
良いかわからない
体系的にセキュア
プログラミングを学びたい
弊社にお問い合わせください
(c) Electronic Service Initiative, Ltd. All rights reserved 332016/6/18
まとめ
2016/6/18(c) Electronic Service Initiative, Ltd. All rights reserved 34
セキュリティ問題の8割、9割は
入力と出力のセキュリティ対策で対応可能
入力
• ホワイトリスト型でバリデーション
• 全ての入力値が対象、要素数などもチェック
出力
• 入力対策とは独立した対策。出力を徹底的に無害化
• エスケープ、エスケープが必要ないAPI、バリデーション処理
処理
• ベストプラクティスを採用。特に認証、認可、その他セキュリ
ティに関連する処理
2016/6/18(c) Electronic Service Initiative, Ltd. All rights reserved 35
入力バリデーションは
#1のセキュリティ対策
(SANS, MITRE, CERT,
OWASP, ISO)
安全な入力処理の原則
バリデーション
• 全ての入力データは厳格にバリデーションする
• バリデーションはホワイトリスト方式
• 文字データ:文字エンコーディング、利用文字、形式、長さ
• 数値データ:整数、浮動小数、最小値、最大値
• 集合データ:集合に合致する値 例)都道府県、性別、学年
• 入力値:入力パラメータの数、必須入力
2016/6/18(c) Electronic Service Initiative, Ltd. All rights reserved 36
 入力バリデーションは最も重要なセキュリティ対策
 バリデーションエラーは処理を停止
入力バリデーション
エラーと入力ミスは
異なるモノである点
を理解していない開
発者も多い!
安全な出力処理の三原則
1.エスケープ
• 出力先のエスケープ方式理解し確実にエスケープする
• 出力先が用意しているエスケープ関数を利用する
• エスケープ関数が無い場合もある
2.API利用
• エスケープが必要なくなるAPIが利用可能な場合は利用する
• セキュアなAPIが無い場合が多い
3.バリデーション
• エスケープもAPIも利用できない場合、バリデーションを行う
• バリデーションできない場合、サニタイズを行う
2016/6/18(c) Electronic Service Initiative, Ltd. All rights reserved 37
 出力処理は入力処理とは“独立”である
 正しい文字エンコーディングであることを保証する
「セキュアなAPIを利
用する」は不完全な
対策であることがあ
る点に注意!
セキュリティ問題の8~9割に
入力処理と出力処理で対応可能
入力バリデーションをセキュリティ対策でない、
と考えている開発者は少なくないので要注意
• 入力バリデーションはソフトウェア開発で最も重要なセキュリティ対策
• 入力バリデーション無しで喜ぶのは攻撃者とブラックボックステストをするセキュリティ専
門家
• 入力バリデーションはISO27000(ISMS)、PCI DSSで要求している事項。入力バリデーション
を実施しない場合、仕様書に記載がなくても開発会社は損害賠償責任を問われる可能性があ
る
入力対策と出力対策が独立した対策であること
を理解していない開発者は多いので要注意
• 入力時に出力時のコンテクストは不明。したがって、入出力処理は独立した対策
• 入力・出力対策(境界防御)はITセキュリティ以外にも通用するセキュリティ対策の基本中の
基本
2016/6/18(c) Electronic Service Initiative, Ltd. All rights reserved 38
 入力と出力の制御は第一位、第二位のセキュリティ対策
 第一位、第二位のセキュリティ対策無しの対策は有り得ない
ベストプラクティス
CWE(CommonWeakness Enumeration - 共通脆弱性タイプ一覧)には
ソフトウェアによく見られる脆弱性とその対策が記載されている
• https://www.ipa.go.jp/security/vuln/CWE.html
https://cwe.mitre.org/
• CWEが利用する言語はJava、C#が多いが他の言語でも参考になる
• CWEに記載されている対策が最善の対策とは限らない
• CWEに記載されていない脆弱性もある
フレームワーク
• フレームワークはベストプラクティスとなる実装も多い
• ベストプラクティスとは言えない実装も多い
2016/6/18(c) Electronic Service Initiative, Ltd. All rights reserved 39
ベストプラクティス
CERT Top 10 Secure Coding Practices
• CERTのセキュアコーディング標準準拠より、この一般的コーディング指針が重要
• 独自のセキュアコーディング標準の構築が必要
OWASP Secure Coding Practices
• チェックリスト形式で現在のセキュリティ対策の状態をチェック可能
• 必ずしも全てのベストプラクティスを全てのプロジェクトに適用する必要はない
OpenSAMM
• コードのみでなく「仕組み」としてセキュアな開発を実行する組織を作る方法論
• 能力成熟度モデルであるため導入し易い
• セキュリティは文化であり、段階的にセキュリティ文化を構築可能
2016/6/18(c) Electronic Service Initiative, Ltd. All rights reserved 40
お問い合わせ
セキュア開発/プログラミング・ソースコード検査のお問い合わせは
エレクトロニック・サービス・イニシアチブ
http://www.es-i.jp/
info@es-i.jp
(c) Electronic Service Initiative, Ltd. All rights reserved 412016/6/18

Mais conteúdo relacionado

Mais procurados

PHPカンファレンス2014セキュリティ対談資料
PHPカンファレンス2014セキュリティ対談資料PHPカンファレンス2014セキュリティ対談資料
PHPカンファレンス2014セキュリティ対談資料Yasuo Ohgaki
 
著名PHPアプリの脆弱性に学ぶセキュアコーディングの原則
著名PHPアプリの脆弱性に学ぶセキュアコーディングの原則著名PHPアプリの脆弱性に学ぶセキュアコーディングの原則
著名PHPアプリの脆弱性に学ぶセキュアコーディングの原則Hiroshi Tokumaru
 
2017年のセキュリティ 傾向と対策講座
2017年のセキュリティ 傾向と対策講座2017年のセキュリティ 傾向と対策講座
2017年のセキュリティ 傾向と対策講座NHN テコラス株式会社
 
安全なWebアプリケーションの作り方2018
安全なWebアプリケーションの作り方2018安全なWebアプリケーションの作り方2018
安全なWebアプリケーションの作り方2018Hiroshi Tokumaru
 
とある診断員と色々厄介な脆弱性達
とある診断員と色々厄介な脆弱性達とある診断員と色々厄介な脆弱性達
とある診断員と色々厄介な脆弱性達zaki4649
 
なぜ自社で脆弱性診断を行うべきなのか
なぜ自社で脆弱性診断を行うべきなのかなぜ自社で脆弱性診断を行うべきなのか
なぜ自社で脆弱性診断を行うべきなのかSen Ueno
 
インフラセキュリティブートキャンプ #seccamp
インフラセキュリティブートキャンプ #seccampインフラセキュリティブートキャンプ #seccamp
インフラセキュリティブートキャンプ #seccampMasahiro NAKAYAMA
 
あなたもなれる 【セキュリティエンジニア】 EC-Council 情報セキュリティエンジニア育成トレーニングコース「 "セキュリティエンジニア" に! お...
あなたもなれる 【セキュリティエンジニア】 EC-Council 情報セキュリティエンジニア育成トレーニングコース「 "セキュリティエンジニア" に! お...あなたもなれる 【セキュリティエンジニア】 EC-Council 情報セキュリティエンジニア育成トレーニングコース「 "セキュリティエンジニア" に! お...
あなたもなれる 【セキュリティエンジニア】 EC-Council 情報セキュリティエンジニア育成トレーニングコース「 "セキュリティエンジニア" に! お...グローバルセキュリティエキスパート株式会社(GSX)
 
Webアプリでパスワード保護はどこまでやればいいか
Webアプリでパスワード保護はどこまでやればいいかWebアプリでパスワード保護はどこまでやればいいか
Webアプリでパスワード保護はどこまでやればいいかHiroshi Tokumaru
 
デバッガでWordPress本体やプラグインの脆弱性を追いかけてみよう
デバッガでWordPress本体やプラグインの脆弱性を追いかけてみようデバッガでWordPress本体やプラグインの脆弱性を追いかけてみよう
デバッガでWordPress本体やプラグインの脆弱性を追いかけてみようHiroshi Tokumaru
 
とある診断員とSQLインジェクション
とある診断員とSQLインジェクションとある診断員とSQLインジェクション
とある診断員とSQLインジェクションzaki4649
 
第32回Websig会議「クラウドは○○を共有するサービス」
第32回Websig会議「クラウドは○○を共有するサービス」第32回Websig会議「クラウドは○○を共有するサービス」
第32回Websig会議「クラウドは○○を共有するサービス」Sen Ueno
 
安全なPHPアプリケーションの作り方2016
安全なPHPアプリケーションの作り方2016安全なPHPアプリケーションの作り方2016
安全なPHPアプリケーションの作り方2016Hiroshi Tokumaru
 
[デブサミ2012]趣味と実益の脆弱性発見
[デブサミ2012]趣味と実益の脆弱性発見[デブサミ2012]趣味と実益の脆弱性発見
[デブサミ2012]趣味と実益の脆弱性発見Yosuke HASEGAWA
 
今だからこそ振り返ろう!OWASP Top 10
今だからこそ振り返ろう!OWASP Top 10今だからこそ振り返ろう!OWASP Top 10
今だからこそ振り返ろう!OWASP Top 10Daiki Ichinose
 
20181219 Introduction of Incident Response in AWS for Beginers
20181219 Introduction of Incident Response in AWS for Beginers20181219 Introduction of Incident Response in AWS for Beginers
20181219 Introduction of Incident Response in AWS for BeginersTyphon 666
 
CISOが、適切にセキュリティ機能とレベルを決めるには
CISOが、適切にセキュリティ機能とレベルを決めるにはCISOが、適切にセキュリティ機能とレベルを決めるには
CISOが、適切にセキュリティ機能とレベルを決めるにはRiotaro OKADA
 
クラウドセキュリティ基礎 #seccamp
クラウドセキュリティ基礎 #seccampクラウドセキュリティ基礎 #seccamp
クラウドセキュリティ基礎 #seccampMasahiro NAKAYAMA
 
徳丸本ができるまで
徳丸本ができるまで徳丸本ができるまで
徳丸本ができるまでHiroshi Tokumaru
 
Railsエンジニアのためのウェブセキュリティ入門
Railsエンジニアのためのウェブセキュリティ入門Railsエンジニアのためのウェブセキュリティ入門
Railsエンジニアのためのウェブセキュリティ入門Hiroshi Tokumaru
 

Mais procurados (20)

PHPカンファレンス2014セキュリティ対談資料
PHPカンファレンス2014セキュリティ対談資料PHPカンファレンス2014セキュリティ対談資料
PHPカンファレンス2014セキュリティ対談資料
 
著名PHPアプリの脆弱性に学ぶセキュアコーディングの原則
著名PHPアプリの脆弱性に学ぶセキュアコーディングの原則著名PHPアプリの脆弱性に学ぶセキュアコーディングの原則
著名PHPアプリの脆弱性に学ぶセキュアコーディングの原則
 
2017年のセキュリティ 傾向と対策講座
2017年のセキュリティ 傾向と対策講座2017年のセキュリティ 傾向と対策講座
2017年のセキュリティ 傾向と対策講座
 
安全なWebアプリケーションの作り方2018
安全なWebアプリケーションの作り方2018安全なWebアプリケーションの作り方2018
安全なWebアプリケーションの作り方2018
 
とある診断員と色々厄介な脆弱性達
とある診断員と色々厄介な脆弱性達とある診断員と色々厄介な脆弱性達
とある診断員と色々厄介な脆弱性達
 
なぜ自社で脆弱性診断を行うべきなのか
なぜ自社で脆弱性診断を行うべきなのかなぜ自社で脆弱性診断を行うべきなのか
なぜ自社で脆弱性診断を行うべきなのか
 
インフラセキュリティブートキャンプ #seccamp
インフラセキュリティブートキャンプ #seccampインフラセキュリティブートキャンプ #seccamp
インフラセキュリティブートキャンプ #seccamp
 
あなたもなれる 【セキュリティエンジニア】 EC-Council 情報セキュリティエンジニア育成トレーニングコース「 "セキュリティエンジニア" に! お...
あなたもなれる 【セキュリティエンジニア】 EC-Council 情報セキュリティエンジニア育成トレーニングコース「 "セキュリティエンジニア" に! お...あなたもなれる 【セキュリティエンジニア】 EC-Council 情報セキュリティエンジニア育成トレーニングコース「 "セキュリティエンジニア" に! お...
あなたもなれる 【セキュリティエンジニア】 EC-Council 情報セキュリティエンジニア育成トレーニングコース「 "セキュリティエンジニア" に! お...
 
Webアプリでパスワード保護はどこまでやればいいか
Webアプリでパスワード保護はどこまでやればいいかWebアプリでパスワード保護はどこまでやればいいか
Webアプリでパスワード保護はどこまでやればいいか
 
デバッガでWordPress本体やプラグインの脆弱性を追いかけてみよう
デバッガでWordPress本体やプラグインの脆弱性を追いかけてみようデバッガでWordPress本体やプラグインの脆弱性を追いかけてみよう
デバッガでWordPress本体やプラグインの脆弱性を追いかけてみよう
 
とある診断員とSQLインジェクション
とある診断員とSQLインジェクションとある診断員とSQLインジェクション
とある診断員とSQLインジェクション
 
第32回Websig会議「クラウドは○○を共有するサービス」
第32回Websig会議「クラウドは○○を共有するサービス」第32回Websig会議「クラウドは○○を共有するサービス」
第32回Websig会議「クラウドは○○を共有するサービス」
 
安全なPHPアプリケーションの作り方2016
安全なPHPアプリケーションの作り方2016安全なPHPアプリケーションの作り方2016
安全なPHPアプリケーションの作り方2016
 
[デブサミ2012]趣味と実益の脆弱性発見
[デブサミ2012]趣味と実益の脆弱性発見[デブサミ2012]趣味と実益の脆弱性発見
[デブサミ2012]趣味と実益の脆弱性発見
 
今だからこそ振り返ろう!OWASP Top 10
今だからこそ振り返ろう!OWASP Top 10今だからこそ振り返ろう!OWASP Top 10
今だからこそ振り返ろう!OWASP Top 10
 
20181219 Introduction of Incident Response in AWS for Beginers
20181219 Introduction of Incident Response in AWS for Beginers20181219 Introduction of Incident Response in AWS for Beginers
20181219 Introduction of Incident Response in AWS for Beginers
 
CISOが、適切にセキュリティ機能とレベルを決めるには
CISOが、適切にセキュリティ機能とレベルを決めるにはCISOが、適切にセキュリティ機能とレベルを決めるには
CISOが、適切にセキュリティ機能とレベルを決めるには
 
クラウドセキュリティ基礎 #seccamp
クラウドセキュリティ基礎 #seccampクラウドセキュリティ基礎 #seccamp
クラウドセキュリティ基礎 #seccamp
 
徳丸本ができるまで
徳丸本ができるまで徳丸本ができるまで
徳丸本ができるまで
 
Railsエンジニアのためのウェブセキュリティ入門
Railsエンジニアのためのウェブセキュリティ入門Railsエンジニアのためのウェブセキュリティ入門
Railsエンジニアのためのウェブセキュリティ入門
 

Semelhante a ソースコード検査に耐えるコードとは?

OWASPの歩き方(How to walk_the_owasp)
OWASPの歩き方(How to walk_the_owasp)OWASPの歩き方(How to walk_the_owasp)
OWASPの歩き方(How to walk_the_owasp)Sen Ueno
 
OWASP ASVS と Cheat Sheet シリーズ (日本語版) のご紹介 (OSC2016Hokkaido)
OWASP ASVS と Cheat Sheet シリーズ (日本語版) のご紹介 (OSC2016Hokkaido)OWASP ASVS と Cheat Sheet シリーズ (日本語版) のご紹介 (OSC2016Hokkaido)
OWASP ASVS と Cheat Sheet シリーズ (日本語版) のご紹介 (OSC2016Hokkaido)JPCERT Coordination Center
 
アプリケーションのシフトレフトを実践するには
アプリケーションのシフトレフトを実践するにはアプリケーションのシフトレフトを実践するには
アプリケーションのシフトレフトを実践するにはRiotaro OKADA
 
デブサミ関西2013【A4】コード品質は曖昧なままか(安竹由起夫氏)
デブサミ関西2013【A4】コード品質は曖昧なままか(安竹由起夫氏)デブサミ関西2013【A4】コード品質は曖昧なままか(安竹由起夫氏)
デブサミ関西2013【A4】コード品質は曖昧なままか(安竹由起夫氏)Developers Summit
 
ログ分析からセキュリティ監視まで:Oracle Management Cloudで実現するIT運用データのビッグデータ分析 [Oracle Cloud D...
ログ分析からセキュリティ監視まで:Oracle Management Cloudで実現するIT運用データのビッグデータ分析 [Oracle Cloud D...ログ分析からセキュリティ監視まで:Oracle Management Cloudで実現するIT運用データのビッグデータ分析 [Oracle Cloud D...
ログ分析からセキュリティ監視まで:Oracle Management Cloudで実現するIT運用データのビッグデータ分析 [Oracle Cloud D...オラクルエンジニア通信
 
脆弱性もバグ、だからテストしよう PHPカンファンレス2015
脆弱性もバグ、だからテストしよう PHPカンファンレス2015脆弱性もバグ、だからテストしよう PHPカンファンレス2015
脆弱性もバグ、だからテストしよう PHPカンファンレス2015ichikaway
 
脆弱性もバグ、だからテストしよう DevSummiFukuoka
脆弱性もバグ、だからテストしよう DevSummiFukuoka脆弱性もバグ、だからテストしよう DevSummiFukuoka
脆弱性もバグ、だからテストしよう DevSummiFukuokaichikaway
 
4 Enemies of DevSecOps 2016
4 Enemies of DevSecOps 20164 Enemies of DevSecOps 2016
4 Enemies of DevSecOps 2016Riotaro OKADA
 
SWEBOKにみるソフトウェアエンジニアリングの全体、および、 つながる時代のソフトウェアモデリング&品質
SWEBOKにみるソフトウェアエンジニアリングの全体、および、 つながる時代のソフトウェアモデリング&品質 SWEBOKにみるソフトウェアエンジニアリングの全体、および、 つながる時代のソフトウェアモデリング&品質
SWEBOKにみるソフトウェアエンジニアリングの全体、および、 つながる時代のソフトウェアモデリング&品質 Hironori Washizaki
 
Otrs&OTOBO_document 20210402
Otrs&OTOBO_document 20210402Otrs&OTOBO_document 20210402
Otrs&OTOBO_document 20210402IO Architect Inc.
 
GTMF 2015: バグを減らそう。テストを楽にしよう。静的解析が開発者を救う。 | 日本シノプシス合同会社
GTMF 2015: バグを減らそう。テストを楽にしよう。静的解析が開発者を救う。 | 日本シノプシス合同会社GTMF 2015: バグを減らそう。テストを楽にしよう。静的解析が開発者を救う。 | 日本シノプシス合同会社
GTMF 2015: バグを減らそう。テストを楽にしよう。静的解析が開発者を救う。 | 日本シノプシス合同会社Game Tools & Middleware Forum
 
クラウドセキュリティ基礎 #seccamp
クラウドセキュリティ基礎 #seccampクラウドセキュリティ基礎 #seccamp
クラウドセキュリティ基礎 #seccampMasahiro NAKAYAMA
 
VAddy - CI勉強会 fukuoka
VAddy - CI勉強会 fukuokaVAddy - CI勉強会 fukuoka
VAddy - CI勉強会 fukuokaichikaway
 
The Shift Left Path and OWASP
The Shift Left Path and OWASPThe Shift Left Path and OWASP
The Shift Left Path and OWASPRiotaro OKADA
 
【日商USA】webinar 2022.6.24 RSAカンファレンス2022 フィードバック
【日商USA】webinar 2022.6.24 RSAカンファレンス2022 フィードバック【日商USA】webinar 2022.6.24 RSAカンファレンス2022 フィードバック
【日商USA】webinar 2022.6.24 RSAカンファレンス2022 フィードバックNISSHO USA
 
リスクを低減するためのクラウド型OSS管理ツールOpenLogic および Zend PHP
リスクを低減するためのクラウド型OSS管理ツールOpenLogic および Zend PHPリスクを低減するためのクラウド型OSS管理ツールOpenLogic および Zend PHP
リスクを低減するためのクラウド型OSS管理ツールOpenLogic および Zend PHPRWSJapan
 
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説Daisuke Nishino
 

Semelhante a ソースコード検査に耐えるコードとは? (20)

OWASPの歩き方(How to walk_the_owasp)
OWASPの歩き方(How to walk_the_owasp)OWASPの歩き方(How to walk_the_owasp)
OWASPの歩き方(How to walk_the_owasp)
 
OWASP ASVS と Cheat Sheet シリーズ (日本語版) のご紹介 (OSC2016Hokkaido)
OWASP ASVS と Cheat Sheet シリーズ (日本語版) のご紹介 (OSC2016Hokkaido)OWASP ASVS と Cheat Sheet シリーズ (日本語版) のご紹介 (OSC2016Hokkaido)
OWASP ASVS と Cheat Sheet シリーズ (日本語版) のご紹介 (OSC2016Hokkaido)
 
アプリケーションのシフトレフトを実践するには
アプリケーションのシフトレフトを実践するにはアプリケーションのシフトレフトを実践するには
アプリケーションのシフトレフトを実践するには
 
デブサミ関西2013【A4】コード品質は曖昧なままか(安竹由起夫氏)
デブサミ関西2013【A4】コード品質は曖昧なままか(安竹由起夫氏)デブサミ関西2013【A4】コード品質は曖昧なままか(安竹由起夫氏)
デブサミ関西2013【A4】コード品質は曖昧なままか(安竹由起夫氏)
 
ログ分析からセキュリティ監視まで:Oracle Management Cloudで実現するIT運用データのビッグデータ分析 [Oracle Cloud D...
ログ分析からセキュリティ監視まで:Oracle Management Cloudで実現するIT運用データのビッグデータ分析 [Oracle Cloud D...ログ分析からセキュリティ監視まで:Oracle Management Cloudで実現するIT運用データのビッグデータ分析 [Oracle Cloud D...
ログ分析からセキュリティ監視まで:Oracle Management Cloudで実現するIT運用データのビッグデータ分析 [Oracle Cloud D...
 
脆弱性もバグ、だからテストしよう PHPカンファンレス2015
脆弱性もバグ、だからテストしよう PHPカンファンレス2015脆弱性もバグ、だからテストしよう PHPカンファンレス2015
脆弱性もバグ、だからテストしよう PHPカンファンレス2015
 
Klocworkのご紹介
Klocworkのご紹介Klocworkのご紹介
Klocworkのご紹介
 
脆弱性もバグ、だからテストしよう DevSummiFukuoka
脆弱性もバグ、だからテストしよう DevSummiFukuoka脆弱性もバグ、だからテストしよう DevSummiFukuoka
脆弱性もバグ、だからテストしよう DevSummiFukuoka
 
4 Enemies of DevSecOps 2016
4 Enemies of DevSecOps 20164 Enemies of DevSecOps 2016
4 Enemies of DevSecOps 2016
 
SWEBOKにみるソフトウェアエンジニアリングの全体、および、 つながる時代のソフトウェアモデリング&品質
SWEBOKにみるソフトウェアエンジニアリングの全体、および、 つながる時代のソフトウェアモデリング&品質 SWEBOKにみるソフトウェアエンジニアリングの全体、および、 つながる時代のソフトウェアモデリング&品質
SWEBOKにみるソフトウェアエンジニアリングの全体、および、 つながる時代のソフトウェアモデリング&品質
 
Otrs&OTOBO_document 20210402
Otrs&OTOBO_document 20210402Otrs&OTOBO_document 20210402
Otrs&OTOBO_document 20210402
 
GTMF 2015: バグを減らそう。テストを楽にしよう。静的解析が開発者を救う。 | 日本シノプシス合同会社
GTMF 2015: バグを減らそう。テストを楽にしよう。静的解析が開発者を救う。 | 日本シノプシス合同会社GTMF 2015: バグを減らそう。テストを楽にしよう。静的解析が開発者を救う。 | 日本シノプシス合同会社
GTMF 2015: バグを減らそう。テストを楽にしよう。静的解析が開発者を救う。 | 日本シノプシス合同会社
 
クラウドセキュリティ基礎 #seccamp
クラウドセキュリティ基礎 #seccampクラウドセキュリティ基礎 #seccamp
クラウドセキュリティ基礎 #seccamp
 
VAddy - CI勉強会 fukuoka
VAddy - CI勉強会 fukuokaVAddy - CI勉強会 fukuoka
VAddy - CI勉強会 fukuoka
 
Oss事例紹介資料20141111 明日の認証会議 掲載用
Oss事例紹介資料20141111 明日の認証会議 掲載用Oss事例紹介資料20141111 明日の認証会議 掲載用
Oss事例紹介資料20141111 明日の認証会議 掲載用
 
The Shift Left Path and OWASP
The Shift Left Path and OWASPThe Shift Left Path and OWASP
The Shift Left Path and OWASP
 
OTRS紹介資料
OTRS紹介資料OTRS紹介資料
OTRS紹介資料
 
【日商USA】webinar 2022.6.24 RSAカンファレンス2022 フィードバック
【日商USA】webinar 2022.6.24 RSAカンファレンス2022 フィードバック【日商USA】webinar 2022.6.24 RSAカンファレンス2022 フィードバック
【日商USA】webinar 2022.6.24 RSAカンファレンス2022 フィードバック
 
リスクを低減するためのクラウド型OSS管理ツールOpenLogic および Zend PHP
リスクを低減するためのクラウド型OSS管理ツールOpenLogic および Zend PHPリスクを低減するためのクラウド型OSS管理ツールOpenLogic および Zend PHP
リスクを低減するためのクラウド型OSS管理ツールOpenLogic および Zend PHP
 
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
 

Mais de Yasuo Ohgaki

忘れられているデータセキュリティ
忘れられているデータセキュリティ忘れられているデータセキュリティ
忘れられているデータセキュリティYasuo Ohgaki
 
PHP5.6からPHP7.0への移行
PHP5.6からPHP7.0への移行PHP5.6からPHP7.0への移行
PHP5.6からPHP7.0への移行Yasuo Ohgaki
 
PHPにないセキュリティ機能
PHPにないセキュリティ機能PHPにないセキュリティ機能
PHPにないセキュリティ機能Yasuo Ohgaki
 
PHPにないセキュリティ機能
PHPにないセキュリティ機能PHPにないセキュリティ機能
PHPにないセキュリティ機能Yasuo Ohgaki
 
PHPにないセキュリティ機能
PHPにないセキュリティ機能PHPにないセキュリティ機能
PHPにないセキュリティ機能Yasuo Ohgaki
 
データベースセキュリティ
データベースセキュリティデータベースセキュリティ
データベースセキュリティYasuo Ohgaki
 
Postgre SQL 9.3 新機能
Postgre SQL 9.3 新機能Postgre SQL 9.3 新機能
Postgre SQL 9.3 新機能Yasuo Ohgaki
 

Mais de Yasuo Ohgaki (8)

忘れられているデータセキュリティ
忘れられているデータセキュリティ忘れられているデータセキュリティ
忘れられているデータセキュリティ
 
PHP5.6からPHP7.0への移行
PHP5.6からPHP7.0への移行PHP5.6からPHP7.0への移行
PHP5.6からPHP7.0への移行
 
PHPにないセキュリティ機能
PHPにないセキュリティ機能PHPにないセキュリティ機能
PHPにないセキュリティ機能
 
PHPにないセキュリティ機能
PHPにないセキュリティ機能PHPにないセキュリティ機能
PHPにないセキュリティ機能
 
PHPにないセキュリティ機能
PHPにないセキュリティ機能PHPにないセキュリティ機能
PHPにないセキュリティ機能
 
データベースセキュリティ
データベースセキュリティデータベースセキュリティ
データベースセキュリティ
 
Postgre SQL 9.3 新機能
Postgre SQL 9.3 新機能Postgre SQL 9.3 新機能
Postgre SQL 9.3 新機能
 
Rails4 security
Rails4 securityRails4 security
Rails4 security
 

Último

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
 
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
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
論文紹介: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
 
論文紹介: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
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 

Último (9)

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)
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
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...
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
論文紹介: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
 
論文紹介: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
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 

ソースコード検査に耐えるコードとは?

  • 2. コンテンツ • セキュリティとは? • セキュリティ標準とベストプラクティス • セキュアなコードとは? (c) Electronic Service Initiative, Ltd. All rights reserved 22016/6/18
  • 4. セキュリティ対策 = セキュリティマネジメント • リスクを変化させる為のプロセス • リスクを発生させる活動を開始しない、または継続しないことを決断するこ とによりリスクを回避する • 機会を獲得する為にリスクを選択または増加させる • リスクの原因を排除する • 発生の頻度を変える • 結果を変える • 他の組織(契約企業やリスクの資金的 処理を含む 訳注:保険など)とリスクを共有し • 見聞のある選択によりリスクを抑える • 否定的な結果をもたらす事象のリスク対応は、”リスク緩和策”、”リスク 排除策”、”リスク防止策”、”リスク削減策”などと呼ばれる事がある ISO27000の「リスク対応」(Risk Treatment)の定義 (c) Electronic Service Initiative, Ltd. All rights reserved 4  国際ITセキュリティ標準ISO 27000の定義 2016/6/18 リスク(脆弱性)の排除 や削減はセキュリティ対 策の一部でしかない
  • 5. リスク緩和策はセキュリティ対策 • 否定的な結果をもたらす事象のリスク対応は、 • ”リスク緩和策” • ”リスク排除策” • ”リスク防止策” • ”リスク削減策” • などと呼ばれる事がある (c) Electronic Service Initiative, Ltd. All rights reserved 5  国際ITセキュリティ標準ISO27000の定義 POINT! 緩和策をセキュリティではない と勘違いしない POINT! 排除策、防止策、削減策は セキュリティ対策の一部 2016/6/18
  • 6. セキュリティ定義とセキュアコード • セキュリティ対策と は脆弱性を除去する ものだけがセキュリ ティ対策ではない セキュリティ対策 ≠脆弱性除去 • 安全性を変化させる 施策すべて • セキュリティ対策 セキュリティ 対策 • ソフトウェアは非常 に複雑 • バグの完全排除は困 難 安全性指向 コード • コードの安全性をマ ネジメントしやすい コード • 安全性の高いコード 防御的コード (c) Electronic Service Initiative, Ltd. All rights reserved 6  防御的プログラミングは「プログラミング原則」のひとつ 2016/6/18 例)ログの取得は重要 なセキュリティ対策!
  • 7. セキュリティの基本概念 • 境界防御 • 信頼境界線で防御 • 縦深防御(多層防御) • 信頼境界線内で防御 OS ライブラリ アプリケー ション ネットワー ク (c) Electronic Service Initiative, Ltd. All rights reserved 7 境界防御が基本かつ 最も重要  アプリケーション内の 縦深防御(多層防御)が重要 各レイヤー内でも小さな 範囲で境界防御を実施 2016/6/18
  • 8. セキュリティの6要素 = セキュアなアプリケーションの要素 • Confidentiality(機密性) • Integrity(完全性) • Availability(可用性) • Reliability(信頼性) • Authenticity(真正性) • Non-Repudiation(否認防止) Accountability(追跡性) セキュ リティ 機密性 完全性 可用性 信頼性 真正性 追跡性  国際ITセキュリティ標準ISO 27000の定義 (c) Electronic Service Initiative, Ltd. All rights reserved 82016/6/18
  • 9. セキュアな開発はPDCAサイクルに対応 • 要件 • 仕様 PLAN • システム構築 • この中もPDCA DO • 品質検査 • 安全性検査 CHECK • 問題点確認 • 改善への行動 ACTION (c) Electronic Service Initiative, Ltd. All rights reserved 9 ✓ PDCAマネジメントは国際標準ISO規格の根幹 2016/6/18
  • 11. セキュリティ標準規格 • ISO27000 • 国際標準のITセキュリティ標準規格 • JISとしても定義 • IT開発者必修 • http://www.iso.org/iso/home.html • PCI DSS • カード会社が中心となって策定した規格 • クレジットカードなどの取り扱いに必須 • https://ja.pcisecuritystandards.org/minisite/en/ (c) Electronic Service Initiative, Ltd. All rights reserved 112016/6/18
  • 12. Web開発者必修ベストプラクティス • CERT Top 10 Secure Coding Practices • 米カーネギーメロン大学のCERTが公開しているセキュアコーディング標準トップ10 • CERTは1988年に設置され、ソフトウェアセキュリティの草分け的な組織として現在に至る • https://www.securecoding.cert.org/confluence/display/seccode/Top+1 0+Secure+Coding+Practices • OWASP Secure Coding Practices – Quick Reference Guide • OWASP(Open Web Application Security Project):PCS DSS標準でも言 及されているセキュリティ推進団体 • 多数公開されているガイドの対策をまとめた文書。チェックリスト形式でセキュアコーディングの 実施状態を確認できる。 • https://www.owasp.org/index.php/OWASP_Secure_Coding_Practices_- _Quick_Reference_Guide 2016/6/18(c) Electronic Service Initiative, Ltd. All rights reserved 12
  • 13. CERT Top 10 Secure Coding Practices • 1. 入力をバリデーションする • 2. コンパイラの警告に用心する • 3. セキュリティポリシーの為に構 成/設計する • 4. 簡易にする • 5. デフォルトで拒否する • 6. 最小権限の原則を支持する • 7. 他のシステムに送信するデー タを無害化する • 8. 縦深防御を実践する • 9. 効果的な品質保証テクニック を利用する • 10. セキュアコーディング標準を 採用する 2016/6/18(c) Electronic Service Initiative, Ltd. All rights reserved 13 http://blog.ohgaki.net/cert-top-10-secure-coding-standard
  • 14. OWASP Secure Coding Practices – Quick Reference Guide • 入力バリデーション • 出力エンコーディング • 認証とパスワード管理 • セッション管理 • アクセス制御 • 暗号の取り扱い • エラー処理とログ • データ保護 • 通信セキュリティ • システム設定 • データベース管理 • ファイル管理 • メモリ管理 • 一般的コーディング実践 2016/6/18(c) Electronic Service Initiative, Ltd. All rights reserved 14 http://blog.ohgaki.net/owasp-secure-coding-practices-quick-reference-guide
  • 15. Web開発者必修ガイドライン • CWE/SANS TOP 25 • 最も危険なアプリケーション脆弱性トップ25とその対策 • CWE(Common Weakness Enumeration):米国MITRE社の脆弱性カタログ • SANS:セキュリティ研究・教育を行う米の組織 • https://www.sans.org/top25-software-errors/ • OWASP TOP 10 • Webアプリケーションに特化した最も危険な脆弱性トップ10 • https://www.owasp.org/index.php/Main_Page (c) Electronic Service Initiative, Ltd. All rights reserved 152016/6/18
  • 16. 開発者必修プログラミング原則 • Defensive Programming(防御的プログラミング) • Secure Programmingとも呼ばれる • バグを最小限に留めるためのプログラミングプラクティス • Intelligent source code reuse • Legacy problems • Secure input and output handling • Canonicalization • Low tolerance against "potential" bugs • All data is tainted until proven otherwise • All code is insecure until proven otherwise • Design by contract • Assertions • Prefer exceptions to return codes • その他 (c) Electronic Service Initiative, Ltd. All rights reserved 16 安全な入出力の管理 これを行うだけでもWebアプ リのセキュリティ問題の大多 数を解決可能  安全な入出力管理以外の原則は入出力管理に関連  またはそれらの緩和策と機能する 2016/6/18
  • 17. 開発者必修CWE/SANS TOP25の 「怪物的セキュリティ対策」 • CWE/SANS TOP25では個別の脆弱性対策以外に一般的対策として 「怪物的セキュリティ対策」(Monster Mitigations)を定義 • 怪物的セキュリティ対策の第一位と第二位 (c) Electronic Service Initiative, Ltd. All rights reserved 17 安全な入出力の管理 これを行うだけでもWebアプ リのセキュリティ問題の大多 数を解決可能  プログラミング原則 – 防御的プログラミング  ISO27000 – 同様の要求 • 入力バリデーションをシステム全体で行う 一位:確実な入力の管理 • 安全な出力をデフォルトで利用 • エスケープ、安全なAPI、バリデーション 二位:確実な出力の管理 2016/6/18
  • 19. ソフトウェアは非常に複雑 • 簡単なコードでも背後で動作して いる多数の関数 • しかもこれらは頻繁に更新 • 機能追加・リファクタリング・バグフィック ス • アプリ自身は更新しなくても、ライブラリ やプラットフォームのバージョンが更新 • 攻撃者はたった一つの弱点を見つけ れば勝ち (c) Electronic Service Initiative, Ltd. All rights reserved 19 IISのコールグラフ https://twittech.wordpress.com/2013/05/06/building-kernel-modules-with-autotools/  防御的プログラミングが有効 2016/6/18
  • 20. 防御的プログラミングの概念とツール - セキュアプログラミング • 防御的プログラミングの要素 • Intelligent source code reuse • Legacy problems • Secure input and output handling • Canonicalization • Low tolerance against "potential" bugs • All data is tainted until proven otherwise • All code is insecure until proven otherwise • Design by contract • Assertions • Prefer exceptions to return codes • その他 • セキュリティ標準・ガイドラインをツールとして利用 • ISO27000 • CWE/SAN TOP 25 • CERT Secure Coding • OWASP TOP 25 • OWASP Guide • OWASP Chart Sheet • マニュアル・リファレンス • プロトコルの仕様 • 外部システムの入出力仕様 • ライブラリの仕様 • 言語・関数の仕様 (c) Electronic Service Initiative, Ltd. All rights reserved 20 安全な入力・出力 処理には正確な仕 様の理解が欠かせ ない  防御的プログラミングには仕様の理解が不可欠 信頼できる、と保障できない物(入出力 データ、ライブラリ、コード)は信頼し ない 2016/6/18
  • 21. 一般的なプログラムの構造 2016/6/18(c) Electronic Service Initiative, Ltd. All rights reserved 21 リクエスト を受信 何らかの 処理 レスポンス を送信 IISのコールグラフ Webサーバーの基本動作は単純 基本動作は単純でも 内部構造は複雑
  • 22. 防御のポイント • 入力処理 • バリデーション(ホワイトリストが基本) • ロジック処理 • ベストプラクティス • OWASP・CWE・ISO・その他のガイドラ イン・標準を利用 • 出力処理 • エスケープ、安全なAPI、バリデーション (ホワイトリストが基本) (c) Electronic Service Initiative, Ltd. All rights reserved 22  デフォルトでエスケープ  例)HTML出力  全ての入力をバリデーション ロジックにはベストプラクティス  認証・認可・セッション管理・ ログ・エラー処理など 2016/6/18 入力処理でバリデーション 出力処理を既定として安全性を担保
  • 23. まずアプリケーション全体を防御 • 入力処理 • バリデーション(ホワイトリスト優先) • 出力処理 • エスケープ、安全なAPI、バリデーショ ン(ホワイトリスト優先) (c) Electronic Service Initiative, Ltd. All rights reserved 23  デフォルトでエスケープ  例)HTML出力  全ての入力をバリデーション ※ ISO27000の要求事項 防御対象アプリケーション 境界での保護が第一  境界防御 – セキュリティの基本原則 2016/6/18 入力処理でバリデーションし 無用なリスクを排除 出力処理の安全性を確実に担保
  • 24. 入力 処理 出力 モジュール・関数レベルも同じ • 入力処理 • バリデーション(ホワイトリスト優先) • 出力処理 • エスケープ、安全なAPI、バリデーショ ン(ホワイトリスト優先) (c) Electronic Service Initiative, Ltd. All rights reserved 24  異常な出力を防止(無効な値など)  Assertや契約プログラミングが有効  全ての入力をバリデーション  Assertや契約プログラミングが有効 入力処理でバリデーション 出力処理を既定として安全性を 担保  モジュール・関数レベルで見ると境 界防御だが、アプリレベルと見ると 縦深防御(多層防御)  縦深防御もセキュリティの基本原則 2016/6/18 アプリ・モジュール・関数の 境界を防御
  • 25. • 基本アーキテクチャ – アプリケーション、モジュール、関数・メソッド、粒度に 関わらず共通 セキュアなソフトウェアアーキテクチャ 2016/6/18(c) Electronic Service Initiative, Ltd. All rights reserved 25 入力 入力処理 ロジック処理 出力処理 出力 アプリケーション 入力処理 ロジック処理 出力処理 入力処理 ロジック処理 出力処理 モジュール 関数・メソッド 各レイヤーの 境界防御 が防御の基本  アプリケーションレベル の境界防御が特に重要
  • 26. セキュアなコード = セキュリティの基本要素を守るコード • 入力・出力制御 • セッション管理 • 認証・認可 • 暗号・ハッシュ • フェイルセーフ • 認証ログ、操作ログ、エラーログ • テスト・品質検査 • コードレビュー (c) Electronic Service Initiative, Ltd. All rights reserved 26 セキュ リティ 機密性 完全性 可用性 信頼性 真正性 追跡性 ベストプラクティス を最大限に利用  フレームワークやライブラリ が必ずしもベストプラクティ スを実装しているとは限らな い点に注意 2016/6/18
  • 27. セキュアなコード = コードの安全性がひと目で分かる (c) Electronic Service Initiative, Ltd. All rights reserved 27 • PHPの例 $id = isset($_GET[‘id’]) ? $_GET[‘id’] : null; $id = validate($_GET[‘id’], ‘int’, 0, PHP_INT_MAX); // invalidはエラーで停止 入力バリデーションはセキュリティ対策であり、 入力パラメータは可能な限り厳格にチェック 入力バリデーションエラーはプログラムの実行を停止 パラメータが設定されているか のみをチェック?! NG 2016/6/18
  • 28. セキュアなコード = コードの安全性がひと目で分かる (c) Electronic Service Initiative, Ltd. All rights reserved 28 • PHP+HTMLの例 <div id=“<?php echo $integer_id ?>” > …..</div> <div id=“<?php echo hemlspecialchars($integer_id, ENT_QUOTES, ‘UTF-8’) ?>” > …..</div> 入力バリデーションは「入力」の「境界防御」 防御的プログラミングでは出力を行う場合にも「出力」 の「境界防御」を行う(出力対策は入力対策と独立) 入力バリデーションで「入力」の安全性は担保 そのまま出力して安全?! NG 2016/6/18
  • 29. Webアプリケーションの世界はテキストが基本 • 安全なテキスト処理がセキュリティ対策の基本 • 入力・出力の仕様を正確に理解 • HTML、CSS、JSON、SQL、LDAP、XML、XPATH、SMTP、HTTP他 • OSコマンド、C言語文字列、PHP文字列、JavaScript文字列他 • 一文字でも意味がある文字を持つ場合、インジェクション攻撃が可能と仮定 • 実際、一文字でも特別な文字があるとインジェクション攻撃に脆弱に • ヌル文字インジェクション、改行インジェクション(SMTP、HTTP) • テキスト処理をする場合、まず特殊文字があるか調べる • 一文字でもある場合、エスケープ方法・関数があるか調べる • エスケープ方法が定義されていても、エスケープAPIが無い場合も多い • 安全なAPIがあれば利用する • 安全と言われるAPIでも制限はある。例)プリペアードクエリは識別子、 SQL語句のパラメータ化は対応していない。変数も埋め込める。 • バリデーションは“ホワイトリスト方式”が基本中の基本 • バリデーションエラーになる無効な入力を受け付ける意味は通常ないので拒否する (c) Electronic Service Initiative, Ltd. All rights reserved 29 正確・安全なテ キスト処理を知 り、実践する 安全なコードへ の最短距離  APIさえ使っていれば大丈夫、 は遠回りかつ危険 2016/6/18
  • 30. セキュリティと速度・コスト • セキュリティ対策の多くはトレードオフ関係 (c) Electronic Service Initiative, Ltd. All rights reserved 30 境界防御、縦深防御(多層防御)、 防御的プログラミング 実行速度増加、実装コスト増加 2016/6/18
  • 31. 防御的プログラミングを行わないコスト • 防御的プログラミングを行わないメリット・デメリット (c) Electronic Service Initiative, Ltd. All rights reserved 31 コード記述量が減る、一見システ ムが正常(安全)に動作している ように見える(構築期間短縮)、 システムの動作が軽快 隠れたバグの増加、セキュリティ に影響するバグの増加、構築期間 が短く見えてもバグ修正のコスト が増大  スーパープログラマが全てのコードを一人で書けばバグフリー も可能だが、現実の開発ではほぼ不可能 2016/6/18
  • 32. CSRF ‐ Cross Site Request Forgery CSRFは真正性の問題 • 真正性はISO27000でセキュリティの要素として定義されている • 利用者、プロセス、システム、情報などが本物であることを確実にするということ。 Webアプリケーションはリクエストの詐称が容易 • 罠ページを用意して認証済みのユーザー権限で不正なリクエストを送信 • Webアプリケーションでは広くみられるセキュリティ問題 更新系のリクエスト全てにCSRF対策が必要 • リクエストにランダムかつ一意なトークンを付与し、サーバーでバリデーション • CSRF対策は入力バリデーションの一種 2016/6/18(c) Electronic Service Initiative, Ltd. All rights reserved 32
  • 33. セキュア(防御的)プログラミングの学習 • セキュリティ標準・ガイドライン • ISO27000 • CERT Secure Coding Standard • CWE/SAN TOP 25 • OWASP TOP 10 • OWASP Secure Coding Practices • OWASP Guide • OWASP Chart Sheet • マニュアル・リファレンス • プロトコルの仕様 • 外部システムの入出力仕様 • ライブラリの仕様 • 言語・関数の仕様 • メソドロジー • 契約プログラミング(契約による設計) • OpenSAMM どこから手をつけて 良いかわからない 体系的にセキュア プログラミングを学びたい 弊社にお問い合わせください (c) Electronic Service Initiative, Ltd. All rights reserved 332016/6/18
  • 34. まとめ 2016/6/18(c) Electronic Service Initiative, Ltd. All rights reserved 34
  • 35. セキュリティ問題の8割、9割は 入力と出力のセキュリティ対策で対応可能 入力 • ホワイトリスト型でバリデーション • 全ての入力値が対象、要素数などもチェック 出力 • 入力対策とは独立した対策。出力を徹底的に無害化 • エスケープ、エスケープが必要ないAPI、バリデーション処理 処理 • ベストプラクティスを採用。特に認証、認可、その他セキュリ ティに関連する処理 2016/6/18(c) Electronic Service Initiative, Ltd. All rights reserved 35 入力バリデーションは #1のセキュリティ対策 (SANS, MITRE, CERT, OWASP, ISO)
  • 36. 安全な入力処理の原則 バリデーション • 全ての入力データは厳格にバリデーションする • バリデーションはホワイトリスト方式 • 文字データ:文字エンコーディング、利用文字、形式、長さ • 数値データ:整数、浮動小数、最小値、最大値 • 集合データ:集合に合致する値 例)都道府県、性別、学年 • 入力値:入力パラメータの数、必須入力 2016/6/18(c) Electronic Service Initiative, Ltd. All rights reserved 36  入力バリデーションは最も重要なセキュリティ対策  バリデーションエラーは処理を停止 入力バリデーション エラーと入力ミスは 異なるモノである点 を理解していない開 発者も多い!
  • 37. 安全な出力処理の三原則 1.エスケープ • 出力先のエスケープ方式理解し確実にエスケープする • 出力先が用意しているエスケープ関数を利用する • エスケープ関数が無い場合もある 2.API利用 • エスケープが必要なくなるAPIが利用可能な場合は利用する • セキュアなAPIが無い場合が多い 3.バリデーション • エスケープもAPIも利用できない場合、バリデーションを行う • バリデーションできない場合、サニタイズを行う 2016/6/18(c) Electronic Service Initiative, Ltd. All rights reserved 37  出力処理は入力処理とは“独立”である  正しい文字エンコーディングであることを保証する 「セキュアなAPIを利 用する」は不完全な 対策であることがあ る点に注意!
  • 38. セキュリティ問題の8~9割に 入力処理と出力処理で対応可能 入力バリデーションをセキュリティ対策でない、 と考えている開発者は少なくないので要注意 • 入力バリデーションはソフトウェア開発で最も重要なセキュリティ対策 • 入力バリデーション無しで喜ぶのは攻撃者とブラックボックステストをするセキュリティ専 門家 • 入力バリデーションはISO27000(ISMS)、PCI DSSで要求している事項。入力バリデーション を実施しない場合、仕様書に記載がなくても開発会社は損害賠償責任を問われる可能性があ る 入力対策と出力対策が独立した対策であること を理解していない開発者は多いので要注意 • 入力時に出力時のコンテクストは不明。したがって、入出力処理は独立した対策 • 入力・出力対策(境界防御)はITセキュリティ以外にも通用するセキュリティ対策の基本中の 基本 2016/6/18(c) Electronic Service Initiative, Ltd. All rights reserved 38  入力と出力の制御は第一位、第二位のセキュリティ対策  第一位、第二位のセキュリティ対策無しの対策は有り得ない
  • 39. ベストプラクティス CWE(CommonWeakness Enumeration - 共通脆弱性タイプ一覧)には ソフトウェアによく見られる脆弱性とその対策が記載されている • https://www.ipa.go.jp/security/vuln/CWE.html https://cwe.mitre.org/ • CWEが利用する言語はJava、C#が多いが他の言語でも参考になる • CWEに記載されている対策が最善の対策とは限らない • CWEに記載されていない脆弱性もある フレームワーク • フレームワークはベストプラクティスとなる実装も多い • ベストプラクティスとは言えない実装も多い 2016/6/18(c) Electronic Service Initiative, Ltd. All rights reserved 39
  • 40. ベストプラクティス CERT Top 10 Secure Coding Practices • CERTのセキュアコーディング標準準拠より、この一般的コーディング指針が重要 • 独自のセキュアコーディング標準の構築が必要 OWASP Secure Coding Practices • チェックリスト形式で現在のセキュリティ対策の状態をチェック可能 • 必ずしも全てのベストプラクティスを全てのプロジェクトに適用する必要はない OpenSAMM • コードのみでなく「仕組み」としてセキュアな開発を実行する組織を作る方法論 • 能力成熟度モデルであるため導入し易い • セキュリティは文化であり、段階的にセキュリティ文化を構築可能 2016/6/18(c) Electronic Service Initiative, Ltd. All rights reserved 40