728x90
반응형
  • Graph Data Science

참고: 이 블로그 게시물은사이버 보안을 위한 그래프Dave Voutila, Gal Bello, Tara Jana 및 Deb Cameron의 백서입니다.

국가별 위협 행위자와 외국 해킹 집단이 합류하여 공격에 더 많은 시간과 자원을 쏟으면서 사이버 공격이 수년 동안 증가해 왔어요. 사이버 보안 위험을 효과적으로 완화하려면 실제 규모로 연결을 상호 연관시키고 분석할 수 있는 고급 데이터 솔루션이 필요합니다.

시리즈의 이전 블로그에서는 공격자와 방어자가 그래프로 생각하는 방식, 사이버 위협에 대한 개요, 이러한 위협을 완화하기 위해 채택할 수 있는 정책 및 전략에 대해 논의했죠.

이번 3부와 시리즈의 마지막 부분에서는 Knowledge Graph 구축이 공격의 모든 단계(시작 전부터 종료까지, 그리고 후속 사고 분석까지)에서 어떻게 도움이 될 수 있는지 보여드릴게요.

디지털 트윈으로서의 Knowledge Graph

Knowledge Graph는 환경의 디지털 트윈을 생성하여 전체적인 관점에서 네트워크 데이터의 전부 또는 일부를 나타낼 수 있도록 해줘요. 이 보기는 사이버 보안 분석가가 `쿼리`하고 조치를 취하는 데 매우 유용합니다. 또한 Knowledge Graph는 악의적인 활동을 탐지하는 모델을 구축하는 데이터 과학자가 분석할 수 있습니다.

사이버 보안을 자동화하고 체계화하는 작업은 조직의 보안 데이터를 처리하고 이를 그래프로 표시하는 데 달려 있습니다. 디지털 발자국에는 다음이 포함될 수 있어요.

    • 어떤 시스템이 어떤 시스템에 연결되는지
    • 인터넷에 공개되는 시스템
    • 사용자 및 해당 사용자가 속한 그룹
    • 그룹 구성원에게 부여되는 권한
    • 귀하의 정책과 정책이 적용되는 시스템
    • 가장 중요한 보호 시스템(크라운 주얼)

그래프에는 다음과 같은 이벤트가 포함될 수 있습니다.

    • 사용자 액세스 이벤트
    • 애플리케이션 리소스 사용량

네트워크 인프라 그래프 생성

네트워크는 본질적으로 연결로 구성된 그래프죠. 이 정보를 Graph Database에 저장하면 실행 가능한 통찰력과 분석이 가능해져요.

네트워크 그래프를 만드는 건 생각보다 쉬워요. 예를 들어 주요 클라우드 제공업체는 고객이 보유하고 있는 인프라를 설명하기 위한 메타데이터 API 서비스를 제공하고 있어요. 그런 다음 이 데이터를 Neo4j와 같은 Graph Database에 쉽게 수집할 수 있죠. 예를 들어 GCP는 클라우드 자산 인벤토리를 제공하고, Azure에는 Azure 리소스 관리 API와 Microsoft Graph API가 있고, AWS는 AWS Organizations API를 제공해요.

또는 Neo4j를 기반으로 구축되었고 이 백서의 부록에 설명된 오픈 소스 도구인 Cartography와 같은 일부 도구는 네트워크 그래프를 생성해준답니다.

온프레미스 플랫폼의 경우 공급업체가 제공하는 API를 사용하여 VMWare 또는 HyperV 등의 시스템 리소스를 조사할 수 있어요.

정보가 Graph Database에 있으면, 이제 Query를 실행하고 네트워크 구조를 시각화하는 게 간단해져요.

이 간단한 Cypher Query는 다음 스크린샷과 같이 200개의 Node를 반환해요.

MATCH (n) RETURN n LIMIT 200

