最高のDevSecOpsエンジニアになるには

2020年2月28日発行
マティアス・マドゥ博士著
ケーススタディ

最高のDevSecOpsエンジニアになるには

2020年2月28日発行
マティアス・マドゥ博士著
リソースを見る
リソースを見る

技術そのものと同じように、コードを開発するためのツールやテクニック、最適なプロセスも急速に進化しています。私たち人間は、より多くのソフトウェア、より多くの機能、より多くの機能を求めてやみません。そして、かつてないほど速く、より質の高い、さらには安全なソフトウェアを求めています。ほんの数年前、アジャイル開発は、大きな仕事を小さなピースに分割し、お客様からの迅速なフィードバックサイクルに迅速に適応するために使用される次の大きなものでした。それ以前は、ウォーターフォール方式が主流でした。

多くの人や組織がウォーターフォールからアジャイルへと移行している一方で、 -- 現実的に考えて、まだ全員がそこに到達しているわけではありませんが -- すでに新たな問題に遭遇しています。開発チームとその運用担当者が依然としてサイロで作業しているのです。このような環境の中で、小規模なチームがアジャイルな方法で作業を行い、迅速なデプロイメントを実現するにはどうすればよいのでしょうか。

開発(Development)と運用(Operation)を組み合わせた造語であるDevOpsは、新しいソフトウェアを作成する際に、開発チームと運用チームの両方の機能を統合するために作られました。これは、新しいソフトウェアを開発する際に、開発チームと運用チームの機能を統合するために作られたもので、従来は運用チームに丸投げしていたものを、開発者が主体的に運用するためのものです。

確かに、1日に数回でも速く出荷することができるので、アジャイルの流れに沿っているように見えます。しかし、DevOpsではエンジニアと運用担当者が混ざった1つの大きなチームを作ることになり、実際にはアジャイルに沿ったものではないかもしれません。最終的には、DevOpsはアジャイルを進化させたものと考えるのがベストです。なぜなら、この2つの方法論は多くの点で似ており、違いを補い合っているからです。DevOpsでは、自動化された継続的なインテグレーションとデプロイメントのパイプラインを促進します。これは頻繁なリリースを可能にするために不可欠ですが、チームレベルでは十分ではありません。アジャイルは、チーム、特に小規模なチームが、このような迅速なリリースや変化する要件に対応しながら、タスクを遂行し、協力し合うことを可能にします。これは確かに理想的なことであり、このプロセスによってチームは最終目標に向かって進むことができますが、問題がないわけではありません。

DevOpsのベストプラクティスを用いて作成されたソフトウェアは、最初のボス戦であるセキュリティチームで躓く可能性があります。従来のウォーターフォール型のAppSecの専門家が、ツールや複雑な手作業によるレビューでコードを検査すると、受け入れがたいリスクや脆弱性が発見されることが多く、それらを事後的に修正しなければなりません。完成したアプリにセキュリティ修正を後付けするプロセスは、迅速でも簡単でもありません。そして、組織にとってははるかにコストがかかります。

では、ウォーターフォール、アジャイル、そして現在のDevOpsを経て、世界が動いているとしたら、その解決策は何でしょうか?また、開発者として、このようなアプローチの変化に対応するためにどのような役割を果たしているのでしょうか?

開発技術は常に進化し続けていますが、幸いなことに、今回はそれほど大きな変化ではありません。組織は、"DevOps "に "Sec "を加えればよいのです。そして、DevSecOpsが誕生しました。DevSecOpsの主な目的は、開発チーム、運用チーム、そして最後にセキュリティチームの間の障壁を取り払い、オープンなコラボレーションを実現することです。DevSecOpsは、ソフトウェアエンジニアリングの手法であると同時に、ソフトウェア開発ライフサイクル全体を通してセキュリティの自動化と監視を提唱する文化となっています。

これは、組織レベルの別のプロセスのように思われるかもしれませんし、構築すべき機能の長いリストを持っている開発者にとっては、「料理人が多すぎる」プロセスかもしれません。しかし、DevSecOpsの手法は、セキュリティを意識した開発者が真価を発揮する機会を与えてくれます。

