#FlattSecurityMagazine

セキュリティとプロダクト開発の今を伝えるメディア

初参加から3年で講師に!セキュリティ・ミニキャンプ in 東京2023登壇の舞台裏



Flatt Securityでセキュリティエンジニアとして働くAzaraさん(@a_zara_n)は、2023年5月13日(土)に開催された「セキュリティ・ミニキャンプ in 東京2023」1日目の専門講座『コンテキストを読み解き進めるモダンWebセキュリティ入門』の講師として登壇しました。

セキュリティ・キャンプ修了生であるAzaraさんがセキュリティ・キャンプ全国大会に初めて参加したのは2018年のこと。初参加から3年後の2021年にはセキュリティエンジニアとしてのキャリアをスタートするとともに、セキュリティ・キャンプ全国大会に講師として初登壇。そして、今年セキュリティ・ミニキャンプの地方大会である「セキュリティ・ミニキャンプ in 東京2023」の講師を務め、その他技術イベントへの登壇を行うなど、クラウドセキュリティに関する情報発信を意欲的に行っています。

今回、Azaraさんがセキュリティ・ミニキャンプをはじめとする技術イベント・勉強会に登壇する理由やモチベーション、講師として工夫していることなどについて、お話を伺いました。

若手・学生の登竜門「セキュリティ・ミニキャンプ」

Azaraさん

ーーAzaraさんが登壇された「セキュリティ・ミニキャンプ」はどのようなイベントですか?

一般社団法人セキュリティ・キャンプ協議会と独立行政法人情報処理推進機構(IPA)が主催する、セキュリティ関連技術の勉強会「セキュリティ・キャンプ」の地方大会という位置付けのイベントです。地域における若手人材育成を目的として、セキュリティ業界を目指す若手エンジニア・学生に向けて、各地域ごとに開催されています。

セキュリティ・キャンプでは、毎年、対面合宿方式の勉強会「全国大会」や、全国大会修了生向けにさらに高度な技術教育を提供する「ネクストキャンプ」も開催されています。各地方で開催されるミニキャンプへの参加をきっかけにして、セキュリティ・キャンプの活動やセキュリティ技術の学習に興味を持ち、全国大会やネクストキャンプの参加へとステップアップしてもらえることを期待しています。

参加に当たっては、全国大会やネクストキャンプと同様に技術課題による選考を受ける必要がある場合もありますが、ミニキャンプは初心者向けのイベントなので、技術課題の内容も分量が少なめで難易度も易しくなっています。各地域において、セキュリティに興味のある若手エンジニアや学生に門戸を開くことが目的のイベントですので、全国大会などと比較すると選考の倍率もそこまで高く設定していません。

セキュリティ・キャンプ各イベントの関係性(「セキュリティ・キャンプ事業紹介」より引用)

ーーミニキャンプには、どのような人が参加していますか?

地域によって年齢制限の有無に違いがありますが、メインターゲットである若手エンジニアや学生がやはり一番多いです。地域によっては年齢の都合で全国大会やネクストキャンプに参加できなかった人でも参加できるケースがあるので、大学院生の方など、年齢が高めの方がいらっしゃる場合もあります。

ーーミニキャンプのイベント内容について教えてください。

各地域ごとに、その地域の高専や大学などの学術機関と連携しながら準備を進めているため、イベント内容は地域によって様々です。基本的には、「一般講座」と「専門講座」の2種類の講座で構成されています。一般講座は参加要件がなく誰でも参加できる講座です。一方、専門講座は参加要件として技術課題の選考や年齢制限を設けるなど、参加にあたって一定のハードルがあります。

今回の「セキュリティ・ミニキャンプ in 東京 2023」は専門講座のみで開催されました。

初参加した全国大会で感じた「2つのインパクト」

ーーAzaraさんはセキュリティ・キャンプ全国大会修了生ですが、セキュリティ・キャンプへの初参加はいつごろでしたか?

2018年ですね。当時は学生でしたが、年齢的に全国大会に参加できる最後の年でした。

元々、所属していたサークルのOBが全国大会修了生だったこともあり、セキュリティ・キャンプという一連のイベント自体は知っていました。神戸で開催された「セキュリティ・ミニキャンプ in 兵庫 2018」に参加して、改めて「全国大会って楽しそうだな」と思い、その年の全国大会に応募しました。