네트워크 구조를 그래프에 로드하면 가장 보호가 필요한 주요 항목을 식별할 수 있어요. 귀중한 리소스를 위해 Node에 특별한 라벨이나 Property를 부여하세요. 그런 다음 쉽게 Query하고 종속성을 추적할 수 있죠. 중요한 액세스 경로를 표시하는 Relationship을 추가하세요. 샘플 그래프에는 FIREWALL_INGRESS와 같은 Relationship이 포함되어 있네요.

그래프에 소프트웨어 정보 추가

이미 구성 관리 도구를 사용하고 있다면, 해당 API를 사용하여 모니터링하는 소프트웨어 및 운영 체제의 버전 및 상태 보고서를 수집할 수 있어요. 구성 관리 도구를 사용하지 않는 경우 Nessus 또는 Nmap으로 시작할 수 있고요. Nmap은 네트워크 및 장치를 스캔하고 해당 정보를 소프트웨어 활동 로그와 결합하여 사용하는 버전, 라이브러리, 포트, 액세스하는 사람 및 의존하는 리소스와 같은 정보를 제공할 수 있어요. 그런 다음 이 정보를 그래프에 수집하는 거죠.

위협 인텔리전스로 그래프 강화

MITRE, NIST 등은 업계 전반에서 사용되는 취약성 데이터베이스를 만들었어요. 이 데이터를 그래프로 수집하면 취약점이 중요한 리소스에 영향을 미치는 위치를 확인하고 해당 리소스에 대한 잠재적인 공격 경로를 밝힐 수 있답니다.

MITRE가 개발한 ATT&CK-D3FEND 매트릭스는 공격자가 사용하는 것으로 알려진 무료로 사용할 수 있는 전술 및 공격 세트와 이에 대응하는 데 사용되는 해당 방어 조치 세트예요. 인프라를 그래프로 시각화하면 ATT&CK의 정보를 포함한 일련의 공격 경로를 볼 수 있고, 그런 다음 D3FEND의 방어 전술에 연결할 수 있어요. 부록에서 논의되는 오픈 소스 도구인 GraphKer는 위협 인텔리전스를 Neo4j에 로드하는 프로세스를 단순화해준답니다.

취약점 및 공격 경로 시각화

공격 경로는 공격자의 관점을 취하고 각 단계에서 사용되는 취약점과 함께 잠재적인 다단계 공격 경로를 보여줘요. 이 프로세스는 취약점의 정적인 목록을 넘어 공격자가 이를 어떻게 사용할 수 있는지 살펴보는 거죠.

공격 경로 분석을 통해 공격자가 해당 자산에 접근하기 위해 인프라를 통과할 수 있는 다양한 경로를 식별할 수 있어요. 네트워크의 모든 공격 경로는 함께 공격 그래프를 형성하고요. 특히 Neo4j Bloom과 같은 그래프 데이터 시각화 도구를 사용하면 경로를 그래프로 시각화하는 것이 정말 직관적이에요.

평가, 계획 및 준비

IT 환경의 디지털 트윈은 정말 유용한 전술적 이점을 제공해요. 변경 사항을 실제로 적용하기 전에, 환경에 대한 변경 사항의 영향을 프로그래밍 방식으로 미리 평가해볼 수 있거든요.

변경 사항을 확인하기 위한 승인 단계를 두는 건 시스템을 보호하는 데 정말 중요하죠. 구현하는 규칙에 따라 의심스러운 변경 사항을 자동으로 거부하거나 롤백하거나, 아니면 티켓을 발행해서 수동으로 검토하도록 설정할 수도 있고요.

그래프 알고리즘을 사용한 디지털 트윈 분석

보안을 강화하는 한 가지 방법은 인프라에서 가장 큰 영향을 미치는 취약점 유형을 찾는 거예요. 그런 다음, 이러한 자산이 침해될 가능성을 평가하면 리소스를 어디에 집중해야 엄청난 보안 강화를 이룰 수 있는지 알 수 있죠.

