弁護士ドットコム株式会社 Creators’ blog

弁護士ドットコムがエンジニア・デザイナーのサービス開発事例やデザイン活動を発信する公式ブログです。

新卒エンジニア向けセキュリティ研修を開催しました

前回の記事「新卒エンジニア向けHTML/CSS研修を開催しました」では、弁護士ドットコムが国内新卒エンジニアの採用を始めたこと、HTML/CSSの新卒研修を実施したことについてご紹介しました。新卒採用と研修の全体像については以下の記事をご覧ください。

私は体系的に学ぶ 安全なWebアプリケーションの作り方 第2版のレビューに参加したり、IPA 情報セキュリティ10大脅威の投票にも参加したり、セキュリティ方面の活動もそこそこやっています。その関係で、Webアプリケーションセキュリティの研修についても担当することになりました。今回の記事では、そのWebアプリケーションセキュリティの研修資料と、研修の組み立て方について考えたことをご紹介します。

研修資料

まずはWebアプリケーションセキュリティ研修の資料を公開します。実際に社内で研修に使用した資料は246ページありましたが、公開に際して以下を削除しています。

  • 研修受講者のアンケート結果
  • 社内Slackのスクリーンショット、プロダクトのソースコードといった内部情報
  • 他社のプロダクトについて直接的な言及をしている箇所
  • 具体的な攻撃手法や、攻撃に使用されるペイロードを紹介している箇所
  • グループワークに関する部分

また、末尾に会社紹介のスライドを追加しています。結果として、公開資料は197ページとなりました。HTML/CSS研修に比べて公開できない部分が多くなっていますが、基礎知識の部分はほとんど残っていますので、参考になれば幸いです。

speakerdeck.com

いかにして研修を組み立てたか

さて、ここからは研修を組み立てる際に考えたことを述べていきます。

研修の前提

HTML/CSS研修と同様、与えられた時間は2時間 です。目的とゴールは以下のようなものでした。

新卒エンジニアが現場配属された際にスムーズに実践に移れるよう、Webアプリセキュリティの基礎的な知識・スキルを習得してもらう。対象者は国内新卒5名。

あまり具体性がないようにも見えますが、まあ、そういうものでしょう。

方向性をどうするか?

この研修の方向性は、いろいろ考えられます。一口に「情報セキュリティ」と言っても非常に幅が広いわけですが、「Webアプリケーションセキュリティ」に絞ってもなお幅が広く、学ぶべきことは多岐にわたります。 方向性の例としては、たとえば以下のようなものが考えられました。

  • 大きなニュースになった事故事例を紹介し、セキュリティの重要性、取り組みの必要性を理解してもらう
  • 実際の事故の事例を多数紹介し、さまざまな攻撃手法が存在すること、攻撃手法それぞれに対する対応が必要なことを理解してもらう
  • 実際にあった攻撃の手法を具体的に紹介することで、その攻撃に対する防御の方法、対策方法を考えてもらう
  • 脆弱性診断について紹介し、過去に実際に実施した脆弱性診断の報告書を見ながら、脆弱性について知ってもらう

私は社外で一般の方に向けて情報セキュリティの話をすることもありますが、その際にはまず 事故の事例を紹介し、重要性を理解していただく ようにしています。ただ、今回は新卒エンジニアが対象です。セキュリティの重要性を理解して予算配分を考える、というような立ち回りが求められることはないはずです。Webアプリケーションの設計をしたり、コードを書いたり、レビューしたりする際に、質の高い仕事ができるようになる ことを目標としました。

また、Webアプリケーション実装時のセキュリティについて学ぶのであれば、「体系的に学ぶ 安全なWebアプリケーションの作り方」、通称「徳丸本」という定番書籍もあります。本を読めばわかることは、本を読めば良いわけで、そこまで詳しく触れなくても良いかもしれません。

今回の研修の方針

では、方針をどうするか。ここまで考えて、私が徳丸本のレビューをした時のことを思い起こしました。本に書くべきことは多岐に渡るのですが、どこまで書くかが問題になります。特に、前提知識 をどこまで深掘りしてフォローするかは悩ましいところです。

セキュリティの問題について説明する際、前提知識が必要になることはよくあります。たとえば、CSRFの攻撃を理解するためには、Same Origin policy(同一生成原ポリシー)やCookieについて理解しておく必要があります。さらに、それを理解するためにオリジンの知識や、HTTPの理解も必要になってきます。対象にそういった知識があるかないかによって、説明の仕方も変わってくることになります。対象がエンジニアの場合、基礎は当然知っているものとして、その詳しい説明はスルーされがちです。

こうした基礎は、実務で触れる機会も意外と少なく、OJTで身につけることも難しいはずです。今回、新卒エンジニアの皆さんに向けた研修として、こういった基礎的な部分に重点を置くのが良いのではないか、と考えました。これを最初にインプットしておけば、のちにセキュリティの書籍を読んだり、自分で調べものをする際にも役に立つはずです。

資料の作成

方針が決まったら資料を作ります。方針で決めたように、HTTPやCookieといった理解の前提となる部分に重点を置きます。とはいえ、前提知識の紹介だけで終わってしまってはセキュリティ研修の意味が薄いので、後半には脆弱性の紹介もしっかり入れることにしました。また、社内外の具体的な事故の事例もかなり盛り込んでいます (今回公開した資料では、ここはあまり触れられていませんが)。最終的に、以下のような構成になりました。

  1. セキュリティとは何か
  2. HTTPとHTTPS
  3. Cookie
  4. Same Origin policy
  5. Webアプリケーションの脆弱性
  6. おわりに

研修の実施

研修は4月7日、HTML/CSS研修に引き続いて社内の会議室で実施しました。HTML/CSS研修よりもスライドのボリュームは多かったのですが、こちらも時間内に収めることができ、特に大きな問題もなく終わらせることができました。

終わりに

受講してくださった新卒メンバーの皆様、おつかれさまでした。弁護士ドットコム株式会社では、今後も引き続き、未来を担うエンジニアの皆様の成長をサポートしていきたいと思っています。HTML/CSS研修に引き続き、この研修が社内外の皆様の参考になれば幸いです。