OWASP World Training Tokyoメモ


2017/09/30に開催されたOWASP World Trainingでの内容を自分なりに
まとめてみました。

## OWASP Project Overview for Developers
OWASPは主にFLAGSHIP、LAB,INCUBSTORで構成される<br>
今回はFLAGSHIPに関して紹介
### FLAGSHIP　
- ZAP(WebApplication脆弱性スキャン）,TOP10
- Testingenviroment アプリとドキュメントの詰め合わせ
- OWTF 自動診断ツール
- SecurityShephered　CTFモード
- ModSecurity
- AppSensorProject　アプリケーションレイヤーの検知
- SAMM　 ソフトウェア　
- Ｔesting Guide アプリケーションのテストガイド
- 脆弱性診断士スキルマップ
- 脆弱性診断士ハンズオン

## OWASPTOP10を利用した脆弱性対策
### OWASP10 主要な脆弱性10種の説明
- 多くの文書がOWASP10を参照<br>
PCIDSS（クレジットカード）、MITRE（米国政府向けセキュリテイ）、DISA（米国連邦）、FTC（米国取引委員）→OWASPTOP１０
- ProacticeControlを見ていくといい　事前の対策概要が記載されているので<br>
 脆弱性　セキュリティ上の弱点　どのような影響が発生するのかのリスク
- アプリケーションのセキュリティリスク　脅威（自分）→攻撃手法⇔セキュリティ上の弱点　セキュリティ防御技術的影響　ビジネスインパクト（自分）の流れが重要
- 対応の仕方　
  - 拡張して考える　要件定義　アーキテクチャ
  - OWASP10　セキュアコーディング　コードレビュー　検査
  - セキュアコーディング　WAFだけには頼らない　SQLの場合は動的なクエリを受け付けない（ユーザの入力で意図しないSQLを組み立てる場合                 クエリのパラメター化　制御とデータを区別しないこと

  - コードレビュー　目視　ツール　ホワイトボックステスト
  - 脆弱性診断　　　ブラックボックステスト
  - セキュリティアーキテクチャー構築　全部やるのは大変なので、フレームワークを活用しよう<br> 
    フレームワークは脆弱性を下げてくれるが盲目的に信じるのはやめる
  - 要件定義     トレードオフを意識して何を守るのかを明確にする

## 最小権限の設定に関して
最小権限　最低限の権限を最低限の期間
###	ツールで脆弱性は見つけにくい<br>
単純なレスポンスはわかり易いが複数のパターンでレスポンス返ってくる場合,単純に判断しにくい<br>
ビジネスとの結びつきが強いのに、インパクト大

###	最小権限を設定するのには、
- IPA　外部のパラメータは利用するな
- OWASP　すべてのリスクエストがアクセス制御を通る　デフォルトは拒否　<br>ハードコーディングしない（リクエストごとにコーディングするのではなくアクセス機構の利用）
	<br>アクティビティに基づく　アクセス制御はサーバ側の信頼できるデータの利用<br>
　　　実装するときに参照する情報は多いが設計時に参照する情報は少ない

### 何を守る？
- データに対して何を守るか考える
- データの特性
	　　アカウント関連のデータはその他のデータとは分割
- 認証後出ないアクセスできない→公開領域に配置しない
- 認証に関してシーケンス図を利用して確認していく

### どのように設定すべき？
- テストコードに含めるべき
 設計者や開発者は可能だが第三者は表がないとわからない
- コードから作成　コストを抑える

## OWASPZAPの脆弱性診断
開発者向け、運用者向けで簡単にできるように紹介
OWASP10の脆弱性を発見できる
### 診断時注意
自社内の環境のみ、本番環境へは避ける、アンチウイルスは反応するかも
### OWASP ZAP利用想定シーン
どのタイミングで利用するのか　運用・保守が一般的か
ただ、開発、試験で利用することが可能<br>
開発　デバックや簡単なテスト
受入テスト　専門家に頼むほどではないが一定の品質を確保したい<br>
　　　　　　確認すべき検索項目をもとに判断

### 自動診断では見つからない場合以下を利用
- HTTPセッション
- パラメータタブ
- スパイダー/AJAXスパイダー　Access Control

Webアプリケーション診断ガイド（Webアプリ）　受け入れ、脆弱診断を学びたい人

デバックを兼ねたローカルプロキシ
脆弱性診断ガイドラインにそった診断
OWASP10の脆弱性を発見したい

- ActiceScan（動的スキャン）WEBアプリのデータを破壊する
ルール集　Realse版のみ最初は利用可能　基本的にはRealse版だけでOK
難しいことをしたい場合にはBeta,Alphaを利用

- PassiveScan（静的スキャン）WEBアプリのデータを破壊しない
ルール集　Realse版のみ最初は利用可能　基本的にはRealse版だけでOK
より珍しい文字列が増える　過検知が増えるかも

- httpセッション
特定の条件に合致した文字列をセッション情報として抽出してテストする
セッションの切り替えも可能
- パラメータタブ
サイトごとのパラメータの一覧を表示

- スパイダー
　指定されたページから遷移可能なページを探索可能（権限によって異なるページを表示する場合など）

## OWASP BWAを用いたトレーニング
セキュリティトレーニングは簡単にできるのでやってみよう
### OWASPBWAとは
セキュリティ学習用の脆弱性アプリがあるVMイメージ<br>
幅広い人が対象

- Training Applications
 	脆弱性ごとに解けるアプリが公開されている

- Realstic
  多種多様な脆弱性が意図的に仕込んでいるアプリ　総合的な脆弱性の試験や調査が可能

- Oldversion
実在して大きな脆弱性を抱えているアプリがそのまま公開されている

環境構築に力を入れずに問題に専念できる

### 演習対象者
- 理論はできるが、実践の場がない
- 情報は専門だが、セキュリティはよく知らない（情報は知っているが、実際にはよくわからない）

理論と演習は交互に繰り返して、身に着けるのがベストだが往々にして理論側が多い
演習を楽にやりたい

### シナリオ作成
受講者が無理なく、現実の環境に置き換え可能、自力で解ける、自然と攻撃シナリオが理解できる
XSSの脆弱性　わざと自分で情報を漏らすことは可能なのか

firefoxアクセスさせる　それ以外のブラウザでは厳しく制限されるので注意

### 実際は
会議で鶴の一声で決定　2週間ぐらいで作成
※2週間で通常業務やりながらできちゃうよ
大学でのインシデントレスポンスは、大学の方が攻撃が多い？
入れ代わりが多いのでガバナンスが効きにくい

座学だけではしんどい　実際に手を動かすことが重要

## OWASPSAMMを利用した
### OWASPPSAMMとは
セキュアなライフサイクルを提供すること
定量化・可視化することが可能
NIST－8151　指標を持って可視化していくことが重要
継続改善が特徴

一番詳細なことが抱えている　COREMODELを読み込むのに必要な講演としたい
7つのロールが定義されている
アセスメントではQATESTER、SeuciryAuditorが重要

### ビジネス機能
どのような結果を求むか　どのようなコストがかかるか　定量的な指標（これが一番役立つ）

アセスメントでは急がないのが大事
アセスメントはマネージャ、アーキテクチャ、などが対象（開発者は意外と少ない）
成熟度が可視化された状態で出てくる
全ての項目が最大レベルを目指す必要はなし　組織として合意した基準に合致する基準に行くことが大事
グラフで少しずつ上げていきましょうとは説明しやすい

### 12のセキュリティ対策
活動をすることは書いてあるが、何をすればよいのかよくわからない
#### 戦略指標
SAMMを利用すること
#### ポリシーコンプライアンス
PolicyFrameworksを参照 組織で既に規定されていると思われるのでそこと見比べつつ
#### 教育指導
OWASP Education Projectを参照　習熟度別に提供
#### 脅威の査定
脅威分析を実施　ApplicationThreatModelingを参照（ThreatModelCheaSheet)（ThreatModelCheaSheet)
#### セキュリティ要件
ASVS参照
#### セキュアアーキテクチャ
#### デザインレビュー
レビュー観点を文書化すること
#### 実装レビュー
コードレビューそのもの　自動コード解析ツールの利用　解析結果がどうであれば問題ないかを決める
#### セキュリティテスト
#### 課題管理
インシデント報告、報告のプロセスを決定する
#### 環境の堅牢
運用環境の堅牢かを行う
#### 運用対応のセキュリティ対応
開発者、運用で連携して行う
### 活用事例
どのように作成したかが重要（プロセス重視）
#### アドバイス集作成
77のアセスメント項目を省略化して誰に紹介すべきかをまとめる　参考とするドキュメントをまとめる
#### 情報提供
##### タイムリーな情報提供
　Q.ルールが厳しいのでどうにかしたい<br>
　A.利便性を維持しつつ、リスクを低減する方法に関して議論したい<br>
　Q.開発文書はセキュアな開発手法に基づいて開発しているか<br>
　A.ASVS用いて確認しているので問題なし<br>
　Q.新規PJで認証取得したいので準備を手伝ってほしい<br>
　A.取得すべきログや監視すべきアラートやエラーに関する文書提供
### プロジェクトの可視化
SAMMToolBoxの利用

### 質疑応答
Q.SAMMを適用できるプロジェクトの単位は？<br>
A.スモールスタートでも可能　どの人間がどのロールかを合わせておく
水準の高低が異なる　それぞれのロールにおける共通認識は併せておく必要がある
意見交換するためのツール

## クロージングセッション
シフトレッドへの道

製造業に回帰したほうがよい？
問題はどこで起きているのか
前の段階で問題発生しないようにすればよい
以下の言葉がすべて
30秒確認するのと3時間修正するのどっちがいい？