2017-01-16 2 views
1

Мы ищем информацию о дереве процессов Windows в базе данных графа.График db: как запускать событие?

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

Данные будут загружены в базу данных графа в режиме реального времени.

Есть ли способ в Neo4j инициировать событие в любое время, когда мы видим «iexplore.exe» в качестве родителя процессов, таких как «powershell.exe» или «cmd.exe»? В некоторых случаях может быть несколько других процессов между iexplore и powershell/cmd.

Например: злоумышленник использует уязвимость в IE, капли файла на диске, выполняет его, а затем использует powershell.exe.

Есть ли базы данных графов, которые предоставляют нам возможность создавать правила для сбора более сложных событий?

+0

Ваше мнение о том, что это «лучше» граф базы данных»(и почему вы выбираете один конкретный бренд) действительно не имеет отношения также не просит рекомендаций по альтернативным инструментам (инструмент/продукт/вопросы с рекомендациями по сервисам не по теме). Я отредактировал этот материал из вашего вопроса. –

+0

Что касается самого вопроса: Neo4j не имеет способа уведомить вас об уровне OS-процесса. Вам потребуется какой-то тип приложения/инструмента для мониторинга процессов чтобы сделать это. По крайней мере, это похоже на вопрос, который вы задаете. Возможно, это неправильная интерпретация. Вероятно, это поможет, если вы отредактировали свой вопрос, чтобы уточнить. –

+0

Какое действие должно выполнять триггер? –

ответ

1

Вы можете использовать apoc triggers для набора триггеров и apoc.es.postRaw для внешнего вызова API. Например:.

CALL apoc.trigger.add(
     'iexplorer', 
     'MATCH (P:Process {name:"iexplore.exe"})-[:parent_of*]->(C:Process) 
      WHERE C.name IN ["powershell.exe", "cmd.exe"] 
     WITH collect(distinct id(P)) as ids 
     CALL apoc.es.postRaw("http://localhost", "neo4jevent", ids) yield value 
     RETURN value', 
     '{phase:'after'}' 
) 
Смежные вопросы