SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Developers Summit 2022 Summer レポート(PR)

あなたのプロダクト、開発速度に脆弱性対策は追いついていますか? アジャイル・DevOps時代のセキュリティ対策【デブサミ2022夏】

【B-3】プロダクト開発の落とし穴?アジャイル開発に求められるセキュリティ

  • このエントリーをはてなブックマークに追加

 「Engineering as a Service」としてエンジニア不足を解消することを企業価値に掲げるスリーシェイクでは、SREコンサルティング支援「Sreake」、データ連携プラットフォーム「Reckoner」、セキュリティ診断サービス「Securify」などを提供している。今回は高速開発における継続的なセキュリティ対策の重要性と有効なアプローチを解説する。

  • このエントリーをはてなブックマークに追加

株株式会社スリーシェイク Sreake事業部 部長 手塚卓也氏

株株式会社スリーシェイク Sreake事業部 部長 手塚卓也氏

プロダクト開発が高速化するなか、脆弱性対策は追いついているか?

 DevOpsやアジャイル開発という言葉が浸透し、実践も進んできた。現在、開発の高速化はどのくらい進んでいるだろうか。Google「State of DevOps 2021」によると、SDO(Software delivery and operational)パフォーマンス評価で「高」以上に該当する企業は全体の66%を占める。これらの企業はデプロイの頻度が少なくとも月に1度、変更のリードタイム(コードをコミットしてから本番で正常に稼働するまでの時間)が1週間以下、インシデントや不具合発生からサービス復旧までの時間が1日未満とされる。

実際にどの程度「高速化」されているのか?
SDOパフォーマンス評価の詳細

 プロダクト開発をアジャイルやDevOpsという手法を通じて高速化するなか、新しい脆弱性にも対応していく必要がある。記憶に新しいところだと、Log4jやArgoCDの脆弱性が話題になった。慌てて対応したシステム担当者も多いことだろう。脆弱性は対応せずに放置していると、攻撃されてしまいかねない。ここ1年で見ても、脆弱性を攻撃されたことから情報漏えいに繋がったインシデントが後を絶たない。

 スリーシェイク 手塚氏は対策として、何らかのセキュリティ対策を導入することや脆弱性診断を挙げた。0day攻撃に対しては、パッチを当てるまでの短い期間はWAFなどでパッチの提供まで時間を稼ぎ、パッチ提供後は速やかに検証を行ってパッチの適用を行う必要がある。

 XSSやLog4jのようなpayloadを難読化しやすいものに関しては、多くのWAFでbypassができ、またWAF自体を迂回できるケースもあるため、脆弱性の対策としてWAFを利用することは非常に危険と考えている。

 WAFは攻撃者の診断や調査の難易度を上げるため、緊急時の一時的な対策としてのみ利用するべきである。そのため手塚氏は「サイト自体の弱点(脆弱性)をなくし、堅牢なものにすることが重要」と述べる。

 後者の脆弱性診断も欠かせない。かつてのウォーターフォール型開発ならリリース直前程度にしかやらなかったかもしれないが、昨今では大きな機能アップデートリリース時に、あるいは一定期間おきの実施が多いのではないだろうか。冒頭で述べたように、今では半数以上の企業が高頻度でリリースしている。もしかしたら脆弱性診断から次の脆弱性診断までの間に細かなリリースもあるのではないだろうか。そうなると脆弱性診断をしてから次の脆弱性診断をするまでの間に隙ができてしまう。高頻度で脆弱性診断をしたくても人員が限られてしまってできないか、費用が高額で諦めているケースもあるだろう。

 開発を高速化するなら、脆弱性対策も追随して高速化していく必要がある。手塚氏は解決策として「継続的セキュリティ対策」というアプローチを提案する。発想としてはDevSecOpsに近い。開発プロセスには企画、設計、実装、テスト、リリースがあり、このライフサイクルを高速に回していくものになる。

開発プロセスの中の脆弱性対策
「継続的セキュリティ対策」の概要

 脆弱性が混入してしまいがちなタイミングは企画・設計、および実装だ。脆弱性の発見や修正は、後のプロセスでいくつかの方法がある。設計段階ならセキュアコーディング、実装段階ならSAST(静的アプリケーション セキュリティ テスト:Static Application Security Testing)、テスト段階ならDAST(動的アプリケーション セキュリティ テスト:Dynamic Application Security Testing)やIAST(インタラクティブ アプリケーション セキュリティ テスト:Interactive Application Security Testing)など、リリース前なら脆弱性診断がある。

 また利用しているOSSに既知の脆弱性がないか管理するにはSCA(Software Composition Analysis)もある。コンテナを用いているならコンテナイメージの脆弱性スキャン(Trivyなど)、いずれかのクラウドサービスを用いているなら設定をアセスメントするためのCSPM(クラウドセキュリティの状態管理:Cloud Security Posture Management)も有効になるだろう。

 こうした各種ツールはCI/CDに組み込むことで、開発と同時に脆弱性の発見と改修を継続的に実行していくことが可能となる。高速開発にセキュリティ対策を追随させることになり、DevSecOpsの実現でもある。

次のページ
プロダクト開発におけるセキュリティ人材不足を解消するには

関連リンク

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
Developers Summit 2022 Summer レポート連載記事一覧

もっと読む

この記事の著者

加山 恵美(カヤマ エミ)

フリーランスライター。茨城大学理学部卒。金融機関のシステム子会社でシステムエンジニアを経験した後にIT系のライターとして独立。エンジニア視点で記事を提供していきたい。EnterpriseZine/DB Onlineの取材・記事や、EnterpriseZine/Security Onlineキュレーターも担当しています。 Webサイト:http://emiekayama.net

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/16333 2022/09/29 12:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング