그래프를 활용하여 보안 자동화 및 분석 향상

작성자 : Peleus Uhley, 수석 보안 전략가

( Peleus는 Adobe 보안 교육 및 발전 프로그램 Black Belts 중 하나입니다. Adobe에서 가장 높은 보안 성과를 거두었습니다. 수천 시간에 걸친 보안 원칙, 학습 및 지식 공유를 반영합니다. Black Belts는 강력한 옹호자 및 추진자로서 보안 조직과 협력합니다. Adobe의 강력한 보안 문화를 보여줍니다. )

에서 내 마지막 블로그 , 나는 보안 자동화의 효율성을 개선하기 위해 응용 프로그램 메타 데이터의 그래프를 만들 수 그래프 데이터베이스를 사용하고 연구 프로젝트의 배경을했다. 이 블로그에서는 잠재적 가치를 보여주는 몇 가지 이론적 그래프를 살펴 보겠습니다. 기본적으로이 시리즈에서 구축하는 것은 애플리케이션을위한 소셜 네트워크 스타일의 그래프입니다. 각 응용 프로그램은 조직 전체의 메타 데이터와 연결을 기록하는 "프로필"입니다. 조직 전체의 모든 애플리케이션 보안 및 서비스 관련 데이터를 상호 연결함으로써 기존의 많은 기술에서 가능한 것보다 잠재적 인 보안 위험에 관한 훨씬 더 많은 컨텍스트를 얻을 수 있습니다.

많은 소셜 미디어 플랫폼은 그들이 달성하려는 것을 가장 논리적으로 표현하기 때문에 그래프 데이터베이스를 백엔드로 가지고 있습니다. 소셜 미디어 네트워크의 사람들은 일반적으로 노드로 표시됩니다. 잠재적 인 좋아요 및 관심도 노드로 표시됩니다. 그래프는 레이블이 지정된 가장자리를 사용하여 관심있는 사람들 간의 연결 컨텍스트를 표현합니다. 가장자리에는 연결 강도를 나타내는 가중치가있을 수도 있습니다.

이러한 그래프를 통해 소셜 미디어 플랫폼은 삶의 여러 부분을 서로 연결하여 사람의 상황에 맞는 관점을 만들 수 있습니다. 이와 동일한 접근 방식을 사용하여 네트워크 및 애플리케이션 계층 모두에서 서비스에 대한 더 나은 컨텍스트 이해를 생성 할 수 있습니다. 전체 컨텍스트를 확보함으로써 자동화 및 인적 검토 모두에서 더 나은 판단을 내릴 수 있습니다.

예를 들어 대부분의 방화벽 규칙은 IP 목록 일뿐입니다. 단일 네트워크로 작업하는 경우 네트워크의 IP가 기억되어있을 것입니다. 그러나 여러 네트워크가있는 중앙 보안 팀에서 작업하는 경우 그 작업이 어려워집니다.

따라서 가상의 예로서 방화벽 규칙을 검토하면 허용 된 서비스 대 두 공용 서비스 간의 통신에 대해 다음과 같은 제한된 정보를 얻을 수 있습니다.

1.2.3.4는 송신 포트 80을 5.6.7.8에 연결합니다.

포트 80의 사용은 나쁜 보안 관행이지만 컨텍스트가 없으면 정확한 심각도를 알기 어렵습니다. 대신, 사전 검토 중에 다음 정보를 갖는 것이 더 유용 할 것입니다.

1.2.3.4 (Image Processing Service)는 송신 포트 80을 5.6.7.8 (auth.foo.com)에 연결합니다.

이 추가 된 컨텍스트를 통해 이제 이미지 처리 서비스가 인증 서비스에 대해 안전하지 않은 네트워크 통신을 수행하고 있음이 분명합니다. 분명히 포트 80에서 인증 서비스를 실행하지 않을 것이지만이 가상의 예는 요점을 보여줍니다. 이러한 IP가 누구와 무엇을 나타내는 지에 대한 추가 컨텍스트는 정보에 입각 한 결정을 내릴 수있는 컨텍스트를 제공합니다.

