セキュアな開発は、AppSecの免疫システムでなければならない

2021年8月24日発行
でSecure Code Warrior
ケーススタディ

セキュアな開発は、AppSecの免疫システムでなければならない

2021年8月24日発行
でSecure Code Warrior
リソースを見る
リソースを見る

アプリケーション・セキュリティの専門家として、組織のアプリケーションのサイバー・セーフティを確保することがあなたの仕事です。しかし、あなたはアプリケーションが動作するコードを書く責任はありません。開発チームのエンジニアが担当します。では、彼らがセキュリティを考慮してシステムを開発していることを確認するにはどうすればよいのでしょうか。 

次のようなことをしているのではないでしょうか。 

  • すべてのコードにセキュリティ上の欠陥がないかを確認し、開発チームに報告して修正してもらう。 
  • 厳格なピアレビュープロセスを、セキュアな開発ライフサイクル全体にわたって実施する。 
  • 内部または外部のセキュリティチームによる定期的なアプリケーションassessment/ペネトレーションテストの実施。
  • スキャンツールを導入して脆弱性を発見する。

これらは素晴らしいベストプラクティスですが、コストもかかりますし、病気になるたびに抗生物質を飲み続けるのと同じです。高額な費用がかかるだけでなく、時間の経過とともに効果が薄れ、免疫力が低下してしまいます。 

そもそも、開発者が出荷するコードが安全に書かれているかどうかを実際に確認するにはどうすればよいのでしょうか。 

セキュアコーディングはさておき、まずは人がどのように学ぶかを考えてみましょう。私たちの多くは視覚的な学習者であり、実際にやってみることで学びます。それなのに、セキュアコードのトレーニングは、多くの場合、「チェックボックス」として提供され、開発者の日常業務には関係ありません。これは、開発者が業界標準に準拠したセキュリティトレーニングを受けたことを証明するためのものであり、開発者が実際にその知識を保持したり、学習プロセスを楽しんだりするためのものではありません。 

人間が学習するもう一つの方法は、免疫システムと同じように、失敗を通して学ぶことです。T細胞は、過去にどのような種類の病原体に遭遇し、駆除に成功したかを記憶しており、将来的にそれらの病原体から身を守ることができるのです。これこそが、セキュアな SDLCにおいて開発者が果たすべき役割なのです。

彼らがミスをしないことを期待するのは現実的ではありませんが、将来的にセキュリティの脆弱性につながるコーディングパターンを認識できるように準備することはできます。 

これは、強固なピアレビュープロセスが強力になる理由でもあります。ある開発者がセキュリティ上の欠陥に気づかないからといって、他の開発者が気づかないとは限りません。また、開発チームが全体的によく訓練されていればいるほど、脆弱性が途中で発見され、本番環境に出てこない可能性が高くなります。 

ソフトウェアの脆弱性は病原体のようなもの

ソフトウェアの脆弱性は、戦うためには覚えておかなければならないという意味で、病原体に似ています。病原体の場合、私たちの免疫システムは、重篤な病気や最悪の事態を避けるために、その病原体と戦う方法を記憶するまでに、何度もさらされる必要があることがよくあります。 

脆弱なソフトウェアからのサイバー攻撃が成功すれば、組織は深刻な打撃を受け、消滅する可能性があります。しかし、開発者が管理された環境でソフトウェアの脆弱性を最初に知ることができれば、安全なコーディングの知識とスキルを高め、定期的に練習することで、脅威に対する免疫力を高めることができます。 

制御された環境で開発者にセキュリティの欠陥を見せる

病気を完全に防ぐことはできませんが、免疫力を高めて健康を維持するためにできることはあります。定期的な運動、健康的な食事、十分な睡眠などは、免疫力を高めるために必要なライフスタイルの一つです。しかし、これらはいずれも少しの努力が必要で、継続しなければなりません。1週間毎日ジョギングしたり、1ヶ月間禁酒したりしても、健康にはほとんど影響がありません。また、ランニングを始めたばかりの日に10kmを走ろうとするのも得策ではありません。まず、心臓と筋肉を運動に慣らす必要があります。また、自分の体に合ったバランスを見つけ、健康的な食べ物や好きな運動をするには、少しずつ試していく必要があることもわかっています。

