Close

취약성 관리에 대한 Atlassian의 접근 방식


보안 취약성 처리에 대한 Atlassian의 접근 방식

Atlassian은 특정 수준에서 보안 취약성이 소프트웨어 개발 프로세스의 본질적인 부분임을 인지하고 있습니다. 그러나 Atlassian은 자체 제품 및 서비스에서 발생하는 취약성의 심각도와 빈도를 모두 줄이기 위해 끊임없이 노력하고 있습니다.

이런 목적으로 Atlassian은 자동 프로세스와 수동 프로세스를 모두 활용하는 다각적인 취약성 관리 접근 방식을 사용하고 있습니다. Atlassian은 이 접근 방식이 취약성이 "균열을 통해 빠져나가서" 장기간 감지되지 않을 가능성을 제한하는 가장 효과적인 방법이라고 믿고 있습니다.

이 문서에서는 제품 및 인프라의 취약성을 관리하는 방법과 향후에도 취약성을 효과적으로 다룰 수 있도록 최신 도구, 방법 및 사고방식을 통합하여 접근 방식을 지속적으로 개선하는 방법을 개괄적으로 설명합니다.

취약성 식별 및 해결 프로세스의 개요

Atlassian은 유형과 관계없이 취약성을 식별, 추적 및 해결하는 체계적인 프로세스를 갖추고 있습니다.

지속적인 자산 발견 및 기여

지속적인 내부 자산 발견 - Atlassian은 내부 빌드 시스템을 통해 AWSConfig를 사용하여 EC2 및 로드 밸런서 AWS 에셋을 모두 인벤토리에 넣고 올바른 소유자에게 할당합니다. Atlassian은 총 5~6천만 개에 해당하는 1년 분량의 자산을 보유하고 있습니다.

취약성 식별

Atlassian은 제품 및 인프라 전반에서 자동으로 실행되어 취약성을 자동으로 스캔하고 식별하는 다양한 동급 최고의 취약성 감지 도구를 사용하고 있습니다. 여기에는 Atlassian Cloud 및 Server 제품, Docker 애플리케이션 이미지, 내부 모바일 및 타사 애플리케이션뿐만 아니라 온프레미스 및 클라우드의 인프라도 포함됩니다. 이런 도구는 존재하는 취약성을 자동으로 검사 및 식별하며 다음을 포함합니다.

  • 호스트 기반 검사 – Atlassian은 현재 Assetnote를 사용하여 외부 경계에 대한 지속적인 보안 검사를 수행하고 Tenable.io를 사용하여 내부 및 외부 모두를 지속적으로 검사하고 있습니다. 이러한 도구는 네트워크 호스트의 취약성뿐만 아니라 환경 전반에서 실행되는 열린 포트, 서비스 및 애플리케이션을 식별하는 데 사용됩니다.
  • 컨테이너 이미지 검사 – Atlassian은 Docker 컨테이너를 사용하여 여러 애플리케이션을 배포하며, 프로덕션 또는 사전 프로덕션 환경에 배포할 때마다 컨테이너 이미지에 대한 보안 검사를 수행합니다. Atlassian은 Snyk라는 도구를 사용하여 이 작업을 수행합니다. 자세한 내용은 이 페이지의 뒷부분에 나와 있습니다.
  • 오픈 소스 종속성 검사 – Atlassian은 Snyk를 사용하여 오픈 소스 또는 타사 코드에 존재할 수 있는 취약성을 식별합니다. 자세한 내용은 이 페이지의 뒷부분에 나와 있습니다.
  • AWS 구성 모니터링 - Atlassian은 Atlassian AWS Cloud 환경에 Lacework를 배포하고 통합하여 AWS 환경에 대해 정립된 기준에 따라 지속적으로 구성을 모니터링합니다.

사용 가능한 최신 도구를 지속적으로 검토하고 취약성 감지 능력을 강화하는 데 도움이 된다고 판단되는 경우 사용하는 제품군에 추가합니다.

또한 실행하는 자동 스캔과 함께 취약성을 식별하는 데 사용할 수 있는 다양한 추가 방법도 갖추고 있습니다. 여기에는 다음이 포함됩니다.

버그 바운티 프로그램 – Atlassian은 Bugcrowd를 활용하여 버그 바운티 프로그램을 실행합니다. Bugcrowd를 사용하면 지속적으로 제품을 테스트하고 발견한 취약성을 보고하는 수많은 사이버 보안 연구원으로 구성된 신뢰할 수 있는 전문가 커뮤니티에 액세스할 수 있습니다. Atlassian의 버그 바운티 프로그램은 2018년 및 2019년에 업계 최고의 프로그램으로 인정받았습니다.

고객 및 사용자 보고서 – 제품 사용자는 Atlassian 고객 지원팀을 통해 언제든지 발견한 버그를 보고할 수 있습니다. 그러면 Atlassian이 내부에서 해당 취약성에 플래그를 지정하고 해결할 수 있도록 사용자와 협력하여 필요한 모든 세부 정보를 수집합니다(검증을 통해 취약성이 실제인지 오탐인지 확인해야 함). 여기에는 외부적으로 또는 내부적으로 제품 내에서 발견한 문제를 보안 팀에 직접 보고하거나 지원 티켓을 제출하여 문제를 제기할 수 있는 Atlassian 직원도 포함됩니다.