해당 컨텍스트를 얻으려면 IP를 계정 ID, 도메인 이름 및 프로젝트에 매핑해야합니다. 또한 빠른 수정을 위해 프로젝트를 소유자에게 매핑 할 수 있습니다. AWS와 같은 단일 클라우드 공급자 내 단일 계정 내에서만 작업하는 경우 Route53, AWS 태그 및 API 쿼리 모음에서이 정보를 얻을 수 있습니다. 그러나 더 복잡한 환경에는 여러 계정 ID가 있으며 여러 클라우드 공급자에 배포 될 수도 있습니다. 즉, 여러 소스에서 정보를 수집해야하며 그래프를 만드는 것이 이러한 링크를 만드는 데 도움이 될 수 있습니다. 그래프를 사용하면 아래 이미지와 같은 모델을 만들 수 있습니다.

마찬가지로, 애플리케이션 계층 보안 검토를 수행 할 때 "단일 창"에서보기 위해 애플리케이션의 전체 컨텍스트를 갖는 것이 이상적입니다. 이를 위해서는 타사 라이브러리 추적기, 정적 분석 도구, JIRA 항목, GitHub 프로젝트, 클라우드 공급자 및 기타 여러 데이터 소스를 연결할 수있는 기능이 필요합니다. 이러한 데이터 소스 간의 관계가 아래 이미지와 같은 그래프로 표시됩니다.

이 샘플 그래프에서는 간결함을 위해 간선 레이블, 가중치 및 방향이 제외되었습니다. 중요한 점은 그래프의 어느 지점에서나 그래프의 다른 지점으로 쉽게 이동할 수 있다는 것입니다. 따라서 정적 분석 도구에서 찾은 결과를 파헤 치고 싶다면 해당 결과를 추가 테스트를 위해 호스팅되는 IP 및 도메인과 잠재적 버그를 제출해야하는 JIRA 위치에 연결할 수 있습니다. . 왼쪽 하단에서이 초기 프로젝트를 일치하는 속성을 공유하는 다른 프로젝트와 연결할 수도 있음을 알 수 있습니다. 이러한 유형의 연결을 사용하면 GitHub 조직, 비용 센터 또는 관리 연락처를 기반으로 여러 프로젝트에서 광범위한 기반 검색을 수행 할 수 있습니다. 그래프는 주어진 데이터 포인트에 대한 관점에서 데이터를 컨텍스트 화하기위한 여러 옵션을 제공합니다.

그래프의 또 다른 중요한 장점은 그래프를 작성할 때 모든 정보를 깔끔하게 미리 정리할 필요가 없다는 것입니다. Adobe의 그래프를 작성하는 데 사용되는 정보가 포함 된 대부분의 도구는 상호 참조되도록 설계되지 않았습니다. 대신 그래프는 퍼즐처럼 만들어집니다. 개별 도구에서 그래프의 작은 하위 구성 요소를 만드는 것으로 시작합니다. 처음에는 그것이 다른 모든 조각들과 어떻게 어울릴 지 잘 모르겠습니다. 그러나 최종 그림을 만드는 공통 속성을 찾을 때마다 작은 구조를 더 큰 구조로 계속 연결합니다.

예를 들어 누군가 정적 분석 도구에 입력 한 프로젝트 이름이 GitHub에서 찾은 이름과 정확히 일치하지 않을 수 있습니다. 누군가가 한 도구에서 프로젝트의 내부 코드 이름을 사용하고 다른 도구에서 프로젝트의 공개 이름을 사용하는 것은 드문 일이 아닙니다. 이로 인해 코드가 이름을 기반으로 두 개를 함께 연결할 수 없습니다. 그러나 두 데이터 소스가 동일한 GitHub URL을 사용하는 경우 그래프에서 두 소스를 연결할 수 있습니다.