좀 더 넓은 시각으로 접근하면 네트워크의 각 node의 context를 살펴보고 가장 중요한 node를 결정할 수 있어요.

이 섹션의 Cypher 예제에서는 몇 가지 가정을 할 거예요.

    • IT 인프라의 그래프를 생성하고 일부 node를 외부 연결로 분류했다고 가정할게요.
    • 가장 귀중한 자산(crown jewel)의 node ID를 알고 있다고 가정할게요.
    • Neo4j Graph Data Science가 설치되어 있어서 그래프 알고리즘을 실행해서 그래프를 전체적으로 분석할 수 있다고 가정할게요.

이 Cypher 예제(이 백서의 코드 저장소에서 확인할 수 있어요)에서는 최단 경로 알고리즘을 호출해서 `targetNode`라는 귀중한 resource에 대한 최단 경로를 찾을 거예요. 인터넷에서 특정 crown jewel까지의 모든 경로에 대한 그래프를 작성하고 `POSSIBLE_ATTACK` relationship을 추가하는 거죠.

# build a graph of all shortest attack paths to a specific crown jewel 
MATCH (external:ExternalFacingNode) 
CALL gds.shortestPath.dijkstra.stream(“attackPathGraph”, 
{ sourceNode: id(external), 
targetNode: targetId, 
path: true}) 
YIELD sourceNode,targetNode,nodeIds 
# create POSSIBLE_ATTACK relationships WITH nodeIds UNWIND apoc.coll.pairsMin(gds.util.asNodes(nodeIds)) AS pair WITH pair[0] AS toNode, pair[1] AS fromNode MERGE (toNode) <- [:POSSIBLE_ATTACK] - (fromNode)

그런 다음 해당 공격 그래프에서 모든 node 쌍을 얻고 매개 중심성 알고리즘을 사용해서 점수를 매길 거예요. 그리고 이 점수를 다시 database에 쓰는 거죠:

CALL gds.graph.create(‘centralityGraph’, ‘*’, 
{ relType: { 
type: ‘*’, 
orientation: ‘UNDIRECTED’, 
properties: {} }}, {}); 
CALL gds.betweenness.stream(‘centralityGraph’, {}) 
YIELD nodeId, score 
WITH gds.util.asNode(nodeId), score AS betweenness 
RETURN n.name, betweenness ORDER BY betweenness DESC 

각 node는 해당 node를 통과하는 가능한 공격 경로 수에 따른 점수와 함께 반환될 거예요.

공격 경로의 각 홉에 확률을 부여하면 그래프를 취약성 트리로 사용해서 어떤 공격이 성공할 가능성이 가장 높은지 예측할 수 있어요.

우리가 계산한 두 숫자(node의 중심성과 공격 수행 가능성)를 결합한 점수는 노력의 우선순위를 정하는 강력한 지표가 될 거예요.

위협 인텔리전스 및 예측

특정 사건은 공격 가능성을 높이기도 해요. 예를 들어, 특정 회사가 뉴스에 언급되면 공격자의 레이더에 포착될 가능성이 더 높아지죠.

마찬가지로, 새로운 취약점이 공개되면 공격자는 이를 테스트할 거예요. 취약점 database에서 취약점을 자동으로 수집하도록 시스템을 설정했다고 가정해 볼게요. 그런 다음 앞서 설명한 대로 신속하게 보고서를 작성하고 가장 중요한 요소에 대한 잠재적 영향에 대한 경고를 생성해서 사전 예방적인 보안 조치를 취해 이러한 위협을 완화할 수 있어요.

 

불행히도 완전한 보안을 보장하는 건 불가능하기 때문에 공격을 제한하기 위한 조치를 취하려면 침해를 탐지하는 게 중요해요.

데이터를 Graph Database에 로드하면 자동으로 query를 실행해서 네트워크의 특정 이벤트 패턴에 플래그를 지정할 수 있어요.