DevSecOpsの明るい未来

では、なぜコーダーがDevSecOpsエンジニアになりたいのでしょうか?おそらくあなたは、DevOps(あるいはアジャイル)の経験はあるものの、次のステップとしてDevSecOpsに精通したいと考えているのではないでしょうか。まず最初に、それが非常に賢明な行動であることを知っておくといいでしょう。それは、コストのかかるサイバー攻撃から世界を安全にすることを目指しているからだけではありません。専門家によると、有能なサイバーセキュリティ人材の需要は、終わりが見えないほどに急増しているそうです。DevSecOpsをマスターした人は、長くて有益なキャリアが期待できます。

なぜなら、ソフトウェアベースのツールを使って脆弱性をスキャンするような従来のサイバーセキュリティ戦術とは異なり、DevSecOpsでは、コードを書くときにセキュリティを実装する方法を知っている人が必要だからです。Booz, Allen and Hamilton社のアナリストが「5 Myths of Adopting DevSecOps」と題したブログで指摘しているように、企業はDevSecOpsを必要としており、さらには必要としているが、単にそれを購入することはできない。DevSecOpsは、ソフトウェア開発ライフサイクル全体において、部門横断的なチームが技術を統合し、コラボレーションを行うための手法であり、熟練した人材、変更管理、複数の関係者による継続的なコミットメントが必要となる。

Booz, Allen and Hamilton社によると、企業はリリース管理ソフトウェアなど、DevSecOpsの特定の側面を支援するアプリケーションやツールを購入することができますが、「実際にそれを実現するのはデリバリーチームです」と述べています。彼らこそが、DevSecOpsが提供する継続的な改善と、その文化的・パラダイム的な変化を推進しているのです。

組織は、実行可能なDevSecOpsプログラムを「買う」ことはできません。さまざまなツール、社内の知識、セキュリティ文化を向上させるガイダンスを用いて、ビジネス上の意味も含めて構築し、維持しなければなりません。それは簡単なことではありませんが、不可能なことではありません。

DevSecOpsの活動に参加するにはどうすればよいか

DevSecOpsエンジニアになるための最初のステップは、DevSecOpsがテクニックの集合体であるのと同様に、文化であることを理解することです。自分が作成するコードの一部としてセキュリティを実装しようとする意志と、コード作成時にセキュリティ上の欠陥や脆弱性を積極的に探し、それらが本番環境に入る前に修正することで、組織を積極的に保護しようとする意欲が必要です。ほとんどのDevSecOpsエンジニアは、自分の職業とスキルセットを非常に真剣に考えています。DevSecOpsの専門組織は、自分たちの信念を記したマニフェストを持っています。

マニフェストは軽い読み物ではないので、このマニフェストは少々重苦しい。しかし、その核心には、すべての優れたDevSecOpsエンジニアが受け入れることを学ぶべき、いくつかの真実があります。

  • アプリケーション・セキュリティ・チームはあなたの味方であることを認識してください。ほとんどの組織では、アプリケーション・セキュリティの専門家は開発者と対立しています。AppSecチームは開発者にもあまり好意的ではありません。というのも、彼らは一般的なセキュリティバグを引き起こすことで、完成したコードが本番稼動するのを遅らせてしまうからです。しかし、賢いDevSecOpsエンジニアは、セキュリティチームの目標が、最終的には開発者やコーダーと同じであることを理解しています。親友になる必要はありませんが、穏やかで協力的な仕事上の関係を築くことが成功には欠かせません。
  • セキュアコーディング技術を実践し、磨きをかける。アプリがまだ作られていない段階で脆弱性を見つけることができれば、その抜け道を塞ぐことで将来のハッカーを阻止することができます。もちろん、そのためには、脆弱性への理解と、それを修正するためのツールが必要です。Secure Code Warrior のブログページでは、お客様が遭遇する最も一般的で危険な脆弱性についての洞察や、実践的なアドバイス、知識を試すための課題などを紹介しています。最も重要なことは、セキュリティを常に念頭に置き、既存の知識を基にした一口サイズのトレーニングを受ける時間を確保することです。開発者とセキュリティとの関わりは、目立たないものであったり、ネガティブなものであったりするのが一般的ですが、セキュリティのスキルアップは素晴らしいキャリアアップにつながりますし、面倒なものである必要はありません。
  • 覚えておいてください。DevSecOpsのスーパースターは、自組織のポジティブなセキュリティ文化に貢献しています。アプリに問題があっても迅速に提供するといった過去の目標にこだわるのではなく、開発コードの脆弱性を発見して修正することを最優先することが重要です。セキュリティは全員の仕事であると考え、効果的で安全性の高いアプリケーションを毎回展開することで得られる称賛と報酬を全員で共有する必要があります。