중복성이 어느 정도있을 가능성이 있습니다. 즉, 한 데이터 원본을 기반으로 한 항목을 즉시 연결할 수없는 경우 나중에 다른 데이터 원본을 사용하여 연결할 수 있습니다. 예를 들어, 위의 다이어그램에는 도메인 이름 노드로가는 두 개의 연결이 있습니다. 그러나 주어진 프로젝트에 대해 직접 연결을 통해 프로젝트 이름을 도메인 이름에 직접 연결할 수 없다고 가정 해 보겠습니다. IP 주소를 사용하여 AWS 계정 ID와 도메인 이름을 연결하는 보조 경로 만 있으면 괜찮습니다. 더 많은 데이터 소스를 추가할수록 중복을 생성하는 링크를 더 많이 찾을 수 있습니다.

이를 통해 프로세스의 개별 단계에서 무언가 연결되는지 여부에 대해 걱정할 필요가 없습니다. 대신 다른 소스의 데이터를 계속 추가하고 찾은대로 링크를 추가합니다. 모든 데이터가 데이터베이스에 추가 된 후에 만 ​​최종 그래프에 대해 걱정합니다.

그래프가 생성되면 그래프의 그림을보고 마음 속에 생성 할 수있는 모든 연관성을 코드를 통해 만들 수도 있습니다. 그래프 쿼리 언어를 사용하여 "이 정적 분석 프로젝트와 관련된 도메인 이름은 무엇입니까?"라는 질문을 할 수 있습니다. 프로세스는 정적 분석 도구 프로젝트의 노드에서 시작하여 해당 도메인 이름 노드를 찾을 때까지 그래프를 따라갑니다. 이러한 쿼리는 그래프를 만들 때 가장자리의 방향에주의를 기울인 경우 다른 프로젝트로 이동하지 않습니다. 그래프 디자인에 대한 자세한 내용은이 시리즈의 뒷부분에서 설명합니다. 전체적인 요점은 단일 쿼리가 더 전통적인 접근 방식에서 여러 상호 참조를 사용했을 수있는 동적 상관 관계를 만들 수 있다는 것입니다.

따라서 수동 검토와 자동화 모두에서 그래프가 매우 강력 해집니다. 자동화를 통해 정적 분석 도구의 데이터를 사용하여 대상 방식으로 도메인에 대한 동적 테스트를 트리거 할 수 있습니다. 수동 검토를 수행하는 경우 상황 별 정보를 사용하면 네트워크 예제에 표시된 것처럼보다 효율적으로 작업 할 수 있습니다. 또한 모든 보안 도구 참조를 그래프의 구성원으로 지정하면 주어진 프로젝트에 대한 모든 관련 보안 정보를 볼 수있는 "단일 창"UI를 만들 수 있습니다. 기본 사항을 높은 수준에서 검토 한 다음 그래프에 기록 된 참조를 사용하여 각 도구에 대해 자세히 알아볼 수 있습니다.

전반적으로 그래프를 사용하면 수동으로 또는 자동화 된 도구를 통해 분석을 더 효율적이고 더 나은 컨텍스트로 수행 할 수 있습니다. 보안 정보를 격리 된 사일로로 조직 전체에 분산시키는 대신 모든 정보를 완전한 애플리케이션 프로필에 연결하여 문제 분석 및 분류를위한 완전한 시작부터 끝까지 워크 플로를 구축하는 데 필요한 모든 정보를 제공 할 수 있습니다.

Suggested posts

Google, 12 가지 새로운 종류의 가이드 활동 페널티 추가

Google, 12 가지 새로운 종류의 가이드 활동 페널티 추가

현재 Google 뉴스 및 Google 디스 커버 정책을 위반하면 직접 조치에 대한 벌금이 부과 될 수 있습니다. 구글.

로봇의 행성

인공 지능이 인근 행성을 점령하는 방법.

로봇의 행성

우리와 매우 가까이에 로봇이 지배하는 행성이 있다는 사실에 놀랄 것입니다. 거기에는 인간이 살고 있지 않습니다.