Flatt Security Blog

株式会社Flatt Securityの公式ブログです。プロダクト開発やプロダクトセキュリティに関する技術的な知見・トレンドを伝える記事を発信しています。

株式会社Flatt Securityの公式ブログです。
プロダクト開発やプロダクトセキュリティに関する技術的な知見・トレンドを伝える記事を発信しています。

【KENRO開発者インタビュー】これからのセキュアコーディング研修の形とは

f:id:flattsecurity:20210118151903p:plain

Flatt Securityは2020年11月4日、SaaS型eラーニングサービス「KENRO」をリリースしました。OWASP Top 10 に含まれる脆弱性をはじめとして、今日のWebエンジニアが開発にあたって学ぶべきセキュリティ技術の学習環境を提供するサービスです。

日本のセキュリティ業界において、教育サービスがSaaSとしてリリースされるというのはあまり多くありません。どのような経緯を経て本サービスを開発するに至ったのでしょうか。そこで今回は、学習コンテンツ作成を担当するセキュリティエンジニアの米内氏とプロダクトマネージャーとして製品設計に携わる小島氏にインタビューを実施。

「中の人」である開発者の声を紹介することで、「KENRO」というプロダクトの価値を改めてお伝えします。

flatt.tech

開発者プロフィール

米内 貴志
株式会社Flatt Security セキュリティエンジニア。「KENRO」のシステム開発・コンテンツ監修を担当。社外においても情報セキュリティ技術に関する様々な教育活動やコンテスト運営に参画している。

小島 凌汰
株式会社Flatt Security プロダクトマネージャー。新卒で大手IT企業に入社し、大規模インターネット動画配信事業の開発プロジェクトのマネジメントを経験。2020年10月に入社後、セキュリティプロダクト事業のプロダクトマネージャーを担当し、新規事業の開発・推進を行っている。

開発のきっかけは「Web アプリケーションセキュリティを学ぶハードルの高さ」

f:id:flattsecurity:20210118151426j:plain

ーーそもそもなぜ「KENRO」というプロダクトの開発に至ったのか、きっかけや経緯を教えてください。

米内:きっかけは幾つかあります。その 1 つが、Web アプリケーションセキュリティを学ぶために超える必要のあるハードルの高さを感じたことでした。

例えば、オフラインの集合研修を受けようと思うと、思い切りその期間予定を空けなくてはいけません。費用も結構かかりますし、移動も伴います。いわば、時間的制約、金銭的制約、そして空間的制約の 3 つが障壁があるといえます。

もちろん、オンラインの集合研修や既存のeラーニングを利用することで、これらの障壁は多少軽減できます。しかしその代わりに、能動的な受講が難しくなってきます。オンラインのコースだと、技術的な課題もあり、受講者が受け身になってしまうような教材設計になりがちなんですよね。特にハンズオンもなく、講師が喋って、デモンストレーションをして、終わり、というような形の設計になりがち、というか。

これらの障壁を技術で解消して、よりよい学習機会を提供したい、というのが初期衝動でした。


ーーすでに提供されている学習環境に課題感があったわけですね。学習コンテンツは具体的にはどのようなものを提供しているのでしょうか。改めて教えてください。

米内:まず、OWASP Top 10 に含まれる脆弱性をはじめとした、基礎的な脆弱性に関する学習コンテンツを提供しています。また、GraphQL や JWT のような比較的新しい技術に関するセキュリティ観点を学ぶための発展的なコンテンツもいくつか取り揃えています。こちらは今後も随時拡充していきたいと考えています。

一つ一つの学習コンテンツは、座学用テキスト、ハッキング演習、システム堅牢化演習の 3 つの教材からできています。このうち、座学用テキストは、Webアプリケーションにおける代表的な脆弱性に関する知識を体系的に整理したものです。2つ目のハッキング演習は、実際にアプリケーションへの攻撃を実践していただくことで、脆弱性や攻撃の原理への理解をより深めていただきます。3つ目のシステム堅牢化演習では脆弱なソースコードを実際に修正していただくというもので、普通の研修では得にくい実践経験を身につけていただくことができるようになっています。

つまり、「座学用テキストでセキュアな実装方法を学び、ハッキング演習で危険な実装をした場合に発生するリスクを実体験し、システム堅牢化演習で学んだ実装方法をすぐさま実践する」という学び方ができるわけです。

よく知られた脆弱性についての知識がなければ、何に注意すべきで、何には注意しなくてよいのか、が分からなくなってしまいます。また、もし知っていたとしても、脆弱性の原理への理解が甘ければ、そのリスクを過大評価したり過小評価したりしてしまうことがあります。つまり、不十分な知識や経験しかなければ、バランスよく怖がることができないわけです。

そんな中、弊社が提供している教材を一通り受講いただければ、バランスよく怖がりながら、抑えるべきところを抑えながら、Web アプリケーション開発ができるようになるはずです。

他の学習サービスとの違いは「開発現場にすぐに活かせるところ」と「安価なオンライン演習」


ーー3つの観点でセキュリティを学ぶことによるバランスを重視しているのですね。既存の研修サービスもある中、後発で挑むには差別化が大事なポイントになると思いますが、先ほど米内さんがおっしゃった点以外に端的にどのような点が挙げられるのでしょうか。