それは、セキュアなソフトウェア開発においても同様です。開発者は、時間をかけて練習することで学習しますが、同じように継続的なトレーニングを受けて、定期的にセキュアコーディングのスキルを高める必要があります。言うまでもなく、ソフトウェア開発は常に進化し、適応していくものであり、脆弱性も同様です。だからこそ、単純なトレーニングコースだけでは不十分なのです。開発者は、潜在的な脅威を十分に理解し、その脅威から守るための適切な装備を身につけるために、定期的なスキルアップが必要です。 

開発チーム内での群れの免疫力を目指す

一人の人間がすべてのセキュリティ問題を防ぐことはできません。チーム内にセキュリティ・チャンピオンがいることは素晴らしいことですが、最善の保護を得るためには、セキュリティの脆弱性とその防止方法について学んだ人が多ければ多いほど、組織が問題を防止できる可能性は高くなります。繰り返しになりますが、免疫システムが異なる目的のために異なるタイプのT細胞を持っているのと大差ありません。開発者一人一人が、セキュリティを確保するチームの一員です。彼らが責任を持ち、うまくやり、楽しんでやるようになれば、結果的に開発チーム内にサイバー脅威に対する群れの免疫を作ることができるのです。

開発チーム内にサイバー脅威に対する集団免疫を作る

リピート露出でセキュリティを最優先に

私たちの脳は、免疫システムの働きと同じような方法で学習しています。ドイツの心理学者ヘルマン・エビングハウスは、記憶と学習の分野のパイオニアです。彼は、学習は時間をかけて何度も行う必要があると推論しました。学校では、最初に知識を得た後、その知識を維持することは期待できません。最初に情報が提示され、次に指導を受けながら練習し、そして自分で練習するのです。そして、試験に合格するほどの知識を身につけたとしても、時間と労力をかけて学んだ知識を定期的に使わなければ、情報はすぐに忘れてしまいます。高校で習ったフランス語を覚えているという人はどれくらいいるでしょうか。

では、たった一日、スライドを見て、誰かがセキュリティについて話すのを聞いただけで、参加した開発者が実際により安全なコーディングをするようになると、どうして信じることができるでしょうか?

繰り返される脆弱性のパターンを見ると、これではうまくいかないことがわかります。 

セキュアな開発免疫を実現するには?

その答えは、私たちの本質にあります。私たちの体と心は同じように働き、私たちがそれに逆らわずに協力する限り、問題に美しい解決策を与えてくれます。 

アプリケーションの安全性を確保するためには、まず開発者が安全なコードを書けるようにスキルアップすることから始める必要があります。そうしないと、AppSecはすべてのコードにセキュリティ上の欠陥がないかどうかを確認するためにすべての時間を費やし、繰り返される同じ脆弱性を開発に報告しても、何も学ばずにすぐに修正されてしまうことになります。そして、次のリリースのために、また同じことを繰り返すのです。

では、もう一度言います。

健康なセキュリティーの免疫システム

開発マネージャーと協力してこれを行えば、セキュアなSDLCを実装し、コンプライアンスのためのセキュリティトレーニング要件にチェックを入れるだけでなく、開発プロセスに実際の影響を与えることができます。さらに言えば、AppSecが繰り返し脆弱性に遭遇して開発チームに報告することがなくなり、開発者が脆弱性の修正に費やす時間が減ります。つまり、私たちの世界をより良くする素晴らしいソフトウェアの作成と改善により多くの時間を費やすことができるのです。 

開発チームのスキルアップの準備はできていますか?デモのご予約をお待ちしております。

リソースを見る
リソースを見る

著者

Secure Code Warrior

Secure Code Warrior は、セキュアなコードを書くためのスキルを開発者に提供することで、セキュリ ティを重視する開発者文化を構築する。当社の主力製品であるアジャイルLearning Platform は、開発者がセキュアなコードを記述するためのスキルを短期間で習得し、構築し、適用できるように、適切なスキルに基づくパスウェイ、実践的なmissions 、状況に応じたツールを提供します。

もっと知りたい?

セキュアコーディングに関する最新の知見をブログでご紹介しています。

