Slide 1

Slide 1 text

Develop fast. Stay secure.

Slide 2

Slide 2 text

「開発者とセキュリティのお付き合い」5パターン Qiita Conference 2022 2022-06-23 Snyk ソリューションエンジニア 相澤俊幸

Slide 3

Slide 3 text

@ToshiAizawa ● Back from Tel Aviv ● First seminar in a while ● Solutions Engineer, Snyk

Slide 4

Slide 4 text

アジェンダ まとめ 開発者とセキュリティのお付き合い #1〜#5 Snyk

Slide 5

Slide 5 text

Snyk

Slide 6

Slide 6 text

Snyk の創業理念「開発者が セキュリティに携わるべきである」 Snyk intro ca. 2018

Slide 7

Slide 7 text

Cloud

Slide 8

Slide 8 text

DevOps Dev Ops

Slide 9

Slide 9 text

Dev Security 4.19M global cybersecurity staff; 2.7M staff shortage Source: (ISC)2 Cybersecurity Workforce Study, 2021 Dev vs Security 32M global developers Understanding the Significance of the Worldwide Developer Forecast, 2020–2025: Part-Time Application Developers Lead Growth

Slide 10

Slide 10 text

“ It’s Developer Security. Security has to be built into developer’s daily work. We need to build a developer tooling company, not a security company. “ Guy Podjarny Snyk President / Founder Developer Security が必要だ。セキュリティは、開発者の日々の仕事に組み込 まれなくてはならない。だから私たちは、 セキュリティ企業ではなく、開発者用 ツールを提供する企業になる のだ。

Slide 11

Slide 11 text

開発者とセキュリティのお付き合い #1〜#5

Slide 12

Slide 12 text

Case 1: CTFer

Slide 13

Slide 13 text

CTF=Capture The Flag (旗取りゲーム)

Slide 14

Slide 14 text

Mike ● フルスタック開発者 (Python 他、経験5年) → セキュリティ ● おすすめの第一歩: CTF に参加する、HackTheBox、TryHackMe ● なぜ CTF が好き? 「Detective Chess (Windows 3.1/95 時代のパズル) のように面白いから」 ● その他のおすすめ ○ ミートアップへの参加などコミュニティ活動 ○ ブログ等での情報発信 ○ Daniel Miesslerのブログ記事 “How to Build a Cybersecurity Career”

Slide 15

Slide 15 text

Case 2: Pentester

Slide 16

Slide 16 text

Penetration Test (ペネトレーションテスト)

Slide 17

Slide 17 text

Elliot ● 大学ではComputer Science専攻。在学中にインターンシップでC++開発 (経験1年)。その後、セキュリティコンサルタントとしてペネトレーションテストに 従事 ● おすすめのリソース: pentesterlab.com、PortSwigger Academy ● 推薦する書籍: 「The Tangled Web: A Guide to Securing Modern Web Applications」by Michal Zalewski ● 推薦する書籍: 「The Web Application Hacker's Handbook: Finding and Exploiting Security Flaws」by Dafydd Stuttard 他

Slide 18

Slide 18 text

Case 3: Vulnerability hunter

Slide 19

Slide 19 text

脆弱性を発見する仕事

Slide 20

Slide 20 text

Alessio ● Java 開発者 経験2年 → Pentester 経験1年 → 脆弱性発見に取り組む ● Alessio の第一歩: HackerOne (Node.js third-party modules) ● おすすめのリソース: バグバウンティ・プログラム (HackerOne、Bugcrowd、Snyk) ● おすすめの第一歩 ○ 基本的な脆弱性 (例: XSS) について学ぶ、実際のコードを調べる ○ 脆弱性報告を読んでみる ○ 自分の得意な言語・フレームワーク上で脆弱性を再現してみる ○ オープンソースプロジェクトを対象に脆弱性を探してみる (特定の言語や脆弱性の種類に特化して取り組むのもおすすめ)

Slide 21

Slide 21 text

Case 4: Security engineer

Slide 22

Slide 22 text

セキュリティ担当者

Slide 23

Slide 23 text