小島:「開発現場にすぐに活かせる」「安価なオンライン演習」という2つが差別化のポイントです。自社内製でのセキュリティ学習のコンテンツ作成や集合演習よりもコストが低く、かつ実践的なオンライン演習ができる唯一のサービスかなと思っています。

現状、市場で提供されているeラーニングでは、動画の視聴やスライドの閲覧による学習の後に、クイズやテストで習熟度を図るといった形式がほとんどです。そのため、日々の開発現場でのソースコードの修正方法や現実的な攻撃手法を学びづらく、得た知識をそのまま開発現場に活かしづらいという課題がありました。まさに米内が最初に説明していた「能動的な受講が難しい」という点です。

こういった課題を解決するため、「ハッキング演習」と「システム堅牢化演習」の2種類の演習を提供しています。この2つについて、詳しく説明させてください。

「ハッキング演習」は、1つの学習コンテンツにつき最大5件あり、そこで実際にデモ用のアプリケーションに攻撃をすることで脆弱性の原理が理解できます。ここで工夫しているのは、開発経験が少ないエンジニアにも学習しやすいように、演習前に前提となる知識の解説も含めていることです。例えば「SQL Injection」のコンテンツではSQLの概要であったり、「Cross-Site Scripting」のコンテンツでは Same-Origin Policy というブラウザの基礎的なセキュリティ機能に関する解説をしています。

f:id:flattsecurity:20210118151631p:plain
「堅牢化演習」の提出フォーム

「システム堅牢化演習」は脆弱性の含まれるソースコードを修正する演習なのですが、正常系の動作と脆弱性の修正確認の両者をジャッジするシステム※が組み込まれています。なので、実際の開発現場での脆弱性の修正に近い体験ができると思います。例えば、「現場でそのまま実装されてしまった脆弱性の修正」や「セキュリティ診断で報告された内容の修正」といったようなシーンのイメージです。

このようにWeb アプリケーション開発の現場で必要なセキュリティを効率よく学べるのが一番の強みだと考えています。

その他、集合研修とは異なり、全てオンラインで行えるのも強みになっています。加えて、運用の上で人の手を介さないサービスなので、従来の研修よりも低コストで提供することが可能になっています。

※特許出願中


ーーなるほど、よくわかりました。低コストに抑えることができたとのことですが、料金について教えてください。

小島: 料金体系からお話しします。企業ごとにサービスを利用するために年間で発生する基本料金と、コンテンツを受講する受講者ごとに発生する数万円/人(買い切り)の受講料金の2つがあります。 受講料金は受講者ごとに買い切りなので、年間で更新する基本料金の契約の解約を行わない限り、受講者が半永久的に受講を行うことが可能になっています。

なお、現在提供しているβ版では、まだ正式版に向けて機能を拡充している途中ということもあり、基本料金は無料で提供しています。

Webアプリケーション開発の研修と合わせて受講すると学習効果が高い

f:id:flattsecurity:20210118152826p:plain
プロダクトマネージャー 小島氏

ーー年額の基本料金とコンテンツごとの買い切り料金のハイブリッドになっているんですね。特殊な料金体系ですが、どのようなシーンで導入すると「KENRO」をうまく活用できるでしょうか。

小島: β版の公開以後、嬉しいことに1万人以上のエンジニアが在籍する大企業の方から、エンジニアの教育に力を入れているメガベンチャーの方までお問い合わせいただいており、導入を検討いただいています。

特に新入社員向けに、Webアプリケーション開発の研修と合わせて「KENRO」のセキュアコーディングの研修を行うのが学習効果が高く、理想的な導入としてお話しさせていただいてます。料金体系もそれに合わせ、研修実施後も受講者が復習をしたい時にいつでも受講できるようになっています。

また、「業務委託先や入社前のエンジニアのセキュアコーディングスキルを向上したい」「部署ごとのセキュアコーディングスキルを可視化したい」などのお声も複数いただいています。今後は、そういった年間を通じて開発組織のセキュアコーディングスキルの向上に役立てられるような機能拡充や運用のサポートを行っていきたいと考えています。


ーーありがとうございます。最後に「KENRO」の今後の展望とそれによって達成したいセキュリティのあり方を教えてください。

小島: 「KENRO」では、企業向けのeラーニングという形で学習機会を提供していますが、今後はエンジニアのセキュアコーディングスキル習得に関するあらゆる課題を解決していきたいと思ってます。

例えば、Webセキュリティ以外の開発に必要なセキュアコーディングスキルの獲得であったり、エンジニア組織全体でのセキュアコーディングスキルの管理についての課題を解決していきたいです。

最終的には、Flatt Securityのビジョンである「セキュリティの力で信頼をつなげ、クリエイティブな社会をつくる」という世界の実現を目指しています。セキュアコーディングを学ぶことで、脆弱性を生まないようなセキュアな開発を誰もができる世の中を実現できたらなと思っています。

終わりに

KENROに興味のある方は是非下記リンクよりお問い合わせください。

flatt.tech

また、導入事例としてXTech株式会社様のインタビューを掲載しております。こちらも合わせてご覧ください。

flatt.tech