비정상적인 패턴을 찾아 의심스러운 동작을 감지할 수 있죠. 예를 들어, IP 주소가 시스템에 로그인을 시도한 횟수 또는 사람들이 일반적으로 로그인하지 않는 국가에서 표시되는 로그인 횟수를 모니터링할 수 있어요. 로그인된 계정과 IP를 그래프로 표시하면 이러한 패턴을 쉽게 식별할 수 있을 거예요.

여러분은 을 밝혀낼 수도 있어요. 예상치 못한 계정 및 IP 주소의 파일에 대한 액세스를 모니터링하는 거죠. 예를 들어, 사용자가 네트워크상의 파일을 거의 보지 않다가 갑자기 이전에 사용하지 않았던 IP 주소나 장치를 사용해서 많은 파일에 액세스한다고 가정해 보세요. 이러한 이벤트는 계정이 손상되었음을 나타낼 수 있으며 이를 자동으로 감지할 수 있답니다.

네트워크가 검사 및 분석되고 있음을 감지하면 이는 공격이 시작되었음을 나타낼 수 있어요. 또한 어떤 resource가 검사되었는지 알면 공격이 가장 많이 발생할 가능성이 있는 위치를 알 수 있으며 해당 대상을 보호하거나 난독화하기 위한 추가 조치를 취할 수 있죠.

만약 을 발견했는데 이전에 본 적이 있는 것과 같다면, 이는 유사한 공격 전략을 따르고 있음을 의미할 수 있어요. 심지어 동일한 공격자에 의해서도 가능하고요.

침입 탐지 시스템(IDS)은 네트워크에서 침입 징후를 모니터링해요. IDS 데이터를 그래프에 로드해서 공격이 진행 중인지 확인할 수 있죠.

설명할 수 없는 네트워크 트래픽 급증은 DDoS 공격의 시작일 수 있어요.

진행 중인 공격을 감지하면 그래프를 사용해서 IP 주소를 포함하여 공격자에 대한 자세한 내용을 확인할 수 있어요.

이러한 신호의 상관관계를 분석하면 보다 쉽게 공격을 탐지하고 향후 공격을 완화할 수 있을 거예요.

조사 및 대응

의심스러운 이벤트를 발견했다면, 가장 먼저 해야 할 일은 해당 이벤트가 무해한지, 아니면 실제 공격인지 확인하는 거예요.

만약 의심스러운 이벤트를 그래프로 한눈에 볼 수 있다면 어떨까요? 그러면 이들 사이의 공통점을 찾아서 공격 규모와 네트워크 내 공격 시작 위치를 파악할 수 있겠죠. 그래프를 사용하면 관련된 사용자 계정이나 장치 등, 해당 이벤트와 관련된 모든 맥락 정보를 조사할 수 있어요.

그래프 시각화는 잠재적으로 사용자 계정을 차단하거나 특정 IP 주소 범위로부터의 접근을 막아 공격을 멈추는 데 필요한 중요한 정보를 보여줄 수 있답니다.

사이버 공격은 보통 일련의 시스템 손상으로 이어지는데요. 여러분이 보고 있는 모든 사이버 공격과 그 공격의 연쇄를 모델링한다면, 자연스럽게 그래프 형태가 될 거예요. 사이버 공격을 받았을 때, 공격자의 다음 행보를 예측하는 방법은 최근 공격을 그래프의 Node와 연결해서 다음에 어떤 이벤트가 가장 자주 발생했는지 확인하는 거죠.

네트워크 그래프에 모델링된 시스템 종속성을 활용하면, 간단한 Query를 실행해서 DDoS 공격으로 인해 특정 시스템이 손상되거나 오프라인 상태가 될 때 어떤 다른 시스템이 영향을 받는지 확인할 수 있어요.

MATCH (compromisedSystem) <- [:DEPENDS_UPON*] - (system:System) 
RETURN system

다음으로, 보안 담당자는 공격을 받고 있는 시스템을 담당하는 팀에 알릴 수 있어요. 손상된 시스템에 종속된 시스템을 관리하는 팀을 Query하려면 다음과 같은 Query를 실행하면 돼요.

