見出し画像

DevSecOpsとは何か

こんにちは。

DevSecOpsってお聞きになったことありますでしょうか。
エンジニアの方は既に聞きなれた言葉かもしれませんが、
最近私の周りでもよく聞くこととなった言葉。

仕事で使うこととなったので、素人にもわかりやすく、かつ
自分で整理するためにまとめたいと思います。

・概要
・言葉が生まれた背景
・代表的なツール

DevSecOpsってそもそもなに

 Dev:Development 開発
 Sec:Security セキュリティ
 Ops:Operation 運用

3つのポイントを踏まえた開発方針、概念のこと。と理解しています。
トレンドマイクロ社のホームページに記載があるので詳しくはこちら。
https://www.trendmicro.com/ja_jp/business/campaigns/aws/resources/devsecops_whitepaper.html

最近なぜよく聞かれるようになったのか

そもそも、このような概念が昨今必要になってきたのか。
旧来のシステム開発(主にSoR領域)においてはスピーディなリリースが最重要項目ではなく、十分に時間を割いたうえで開発を行い、そこから運用を開始するといったDev→Opsといった順番が一般的でした。
しかし、昨今比率が高まっている顧客の事業価値を創造する目的のシステム開発(主にSoE領域)においては、顧客が求める価値を素早く提供すること、価値実現の速さが重要となります。そのため、これまでのDev→Opsといった順番ではなく、DevとOpsが相互に連携してシステム開発を素早く実施することが重要となってきました。

さらに昨今のセキュリティを担保することの比重の高まりによって、このDevOpsを実行する中で常にセキュリティ対策を組み込むことが必要となってきており、結果としてDevSecOpsといった概念が広まることとなりました。

画像1


さて、ここまでDevSecOpsとは、昨今のシステムに求められる開発の短サイクル化とセキュリティの担保の両立を目指した概念である、と理解しました。

ではさらに深みにはいりましょう。笑

DevSecOpsを実現するために、よく出てくる単語であるCI/CD。
これはContinuous Integration&Continuous Deliverlyのことで、
継続的インテグレーション&継続的デリバリー(デプロイ)、つまり
ソフトウェアの変更を常にテストして本番環境にデプロイできる状態を保つことを指します。

https://pfs.nifcloud.com/navi/words/ci_cd.htm

このCI/CDを実現するためのソリューションは様々ありますが、
今回はアメリカContrast Security社のソリューションである
「Contrast」についてまとめます。


CI/CDを実現するためのソリューション
Contrastとはなにか

https://www.contrastsecurity.com/jp-mab-1ee03de9-2fd1-4118-9da9-834c3e962d0d

2020年のガートナーレポートにおけるアプリケーションセキュリティテストの分野では、Visionaryに位置づけられ、今後伸びる可能性がある方向性を持つソリューションとされています。

Contrast Security社の代表的ソリューションは大きく2つあります。
・Contrast Assess(IAST)
・Contrast Protect(RASP)

直訳すると、「評価」と「防御」となりますが、この2つのソフトウェア、何をしてくれるのでしょうか。
そもそも、(IAST)(RASP)とは何を意味しているのかからまとめましょう。

このIAST、RASPは一言でいえば、Webアプリケーションに対する
セキュリティテスト手法となります。

こちらの記事に詳しく記載があります。

IASTについては他のテスト手法と比較したほうがわかりやすいです。

https://www.atmarkit.co.jp/ait/articles/1501/19/news005.html

要するに、これまでは、アプリケーションを実際に動かしてその出力結果をもとに脆弱性を検知するテスト手法である動的テストであるDASTや
ソースコード自体から脆弱性を検知する静的テストであるSASTが多く
使われていましたが、それぞれの手法を組み合わせた
新たなテスト手法がIAST(Interactive Application Self Testing)、
であるというわけです。

対してRASPは、あまり参考となる記事がなかったのですが、
アプリケーションを実際に稼働させ、アプリケーションとしての脆弱性を検知する手法ということです。
(DASTとどこが違うのかといわれると、難しいのですが、
DASTはアプリケーションの挙動変化から脆弱性を検知しますが、RASPは疑似的な攻撃をせずとも通常のアプリケーション稼働中に脆弱性を検知できるといったところに違いがあるといえます。)

つまり、ContrastとはContrast Assess(IAST)とContrast Protect(RASP)
を用いて、ソフトウェア開発時および運用時におけるセキュリティを担保=DevSecOpsを担保してくれる機能を提供してくれる
ソリューションとなります。

あー一応素人なりにまとめました。

こういうことも理解が進んでよいですね。
読んでいただきありがとうございました。

最後にそれぞれのテスト手法の概要を記しておきます。

DAST(Dynamic Application Security Testing)
稼働しているアプリケーションに対して、疑似的な攻撃(検査)リクエストを送信し、アプリケーションの挙動の変化から脆弱性があるかどうかを判定するテスト手法。

SAST(Static Application Security Testing)
アプリケーションのソースコードを解析し、脆弱性の検出を行うテスト手法。

IAST(Interactive Application Self Testing)
アプリケーションと一体的に稼働させ、実行環境を監視しながら脆弱性の検出を行うテスト手法。

RASP(Runtime Application Self Protection)
アプリケーションと一体的に稼働させ、アプリケーションレベルで異常を検出し、防御を行うテスト手法。


この記事が気に入ったらサポートをしてみませんか?