当社の豊富なリソースライブラリは、安全なコーディングアップスキルに対する人間的なアプローチを強化することを目的としています。

ブログを見る
もっと知りたい?

開発者主導のセキュリティに関する最新の研究成果を入手する

ホワイトペーパーからウェビナーまで、開発者主導のセキュアコーディングを始めるために役立つリソースが満載のリソースライブラリです。今すぐご覧ください。

リソース・ハブ

セキュアな開発は、AppSecの免疫システムでなければならない

2021年8月24日発行
BySecure Code Warrior

アプリケーション・セキュリティの専門家として、組織のアプリケーションのサイバー・セーフティを確保することがあなたの仕事です。しかし、あなたはアプリケーションが動作するコードを書く責任はありません。開発チームのエンジニアが担当します。では、彼らがセキュリティを考慮してシステムを開発していることを確認するにはどうすればよいのでしょうか。 

次のようなことをしているのではないでしょうか。 

  • すべてのコードにセキュリティ上の欠陥がないかを確認し、開発チームに報告して修正してもらう。 
  • 厳格なピアレビュープロセスを、セキュアな開発ライフサイクル全体にわたって実施する。 
  • 内部または外部のセキュリティチームによる定期的なアプリケーションassessment/ペネトレーションテストの実施。
  • スキャンツールを導入して脆弱性を発見する。

これらは素晴らしいベストプラクティスですが、コストもかかりますし、病気になるたびに抗生物質を飲み続けるのと同じです。高額な費用がかかるだけでなく、時間の経過とともに効果が薄れ、免疫力が低下してしまいます。 

そもそも、開発者が出荷するコードが安全に書かれているかどうかを実際に確認するにはどうすればよいのでしょうか。 

セキュアコーディングはさておき、まずは人がどのように学ぶかを考えてみましょう。私たちの多くは視覚的な学習者であり、実際にやってみることで学びます。それなのに、セキュアコードのトレーニングは、多くの場合、「チェックボックス」として提供され、開発者の日常業務には関係ありません。これは、開発者が業界標準に準拠したセキュリティトレーニングを受けたことを証明するためのものであり、開発者が実際にその知識を保持したり、学習プロセスを楽しんだりするためのものではありません。 

人間が学習するもう一つの方法は、免疫システムと同じように、失敗を通して学ぶことです。T細胞は、過去にどのような種類の病原体に遭遇し、駆除に成功したかを記憶しており、将来的にそれらの病原体から身を守ることができるのです。これこそが、セキュアな SDLCにおいて開発者が果たすべき役割なのです。

彼らがミスをしないことを期待するのは現実的ではありませんが、将来的にセキュリティの脆弱性につながるコーディングパターンを認識できるように準備することはできます。 

これは、強固なピアレビュープロセスが強力になる理由でもあります。ある開発者がセキュリティ上の欠陥に気づかないからといって、他の開発者が気づかないとは限りません。また、開発チームが全体的によく訓練されていればいるほど、脆弱性が途中で発見され、本番環境に出てこない可能性が高くなります。 

ソフトウェアの脆弱性は病原体のようなもの

ソフトウェアの脆弱性は、戦うためには覚えておかなければならないという意味で、病原体に似ています。病原体の場合、私たちの免疫システムは、重篤な病気や最悪の事態を避けるために、その病原体と戦う方法を記憶するまでに、何度もさらされる必要があることがよくあります。 

脆弱なソフトウェアからのサイバー攻撃が成功すれば、組織は深刻な打撃を受け、消滅する可能性があります。しかし、開発者が管理された環境でソフトウェアの脆弱性を最初に知ることができれば、安全なコーディングの知識とスキルを高め、定期的に練習することで、脅威に対する免疫力を高めることができます。 

制御された環境で開発者にセキュリティの欠陥を見せる

病気を完全に防ぐことはできませんが、免疫力を高めて健康を維持するためにできることはあります。定期的な運動、健康的な食事、十分な睡眠などは、免疫力を高めるために必要なライフスタイルの一つです。しかし、これらはいずれも少しの努力が必要で、継続しなければなりません。1週間毎日ジョギングしたり、1ヶ月間禁酒したりしても、健康にはほとんど影響がありません。また、ランニングを始めたばかりの日に10kmを走ろうとするのも得策ではありません。まず、心臓と筋肉を運動に慣らす必要があります。また、自分の体に合ったバランスを見つけ、健康的な食べ物や好きな運動をするには、少しずつ試していく必要があることもわかっています。

