プロダクトセキュリティ部の西川(id:cw-nishikawa)です。
時の流れが早すぎてオッサン化してきたのを感じる今日この頃いかがお過ごしでしょうか。
日々やることが多くて、いつの間にか8月です。8月ではありますが、5月におこなったセキュリティ教育の話を書きたいと思います!
セキュリティ教育
新卒向けのセキュリティ教育は今年度から始まったもので、今までは技術教育の中には含まれておりませんでした。
しかし、セキュリティの大切さは世の中的に日に日に増していて、それはみなさまもご存じのとおりで、「やっていかないといけないよね!」ということで始まりました。
このセキュリティ教育は、セキュリティの基本的な考え方とセキュアコーディングの学習プラットフォームの「KENRO」を使った2部構成で行っています。
セキュリティの基本的な考え方
セキュリティの基本的な考え方についての講義は主に下記の2つの狙いをもっておこないました。
- プロダクト開発業務において、定めているセキュリティの方針を理解してもらうため
- 業務上のコミュニケーションにおいて必要な基礎的なセキュリティ用語を覚えてもらうため
結果、プロダクト開発業務において脆弱性が入り込むことを防止していければと考えています。また、具体的な内容としては下記のようなことを伝えています。
- プロダクトセキュリティに関する基礎知識
- 可用性 / 機密性 / 完全性
- 昨今のセキュリティインシデント紹介
- Chatworkにおけるセキュリティ
- Chatworkにおけるセキュリティ上のガイドライン・ルールなどの紹介
セキュアコーディング学習プラットフォーム「KENRO」
KENROとは、Flatt Security社が提供しているサービスで「セキュアコーディングを当たり前にする、エンジニアの 学習プラットフォーム」です。 flatt.tech
新卒社員がこれから開発に携わり実際のプロダクトに触れていく中で、自分で書いたコードがインシデントのきっかけになってしまうと心が折れそうになることでしょう。もしかしたら折れてしまうかもしれません。
私自身Chatworkに入る前の話で、10年以上前に書いたコードが数年前にインシデントのきっかけを作ってしまったことがあります。 取られた情報としては一部個人情報はあったものの数としては多くはなく、対処が早かったため影響は限定的でしたが、それでも心労が激しく、あのときのことは一生忘れられません。 Chatworkの開発者に同じ経験をさせないためにとの想いで普段から取り組んでいます。
KENROを選んだ理由
KENROを選んだ理由としては、各種脆弱性に関して詳細な解説が最初にあり、その後で実際に攻撃者側の観点で攻撃を行い、脆弱性について理解を深めることができます。
さらに各脆弱性の総括として、配布されたコードに存在する脆弱性を修正し、修正したファイルをアップロードすることで、脆弱性が修正できているかを自動で確認することができるため、概念だけではなく修正を通してさらに理解を深めることができるという特徴があります。
この一連の流れで頭で理解するだけではなく、実際に手を動かして修正するところまで含まれているため、 脆弱性につながるコードや勘所を捉えることができ、セキュア開発をしていくうえでの土台づくりとして利用することが可能である点が決めてでした。
また、セキュリティ教育で重要なキーワードとして「アウェアネス」という言葉がありますが、これは日本語にすると「意識」や「気付き」で、 開発者にセキュリティに関するアウェアネスを与えるきっかけとして、非常に有用なコンテンツであると感じています。
KENROに全て任せたらOK?
基本的にはOKと思っています。 一方で、脆弱性に関する知識がまったくない場合に、どこまで躓かずに解けるのかが判断が付かないということもありまして、 まず私自身で試してみて、何かあったときに答えられるように解答例を用意しておきました。何かあったときフォローができる体制は必要かなと思います。
結果
結論から言うと、受講者には好評で、 「単なる知識としてだけではなく、てを動かし自ら脆弱性を修正することで、より脆弱性についての理解が深まっていると感じる」 というコメントもいただきました。
今回は新卒教育の話でしたが、今年度はChatworkのインターン・シップでも、サイバーセキュリティのプログラムが始まります。 そこに向けてセキュリティコンテンツを開発していたり、今後もセキュリティ教育には力を入れていく予定です。 こういった教育含めてシフトレフトでプロダクト開発のセキュリティを向上していければと考えています!
最後までお読みいただきありがとうございました。
プロダクトセキュリティ部では一緒に働いてくれる仲間を募集しています! hrmos.co