Close

アトラシアンの脆弱性管理方法


アトラシアンでのセキュリティの脆弱性の取り扱いに対する当社のアプローチ

ソフトウェア開発工程において、セキュリティの脆弱性はある程度避けられない課題といえるでしょう。とはいえ、アトラシアンでは、自社製品・サービスに生じうる脆弱性 [1] を重大度と頻度の両面から最小限に抑えられるよう、たゆまぬ努力を重ねています。

この目的を果たすため、アトラシアンでは脆弱性管理に自動および手動の両方のプロセスを組み合わせた多面的方法を採用しています。これは、脆弱性が「見過ごされて」発見が遅れるリスクを抑えるために最も効果的な方法であるとアトラシアンは考えます。

このガイドでは、アトラシアンの製品とインフラストラクチャの脆弱性管理の実践方法について概説します。また、最新のツール、手法、思考方法を取り入れながら常にアプローチを進化することで、これからも継続して効果的に脆弱性に対処する方法についても説明します。

脆弱性の特定と解決プロセスの概要

アトラシアンには、あらゆるタイプの脆弱性を特定、追跡、解決するための系統的プロセスがあります。

Identifying vulnerabilities

当社では、最高クラスの幅広い脆弱性検出ツールを導入しています。アトラシアン製品・インフラストラクチャに対して定期的に自動スキャンを実行し、脆弱性を検出しています。例として、Atlassian Cloud および Server 製品、Docker アプリケーションイメージ、社内/サードパーティのアプリケーションおよびモバイルアプリケーション、当社のインフラストラクチャ (オンプレミスとクラウドの両方) が挙げられます。これらのツールによって自動でスキャンし、存在する脆弱性を特定します。以下にその一例をご紹介します。

  • ネットワークスキャン – アトラシアンが主要脆弱性管理ツールとして現在使用しているのが、Nexpose です。このツールは、アクティブなサービスやオープンポート、当社の環境で実行されているアプリケーション、ネットワークレベルで存在する脆弱性の特定に役立ちます。
  • 継続的な社外アセットディスカバリー - アトラシアンは Assetnote を使用して、継続的に社外領域でのアセットディスカバリー、およびセキュリティ分析を実施しています。
  • コンテナ画像スキャン – アトラシアンのアプリケーションの多くのデプロイには、Docker コンテナが使用されます。また、実稼働時またはそれ以前の環境にデプロイされるときは必ず全体のセキュリティスキャンを実施して、これらのコンテナのコンテンツの細部まで検査します。このスキャンでは、Anchore と呼ばれるツールを使用します (詳細はこのページで後述)。
  • オープンソース依存関係スキャン – アトラシアンの開発者が使用する可能性のあるオープンソースまたはサードパーティのコードについては、SourceClear を使用して脆弱性を特定します (詳細はこのページで後述)。
  • AWS 構成監視 - Cloud Conformity を使用して、当社の AWS 環境に設けた基準に対する構成監視を継続的に行っています。

アトラシアンでは、常に最新の利用可能なツールを検討しており、脆弱性検出能力が強化されると判断した場合は、使用ツール一式に追加します。

また、自動スキャンに多彩な追加手段を組み合わせることで脆弱性を特定します。以下は主な例です。

バグ報奨金プログラム - バグ報奨金プログラムの実行に利用される Bugcrowd は、専門的で信頼性の高いコミュニティへのアクセスを提供します。このコミュニティを構成する多数のサイバーセキュリティ調査員によりアトラシアン製品が継続的にテストされ、脆弱性が発見された際には報告されます。バグ報奨金プログラムは、過去 2 年間 (2018~19 年)、業界随一との評価を受けています

お客様 & ユーザーレポート - アトラシアン製品のユーザーがバグに遭遇した場合は、アトラシアンサポートを経由していつでもバグを報告できます。アトラシアンは報告ユーザーと協力して、必要となる詳細情報を収集し、脆弱性を内部でフラグし、(脆弱性が本物であり、誤検出でないことを検証したのちに) 修正していきます。バグ報告者にはアトラシアンのスタッフも含まれ、アトラシアン製品内で見つけた (内部または外部的な) 課題を直接セキュリティチームに報告するか、サポートチケットを登録します。

外部ペネトレーションテスト - アトラシアンでは、高リスク製品・インフラストラクチャを対象に、専門的なセキュリティコンサルティング会社によるホワイトボックス型のコード支援ペネトレーションテストを実施しています。詳細は、「社外セキュリティテストに対する当社のアプローチ」をご覧ください。

アトラシアンの製品開発チーム - アトラシアンでは、一部のコードを対象に手動またはツールを使った精査を実施しています。また、製品開発チームと密接に連携して、チームの内部検出能力を高め、コード到達前に脆弱性を解決します。

アトラシアンのレッドチーム - アトラシアンのレッドチームは、アトラシアンのシステム、プロセスや環境内に潜む脆弱性の特定や悪用を試みる敵の役割を模倣し、こうした脆弱性の早期特定・対処に万全を期します。

脆弱性の追跡と解決

脆弱性管理プログラムの効率性と効果を最大化するために、アトラシアンでは、脆弱性特定プロセスを内部チケットシステムと統合しています。具体的には、脆弱性の特定経路 (アトラシアンのスキャンツールまたは上述した他の手段) にかかわらず、脆弱性ごとに専用チケットを作成して適切な Jira インスタンスに登録します。関連する製品チームがこれを目印として、アトラシアンの セキュリティバグ修正ポリシーで公表済みの SLA に従って解決を図れるようにします。