それは、セキュアなソフトウェア開発においても同様です。開発者は、時間をかけて練習することで学習しますが、同じように継続的なトレーニングを受けて、定期的にセキュアコーディングのスキルを高める必要があります。言うまでもなく、ソフトウェア開発は常に進化し、適応していくものであり、脆弱性も同様です。だからこそ、単純なトレーニングコースだけでは不十分なのです。開発者は、潜在的な脅威を十分に理解し、その脅威から守るための適切な装備を身につけるために、定期的なスキルアップが必要です。 

開発チーム内での群れの免疫力を目指す

一人の人間がすべてのセキュリティ問題を防ぐことはできません。チーム内にセキュリティ・チャンピオンがいることは素晴らしいことですが、最善の保護を得るためには、セキュリティの脆弱性とその防止方法について学んだ人が多ければ多いほど、組織が問題を防止できる可能性は高くなります。繰り返しになりますが、免疫システムが異なる目的のために異なるタイプのT細胞を持っているのと大差ありません。開発者一人一人が、セキュリティを確保するチームの一員です。彼らが責任を持ち、うまくやり、楽しんでやるようになれば、結果的に開発チーム内にサイバー脅威に対する群れの免疫を作ることができるのです。

開発チーム内にサイバー脅威に対する集団免疫を作る

リピート露出でセキュリティを最優先に

私たちの脳は、免疫システムの働きと同じような方法で学習しています。ドイツの心理学者ヘルマン・エビングハウスは、記憶と学習の分野のパイオニアです。彼は、学習は時間をかけて何度も行う必要があると推論しました。学校では、最初に知識を得た後、その知識を維持することは期待できません。最初に情報が提示され、次に指導を受けながら練習し、そして自分で練習するのです。そして、試験に合格するほどの知識を身につけたとしても、時間と労力をかけて学んだ知識を定期的に使わなければ、情報はすぐに忘れてしまいます。高校で習ったフランス語を覚えているという人はどれくらいいるでしょうか。

では、たった一日、スライドを見て、誰かがセキュリティについて話すのを聞いただけで、参加した開発者が実際により安全なコーディングをするようになると、どうして信じることができるでしょうか?

繰り返される脆弱性のパターンを見ると、これではうまくいかないことがわかります。 

セキュアな開発免疫を実現するには?

その答えは、私たちの本質にあります。私たちの体と心は同じように働き、私たちがそれに逆らわずに協力する限り、問題に美しい解決策を与えてくれます。 

アプリケーションの安全性を確保するためには、まず開発者が安全なコードを書けるようにスキルアップすることから始める必要があります。そうしないと、AppSecはすべてのコードにセキュリティ上の欠陥がないかどうかを確認するためにすべての時間を費やし、繰り返される同じ脆弱性を開発に報告しても、何も学ばずにすぐに修正されてしまうことになります。そして、次のリリースのために、また同じことを繰り返すのです。

では、もう一度言います。

健康なセキュリティーの免疫システム

開発マネージャーと協力してこれを行えば、セキュアなSDLCを実装し、コンプライアンスのためのセキュリティトレーニング要件にチェックを入れるだけでなく、開発プロセスに実際の影響を与えることができます。さらに言えば、AppSecが繰り返し脆弱性に遭遇して開発チームに報告することがなくなり、開発者が脆弱性の修正に費やす時間が減ります。つまり、私たちの世界をより良くする素晴らしいソフトウェアの作成と改善により多くの時間を費やすことができるのです。 

開発チームのスキルアップの準備はできていますか?デモのご予約をお待ちしております。

弊社製品や関連するセキュアコーディングのトピックに関する情報をお送りする許可をお願いします。当社は、お客様の個人情報を細心の注意を払って取り扱い、マーケティング目的で他社に販売することは決してありません。

送信
フォームを送信するには、「Analytics」のCookieを有効にしてください。完了したら、再度無効にしてください。