セキュアコーディングとセキュリティのベストプラクティスを根底から支持し、トレーニングソリューションを推奨し、DevSecOpsの速いペースの世界でコーダーが取り残されないようにすることで、組織内の素晴らしいセキュリティ文化の醸成を支援することができます。良いコードとは安全なコードであり、熟練したセキュリティ意識の高い開発者はパズルの重要なピースです。個人的にも仕事上でも、努力する価値は十分にあります。毎年、何十億もの個人情報が漏洩しており、その数は増え続けているため、私たちはあなたを必要としています。最前線で活躍し、デジタル世界の悪者から身を守るために、あなたの力を貸してください。

Matias Madou, Ph.D. のCTO兼共同設立者。 Secure Code Warrior.セキュリティの専門家であり、長年の開発者であり、Fortniteジャンキーでもあります。

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

著者

マティアス・マドゥ博士

マティアスは、15年以上のソフトウェアセキュリティの実務経験を持つ研究者・開発者です。フォーティファイ・ソフトウェア社や自身の会社(Sensei Security)などでソリューションを開発してきました。キャリアの中で、Matiasは、商用製品につながる複数のアプリケーションセキュリティ研究プロジェクトを主導し、10件以上の特許を取得しています。また、RSAカンファレンス、Black Hat、DefCon、BSIMM、OWASP AppSec、BruConなどの世界的なカンファレンスで定期的に講演を行っているほか、高度なアプリケーションセキュリティトレーニング(courses )の講師も務めています。

Matiasはゲント大学でコンピュータ工学の博士号を取得し、アプリケーションの内部構造を隠すためのプログラム難読化によるアプリケーションセキュリティを研究しました。

もっと知りたい?

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

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

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

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

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

リソース・ハブ

最高のDevSecOpsエンジニアになるには

2020年2月28日発行
マティアス・マドゥ博士著

技術そのものと同じように、コードを開発するためのツールやテクニック、最適なプロセスも急速に進化しています。私たち人間は、より多くのソフトウェア、より多くの機能、より多くの機能を求めてやみません。そして、かつてないほど速く、より質の高い、さらには安全なソフトウェアを求めています。ほんの数年前、アジャイル開発は、大きな仕事を小さなピースに分割し、お客様からの迅速なフィードバックサイクルに迅速に適応するために使用される次の大きなものでした。それ以前は、ウォーターフォール方式が主流でした。

多くの人や組織がウォーターフォールからアジャイルへと移行している一方で、 -- 現実的に考えて、まだ全員がそこに到達しているわけではありませんが -- すでに新たな問題に遭遇しています。開発チームとその運用担当者が依然としてサイロで作業しているのです。このような環境の中で、小規模なチームがアジャイルな方法で作業を行い、迅速なデプロイメントを実現するにはどうすればよいのでしょうか。

開発(Development)と運用(Operation)を組み合わせた造語であるDevOpsは、新しいソフトウェアを作成する際に、開発チームと運用チームの両方の機能を統合するために作られました。これは、新しいソフトウェアを開発する際に、開発チームと運用チームの機能を統合するために作られたもので、従来は運用チームに丸投げしていたものを、開発者が主体的に運用するためのものです。

