🏕️

セキュリティ・キャンプ2024 全国大会 専門B参加記

2024/09/01に公開

はじめに

08/12から08/17にかけて開催された「セキュリティ・キャンプ2024全国大会」の参加記となります。
専門B プロダクトセキュリティクラスに参加しました。
概要についてはこちらから参照ください。

なぜ参加しようと思ったのか

昨年度以下の記事にあるものをAWSを活用しWeb開発を行っていました。

https://zenn.dev/sou1118/articles/610797ccc4e70b

CI/CDパイプラインや認証認可などを整備していく中で、監視がうまくできていないことを自覚するようになり今年の講義に「セキュリティ監視」の講義があることを知ったことが専門Bに参加することを決めた理由です。

また、これまでの参加者の方やチューターの方などからセキュリティ・キャンプの話を聞き、濃い1週間を過ごしたいこともあり、応募することに決めました。

講義についての振り返り

B1 - プロダクトセキュリティの展望

プロデューサーの米内さん藤田さんのお二人による講義でした。

これから3日間で何を学ぶのか、プロダクトを届けるために大切なこと、クラウドネイティブ時代に必要な考え方、技術者に必要な倫理観・法律、プロダクトを実際に運用していく中でのセキュリティ、コミュニケーションスキルについて扱いました。

技術者としてファーストキャリアでセキュリティの会社を立ち上げて成長させた経営者としての視点をお持ちの米内さんと警察にてサイバー犯罪にかかわる案件を取り組まれ、現在はメディア会社のセキュリティエンジニアとして勤務されているバックグラウンドが異なる二人による講義から得られた物がたくさんありました。

会社の規模に応じたセキュリティへの投資の拡大や、事業ドメインごとにやるべきことが異なるなどマネージメントや経営側についての知識が乏しいため新しい視点を得ることができました。特にセキュリティにはお金がかかるため、どこにどれだけのコストをかけることが必要なのか、適切な施策なのかなどを考える必要があることも勉強になりました。

またクラウドネイティブな時代になった今でも攻撃者がシステムを狙う根本的な理由は変わっていないということにも改めて気づかされました。Google検索が出た当初も入力してそれが使われるのではないかという危機感が全体的にあったことを振り返り、ChatGPTをはじめとする生成AIが誕生した数年前から現在においても似たような議論はされておりそこでも時代は繰り返していることに意識を向けることができました。

この講義で学んだことが後に続く講義の伏線となっていました。

https://www.docswell.com/s/tanafuji-sec/ZN1RJG-seccamp2024-b1#p1

B2 - 情報セキュリティ戦略ワークショップ

事業会社でCISOをされている亀山さんによる講義でした。

講義内容に関しては触れられませんが、グループワークで行ったインシデントハンドリング演習では考えることが非常に多く、勉強になりました。

インシデントハンドリング演習を実際に体験してみて、あらゆる選択肢がありどれを選べば被害を最小限に抑えることができるのかを常に考えながら対応してみると、当たり前ですが焦りが生じました。その焦りによって人に伝える際に表現が強くなってしまったり、苛立ってしまうなどしてしまう場面が振り返ってみるとありました。この演習を通して普段から信頼関係を築いたり、実際に自分がどういう性格なのかなど自己分析を行ったり、同じような演習を行い、振り返ることが大切だと知らされました。事前に何をやるのかも明らかにしておくべきでした。

もう少しそこはこうするべきだったよなみたいに反省がたくさん発生したため、対応に当たる際は気をつけたいと思いました。

B3 - セキュリティ監視入門

「OPA/Rego入門」を執筆された水谷さんによる講義でした。

https://zenn.dev/mizutani/books/d2f1440cfbba94

今年はOPA/Regoの内容は取り扱わずによりマクロなセキュリティ監視について扱いました。

なぜ監視が必要なのかから入っていき最後には今回のために作成していただいたデモサービスのAPIから監査ログからアラートを検知し、Slackに通知する処理を実装しデプロイをやってみるところまで作業としては行いました。

なぜ監視を行うのかについては前日に情報セキュリティ戦略ワークショップの講義でアラートとログをベースに作業を行っていたこともあり、実際に体験したからこその重みがありスムーズに入ってきました。ここでもプロダクトセキュリティの展望であった事業の大きさによって行うことについて触れられており、つながりを感じました。

ログと言えば、プロダクトやクラウドから出力されるものだけだと思っていましたが、実際にはEDRやMDM, Slack, 1Passwordなど業務で用いるものすべてが収集の対象となること、それぞれの製品から吐き出されるログの形式が違うためそろえて、基盤に注入するという作業が必要なことを知りました。実際に手を動かして実装することでより深く学ぶことができました。

https://mztn.notion.site/4a1b43b9101c4f669f32f805b2393206

B4 - モダンなプロダクト開発を攻撃者の視点で捉える

