Najbardziej zaawansowana aplikacja do ochrony cybernetycznej dla Androida - Bitdefender Mobile Security & Antivirus

Pobierz
Bitdefender
  • 0

FAQ – Produkty dla firmy

Jak zbudować złącza API usługi Push Push dla standardu CEF

fota

Krzysztof B.

21 maja 2019

Przegląd Integracji

CEF (Common Event Format (Wspólny Format Zdarzeń)) jest rozciągliwym, bazującym na tekście formatem używanym przez zarządzanie dziennikiem. Bitdefender GravityZone jest teraz w stanie dostarczać alerty używając standardu CEF poprzez integrację z Twoim ESM.

W tym przykładzie standardowej integracji z CEF, komunikacja pomiędzy GravityZone i ESM jest zrobiona przez Node.js Connector. Złącze to używa metody POST, aby odbierać uwierzytelnione żądania z GravityZone Event Push Service API. Żądania są analizowane, a następnie przekazywane dalej do lokalnego, zdalnego serwera Syslog.

Warunki wstępne

– Serwer Ubuntu 16.04

– Zainstalowany Node.js w wersji 8.1.x lub nowszy

Wiadomość HTTP

Event Push Service Request Header

Authorization: {authorization_string}

Event Push Service Payload

{
"cef": "0",
"events": [
"CEF:0|Bitdefender|GravityZone|6.4.0-8|70000|Registration"3"BitdefenderGZModule=registration
dvchost=TEST_ENDPOINTasdad BitdefenderGZComputerFQDN=testendpoint.dsd.ro dvc=10.10.18.227 ",
"CEF:0|Bitdefender|GravityZone|6.4.0-8|35|Product Modules
Status|5|BitdefenderGZModule=modules dvchost=TEST_ENDPOINTasdad
BitdefenderGZComputerFQDN-test-endpoint.dsd.ro dvc=10.10.18.227
",
"CEF:0|Bitdefender|GravityZone|6.4.0-8|35|Product Modules
Status|5|BitdefenderGZModule=modules dvchost=TEST_ENDPOINTasdad
BitdefenderGZComputerFQDN=test-endpoint.dsd.ro dvc=10.10.18.227 "
]
}

Tworzenie Złącza Node.js

Aby zbudować Złącze Node.js, podążaj za tymi krokami:

Krok 1: Utwórz folder dla złącza.

Utwórz katalog na swoim serwerze, na którym chciałbyś umieścić aplikację.

Krok 2: Utwórz plik package.json

Utwórz nowy plik nazwany package.json w następujący sposób:

{
"name": "app-name",
"version": "1.0.0",
"description": "client that will be able to receive authenticated POST
request and write each row in the local or remote syslog",
"main": "server.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "MIT",
"dependencies": {
}
}

Krok 3: Sprowadź zależności

– Express framework

Express jest minimalną i elastyczną strukturą aplikacji WWW Node.js, która zapewnia solidny zestaw funkcji dla aplikacji internetowych, oraz mobilnych.

Użyj Express, aby utworzyć serwer http, a następnie wprowadź następujące polecenie, aby umieścić go w pliku package.json:

$ npm install express --save

– Analizator składniowy body

Postępuj zgodnie z instrukcjami oprogramowania pośredniego analizowania treści body Node.js, aby przeanalizować przychodzące żądania body w oprogramowaniu pośrednim przed procedurami obsługi dostępnymi pod właściwością req.body.

$ npm install body-parser --save

– Klient Syslog

Postępuj zgodnie z instrukcjami modułu klienta Syslog, aby wysyłać powiadomienia o zdarzeniach w sieciach.

$ npm install syslog-client --save

Krok 4: Utwórz plik config.json

Plik ten zawiera informacje konfiguracyjne używane podczas uruchamiania server.js. Użyj następującej ścieżki w celu konfiguracji pliku:

APP_ROUTE/api/config

Zmienne plików:

authentication_string : używane w server.js w celu sprawdzania poprawności wartości z req.headers.autgorization

target : adres IP Twojego klienta syslog.

transport : poprawne wartości dla transportu (TCP/UDP), używane również do konfigurowania klienta syslog.

syslog_port ​: port TCP, lub UDP do wysyłania wiadomości.

port 3200 : Start serwera na porcie 3200

Przykład:

{
"port": 3200,
"syslog_port": 515,
"transport": "Tcp",
"target": "10.17.23.68",
"authentication_string": "Basic dGVzdDp0ZXN0"
}

Krok 5: Utwórz plik server.js

