Close

Our Approach to Vulnerability Management


Наш подход к обработке уязвимостей безопасности в Atlassian

Компания Atlassian признает, что на некотором уровне уязвимости безопасности являются неотъемлемой частью любого процесса разработки программного обеспечения. Однако мы постоянно стремимся снизить как опасность, так и частоту появления уязвимостей[1] в наших собственных продуктах и сервисах.

С этой целью мы внедрили многогранный подход к управлению уязвимостями, который основан на сочетании автоматических и ручных процессов. Мы считаем, что это наиболее эффективный способ ограничить вероятность того, что уязвимости могут «проскользнуть сквозь пальцы» и остаться незамеченными в течение длительного периода времени.

В этом документе мы приводим обзор нашей работы по управлению уязвимостями в продуктах и инфраструктуре, а также мероприятий по постоянному развитию этого подхода путем внедрения новейших инструментов, методов и идей, гарантирующих эффективность обработки уязвимостей в будущем.

Обзор нашего процесса выявления и устранения уязвимостей

У нас есть систематический процесс, предназначенный для выявления, отслеживания и устранения уязвимостей вне зависимости от типа.

Identifying vulnerabilities

Мы используем множество лучших в своем роде инструментов выявления уязвимостей, которые мы регулярно применяем к нашим продуктам и инфраструктуре для автоматического поиска и обнаружения уязвимостей. Проверке подвергаются продукты Atlassian Cloud и Server, образы Docker, служебные, мобильные и сторонние приложения, а также наша инфраструктура с развертыванием как локально, так и в облаке. Эти инструменты ищут уязвимости, выполняя автоматическое сканирование следующих видов.

  • Сканирование сети. В настоящее время нашим главным инструментом управления уязвимостями является сервис Nexpose, с помощью которого мы определяем активные сервисы, открытые порты и запущенные приложения в среде, а также выявляем любые уязвимости на уровне сети.
  • Непрерывный поиск и выявление внешних ресурсов. С помощью Assetnote мы ведем непрерывный поиск и выявление ресурсов, а также анализ безопасности по внешнему периметру.
  • Сканирование образов контейнеров. Развертывание многих наших приложений выполнено с помощью контейнеров Docker, и мы проводим комплексное сканирование системы безопасности, которое предполагает тщательный анализ содержимого этих контейнеров при каждом их развертывании в нашей рабочей среде или среде подготовки к релизу. В этом нам помогает инструмент Anchore. Подробнее о нем написано далее на этой странице.
  • Сканирование сторонних компонентов (зависимостей) с открытым исходным кодом. Мы используем SourceClear для выявления уязвимостей в открытом исходном коде или сторонних компонентах, которые могут использовать наши разработчики. Подробнее об этом читайте ниже.
  • Мониторинг конфигураций AWS. С помощью Cloud Conformity обеспечивается непрерывный мониторинг конфигураций в наших средах на базе AWS для их проверки на соответствие установленным стандартам.

Мы постоянно следим за появлением на рынке новых инструментов и пополняем свой арсенал новыми средствами, если считаем, что они расширят наши возможности выявления уязвимостей.

У нас также есть ряд дополнительных возможностей, которые мы используем для выявления уязвимостей в сочетании с автоматическим поиском, включая перечисленное далее.

Наша программа вознаграждения за найденные ошибки (Bug Bounty). – Для обеспечения работы программы вознаграждения за найденные ошибки (Bug Bounty) мы используем сервис Bugcrowd. Bugcrowd предоставляет нам доступ к надежному экспертному сообществу, состоящему из десятков тысяч исследователей в области кибербезопасности, которые постоянно тестируют наши продукты и сообщают о любых обнаруженных ими уязвимостях. Наша программа Bug Bounty была признана лучшей в отрасли за последние два года (2018–2019 гг.).

Отчеты клиентов и пользователей. – Пользователи наших продуктов могут сообщать о любых найденных ошибках в любое время через службу поддержки Atlassian. Затем мы работаем с ними с целью собрать все необходимые сведения, чтобы уязвимость можно было соответствующим образом пометить внутри компании и исправить (при условии проведения проверки, гарантирующей, что уязвимость реально существует, а не является следствием «ложного срабатывания»). В число пользователей также входят сотрудники Atlassian, которые могут обращать внимание на любые проблемы, с которыми они сталкиваются в наших продуктах (с точки зрения как внешнего, так и внутреннего пользователя), путем непосредственного обращения к команде по безопасности или подачи заявки в службу поддержки.

Внешнее тестирование на проникновение. – Мы сотрудничаем со специализированными консалтинговыми фирмами в области безопасности для проведения тестов на проникновение методом белого ящика с использованием кода на продуктах и инфраструктуре, подверженных высокому уровню риска. Подробнее см. на странице Наш подход к внешнему тестированию безопасности.

Команда Atlassian по безопасности продукта. – Мы выполняем целевые проверки кода (как ручные, так и с помощью специальных инструментов) и тесно сотрудничаем с нашими командами по разработке продуктов, чтобы повысить их способность самостоятельно обнаруживать и устранять уязвимости, до того как код будет отправлен нам.

«Красная команда» Atlassian. – У нас есть внутренняя «красная команда», роль которой состоит в имитации злоумышленников, пытающихся выявлять и эксплуатировать существующие в наших системах, процессах и средах уязвимости, чтобы мы могли обеспечить их выявление и устранение в максимально короткие сроки.

Отслеживание и устранение уязвимостей

Чтобы обеспечить максимальную эффективность и результативность нашей программы управления уязвимостями, мы интегрируем процессы, используемые для выявления уязвимостей, с нашими внутренними системами обработки заявок. В частности, независимо от того, была обнаружена уязвимость с помощью одного из наших инструментов сканирования или каким-либо иным способом, описанным выше, для возникшей уязвимости создается специальная заявка в соответствующем экземпляре Jira. Таким образом гарантируется, что уязвимость будет помечена для решения соответствующей командой по продукту в соответствии с соглашениями SLA, опубликованными в наших Правилах исправления ошибок, связанных с безопасностью.

Наша команда по безопасности обеспечивает надзор за этим процессом и работает с командами по продукту и инфраструктуре, чтобы гарантировать, что все уязвимости устраняются в соответствии с нашими обязательствами, определенными в SLA.

Кроме того, мы создали специализированный инструмент, который обеспечивает представление текущего состояния уязвимостей, которые существуют в наших продуктах и инфраструктуре по всей системе Atlassian, в «единой витрине». Это означает, что у нас есть центральный пункт, из которого мы можем отслеживать каждую обнаруженную уязвимость, чтобы гарантировать, что ничего не будет случайно забыто или упущено из виду.

Как только исправление уязвимости разработано, оно подвергается тщательному тестированию, а затем, в случае наших облачных продуктов, включается в конвейер 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.

In summary

Atlassian применяет многогранный подход к управлению уязвимостями во всех продуктах и платформах. Он основан на сочетании лучших в своем классе инструментов сканирования, программы вознаграждения за найденные ошибки (Bug Bounty) и ряда других механизмов, которые постоянно развиваются, чтобы обеспечить максимально быстрое выявление и устранение возникающих уязвимостей, а также — прежде всего — сокращение частоты их возникновения.

Хотите узнать больше?

Существует ряд других ресурсов, на которые мы ссылаемся в этой статье или к которым вы можете обратиться, чтобы получить больше информации о нашем подходе к управлению уязвимостями, а также к безопасности в целом.

[1] При упоминании «уязвимостей» в этом документе данный термин может использоваться как синоним термина «баги», который мы используем в отдельном документе о нашем подходе к тестированию безопасности.