確かに、1日に数回でも速く出荷することができるので、アジャイルの流れに沿っているように見えます。しかし、DevOpsではエンジニアと運用担当者が混ざった1つの大きなチームを作ることになり、実際にはアジャイルに沿ったものではないかもしれません。最終的には、DevOpsはアジャイルを進化させたものと考えるのがベストです。なぜなら、この2つの方法論は多くの点で似ており、違いを補い合っているからです。DevOpsでは、自動化された継続的なインテグレーションとデプロイメントのパイプラインを促進します。これは頻繁なリリースを可能にするために不可欠ですが、チームレベルでは十分ではありません。アジャイルは、チーム、特に小規模なチームが、このような迅速なリリースや変化する要件に対応しながら、タスクを遂行し、協力し合うことを可能にします。これは確かに理想的なことであり、このプロセスによってチームは最終目標に向かって進むことができますが、問題がないわけではありません。

DevOpsのベストプラクティスを用いて作成されたソフトウェアは、最初のボス戦であるセキュリティチームで躓く可能性があります。従来のウォーターフォール型のAppSecの専門家が、ツールや複雑な手作業によるレビューでコードを検査すると、受け入れがたいリスクや脆弱性が発見されることが多く、それらを事後的に修正しなければなりません。完成したアプリにセキュリティ修正を後付けするプロセスは、迅速でも簡単でもありません。そして、組織にとってははるかにコストがかかります。

では、ウォーターフォール、アジャイル、そして現在のDevOpsを経て、世界が動いているとしたら、その解決策は何でしょうか?また、開発者として、このようなアプローチの変化に対応するためにどのような役割を果たしているのでしょうか?

開発技術は常に進化し続けていますが、幸いなことに、今回はそれほど大きな変化ではありません。組織は、"DevOps "に "Sec "を加えればよいのです。そして、DevSecOpsが誕生しました。DevSecOpsの主な目的は、開発チーム、運用チーム、そして最後にセキュリティチームの間の障壁を取り払い、オープンなコラボレーションを実現することです。DevSecOpsは、ソフトウェアエンジニアリングの手法であると同時に、ソフトウェア開発ライフサイクル全体を通してセキュリティの自動化と監視を提唱する文化となっています。

これは、組織レベルの別のプロセスのように思われるかもしれませんし、構築すべき機能の長いリストを持っている開発者にとっては、「料理人が多すぎる」プロセスかもしれません。しかし、DevSecOpsの手法は、セキュリティを意識した開発者が真価を発揮する機会を与えてくれます。

DevSecOpsの明るい未来

では、なぜコーダーがDevSecOpsエンジニアになりたいのでしょうか?おそらくあなたは、DevOps(あるいはアジャイル)の経験はあるものの、次のステップとしてDevSecOpsに精通したいと考えているのではないでしょうか。まず最初に、それが非常に賢明な行動であることを知っておくといいでしょう。それは、コストのかかるサイバー攻撃から世界を安全にすることを目指しているからだけではありません。専門家によると、有能なサイバーセキュリティ人材の需要は、終わりが見えないほどに急増しているそうです。DevSecOpsをマスターした人は、長くて有益なキャリアが期待できます。

なぜなら、ソフトウェアベースのツールを使って脆弱性をスキャンするような従来のサイバーセキュリティ戦術とは異なり、DevSecOpsでは、コードを書くときにセキュリティを実装する方法を知っている人が必要だからです。Booz, Allen and Hamilton社のアナリストが「5 Myths of Adopting DevSecOps」と題したブログで指摘しているように、企業はDevSecOpsを必要としており、さらには必要としているが、単にそれを購入することはできない。DevSecOpsは、ソフトウェア開発ライフサイクル全体において、部門横断的なチームが技術を統合し、コラボレーションを行うための手法であり、熟練した人材、変更管理、複数の関係者による継続的なコミットメントが必要となる。

Booz, Allen and Hamilton社によると、企業はリリース管理ソフトウェアなど、DevSecOpsの特定の側面を支援するアプリケーションやツールを購入することができますが、「実際にそれを実現するのはデリバリーチームです」と述べています。彼らこそが、DevSecOpsが提供する継続的な改善と、その文化的・パラダイム的な変化を推進しているのです。