Raul ● 組み込み C++ 開発 (経験6年) ● その後にセキュリティエンジニアとして組織内のソフトウェアとインフラのセキュリ ティを統括 (公共分野、等) ● マインドセット「もし〜だったら」「特殊なインプットを与えてみたら」 ● ハンズオン!なんでも試してみる。 ● 推薦する書籍「Hacking: The Art of Exploitation」by Jon Erickson ● 推薦する書籍「The IDA Pro Book」by Chris Eagle

Slide 24

Slide 24 text

ところで、英語力について...

Slide 25

Slide 25 text

Case 5: The rest of us

Slide 26

Slide 26 text

Snyk Code Snyk Open Source Snyk Container Snyk IaC エンパワメント 幅広い領域をカバー ガバナンス アプリケーションの知見 セキュリティの知見 Developer Experience 開発者向け Security Platform

Slide 27

Slide 27 text

● コードベースのうち 80-90%がオープンソース ● 脆弱性の80% は間接的な依存関係で見つかる ● 数百の Linux パッケージが含まれる ● 秒単位の短時間でビルド、デプロイ、スケール可能 ● クラウドでの脆弱性発生原因 第1位は設定ミス [米国 NSA] ● ネットワーク、ストレージ、サーバー - コードを通じて素早く設定 ● 頻繁にデプロイされるソフトウェア - ウォーターフォールでは追い つけない。スキャンに何時間もかけられない ● カスタムコードが全体の 10-20% - DX 推進で、もっと多くの機能 を、より短い時間で開発することが求められる Code Open Source Containers Infrastructure as Code クラウド時代のアプリケーション リスクの潜む場所

Slide 28

Slide 28 text

CI/CD Git repository Traditional/PaaS Serverless Production Snyk 実行例 Registry deploy Security gate Code Test & fix Test, fix, monitor Kubernetes Monitor & more... Test, fix, monitor コードのチェックイン・マージ: 脆弱性とライセンスのポリシー違反の発見。 ポリ シーに基づいて PR をブロック。新たな脆弱性につい て JIRA Issue の自動作成 自動修正: Fix PR (修正プルリクエスト) により修正、パッチ適用、 アップグレード。あとはマージするだけ ビルド: CI に組み込まれた脆弱性とライセンス 違反の自動テスト。テスト失敗時にはポ リシーに従いビルドをブロック 新しい脆弱性の検出時には アラート発出・ JIRA Issueの自動作成

Slide 29

Slide 29 text

© 2022, Amazon Web Services, Inc. or its affiliates. All rights reserved. VS Code IntelliJ Azure Repos GitLab Bitbucket Cloud Bitbucket Server Concourse Jenkins Azure Pipelines TeamCity Cloud Foundry VMWare Tanzu Heroku Artifactory micro focus Coding Source Control CI/CD Runtime Snyk CLI AWS Code Pipeline Kubernetes Snyk API Issue Management Eclipse Docker Hub Docker Amazon ECS Registries Slack Jira IBM Cloud BitBucket Pipelines CircleCI Snyk API GitHub GitHub Enterprise npm Enterprise Private Registry PyCharm WebStorm PhpStorm GoLand RubyMine Visual Studio 2019 Docker buildah Harbor Quay Amazon ECR Azure Container Registry Google Container Registry Red Hat Openshift RiskSense Kenna Security Nucleus Security Vulcan Brinqua Fortify SSC Amazon EKS AWS Fargate AWS Lambda AWS CodeCommit 数多くの開発ツールと連携

Slide 30

Slide 30 text

まとめ

Slide 31

Slide 31 text

まとめ ● 開発者不足だが、セキュリティ人材はもっと不足! ● 第一歩を踏み出すのに CTF への参加 おすすめ ● 開発スキルにフォーカスし続けるのもアリ ● 英語は二の次?やりたいことをやろう

Slide 32

Slide 32 text

告知 ● Qiita Engineer Festa 2022 開催中 (〜7月18日) ● Snykを使って開発者セキュリティに関する記事を投稿! ● 「オープンソース開発者大賞」 1名、「Toshi Aizawa大賞」2名様へ 豪華賞品プレゼント → 詳しくはこの参加ページより

Slide 33

Slide 33 text

Thank you! Enjoy hacking. Stay secure.