2020年第2四半期を振り返る — オープンソースセキュリティの現状レポート、DevSecOps Hubなど
2020年12月29日
0 分で読めます昨日は、2020年1月、2月、3月に公開したブログ記事を振り返りました。旅行に行ったり、気軽にハグしたり、バーやオフィスで集まったり、Zoomを使わずに交流できた頃を覚えていますか?この記事では、4月、5月、6月に公開した記事を振り返ります。まずは、すべての開発者に読んで参考にしてほしいチートシートからご紹介します。
こちらもご覧ください: 2020年第1四半期を振り返る — JVMエコシステムレポート、DevSecOpsの知見など
2020年4月:セキュアコードレビュー:セキュリティを意識したコードレビューのベストプラクティス8選
このチートシートでは、Brian VermeerとTrisha Geeが、他の人のコードをレビューする際に意識したい8つのポイントを紹介しています。実は、これらはコードを書くときにも役立つポイントです。プルリクエストを送る前に、自分のコードも同じ基準で確認しましょう。

チートシートで紹介されているベストプラクティスのうち、特に取り上げたいのは、入力値のサニタイズ、オープンソース依存関係のテスト、そしてもちろん、自分のソースコードに既知のセキュリティ問題がないかテストすることです。入力値のサニタイズは、自分のコードで実施すべき非常に重要な対策です。しかし、開発者はこれを他の人に任せたり、最短で正常に動作する経路を実現しようとするあまり、悪意のない入力だと思い込んだりしがちです。ユーザーはあらゆる手段で入力値を注入し、アプリケーションを悪意を持って攻撃しようとする、という考え方に切り替えることが、多くの開発者に求められています。
自社アプリケーションとサードパーティの依存関係を静的にテストすることは、既存のライブラリやフレームワークにある既知の脆弱性がアプリケーションを通じてどこに露呈するのか、また独自コードがどこでセキュリティ上の欠陥を生み出しているのかを把握するうえで極めて重要です。アプリケーションをすばやくテストできる無料のSnykなどのツールを、IDEやリポジトリなどさまざまな場所で利用できる今、もうテストをしない理由はありません。
2020年5月:SnykがDevSecOps Hubを公開
5月には、Alyssa Millerが、DevSecOps運動の中核となる概念をまとめた記事や知見を集めたDevSecOps Hubを公開しました。これはAlyssa、Patrick Debois、Francois Raynaudが編纂したものです。DevSecOpsの議論がツール中心になりがちな状況を避けるため、「人・プロセス・テクノロジー」という馴染みのある枠組みで概念を紹介しています。
人 —Snykには独自の見解を共有できる専門家が数多くいますが、DevSecOpsコミュニティ全体からも多くの教訓を取り入れたいと考えました。The Secure Developer Podcastでは、出演者が創業者のGuy Podjarnyと、DevSecOpsの導入や拡大における成功や学びについて語っています。こうした貴重な情報をDevSecOps Hubでお届けするため、「導入までの道のりを共有する」セクションを設けました。
プロセス —全員が何を、いつ、誰が行うのかを把握できるよう、プロセスを明確に定義することが重要です。このセクションでは、責任の共有と説明責任の確立を重要なテーマとして取り上げています。
テクノロジー —このセクションでは、あらゆるパイプラインに必要な主要機能と、組織が標準的なアプローチをそれぞれの独自の体制に合わせて調整する方法に焦点を当てています。その一環として、Hubではテクノロジーに関するスポットライト記事を紹介しています。それぞれ、DevSecOpsパイプラインを支える特定のツールやテクノロジーを取り上げます。また、導入に役立つ実践的な指針として、各ツールのベストプラクティスも掲載しています。
2020年6月:オープンソースセキュリティの現状 2020
6月には、Alyssa Millerが年次レポート「オープンソースセキュリティの現状」を執筆しました。今年も、オープンソースの導入と利用に関する興味深い知見が数多く明らかになりました。レポートが最初に取り上げているのは、セキュリティに誰が責任を負うのかという点です。ユーザーの85%が、オープンソースのセキュリティは開発者の責任だと考えており、セキュリティツールは開発者を第一に考えるべきだというSnykの考えを裏付けています。2021年を迎えるにあたって、これは非常に重要な統計です。アプリケーションコードを書くことに加え、コンテナファイルやコードとして管理するインフラ構成の保守・サポートも担う開発者が増えているからです。こうした成果物は、作成・保守するだけでなく、安全な方法で扱う必要があります。そうしなければ、安全でないAmazon S3バケットへの侵害がニュースになるのは、あなたかもしれません。実際、レポートによると、調査参加者の30%超は、安全でない設定がないかKubernetesマニフェストを確認していません。モダンなクラウドネイティブアプリケーションを担う開発者は、前述した各領域に存在する脅威を考慮し、ニーズを支えるクラウドネイティブアプリケーションセキュリティプラットフォームを必要としています。
興味深いことに、調査回答者のうちセキュリティチャンピオンプログラムを導入しているのはわずか15%でした。こうしたプログラムでは、エンジニアリングチームのメンバーを「セキュリティチャンピオン」として育成します。通常はセキュリティチームによる教育のほか、社内外のトレーニングプログラムも活用します。開発者のスキルを高めることで、チーム全体のセキュリティ知識が底上げされ、多くの開発プラクティスやコードレビューが改善します。また、設計段階からセキュリティを自然に取り入れやすくなります。DevOpsやDevSecOpsなど、変革を伴う取り組みでは、人や文化を変えることが常に最も困難です。そのため、課題に正面から取り組むことが大切です。多くのSnykのお客様やユーザーと話してきた中で、エンジニアリングチームにセキュリティプログラムを設けている組織は、セキュリティプラクティスの導入と実践で大きな成果を上げていると実感しています。ぜひ検討してみてください。
今回取り上げきれなかった記事の中にも、特筆すべきものがいくつかあります。たとえばVuln Costプラグインは、VS Code上で直接使える優れた無料のセキュリティテストツールです。コードに脆弱性が取り込まれている箇所をインラインで示し、開発者にとって使いやすい体験を提供します。また、人気のnpmライブラリis-promiseで発生した脆弱性の開示について、発生の経緯とそこから学べることをまとめた事後分析記事も公開しました。最後に、5月は人気のWebPageTestにSnykを統合した月でもありました。この統合により、WebPageTestが提供する優れたパフォーマンス測定結果に、セキュリティテストが加わりました。
お読みいただきありがとうございました!次回は、2020年第3四半期に公開した記事を振り返ります。