組織は、実行可能なDevSecOpsプログラムを「買う」ことはできません。さまざまなツール、社内の知識、セキュリティ文化を向上させるガイダンスを用いて、ビジネス上の意味も含めて構築し、維持しなければなりません。それは簡単なことではありませんが、不可能なことではありません。

DevSecOpsの活動に参加するにはどうすればよいか

DevSecOpsエンジニアになるための最初のステップは、DevSecOpsがテクニックの集合体であるのと同様に、文化であることを理解することです。自分が作成するコードの一部としてセキュリティを実装しようとする意志と、コード作成時にセキュリティ上の欠陥や脆弱性を積極的に探し、それらが本番環境に入る前に修正することで、組織を積極的に保護しようとする意欲が必要です。ほとんどのDevSecOpsエンジニアは、自分の職業とスキルセットを非常に真剣に考えています。DevSecOpsの専門組織は、自分たちの信念を記したマニフェストを持っています。

マニフェストは軽い読み物ではないので、このマニフェストは少々重苦しい。しかし、その核心には、すべての優れたDevSecOpsエンジニアが受け入れることを学ぶべき、いくつかの真実があります。

  • アプリケーション・セキュリティ・チームはあなたの味方であることを認識してください。ほとんどの組織では、アプリケーション・セキュリティの専門家は開発者と対立しています。AppSecチームは開発者にもあまり好意的ではありません。というのも、彼らは一般的なセキュリティバグを引き起こすことで、完成したコードが本番稼動するのを遅らせてしまうからです。しかし、賢いDevSecOpsエンジニアは、セキュリティチームの目標が、最終的には開発者やコーダーと同じであることを理解しています。親友になる必要はありませんが、穏やかで協力的な仕事上の関係を築くことが成功には欠かせません。
  • セキュアコーディング技術を実践し、磨きをかける。アプリがまだ作られていない段階で脆弱性を見つけることができれば、その抜け道を塞ぐことで将来のハッカーを阻止することができます。もちろん、そのためには、脆弱性への理解と、それを修正するためのツールが必要です。Secure Code Warrior のブログページでは、お客様が遭遇する最も一般的で危険な脆弱性についての洞察や、実践的なアドバイス、知識を試すための課題などを紹介しています。最も重要なことは、セキュリティを常に念頭に置き、既存の知識を基にした一口サイズのトレーニングを受ける時間を確保することです。開発者とセキュリティとの関わりは、目立たないものであったり、ネガティブなものであったりするのが一般的ですが、セキュリティのスキルアップは素晴らしいキャリアアップにつながりますし、面倒なものである必要はありません。
  • 覚えておいてください。DevSecOpsのスーパースターは、自組織のポジティブなセキュリティ文化に貢献しています。アプリに問題があっても迅速に提供するといった過去の目標にこだわるのではなく、開発コードの脆弱性を発見して修正することを最優先することが重要です。セキュリティは全員の仕事であると考え、効果的で安全性の高いアプリケーションを毎回展開することで得られる称賛と報酬を全員で共有する必要があります。

セキュアコーディングとセキュリティのベストプラクティスを根底から支持し、トレーニングソリューションを推奨し、DevSecOpsの速いペースの世界でコーダーが取り残されないようにすることで、組織内の素晴らしいセキュリティ文化の醸成を支援することができます。良いコードとは安全なコードであり、熟練したセキュリティ意識の高い開発者はパズルの重要なピースです。個人的にも仕事上でも、努力する価値は十分にあります。毎年、何十億もの個人情報が漏洩しており、その数は増え続けているため、私たちはあなたを必要としています。最前線で活躍し、デジタル世界の悪者から身を守るために、あなたの力を貸してください。

Matias Madou, Ph.D. のCTO兼共同設立者。 Secure Code Warrior.セキュリティの専門家であり、長年の開発者であり、Fortniteジャンキーでもあります。

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

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