threat-matrix-cicdを作成され、事業会社でブルーチームに所属されている末澤さんと事業会社でレッドチームに所属されている白石さんによる講義でした。

現代の開発スタイルとツールを用いた仮想の事例を元にブルーチームとレッドチームの双方の視点をバトンパスしていく形で講義が展開されました。

実際に認証基盤以外、ハンズオンで利用したSaaSに関しては利用したことがあったため、親しみやすかったかつ、普段から危ないなと思っていた部分が実際に悪用されるケースがあるということとそれに対する対策をブルーチーム側の視点とレッドチーム側の視点の双方を知ることができ、キャンプ以前からのモヤモヤが晴れた気がしました。

また現代の複雑化する開発環境において、プロダクト開発者は何をすべきなのかを双方の視点で考えることができました。特になぜ対策が重要なのかという部分が抜けている指摘はごもっともでした。以前の講義からのフェーズに応じて適切な対策を行うという話とのつながりを感じられました。

以下の内容とは大分変わっていますが、2022年度の公開資料を添付しておきます。
https://speakerdeck.com/rung/training-devenv-security-ja

B5 - 設計・開発・テストにおけるセキュリティの実践と考え方を知ろう

セキュリティベンダーで脆弱性診断をされている齋藤さん山川さんによる講義でした。(Azara先生会いたかったよ~)

事前課題でSAST, DAST, 生成AIを用いた脆弱性診断をやってみる課題(ツールの素振り)が出されました。講義内では現代の開発にてスポットライトを当て、一連の開発の流れを追いながらバグが生まれる箇所や改善点などについて話があり、実際に脆弱なWebサイトに対して脆弱性診断を行いました。

CTFなどに参加したことがない私にとって、事前課題で初めてSASTやDASTを取り扱い、いろいろと苦戦しながらそれぞれのツールの特徴を掴みながらやっていました。それぞれのツールの得意な場所、苦手な場所を把握しながら実際にハンズオンに取り組みました。

DevSecOpsという単語はこれまでに何度も聞いていて意味自体は理解していましたが、実際に講義を受講した後にはより理解度が増しました。それを踏まえ、コードのカバレッジを上げることやCIでの検査、テスト駆動型開発などの有効性が再認識できました。

B6 - クラウドネイティブなシステムを保護するための実践的Kubernetesセキュリティ

コンテナセキュリティ本を監訳された水元さんによる講義でした。昨年度コンテナについていろいろと取り組んでいたこともあり、コンテナセキュリティ本にはお世話になっていました。

講義ではKubernetesの概要から入り、Kubernetes環境への攻撃や対策について一通り扱っていました。基盤としての話がメインで専門Bの中でも扱う内容としてはかなり低かったです。

昨年度Kubernetes環境を管理するので苦戦した私にとっては再チャレンジという形でした。ハンズオンがメインの講義で、基本的ににはほとんど手を動かしていた記憶です。

eBPFを用いたコンテナの監視ツールについて、これまでfalcoを使う機会が多かったのですが、Tetragonを使ってみたところ得ることがたくさんありました。

https://github.com/falcosecurity/falco

https://github.com/cilium/tetragon

B4の講義とも関連しますが、Secretの管理についてはKubernetes上でも様々な管理方法があり、自分は1PasswordのOperatorを使っていたりしますが、他にも様々な方法が知れて楽しかったです。

https://developer.1password.com/docs/k8s/k8s-operator/

最近流行?のコンテナイメージの署名についても取り扱っており大変興味深かったです。

https://eprint.iacr.org/2023/296.pdf

改めて基盤運用は大変だと感じたのと同時に、運用している方たちへの感謝の気持ちは忘れてはいけないと感じました。

講義を通してKubernetesの仕組みが面白い/楽しいと感じることができました。

https://github.com/kyohmizu/seccamp2024-B6

講義を一通り受け終わって

自分の知らない世界の話が所々あり、一部理解に時間がかかる場所もありましたが、最終的には理解ができ多くのものを得ることができました。

プロダクト開発といっても多くの専門の人が関わっており、それぞれがリリースに向けて努力されているということを学べました。その中での早く・安全に届けるためにされている努力に関して講義ごとのつながりが多くあり俯瞰した際の解像度は増しました。

将来についていろいろ迷っていますが、実際に社会に出た際には今回学んだことを生かして還元していきたいと思います。

休憩時間などに質問して笑顔で回答してくださった講師の皆さん、雑談や演習などサポートしてくださりましたチューターのお二方、キャンプ中試行錯誤しながら同じ課題に向き合った受講生の皆さん、円滑な運営でサポートしてくださりましたIPAの皆さん、協議会の皆さん、ノベルティや開催を支援してくださりました協賛企業のみなさんありがとうございました。

他の方のブログ

プロデューサーの藤田さん
https://hack.nikkei.com/blog/seccamp2024/

チューターのmoz_sec_さん
https://moz-security.hatenablog.com/entry/2024/08/31/121836

Discussion