MATCH (compromisedSystem) <- [:DEPENDS_UPON*] - (system:System) 
<- [:SUPPORTED_BY] - (team:Team) 
RETURN team

피싱 공격 후 손상된 시스템 찾기

Graph Database의 가장 큰 장점은 연결 관계를 깊이 탐색할 수 있다는 점이에요. 예를 들어 피싱 이메일로 시작해서, 그 당시 사용자가 보낸 모든 이메일을 찾고, 수신 계정을 알아낸 다음, 모든 시스템을 연결해서 피싱 공격의 가능한 범위를 확인할 수 있죠.

MATCH (phishingEmail) - [:WAS_SENT_TO] - (user:User) -[message:SENT_EMAIL_TO|SENT_SLACK_MESSAGE_TO|SENT_IM_TO*0..6] 
- (recipient) - [connection:CONNECTED_TO_SYSTEM] 
- (potentiallyCompromisedSystem: System) 
WHERE connection.date > phishingEmail.sentDate 
RETURN potentiallyCompromisedSystem

이 Query는 최대 6홉(hops) 이내에서 손상된 시스템에 연결된 잠재적으로 영향을 받는 모든 엔티티를 찾아줍니다.

커뮤니티 감지를 사용하여 사건 그룹화

보안 사고는 Graph Database에 로드되고, Louvain과 같은 커뮤니티 탐지 알고리즘을 사용해서 커뮤니티로 그룹화할 수 있어요. 경고가 서로 관련되어 있을 가능성이 높거든요.

이것은 다음을 나타낼 수 있어요:

    • DDoS 공격 등 동일한 공격이 진행 중
    • 서로 다른 감지 메커니즘에 의해 동일한 이벤트가 감지됨
    • 동일한 시스템에서 여러 호스트를 조사하거나 여러 수신자에게 피싱 이메일을 보내는 등, 단일 공격의 여러 부분

경고 그룹이 포함된 Graph Database가 있다면, 이 Cypher 코드는 Louvain 그래프 알고리즘을 실행해서 커뮤니티를 찾을 수 있도록 도와줄 거예요.

CALL gds.graph.create({ ‘communities’, ‘Alert’, 
{ 
relType: { 
type: ‘*’, 
orientation: ‘UNDIRECTED’, 
properties: {} 
} 
} 
}); 
CALL gds.louvain.write(‘communities’, 
{ writeProperty: ‘communityId’} 
);

경고에 대해 Louvain을 실행한 후 이벤트를 추가로 분석할 수 있어요. 각 커뮤니티를 나타내는 AlertGroup 객체를 생성하고 알고리즘이 채운 CommunityId 필드를 사용해서 경고를 해당 커뮤니티에 연결할 수 있죠.