セキュリティチームはこのプロセスを監督し、製品チームやインフラストラクチャチームと連携の上、すべての脆弱性をアトラシアンの SLA の規定に従って確実に解決します。

また、アトラシアンのエコシステムを通じて、製品やインフラストラクチャに潜む脆弱性のステータスを追跡する「単一画面」となる目的別ツールも作成しています。これにより特定されたすべての脆弱性を一元的に追跡し、失念や見過ごしといったミスを根絶します。

脆弱性の修正プログラムが開発されると、徹底的なテストが実施され、クラウド製品の場合はデプロイに向けて CI/CD パイプラインに組み込まれます。サーバー製品の場合は修正プログラムが新規リリースに組み込まれ、アトラシアンの標準的なリリースのタイミングに合わせて他の修正プログラムと共に定期的にデプロイされます。

開発プロセスでの脆弱性の防止

Container image scans

Atlassian deploys the bulk of its applications using Docker container images. Docker containers provide a packaged, self-contained environment consisting of relevant system libraries, tools, configuration settings and any other dependencies required so that our products are able to run regardless of individual machine configuration parameters. The container effectively provides a layer of abstraction, decoupling the software code from the underlying infrastructure so that our products can work without issue across different machines.

While containers offer great benefits for our developers and customers in terms of being able to deploy code that can be used in a variety of environments, they can be a source of security vulnerabilities if the contents of the images consist of out-of-date or otherwise insecure libraries or components.

To address this, Atlassian integrates a full container security scanning process into our CI/CD pipeline for any containers that are deployed into our development, staging or production environments. We use the Anchore open source engine for this purpose. Anchore provides a set of tools that undertakes a deep inspection of any container images that are deployed by our developers. This includes a detailed analysis of those images to identify the various components they contain (including operating system and application packages, third party libraries as well as configuration files).

Open source dependencies

While it's important to find and fix vulnerabilities in our own code, our products and services also rely on numerous open source libraries. It is therefore equally critical that we are aware of what libraries we're using and that they're up to date with the latest security bug fixes. We use a tool called SourceClear to assist us with this. SourceClear provides a scanner that can identify dependencies in any of our software builds and can then compare these libraries to a database of known security vulnerabilities.

Any identified vulnerabilities, whether found via Anchore or SourceClear, are then raised automatically via a formal Jira ticket with the relevant product team in accordance with the vulnerability management process we described earlier in this paper.

脆弱性対策のためのその他イニシアチブ

So far in this paper, we’ve largely described steps we take to manage vulnerabilities at the ‘back end’ – i.e., what we do to address a vulnerability that is identified in our products or platforms. However, we are constantly striving to reduce the frequency with which they arise in the first place. To this end, we have incorporated some unique initiatives at the ‘front end’ of our development process to ensure that our products are built from the ground up with security in mind.

Security Champions Program

In 2017 we started rolling out a Security Champions program across Atlassian to embed security leaders within every one of our product and service teams. Our Champions are also provided with dedicated training to help them understand and identify application security vulnerabilities, as well as processes for writing secure code. The goal of this program is to have a dedicated Champion within each team who assumes responsibility for promulgating key security messages amongst fellow team members and raises any security issues with our central security team to facilitate improved communication flows.

Atlassian’s Security Champions meet on a monthly basis to share tools and knowledge around the latest security issues and challenges they’re facing so that all our teams can benefit. The ultimate aim is to use the Champions program as a springboard for enabling security to form an even more integral part of our culture. We believe that this kind of approach is a key pillar in our approach to minimizing vulnerabilities.

Product security engineers

No discussion of vulnerability management would be complete without explaining the key role our product security engineers have in both ironing out bugs, and designing better irons.

Each of our product teams has a dedicated security engineer embedded within who collaborates with the team to ensure the security of that product. This design ensures that all product teams have a direct link to a dedicated security specialist, and ensures that security is hooked into all aspects of the software development lifecycle.

Our security engineers has both pro-active and re-active security roles in relation to their assigned product, including but not limited to:

  • Reviewing and analysing up to date threat models for new and emergent risks
  • Reviewing and analysing the security of new features
  • Performing manual code review
  • Performing penetration testing
  • Performing platform and architectural review
  • Tracking major activities related to projects and providing guidance when necessary
  • Triaging, filing, rewarding, and ensuring the timely resolution of issues reported via our bug bounty
  • Writing new automation and maintaining existing automation and tooling to maximise coverage and efficiency

Security scorecards

With the data collected from the systems described in this paper, we are able to benchmark teams and products against each other to pro-actively identify areas for improvement.

概要

アトラシアンでは、製品とプラットフォーム全体にわたる脆弱性管理で多面的アプローチを採用しています。このアプローチでは、最高クラスのスキャンツール、当社のバグ報奨金プログラム、常時進化しているその他の多様なメカニズムを組み合わせ、早急に脆弱性を特定・解決し、根本的に脆弱性を少なくして、発見頻度が最小化されるように万全の体制を整えています。

詳細情報

このガイド内でもふれたように、さまざまなリソースから脆弱性管理やセキュリティ全般に対するアトラシアンのアプローチについて詳細な情報を得られます。

[1] このページで言及される脆弱性とは、「バグ」と同義と捉えられます。別ページ「Our Approach to Security Testing (アトラシアンのセキュリティテスト方法)」では「バグ」という用語を使用しています。