Сборка для подключения сервиса к ArcSight. Содержит классы, позволяющие отправить стандартное сообщение в формате CEF в канал передачи данных.
Основной класс - ArcSightClient. Он позволяет сериализовать входящее сообщение в формат, заданный настройками.
Настройки, задаваемые в конфигурации:
- Доменное имя сервера, на который передаются данные
- Порт сервера
- Версия протокола сериализации данных
- Тип транспортного протокола
Для отправки используется класс CefMessage. Класс содержит всю информацию, необходимую для идентификации инцидента системой ArcSight. В случае ошибки валидации сущности возникает исключение CefMessageValidationException
-
Добавляем в класс зависимость от IArcSightClient.
-
Добавляем файл конфигурации appsettings.json,
{ "arcSight": { "serverHost": "localhost", "serverPort": "60", "syslogVersion": "rfc3164", "protocol": "tcp" }
-
Создаем экземпляр класса CefMessage. Сообщение автоматически валидируется при создании.
-
Вызывает метод Send интерфейса IArcSightClient, передав туда созданное на шаге 3 сообщение.
public class ArcSightSendingService : IArcSightSendingService { private readonly IArcSightClient _arcSightClient; private readonly IMapperFactory _mapperFactory;
public ArcSightSendingService(IArcSightClient arcSightClient, IMapperFactory mapperFactory)
{
_arcSightClient = arcSightClient.ThrowIfNull("arcSightClient");
_mapperFactory = mapperFactory.ThrowIfNull("mapperFactory");
}
public void SendViewingEvent(LoggingMessage message)
{
var mapper = _mapperFactory.Create<LoggingMessage, ICollection<CEFMessage>>();
var cefMessages = mapper.Map(message);
foreach (var cefMessage in cefMessages)
{
_arcSightClient.Send(cefMessage);
}
}
}
- RFC 3164
- RFC 5424