MATCH (a:Alert) 
MERGE (a) -> [:IN_GROUP] -> (ag:AlertGroup {name: a.communityId}

이제 그래프에는 다음 Cypher를 실행한 것과 동일한 개체가 있어요.

MERGE (g1:AlertGroup {name: ‘1’}) 
MERGE (g2:AlertGroup {name: ‘2’}) 
MERGE (:Alert {name: ‘a’, communityId: 2, from: ‘evilcorp’}) – 
[:IN_GROUP] -> (g2) 
MERGE (:Alert {name: ‘b’, communityId: 2}) - [:IN_GROUP] -> (g2) 
MERGE (:Alert {name: ‘c’, communityId: 2}) - [:IN_GROUP] -> (g2) 
MERGE (:Alert {name: ‘d’, communityId: 2}) - [:IN_GROUP] -> (g2) 
MERGE (:Alert {name: ‘e’, communityId: 1, from: ‘nicecorp’}) 
- [:IN_GROUP] -> (g1)

이제 경고에 대한 정보를 사용해서 그룹 전체를 얼마나 신뢰하는지 결정하고 해당 정보를 그룹에 쓸 수 있어요.

MATCH (group:AlertGroup) - [:IN_GROUP] - (e:Alert {from: ‘nicecorp’}) 
SET group.trustworthy=’high’; 
MATCH (group:AlertGroup) - [:IN_GROUP] - (e:Alert {from: ‘evilcorp’}) 
SET group.trustworthy=’low’;

이 정보를 보려면:

MATCH (a:Alert) - [] - (ag:AlertGroup ) WHERE ag.trustworthy IS NOT NULL 
RETURN a, ag

이 예제의 전체 코드(및 이 문서의 모든 예제)는 Github 저장소에서 사용할 수 있습니다.

앞서 살펴봤듯이 인프라 그래프(디지털 트윈)를 생성하고 분석하는 것은 사이버 보안 상태를 개선하고 사이버 보안 취약성과 위협의 끝없이 역동적인 복잡성을 관리하기 위해 취할 수 있는 가장 효과적인 조치 중 하나에요.

물론 인프라의 디지털 트윈을 생성하면 이 트윈이 다른 여러 용도로 사용된다는 것을 알게 될 거예요. 다음은 몇 가지 예시입니다:

    • Lending Tree는 마이크로서비스 및 종속성에 대한 실시간 보기를 생성하려고 했어요. 곧 그들은 이 도구를 사용해서 월별 클라우드 사용량을 예측했죠.
    • Vanguard는 애플리케이션을 Java 모놀리스에서 마이크로서비스로 리팩터링하고 Neo4j에 모든 것을 매핑해서 소프트웨어 품질을 개선하고 모범 사례를 시행했어요.
    • 영국 교육부는 Neo4j AuraDB를 사용해서 IT 환경을 매핑 및 현대화하고 소프트웨어 라이선스를 통합하고 절감된 비용으로 구독 비용을 지불하고 있어요.

그래프는 아침 식사로 복잡성을 잡아먹고 있으며 오늘날 우리가 직면하고 있는 끊임없이 변화하는 사이버 보안 위협보다 더 복잡한 영역은 없죠.

사이버 보안을 위해 Neo4j를 사용해야 하는 이유

Neo4j 그래프 데이터 플랫폼은 끊임없이 변화하는 사이버 보안 환경을 모델링, 관리 및 변환하는 방법을 제공해요.

플랫폼의 핵심에 있는 강력한 장치는 Neo4j Graph Database입니다. ACID를 완벽하게 준수하는 Neo4j는 데이터를 그래프 구조로 저장하는 데 최적화된 기본 그래프 데이터베이스에요. Neo4j는 데이터가 저장된 대로 연결하므로 연결을 훨씬 더 빠르게 탐색할 수 있죠.

Neo4j는 데이터베이스 수준에서 보안을 제공해요. 역할 기반 액세스 제어를 통해 조직은 민감한 데이터에 대한 규칙을 만들고 이러한 규칙이 Neo4j의 모든 애플리케이션 및 사용에 적용될 것임을 알 수 있어요. 관리자는 스키마 수준에서 역할 기반 권한을 선언하고 모든 데이터는 해당 권한에 따라 보호됩니다.

Neo4j에는 쿼리를 효율적으로 작성, 프로파일링 및 디버그하고 데이터를 시각화하고 탐색하는 데 도움이 되는 강력한 개발자 도구가 포함되어 있어요. 앞서 살펴봤듯이 Cypher는 SQL보다 빠르고 훨씬 더 컴팩트할 뿐만 아니라 간단하고 강력해요. Neo4j GraphQL 라이브러리를 사용하면 GraphQL에서 Cypher를 생성하여 프런트엔드 개발자의 역량을 더욱 강화할 수 있어요. 커넥터는 Kafka 및 Spark에서 스트리밍 데이터를 가져옵니다.

Neo4j Graph Data Science는 수십억 개의 Nodes가 있는 그래프 데이터세트의 분석과 통찰력을 강화해요. Neo4j Graph Data Science는 엔터프라이즈급 분석 작업 공간, 바로 실행할 수 있는 65개 이상의 그래프 알고리즘, 사용하기 쉬운 Machine Learning 파이프라인을 제공합니다.

Neo4j Bloom을 사용하면 초보자와 전문가 모두 다양한 관점에서 그래프 데이터를 시각적으로 조사하고 탐색할 수 있어요. 풍부한 그래프 시각화는 기술 및 비즈니스 직원의 이해와 조정을 촉진하여 신속한 진행을 가능하게 합니다.

Neo4j와 같은 엔터프라이즈급 Graph Database에 데이터를 저장하면 가장 시급한 문제를 해결하고 필요에 따라 사용 사례를 확장할 수 있어요. 밀리초 이내에 모든 쿼리에 응답하고, 그래프를 시각화하여 패턴을 확인하고, Neo4j Graph Data Science를 사용해서 공격자가 이를 악용하기 전에 사전에 이상 현상과 취약점을 식별하세요.

Neo4j를 바로 시작하거나 Connections 이벤트에 참석하여 사이버 보안을 위한 Neo4j에 대해 자세히 알아보거나 다음 주소로 이메일을 보내주세요.Cybersecurity@neotechnology.com.

오픈 소스 도구 및 Github 리포지토리

Neo4j에 인프라 로드

다음은 인프라를 Neo4j에 로드할 수 있는 두 가지 오픈 소스 도구입니다.

지도 제작은 클라우드 인프라 감사를 위한 오픈 소스 도구에요. 퍼블릭 클라우드, Kubernetes 설정, Github 계정, Okta 설치 및 PagerDuty를 스캔하고 해당 정보를 Neo4j의 그래프에 표시하죠. 간단한 시작점을 찾고 있다면 Cartography는 조직의 네트워크를 Neo4j에 로드하는 데 도움이 되는 좋은 도구가 될 수 있어요.

Neo4j에 위협 인텔리전스 로드

사이버 보안의 취약성, 약점, 공격 패턴의 환경은 끊임없이 진화하고 있어요. MITRE와 NIST는 모두 이러한 항목을 설명하는 공개 데이터를 게시하고 있는데, GraphKer는 이 데이터를 쉽게 시각화하고 분석할 수 있도록 설계되었답니다.

GraphKer는 MITRE 및 NIST에서 제공하는 모든 CVE, CWE, CAPEC 및 CPE의 모든 공개 기록을 나타내고 Neo4j를 사용하여 연결해요.

이 Python 도구는 MITRE 및 NIST 웹 사이트를 스크랩하고 Neo4j에 데이터를 로드해요. 또한 데이터는 Neo4j에 쉽게 로드할 수 있는 Neo4j 데이터베이스 백업 파일로 정기적으로 게시되죠. 그런 다음 Neo4j Bloom과 같은 탐색 도구를 사용하여 데이터를 빠르게 검사하거나 Cypher를 사용하여 쿼리할 수 있어요.

이 데이터를 네트워크를 설명하는 그래프의 데이터와 연결할 수 있어요. 예를 들어, 컴퓨터에서 실행 중인 소프트웨어를 관련 취약성 데이터베이스 항목에 연결하고 데이터를 자동으로 업데이트하여 최신 취약성을 쉽게 확인하고 관련 수정 사항을 사전에 적용할 수 있죠.

이 블로그의 코드를 작동시키려면 다음에서 다운로드하세요.Github 저장소.

사이버 보안 백서에 대한 전체 그래프 그래프를 읽어보세요.
무료 백서 받기
  • 사이버보안

에이치시스템즈LogTree는 Neo4j 기반 GraphRAG 플랫폼으로, 데이터를 자동으로 지식그래프화하고 자연어 질의로 즉시 답을 제공합니다.

👉 에이치시스템즈 홈페이지

728x90
반응형

+ Recent posts