외부 침투 테스트 - Atlassian은 전문 보안 컨설팅 회사를 통해 고위험 제품 및 인프라에서 화이트 박스, 코드 지원 침투 테스트를 수행합니다. 자세한 내용은 “외부 보안 테스트 접근 방식”을 참조하세요.

Atlassian의 제품 보안 팀 - Atlassian은 수동으로 또는 도구 지원을 통해 타겟팅된 코드 검토를 완료하고 제품 개발 팀과 긴밀하게 협력하여 코드가 도달하기 전에 취약성을 자체 감지하고 해결할 수 있는 능력을 강화합니다.

Atlassian의 레드 팀 – Atlassian은 최대한 빨리 취약성을 식별하고 해결할 수 있도록 시스템, 프로세스, 환경 내에 존재하는 취약성을 식별하고 악용하려는 적을 시뮬레이션하는 역할을 담당하는 내부 레드 팀을 보유하고 있습니다.

취약성 추적 및 해결

Atlassian은 내부 티켓 및 에스컬레이션 시스템을 사용하여 저희가 발견하고 수정하려는 모든 취약성을 추적합니다. 구체적으로 살펴보자면, 위에서 논의한 기타 방법이나 Atlassian의 검사 도구를 통해 취약성이 식별되었는지 여부와 관계없이, 각 취약성에 대한 전용 티켓이 만들어져 해결에 적합한 관련 제품 팀에 할당됩니다. 보안 버그 수정 정책에 게시된 수정 SLO(서비스 수준 목표)는 각 취약성에 대해 추적됩니다.

보안 팀은 이 프로세스를 감독하고 제품 및 인프라 팀과 협력하여 취약성의 정확도를 보장하고 수정 관련 질문에 답변합니다.

취약성에 대한 수정 방법을 개발하면 철저하게 테스트한 다음, Cloud 제품의 경우 배포를 위해 CI/CD 파이프라인에 통합합니다. Server 및 Data Center 제품의 경우 수정 방법을 새 릴리스에 포함하고 표준 릴리스 케이던스에 따라 정기적으로 다른 수정 방법과 함께 배포됩니다. 이후에 다시 검사할 때 취약성을 찾지 못하면 검사 도구의 취약성 티켓이 자동으로 종결됩니다. 수동으로 발견한 취약성 티켓의 경우 수정 사항이 고객에게 제공되면 제품, 인프라 또는 보안 팀원이 종결합니다.

개발 프로세스 중에 취약성 방지

컨테이너 이미지 검사

Atlassian은 Docker 컨테이너 이미지를 사용하여 대부분의 애플리케이션을 배포합니다. Docker 컨테이너는 관련 시스템 라이브러리, 도구, 구성 설정 및 기타 필요한 종속성으로 구성된 패키징된 독립적인 환경을 제공하므로 개별 머신 구성 매개 변수와 관계없이 제품을 실행할 수 있습니다. 컨테이너는 여러 머신에서 제품이 문제없이 작동할 수 있도록 소프트웨어 코드를 기본 인프라에서 분리하는 추상화 계층을 효과적으로 제공합니다.

컨테이너는 다양한 환경에서 사용할 수 있는 코드를 배포할 수 있다는 점에서 개발자와 고객에게 뛰어난 이점을 제공하지만, 이미지의 내용이 오래되었거나 안전하지 않은 라이브러리 또는 구성 요소로 이루어진 경우 보안 취약성의 원인이 될 수 있습니다.

이 문제를 해결하기 위해, Atlassian은 프로덕션 환경에 배포되는 모든 컨테이너에 대해 Micros 배포 플랫폼을 통해 이루어진 배포를 모니터링하는 이벤트 기반 컨테이너 보안 검사 프로세스를 통합합니다. 또한 개발자는 개발 환경에 배포되는 모든 컨테이너에 대해 검사 프로세스를 CI/CD 파이프라인에 통합할 수 있습니다. Atlassian은 이 목적을 위해 Snyk 컨테이너 엔진을 사용합니다. Snyk는 개발자가 배포한 컨테이너 이미지를 심층적으로 검사할 수 있는 도구를 제공합니다. 여기에는 해당 이미지에 포함된 다양한 구성 요소를 식별하기 위한 이미지 상세 분석과 알려진 취약성이 있는지 확인하는 작업이 포함됩니다.

오픈 소스 종속성

자체 코드에서 취약성을 찾아서 수정하는 것도 중요하지만, Atlassian 제품 및 서비스는 여러 타사 라이브러리에도 의존하고 있습니다. 그러므로 사용하고 있는 라이브러리를 인지하고 최신 보안 버그 수정을 통해 그러한 라이브러리를 최신 상태로 유지하는 것도 똑같이 중요합니다. Atlassian은 Snyk라는 도구를 사용하여 이 부분을 지원합니다. Snyk는 Atlassian의 소프트웨어 빌드에서 종속성을 식별한 후 이러한 라이브러리를 알려진 보안 취약성의 데이터베이스와 비교할 수 있는 스캐너를 제공합니다.