ーー全国大会では、どのような講義が印象に残っていますか?

セキュリティ・キャンプ全国大会2018 参加者の記念写真(出典:https://twitter.com/security_camp/status/1030709648075046913

全国大会では「開発運用コース」に参加しました。色々な講義の中でも、特に2つの講義に強く感銘を受けました。

1つ目は、当時GMOペパボに所属していたまつもとりーさん(現・さくらインターネット研究所 主席研究員)が講師を務めた講義「クラウド・ホスティングサービスのセキュリティと運用技術の研究」です。GMOペパボのクラウド・ホスティングサービスを支える高集積プラットフォームをいかに安全に運用しているのか解説する内容で、自分にとって初めてアプリケーションの裏側に触れる機会になりました。これまでなかなか知ることができない分野だったので、「サービス/プロダクトのセキュリティに対して、このような向き合い方をしている人たちがいるんだ」という気づきに繋がりました。

▼Azaraさんの当時の熱い思いが込められた参加記。

azara.hatenablog.com

azara.hatenablog.com

もう1つ、まつもとりーさんの講義と同じぐらいインパクトを受けた講義が、受講したコースのプロデューサーを務めていた仲山昌宏さんの「サーバーレス時代のシステム設計ワークショップ」です。


講義やその後の仲山先生との話を通じて、Web技術を使ってユーザーに価値を提供する上で必要となる考え方を習得できたように思います。「巨人の肩の上に立つ」ではないですが、「これまで先人たちによって培われた技術や知見を活用すること」と、「自ら抽象度の低い技術を用いて、新しい技術や手法を作り出していくこと」の両軸で取り組むことがとても大事だということを学びました。

新しい技術を作り出していく作業には「車輪の再発明」に陥るリスクが伴います。しかし、その中で技術に対しての課題点や疑問点を明確にしていくためにも、時にはあえて「車輪の再発明」をしてみるのも手だ、という仲山さんの教えは非常に興味深かったです。

加えて、当時学生だった私にとって、仲山さんのような経験豊富なエンジニアの方と直接深くお話する機会があまりなかったので、そのような経験自体も新鮮に感じました。当時から勉強会などの技術イベントには積極的に参加するようにはしていたものの、イベント後にお話する時間も限られていたため、登壇者の方や他の参加者の方とのコミュニケーションに課題を感じていました。全国大会は5日間開催されるため、必然的に講師や受講生とやり取りする時間も長くなり、コミュニケーションの密度も濃かったので、コミュニティ的な側面もあるように感じました。

全国大会修了後、仲山さんとはさらにやり取りをさせていただくようになりました。2021年の全国大会で、僕は講師として初登壇したのですが、その時も仲山さんと2人で講師を務めました。

speakerdeck.com

僕は元々、Webは人々の暮らしを支え、豊かなものにする技術だと考えており、その開発に携わりながらセキュリティも守っていきたいと考えていました。全国大会の講義を通じて、抽象度の高いWebのような分野だけでなく、低レイヤーの分野についても学ぶことができました。

ーー全国大会修了後はセキュリティ・キャンプにどのように関わっていましたか?

全国大会修了後は、2年間、チューターとして講師の補助を行っていました。チューター期間中に、仲山さんとよくお話をするようになり、今でもよくオンライン・オフライン問わずよくやり取りさせていただいています。

余談ですが、チューターを務めていた時に、今働いているFlatt Securityとの出会いがありました。

▼AzaraさんがFlatt Securityに入社するまでを振り返った「セキュリティエンジニア座談会」記事

recruit.flatt.tech

修了生同士の繋がりもできました。Twitterでも繋がっていますし、今でも一緒にご飯を食べに行くこともあります。

開発エンジニアを目指す人にこそ知ってほしい、Web・クラウドセキュリティの基礎


ーー今回、どのような経緯で「セキュリティ・ミニキャンプ in 東京 2023」に登壇することになりましたか?

セキュリティ・キャンプの運営メンバーの方とご飯に行く機会があり、その際に、「最近この分野に関心を持ってるんですよね」と今回の講義テーマに関する話をしていたら、「登壇してみない?」とお誘いいただいたのがきっかけです。ミニキャンプの講師は、セキュリティ・キャンプ全国大会の修了生から選ばれることが多いのですが、僕はその条件に当てはまっていたので、比較的スムーズに話が進んだように思います。

ーー講義の内容についてはどのように検討していきましたか?

まず運営メンバーの方と方向性のすり合わせをしてから、具体的なコンテンツの構成や中身を考えていきました。今回は「Webとクラウドのセキュリティ」をテーマに講義をご依頼いただき、『コンテキストを読み解き進めるモダンWebセキュリティ入門』というタイトルのコンテンツにまとめました。

今回の講義は開発エンジニアを目指す人と、プロダクトセキュリティに関心がある人を対象としています。セキュリティの分野においては、しばしばオフェンシブなセキュリティが注目されがちですが、「なぜWebセキュリティが必要なのか」「Webセキュリティに必要な考え方は何か」といった基礎的なことについて学ぶことも重要だと考えています。少し堅苦しい話にはなってしまいますが、開発エンジニアを目指す人やプロダクトセキュリティに関心がある人にこそ知ってほしいWebセキュリティやクラウドセキュリティの基礎知識や考え方をまとめてみました。プロダクト開発の上流工程からセキュリティを考えていくという内容になっています。

講義スライドについては、最初に大まかなアウトラインを書いて、そこに枝付けしていくような流れで作り始めました。社内外の色々な人にアドバイスをもらいながら、できる限り体系だって説明できるように構成の検討を行っていきました。講義スライドの制作期間は2週間半ほどです。


ハンズオンに関しては、攻撃手法や脆弱性の修正方法を実際に体験し理解いただけるよう、いくつかのシナリオと問題を作成しました。セキュリティ(脆弱性)診断でプロダクトの脆弱性が発見された場合は、プロダクト開発に携わる開発エンジニアの方々が修正対応を行うことになるため、こういった経験や知識はプロダクト開発の現場で役に立つと思っています。

セキュリティエンジニアの”背中”から学んでほしい

ーー実際に講義を行ってみて、いかがでしたか?

今回はオフライン開催だったので、受講生間での交流が生まれやすくなるよう、講義の冒頭にアイスブレイクの時間を設けました。講師として「講義を通してセキュリティ業界で働く人や、セキュリティエンジニアとして働く人の”背中”を見せたい」という思いもあったので、聴講してくださっていたスポンサー企業の方も巻き込みながらアイスブレイクを進めていきました。セキュリティエンジニアが普段どのようなことを考えながら働いているのか、どういう人がいるのか、ということについて知ってもらうきっかけになったのではないかと思います。

用意したスライド枚数が増えてしまったこともあって、講義では本筋の説明に必要な部分のみをピックアップしながら紹介する形を取りました。受講生は開発エンジニアを目指す学生の方やセキュリティと開発両方に興味があるという学生の方がほとんどだったので、抽象度が高いものから具体へ流れるように説明するよう、特に意識して説明を行いました。

セキュリティ・ミニキャンプ in 東京2023の講師・受講生(出典:https://twitter.com/security_camp/status/1657653791469215744

ーー受講生からの反応はどうでしたか?

「わかりづらい」「実感がわかない」という意見も出るのではないかと危惧していましたが、アンケート結果を見ると受講生の8割以上の方に満足や理解をいただけたようで、少し安心しました。予想以上に良い反応をいただいています。

受講生の方からは、講義後に教室やTwitterで質問をいただいてやり取りをしました。「Flatt Securityのサマーインターンに応募しましたよ!」と声をかけてくれた方もいましたね。今回は講義の進行上、講義中に質問を取ることができなかったので、次回以降は講義中にも受講生とも積極的にやり取りができるように工夫していきたいです。

ーー今回の講義を通じて、何を得られましたか?

講義コンテンツを作る中で、自分が習得してきた技術的知識の振り返りができたように思います。今回は開発エンジニアを目指す人向けの講義だったこともあり、「開発者目線で必要なセキュリティの基礎知識」という観点で整理できたことは自分にとっても良い経験になりました。

また、実際に講義を行って「知っている」ということと「他の人に教えられる」ということは全く別物だな、と改めて感じました。ある技術に対する理解度の深さと、他の人へわかりやすく説明する能力の高さは必ずしも比例しません。今回は基礎的な内容だったため周辺知識や補完する知識を「いかに広く満遍なく話すか」が講義のポイントでしたが、基礎的な知識を体系だって、かつ順序立てて説明することの難しさを感じました。

プロダクトセキュリティの「大衆化」を目指して


ーーAzaraさんはセキュリティ・キャンプの他にも、様々な技術イベントへの登壇・参加をされています。そのモチベーションについて教えてください。

これまで、開発エンジニアとセキュリティエンジニアの架け橋になりたいと思って、活動を続けてきました。「開発とセキュリティ」というテーマは、一見とっつきにくく見えやすいと思うので、僕の活動もすぐに効果が現れるものではなく、地道にやっていって初めて効果が出てくるものだと理解しています。そのため、イベント登壇だけでなく、DevRel的な活動や調査・検証を含めたR&Dなど、自分ができることはなんでもやっていきたいです。

「開発とセキュリティ」をテーマに様々な活動を行うことは、自分の将来的なキャリア形成にも確実にプラスに働くものだと考えています。元々人の前で話すのは苦手な性格だったのですが、こういった活動を続けるうちに、他の人に話すことにより悩みが解決されたり、逆に他の人の悩みを解決できたりすることがあることに気づくことができました。今後も活動を続けていくことで、この分野で悩んでいる人の役に立てることができればと思っています。

ーーこれから取り組んでいきたいことがあれば、教えてください。

自分の活動を進めていくだけでなく、今後講師となっていく人たちや、初めてイベントに登壇する人たちを支えていきたいなと思っています。講義受講やイベント参加を通じて「講師として自身の考えを学生や他のエンジニアに伝えたい!」と思う人を増やしていきたいですし、そういった思いを掬い上げていけるようになりたいです。若手エンジニアの方やエンジニア志望の学生の方々と関係を築いていくことで、僕自身もセキュリティエンジニアとしての”背中”を見せていきたいです。

プロダクトセキュリティは「できる人のためのもの」ではなく、「プロダクトに関わる全ての人のためのもの」だと思うので、より多くの人にプロダクトセキュリティについて理解してもらえるような仕組み作りも行っていきたいです。プロダクトセキュリティに触れてもらう機会を増やして、初心者の人でも手を動かしながら学習できる環境を整えていくことで、「プロダクトセキュリティの大衆化」を目指したいです。まだ構想段階ではありますが、攻撃することでAWSなどのクラウドセキュリティを学べる「クラウド版やられアプリ」や、プロダクトセキュリティを学べる教材なども将来的に作ってみたいなと思っています。

(取材・文/寺山ひかり 撮影/豊田恵二郎)

お知らせ

国内最大のAWSの開発者向けテクニカルカンファレンス「AWS Dev Day 2023 Tokyo」において、Azaraさんの登壇セッション「S3・Cognito・Lambdaのアンチパターンで学ぶセキュリティ・バイ・デザイン」が開催予定です。ご興味をお持ちの方はぜひご来場ください!

◼️登壇日時
2023年6月23日(金)13:50-14:35

◼️セッションタイトル
S3・Cognito・Lambdaのアンチパターンで学ぶセキュリティ・バイ・デザイン

◼️セッション概要
本セッションでは、S3のファイルアップロードにおけるXSSやCognitoを用いたアプリケーションにおける認証認可の不備、Lambdaを用いたイベント駆動なアーキテクチャにおける認証情報への攻撃などの実装されやすいアンチパターンについて紹介します。

それらを踏まえ、設計段階でいかにセキュリティを担保していくかについて「セキュリティ・バイ・デザイン」や「シフトレフト」などの考え方を交えながら、セキュリティを意識した開発のあり方について話していきます。

なお、セッション終了後に、下記の実環境で試せるCDKのコードとより詳細な解説についてをGitHub上で提供予定です。

  • S3のファイルアップロード機能の不備によって発生するXSS
  • Cognito User Poolを用いたアプリケーションのユーザー認証と認可における不備
  • AWS Lambdaを用いたイベント駆動のアプリケーションにおける認証情報への意図しないアクセス
  • 上記のアンチパターンを含んだサンプルアプリケーション