Wymagane zależności aplikacji:

server.js
// Wymaga express'a i utworzenia jego instancji
const express = require('express');
const app = express();
Require node File System module
const fs = require('fs');
// Wymaga analizatora body i utworzenia instancji json analizatora tekstu
const bodyParser = require('body-parser');
const textParser = bodyParser.json();
// Wymaga epsSyslogHelper -> ta część będzie wyjaśniona poniżej
const epsSyslogHelper = require('./api/epsSyslogHelper');

 

1. Wczytaj plik konfiguracyjny. Ścieżka pliku konfiguracyjnego jest odbierana jako parametr na uruchomionym serwerze węzłowym.

node server.js {ścieżka dla pliku konfiguracji}

server.js
if (!process.argv[2]) {
 throw "Missing input file parameter";
}
let configPath = process.argv[2];
const config = JSON.parse(fs.readFileSync(configPath, 'utf8'));

2. Sprawdź req.header.authorization

Jeśli autoryzacyjny łańcuch znaków jest taki sam jak z twojego pliku konfiguracyjnego, kontynuuj. W przeciwnym razie wpisz not return, aby zatrzymać wykonywanie

3.

server.js
// użyj podstawowej autoryzacji HTTP do zabezpieczenia interfejsu api
app.use('/api', (req, res, next) => {
 console.log(req.headers.authorization);
 // sprawdź podstawowy nagłówek autoryzacji
 if (!req.headers.authorization) {
 return res.status(401).json({ message: 'Missing Authorization
Header' });
 }
 // zweryfikuj poświadczenia autoryzacji
 const authorizationString = req.headers.authorization;
 if (config.authentication_string !== authorizationString) {
 return res.status(401).json({ message: 'Invalid Authentication
Credentials' });
 }
 next();
});

4. Dodaj trasę, która odpowiada na żądanie przychodzące z inrfejsu Event Push Service API. Zaktualizuj body i zaloguj się za pomocą epsSyslogHelper.js

server.js
// url: http://{server_url}:{port}/api/
app.post('/api', textParser, (request, response) => {
 const body = request.body;
 let syslogHelper = new epsSyslogHelper(config);
 syslogHelper.log(body);
 response.sendStatus(200);
});

5. Ustaw serwer w tryb nasłuchiwania na porcie skonfigurowanym w pliku config.json:

app.listen(config.port, () => console.log(`Listening on port
${config.port}`));

Krok 6: Stwórz plik epsSyslogHelpers.js

Wymagane zależności aplikacji:

1. Włącz serwer Klienta bazujący na pliku konfiguracyjnym.

epsSyslogHelper.js
/**
* EventConverter class
*/
EpsSyslogHelper = function (config) {
 let hostName = os.hostname();
 if (!hostName) {
 hostName = 'localhost';
 }
 let dot = hostName.indexOf('.');
 if (dot > 0) {
 hostName = hostName.substring(0, dot);
 }
 console.log('Logging using host name %s', hostName);
 this._client = syslog.createClient(config.target, {
 syslogHostname: hostName,
 port: config.syslog_port,
 transport: syslog.Transport[config.transport],
 });
 this._client.on('error', function(err) {
 console.error('Error from syslog network: %s', err);
 });
};

2. Zaktualizuj wiadomość, oraz dziennik zdarzeń.

epsSyslogHelper.js
EpsSyslogHelper.prototype.log = function _log(msg) {
 let options = {
 facility: syslog.Facility.Local0,
 severity: syslog.Severity.Informational
 };
 let events;
 if(msg.hasOwnProperty('cef')){
 //events = msg.params.events;
 events = msg.events;
 }
 if(events){
 for(let eventKey in events) {
 let syslogMessage = events[eventKey];
 if(typeof syslogMessage !== 'string') {
 syslogMessage = JSON.stringify(syslogMessage);
 }
 console.log("Event key = " + eventKey + " is = " +
syslogMessage);
 this._client.log(syslogMessage, options, function (err) {
 if (err) {
 console.log(err);
 } else {
 console.log('Sent to syslog')
 }
 });
 }
 }
};

Krok 7: Włącz serwer węzłowy

Aby włączyć używając pliku konfiguracyjnego wpisz następujące polecenie:

node server.js {ścieżka_do_pilku_konfiguracyjnego} (w tym wypadku
api/config/config.json)

Źródło: https://www.bitdefender.com/support/building-an-event-push-service-api-connector-for-cef-standard-2373.html 


Autor


fota

Krzysztof B.

Pochodzę z Gdyni i jestem certyfikowanym inżynierem produktów z rodziny Bitdefender. Na co dzień zajmuję się pomocą techniczną wersji biznesowej GravityZone.

Zobacz posty autora


Artykuły które mogą Ci się spodobać

Formularz kontaktowy

Wybierz odpowiednią opcję aby przejść do formularza kontaktowego. Odpowiemy najszybciej jak to możliwe!

    Dane kontaktowe

      Dane kontaktowe
      Do 10 osóbDo 50 osóbWięcej niż 50 osób
      Do 20 urządzeńDo 50 urządzeńDo 100 urządzeńWięcej niż 100 urządzeń

        Dane kontaktowe
        Partner stałyPoczątek współpracy
        ×

        Informacje o bezpieczeństwie produktu (GPSR)

        Producent

        Bitdefender

        Nazwa własna: Bitdefender
        Adres: 15A Orhideelor Road, Orhideea Towers
        060071 Bukareszt, 6. Dzielnica
        Rumunia

        Kontakt:
        https://www.bitdefender.com/consumer/support/help/
        Contact Support - Bitdefender

        Ostrzeżenia dotyczące bezpieczeństwa

        Lista ostrzeżeń dotyczących bezpieczeństwa antywirusów i bezpieczeństwa oparta o wymagania Rozporządzenia (UE) 2023/988 w sprawie ogólnego bezpieczeństwa produktów (GPSR).

        Oprogramowanie antywirusowe i zabezpieczające to szeroka kategoria produktów, dlatego poniższe ostrzeżenia mają charakter ogólny i mogą nie odnosić się do wszystkich konkretnych produktów.

        Instrukcja bezpieczeństwa dla programów antywirusowych i zabezpieczających

        1. Wybór odpowiedniego oprogramowania

        • Wybieraj programy z uznanych źródeł, takich jak oficjalne strony producentów.
        • Zwracaj uwagę na oceny i recenzje użytkowników oraz niezależnych organizacji zajmujących się testowaniem oprogramowania.

        2. Aktualizacje

        • Regularnie aktualizuj programy antywirusowe i zabezpieczające, aby mieć pewność, że są one chronione przed najnowszymi zagrożeniami.
        • Włącz automatyczne aktualizacje, jeśli to możliwe.

        3. Skanowanie systemu

        • Przeprowadzaj regularne skanowania całego systemu w celu wykrycia potencjalnych zagrożeń.
        • Ustaw harmonogram skanowania, aby nie zapomnieć o tej czynności.

        4. Ochrona w czasie rzeczywistym

        • Upewnij się, że funkcja ochrony w czasie rzeczywistym jest włączona, aby zminimalizować ryzyko infekcji.
        • Monitoruj aktywność programu antywirusowego i reaguj na wszelkie zgłoszone zagrożenia.

        5. Bezpieczeństwo Internetu

        • Korzystaj z dodatkowych funkcji, takich jak zapory ogniowe i filtry ochrony prywatności.
        • Bądź ostrożny przy pobieraniu plików oraz wchodzeniu na nieznane strony internetowe.

        6. Zarządzanie dostępem

        • Ogranicz dostęp do programów zabezpieczających tylko do zaufanych użytkowników.
        • Używaj silnych haseł do kont związanych z oprogramowaniem zabezpieczającym.

        7. Edukacja użytkowników

        • Przeszkol wszystkich użytkowników korzystających z systemu w zakresie bezpieczeństwa.
        • Wprowadź zasady dotyczące rozpoznawania potencjalnych zagrożeń, takich jak phishing.

        8. Tworzenie kopii zapasowych

        • Regularnie twórz kopie zapasowe ważnych danych, aby w razie infekcji móc przywrócić system do stanu przed atakiem.
        • Upewnij się, że kopie zapasowe są przechowywane w bezpiecznym miejscu, oddzielonym od głównego systemu.

        9. Reakcja na zagrożenia

        • W przypadku wykrycia zagrożenia, niezwłocznie postępuj zgodnie z instrukcjami programu antywirusowego.
        • Rozważ konsultację z profesjonalnym serwisem w sytuacji poważnych infekcji.

        10. Zgłaszanie problemów

        • Zgłaszaj wszelkie nieprawidłowości lub problemy z działaniem oprogramowania do odpowiednich kanałów wsparcia technicznego.

        Przestrzeganie powyższych wytycznych pomoże w skutecznej ochronie systemu przed zagrożeniami oraz w zapewnieniu bezpieczeństwa danych.