식별된 모든 취약성은 이 페이지에서 앞서 설명한 취약성 관리 프로세스에 따라 공식적인 Jira 티켓을 통해 관련 제품 팀에 자동으로 제기됩니다.

취약성을 방지하기 위해 사용하는 기타 이니셔티브

지금까지 이 문서에서는 ‘백 엔드’에서 취약성을 관리하기 위해 수행하는 단계, 즉 제품 또는 플랫폼에서 식별된 취약성을 해결하기 위해 취하는 조치를 주로 설명했습니다. 그러나 Atlassian은 처음부터 취약성이 발생하는 빈도를 줄이기 위해 끊임없이 노력하고 있습니다. 이런 목적으로 처음부터 보안을 염두에 두고 제품을 만들 수 있도록 개발 프로세스의 '프런트 엔드'에서 몇 가지 고유한 이니셔티브를 통합했습니다.

보안 챔피언 프로그램

2017년에 Atlassian은 모든 제품 및 서비스 팀 내에 보안 리더를 포함하기 위해 Atlassian 전반에 보안 챔피언 프로그램을 적용하기 시작했습니다. 챔피언은 보안 코드 작성 프로세스뿐만 아니라 애플리케이션 보안 취약성을 이해하고 식별하는 데 도움이 되는 특정 분야의 교육도 받습니다. 이 프로그램의 목표는 동료 팀원에게 주요 보안 메시지를 전파할 책임을 맡고 중앙 보안 팀과 함께 보안 문제를 제기하여 커뮤니케이션 흐름을 향상하는 전담 챔피언을 각 팀 내에 두는 것입니다.

Atlassian의 보안 챔피언은 모든 팀이 혜택을 누릴 수 있도록 매달 만나서 최신 보안 문제 및 당면 과제에 대한 도구와 지식을 공유합니다. 궁극적인 목표는 보안 챔피언 프로그램을 발판으로 삼아 보안을 훨씬 더 중요시하는 문화를 조성하는 것입니다. Atlassian은 이러한 접근 방식이 취약성을 최소화하는 접근 방식에 있어서 핵심 요소라고 생각합니다.

제품 보안 엔지니어

취약성 관리에 대해 논의할 때는 버그를 수정하고 더 나은 수정 프로그램을 설계하는 데 있어서 제품 보안 엔지니어가 하는 주요 역할을 설명하지 않을 수 없습니다.

Atlassian의 제품 보안 엔지니어는 새로 보고된 취약성에 대해 최초 심사를 수행하고 제품 엔지니어링 팀과 협력하여 최적의 문제 해결 방법을 식별합니다. 이들은 애플리케이션 보안 분야의 주제 전문가이며 전 세계에 분산되어 있으므로 필요에 따라 제품 엔지니어와 가장 효과적으로 협력할 수 있습니다.

보안 엔지니어는 할당된 제품과 관련하여 사전 예방적인 보안 역할과 사후 대응적인 보안 역할을 모두 수행하며 그 역할은 다음을 포함하되 이에 국한되지 않습니다.

  • 최신 위협 모델을 검토 및 분석하여 새로운 위험과 긴급한 위험 파악
  • 새로운 기능의 보안 검토 및 분석
  • 수동 코드 검토 수행
  • 침투 테스트 수행
  • 플랫폼 및 아키텍처 검토 수행
  • 프로젝트와 관련된 주요 활동을 추적하고 필요한 경우 지침 제공
  • 버그 바운티를 통해 보고된 문제를 선별, 등록 및 보상하고 적시에 해결을 보장
  • 새로운 자동화를 작성하고 기존 자동화와 도구 사용을 유지 관리하여 적용 범위 및 효율성을 극대화

보안 성과 기록표

Atlassian은 이 문서에서 설명한 시스템에서 수집한 데이터를 통해 팀과 제품을 서로 벤치마킹하여 개선할 영역을 사전적으로 식별할 수 있습니다.

요약

Atlassian은 발생하는 취약성을 최대한 빨리 식별 및 해결하고 처음부터 취약성이 발생하는 빈도를 최소화하기 위해 자동화된 검사 도구, 버그 바운티 프로그램, 지속적으로 발전하고 있는 기타 다양한 메커니즘을 함께 사용하는 제품 및 플랫폼 전반에서 취약성 관리에 대해 다각적인 접근 방식을 취하고 있습니다.

더 자세히 알아보시겠습니까?

더 자세히 알아보시겠습니까?

이 문서뿐만 아니라 취약성 관리에 대한 Atlassian의 접근 방식과 보안에 대해 자세히 알아보기 위해 더 일반적으로 참조할 수 있는 다양한 기타 리소스가 있습니다.

이 페이지에서 취약성은 보안 테스트에 대한 Atlassian의 접근 방식에 관한 별도의 문서에서 사용되는 '버그'라는 용어와 같은 의미로 사용되었습니다.