😽
Security for Developersと言うAWSのワークショップに参加したメモ。
晴れた日曜の午後、リモート開催の勉強会に参加した際の備忘録。
当日は配信をながら聞きさせてもらい、ワークショップ自体は下記ページを見つつ後日に自分1人で実施した。
ワークショップ前提
- 開発パイプライン(CI/CD)のセキュリティをどのようにシフトレフトするか、と言う実装ベースの話題が焦点なので実際に使うAWSサービスの説明はない(少しだけ補足はある)
- CDKを使って構築&デプロイを繰り返すため、CDKの基礎は分かっているとなお勉強になる
- 作業環境はCloud9前提になっているものの、サンプルアプリの言語はPython + venvなのでそれに対応した開発環境+AWSプロファイルがあればローカル環境でも可能
- 自分の場合、
pipenv
+ AWS SSOのローカル開発環境を使って作業した
- 自分の場合、
- 構築スタックには
Code**
系以外にもNAT Gateway, ECS, EC2など色々含むため、起動しっぱなしで数日に分けて実施するとぼちぼち課金される...- 自分の場合、平日(の夜)2日に分けて実施したので1日あたり$3~$4の費用が発生した
個人的なワークショップのまなび
SAST, SCA, DASTといった全く頭に入らない略称が意味するセキュリティテストのアプローチを知った。システム構成やNWのセキュリティではなくアプリケーションのセキュリティなので、実際のアプローチは実装言語に依存するけれど、CI/CD(開発パイプライン)に欲しいステップは変わらないかもしれない。
ref: SASTとSCA:両方が必用な理由
ワークショップで使うSAST, SCA, DAST
-
SAST: sonar-scanner
- 実装由来の(ある程度抽象的な)脆弱性をCWEベースで検知する
-
SCA:
pip-audit
- OSSライブラリ全般の脆弱性をCVEベースで検知する
-
pip-audit
ではOSSライセンス検証もサポートしている
ref: Towards apip audit
subcommand for vulnerability analysis & management
https://discuss.python.org/t/towards-a-pip-audit-subcommand-for-vulnerability-analysis-management/17681/1
-
DAST: OWASP ZAP
- 侵入テスト相当
- アクティブスキャンをCodeBuildで自動化するため、今回はZAP API(サーバはEC2)を使っている
- AWS環境であればペネトレーションテストのAWSカスタマーサポートポリシーに準拠している前提
Broken Authentication and Session Management
認証機能はフレームワーク(またはIDaaS)を積極的を使った方が良いなー、と再認識させられた。肝心なことを理解していないとフレームワーク使っても脆弱性は発生するが、フレームワークの使い方が悪いケースであればZAPで検知できる可能性は高い。
参考: Broken user authentication| APIs and the OWASP Top 10 guide
Discussion