Solutions: élastique SIEM - pour la maison et la sécurité des affaires (b)

Cet article est le précédent article « Solutions: élastique SIEM - pour la maison et la sécurité des affaires (a) , » la suite. Dans l'article précédent, nous avons fait une brève introduction élastique SIEM. Dans cet article, nous prenons un sujet avant de poursuivre. Nous devons opérer.

Comprendre élastique SIEM

Au cours de notre SIEM cette série de blog, avec l'ajout de divers dispositifs à ElasticSearch lorsqu'il est déployé, nous serons en mesure d'afficher les données dans les nouvelles applications de SIEM. Tel est l'environnement du système avec sept dans la page échantillon « hôte et réseau »:

                                                                                             Hôtes page de démonstration applications SIEM

 

                                                                                                 page de démonstration réseau applications SIEM

 

En lisant cette série d'articles, nous allons marcher à travers la façon de recueillir des données et envoyer différents équipements de celui-ci à notre déploiement ElasticSearch. Dans les prochains articles, nous explorerons les données du élastique SIEM. Notre objectif est de couvrir les sujets suivants:

  • Ajoutez les données GeoIP à nos événements réseau
  • Accès sécurisé à notre groupe élastique
  • À partir de Windows et la collecte des données de configuration du périphérique Linux
  • Firewalls et les serveurs DNS pour les données Collect
  • Dans les cartes élastiques GeoIP la visualisation des données. Nous allons également procéder à la visualisation des données plus avancées (même si la version élastique Stack 7.4 est inclus dans la carte d'application SIEM) en utilisant l'application Cartes élastiques.
  • Et d'autres sources de données configurées pour traiter les cas d'utilisation avancée

Ceci est un exemple visuel de ce que vous naviguez sur le billet de blog peut être créé:

 

D'accord, nous allons en apprendre davantage sur les deux cas avec l'environnement, créer notre déploiement ElasticSearch, et finaliser un certain nombre de projets technologiques connexes. Une fois que notre déploiement ElasticSearch prêt, nous allons introduire le processus de collecte de données à partir de postes de travail, ordinateurs portables et la configuration des périphériques réseau dans cette série de blog suivi.

Installation elasticsearch et Kibana

Pour notre environnement de test, nous avons plusieurs options:

Dans la pratique d'aujourd'hui, je vais principalement Stack élastique de la machine à raconter. Pour d'autres environnements, ils sont fondamentalement les mêmes.

Environnement de test

Mon environnement de test est la suivante:

Dans le contexte ci-dessus, j'ai installé ElasticSearch et Kibana sur la machine MacOS et installer Ubuntu OS 18,04 et Windows 10 dans les deux autres machines virtuelles.

ElasticSearch

I « conformément à la documentation sur l'installation ElasticSearch sous Linux, MacOS et Windows l'installation de ElasticSearch. Mais pour être en mesure de faire mon ElasticSearch être accessible à d' autres machines virtuelles, je fichier de configuration ElasticSearch de config / elasticsearch.yml fait les configurations suivantes:

cluster.name: elasticsearch
node.name: node1
network.host: _site_
cluster.initial_master_nodes: ["node1"]

Dans ce qui précède, nous avons appelé à cluster.name ElasticSearch, et donner le nom du nœud est node1. Si tout ce qui précède est définie comme _site_ comprennent network.host pas, vous pouvez vous référer à la documentation . Cela signifie que le ElasticSearch de 9200 se lier à toutes les interfaces réseau. Après avoir modifié le fichier elasticsearch.yml ci - dessus, nous remettons en marche ElasticSearch, nous pouvons voir:

le port 9200 ci-dessus a été obligatoire avec succès sur toutes les adresses réseau actuelles du. Nous pouvons vérifier notre interface web via la commande suivante:

ifconfig

Nous pouvons aborder sont les ports d'entrée ci-dessus 9200 dans notre navigateur. Si vous pouvez voir la sortie, cela signifie que lorsque nous corrigeons l'installation.

 

Kibana

Nous « Selon l'article Comment installer de Elastic Kibana sous Linux, MacOS et Windows » pour installer Kibana. Pour pouvoir accéder ElasticSearch nous avons installé ci - dessus, nous devons faire les ajustements appropriés dans la valeur par défaut dans Kibana. Nous modifions le fichier de configuration / kibana.yml:

server.host: "192.168.43.220"
elasticsearch.hosts: ["http://192.168.43.220:9200"]

S'il vous plaît ne remplacer par votre propre environnement au nom de l'hôte, mais il faut aussi apporter les modifications appropriées en fonction de l'adresse IP de votre ElasticSearch. Lorsque nous modifions terminé, nous relançons notre Kibana. Dans notre navigateur, nous entrons dans l'adresse IP correspondante: 5601 pour voir l'installation est correcte:

Si vous pouvez voir la sortie de ce qui précède, cela signifie que l'installation de notre Kibana est correcte.

 

acquisition de données de montage

Déterminer nos exigences en matière de collecte de données

Avant de télécharger, installer ou quoi que ce soit de configuration, nous avons besoin d'identifier les besoins de collecte de données. Nous devons également déterminer nos données GeoIP afin de pouvoir profiter de caractéristiques de la carte ou l'application élastique SIEM application Cartes élastiques. Pour les appareils à portée, nous allons inclure tous les ordinateurs de bureau et ordinateurs portables, y compris également les serveurs Windows et Linux appartenant à des petites entreprises.

Afin de recueillir des données des serveurs, postes de travail et ordinateurs portables, nous allons utiliser certaines applications élastiques Beats. Nous avons besoin de recueillir des fichiers journaux, l'activité des utilisateurs et processus et les données du réseau. En raison de nos deux cas d'utilisation du matériel Windows et Linux, donc nous devons déterminer ce que Beats applications pour répondre à nos besoins. À un niveau élevé, ce qui est un aperçu de chaque Beats élastique:

  • Auditbeat : les processus d'audit et les activités des utilisateurs (principalement pour les systèmes Linux)
  • Filebeat : Surveillez votre fichier journal spécifié ou l' emplacement, pour recueillir les événements du journal
  • Heartbeat : la disponibilité grâce à des services de détection proactive de surveillance
  • Metricbeat : du système d' exploitation et exécutant le service aux mesures Collectionnez
  • Packetbeat : analyseur de paquets réseau en temps réel
  • Winlogbeat : événement spécifique Windows journal de l' agent d'expédition

Sur la base de cette vue d'ensemble, nous devrons utiliser Auditbeat en téléchargeant et configuration de l'application de transfert de données, Filebeat, Packetbeat et Winlogbeat recueillir des données.

Dans ce blog, nous utiliserons Winlogbeat configurer l'ensemble par défaut des événements Windows. Derrière la série de blog, nous mettrons à jour la configuration pour couvrir nos cas d'utilisation.

Beats sur la configuration, nous devons garder à l'esprit la configuration Beats ayant une configuration classique est partagée (en plus des configurations classiques, chacun ayant un paramètres spécifiques supplémentaires respectifs), et donc lorsque les battements déployés dans notre système, nous allons utiliser le premier système système de configuration pour configurer d'autres.

Déterminer nos données GeoIP

parce que nous utiliserons les données dans le fichier de configuration Avant d'installer et de configurer les Beats, nous devrons déterminer si vous souhaitez ajouter les données GeoIP à chaque configuration Beats,. Sur nos machines, notre petite entreprise (ou à la maison) situé à Pékin, notre situation est la latitude et la longitude 39,931854 116,470528, notre continent est l'Asie, est CN, notre nom de la région de notre pays est le code ISO Beijing, notre région est le code ISO CN-BJ.

L'utilisation des informations ci-dessus, nous serons l'hôte de l'information GeoIP:

processors: 
  - add_host_metadata:
      netinfo.enabled: true
      geo: # These Geo configurations are optional
        location: 39.931854, 116.470528
        continent_name: Asia
        country_iso_code: CN
        region_name: Beijing
        region_iso_code: CN-BJ
        city_name: Beijing city
        name: myLocation
  - add_locale: ~ 
  - add_cloud_metadata: ~ 
  - add_fields: 
      when.network.source.ip: private 
      fields: 
        source.geo.location: 
          lat: 39.931854 
          lon: 116.470528
        source.geo.continent_name: Asia
        source.geo.country_iso_code: CN
        source.geo.region_name: Beijing
        source.geo.region_iso_code: CN-BJ
        source.geo.city_name: Beijing city
        source.geo.name: myLocation
      target: '' 
  - add_fields: 
      when.network.destination.ip: private 
      fields: 
        destination.geo.location: 
          lat: 39.931854 
          lon: 116.470528 
        destination.geo.continent_name: Asia
        destination.geo.country_iso_code: CN
        destination.geo.region_name: Beijing
        destination.geo.region_iso_code: CN-BJ
        destination.geo.city_name: Beijing city
        destination.geo.name: myLocation
      target: ''

Bien que nous voyons des informations en double dans le fichier de configuration, mais ils sont importants car ils peuvent dire l'emplacement Beats ElasticSearch notre réseau privé sur la carte.

Maintenant, nous sommes prêts données GeoIP, nous allons commencer l'installation et la configuration Beats sur votre premier ordinateur à domicile ou entreprise.

Installation Winlogbeat

Ensuite, nous avons installé Winlogbeat. Nous lirons « Beats: Comment utiliser Winlogbeat » pour commencer. , Nous avons besoin ici de modifier notre fichier winlogbeat.yml. A part conformément à ce qui précède pour modifier notre processeur, nous devons aussi Kibana et ElasticSearch configuré selon notre configuration:

setup.kibana:

  # Kibana Host
  # Scheme and port can be left out and will be set to the default (http and 5601)
  # In case you specify and additional path, the scheme is required: http://localhost:5601/path
  # IPv6 addresses should always be defined as: https://[2001:db8::1]:5601
  host: "192.168.43.220:5601"

output.elasticsearch:
  # Array of hosts to connect to.
  hosts: ["10.211.55.2:9200"]

monitoring.enabled: true

Nous devons être modifiés en fonction de l'adresse IP de notre hôte ci-dessus. Dans l'environnement Windows, nous pouvons trouver l'adresse IP actuelle via la commande suivante. L'adresse ci-dessus IP est ElasticSearch et Kibana adresse IP dans notre fonctionnement hôte MacOS. Après avoir installé Winlogbeat, avant de terminer la configuration initiale, ne pas démarrer le service.

Ouvrez une gestion de session PowerShell. Nous vous enverrons \ install-service-winlogbeat.ps1 commande (comme indiqué ci-dessous) pour installer le service:

Le message d'erreur précédent semble que nous avons une interdiction ce script à exécuter. Nous devons traiter la commande Débloquer-fichier install-service winlogbeat.ps1 à la commande. Les résultats finaux montrent ce qui suit:

PowerShell.exe -ExecutionPolicy UnRestricted -File .\install-service-winlogbeat.ps1                                                                                                                

Nous avons donc installé winlogbeat en tant que service. Nous profitons de ce retour de service dans l'autre, de sorte que lancer au démarrage.

Nous courons:

 .\winlogbeat.exe setup                                                     Overwriting ILM policy is disabled. Set `setup.ilm.overwrite:true` for enabling.

Index setup finished.
Loading dashboards (Kibana must be running and reachable)
Exiting: error connecting to Kibana: fail to get the Kibana version: HTTP GET request to http://10.211.55.2:5601/api/status fails: fail to execute the HTTP GET request: Get http://10.211.55.2:5601/api/status: dial tcp 10.211.55.2:5601: connectex: No connection could be made because the target machine actively refused it.. Response: .
PS C:\beats\winlogbeat-7.6.1-windows-x86_64> .\winlogbeat.exe setup                                                     Overwriting ILM policy is disabled. Set `setup.ilm.overwrite:true` for enabling.

Index setup finished.
Loading dashboards (Kibana must be running and reachable)
Loaded dashboards

Ensuite, nous courons:

 .\winlogbeat.exe -e -c winlogbeat.yml

Cette fois-ci pour ouvrir notre Kibana, nous pouvons voir winlogbeat l'index:

Nous considérons les données recueillies jusqu'à:

On peut voir de ce qui précède, nous sortons avant d'ajouter le processeur a fonctionné. Nous pouvons voir les informations recueillies géo. Notre fichier winlogbeat.yml ultime suit comme:

###################### Winlogbeat Configuration Example ########################

# This file is an example configuration file highlighting only the most common
# options. The winlogbeat.reference.yml file from the same directory contains
# all the supported options with more comments. You can use it as a reference.
#
# You can find the full configuration reference here:
# https://www.elastic.co/guide/en/beats/winlogbeat/index.html

#======================= Winlogbeat specific options ===========================

# event_logs specifies a list of event logs to monitor as well as any
# accompanying options. The YAML data type of event_logs is a list of
# dictionaries.
#
# The supported keys are name (required), tags, fields, fields_under_root,
# forwarded, ignore_older, level, event_id, provider, and include_xml. Please
# visit the documentation for the complete details of each option.
# https://go.es.io/WinlogbeatConfig
winlogbeat.event_logs:
  - name: Application
    ignore_older: 72h

  - name: System

  - name: Security
    processors:
      - script:
          lang: javascript
          id: security
          file: ${path.home}/module/security/config/winlogbeat-security.js

  - name: Microsoft-Windows-Sysmon/Operational
    processors:
      - script:
          lang: javascript
          id: sysmon
          file: ${path.home}/module/sysmon/config/winlogbeat-sysmon.js

#==================== Elasticsearch template settings ==========================

setup.template.settings:
  index.number_of_shards: 1
  #index.codec: best_compression
  #_source.enabled: false


#================================ General =====================================

# The name of the shipper that publishes the network data. It can be used to group
# all the transactions sent by a single shipper in the web interface.
name: liuxg

# The tags of the shipper are included in their own field with each
# transaction published.
tags: ["Home", "WorkPC"]

# Optional fields that you can specify to add additional information to the
# output.
#fields:
#  env: staging


#============================== Dashboards =====================================
# These settings control loading the sample dashboards to the Kibana index. Loading
# the dashboards is disabled by default and can be enabled either by setting the
# options here or by using the `setup` command.
#setup.dashboards.enabled: false

# The URL from where to download the dashboards archive. By default this URL
# has a value which is computed based on the Beat name and version. For released
# versions, this URL points to the dashboard archive on the artifacts.elastic.co
# website.
#setup.dashboards.url:

#============================== Kibana =====================================

# Starting with Beats version 6.0.0, the dashboards are loaded via the Kibana API.
# This requires a Kibana endpoint configuration.
setup.kibana:

  # Kibana Host
  # Scheme and port can be left out and will be set to the default (http and 5601)
  # In case you specify and additional path, the scheme is required: http://localhost:5601/path
  # IPv6 addresses should always be defined as: https://[2001:db8::1]:5601
  host: "192.168.43.220:5601"

  # Kibana Space ID
  # ID of the Kibana Space into which the dashboards should be loaded. By default,
  # the Default Space will be used.
  #space.id:

#============================= Elastic Cloud ==================================

# These settings simplify using Winlogbeat with the Elastic Cloud (https://cloud.elastic.co/).

# The cloud.id setting overwrites the `output.elasticsearch.hosts` and
# `setup.kibana.host` options.
# You can find the `cloud.id` in the Elastic Cloud web UI.
#cloud.id:

# The cloud.auth setting overwrites the `output.elasticsearch.username` and
# `output.elasticsearch.password` settings. The format is `<user>:<pass>`.
#cloud.auth:

#================================ Outputs =====================================

# Configure what output to use when sending the data collected by the beat.

#-------------------------- Elasticsearch output ------------------------------
output.elasticsearch:
  # Array of hosts to connect to.
  hosts: ["10.211.55.2:9200"]

  # Protocol - either `http` (default) or `https`.
  #protocol: "https"

  # Authentication credentials - either API key or username/password.
  #api_key: "id:api_key"
  #username: "elastic"
  #password: "changeme"

#----------------------------- Logstash output --------------------------------
#output.logstash:
  # The Logstash hosts
  #hosts: ["localhost:5044"]

  # Optional SSL. By default is off.
  # List of root certificates for HTTPS server verifications
  #ssl.certificate_authorities: ["/etc/pki/root/ca.pem"]

  # Certificate for SSL client authentication
  #ssl.certificate: "/etc/pki/client/cert.pem"

  # Client Certificate Key
  #ssl.key: "/etc/pki/client/cert.key"

#================================ Processors =====================================

# Configure processors to enhance or manipulate events generated by the beat.

processors:
processors: 
  - add_host_metadata:
      netinfo.enabled: true
      geo: # These Geo configurations are optional
        location: 39.931854, 116.470528
        continent_name: Asia
        country_iso_code: CN
        region_name: Beijing
        region_iso_code: CN-BJ
        city_name: Beijing city
        name: myLocation
  - add_locale: ~ 
  - add_cloud_metadata: ~ 
  - add_fields: 
      when.network.source.ip: private 
      fields: 
        source.geo.location: 
          lat: 39.931854 
          lon: 116.470528
        source.geo.continent_name: Asia
        source.geo.country_iso_code: CN
        source.geo.region_name: Beijing
        source.geo.region_iso_code: CN-BJ
        source.geo.city_name: Beijing city
        source.geo.name: myLocation
      target: '' 
  - add_fields: 
      when.network.destination.ip: private 
      fields: 
        destination.geo.location: 
          lat: 39.931854 
          lon: 116.470528 
        destination.geo.continent_name: Asia
        destination.geo.country_iso_code: CN
        destination.geo.region_name: Beijing
        destination.geo.region_iso_code: CN-BJ
        destination.geo.city_name: Beijing city
        destination.geo.name: myLocation
      target: ''
#================================ Logging =====================================

# Sets log level. The default log level is info.
# Available log levels are: error, warning, info, debug
#logging.level: debug

# At debug level, you can selectively enable logging only for some components.
# To enable all selectors use ["*"]. Examples of other selectors are "beat",
# "publish", "service".
#logging.selectors: ["*"]

#============================== X-Pack Monitoring ===============================
# winlogbeat can export internal metrics to a central Elasticsearch monitoring
# cluster.  This requires xpack monitoring to be enabled in Elasticsearch.  The
# reporting is disabled by default.

# Set to true to enable the monitoring reporter.
monitoring.enabled: true

# Sets the UUID of the Elasticsearch cluster under which monitoring data for this
# Winlogbeat instance will appear in the Stack Monitoring UI. If output.elasticsearch
# is enabled, the UUID is derived from the Elasticsearch cluster referenced by output.elasticsearch.
#monitoring.cluster_uuid:

# Uncomment to send the metrics to Elasticsearch. Most settings from the
# Elasticsearch output are accepted here as well.
# Note that the settings should point to your Elasticsearch *monitoring* cluster.
# Any setting that is not set is automatically inherited from the Elasticsearch
# output configuration, so if you have the Elasticsearch output configured such
# that it is pointing to your Elasticsearch monitoring cluster, you can simply
# uncomment the following line.
#monitoring.elasticsearch:

#================================= Migration ==================================

# This allows to enable 6.7 migration aliases
#migration.6_to_7.enabled: true

 

Winlogbeat exécuter en tant que service

Maintenant commencer Winlogbeat servi! Dans notre séance PowerShell de gestion, nous établirons une commande winlogbeat Start-Service (voir ci-dessous) de l'appareil pour commencer à collecter des applications Windows, système et journal de sécurité. Nous nous sommes arrêtés winlogbeat, puis utilisez la commande suivante pour démarrer le service:

Start-Service winlogbeat

On peut voir le fonctionnement du service de notre winlogbeat par la commande suivante:

Get-Service winlogbeat 

Ci-dessus, notre service winlogbeat est en cours d'exécution. Nous pouvons arrêter le service run winlogbeat par la commande suivante:

Stop-Service winlogbeat


Afficher l'application SIEM

Dans ce qui précède, nous avons passé avec succès notre Windows dans les données à ElasticSearch. Il est maintenant le temps de nous montrer les données. Nous avons ouvert Kibana, et cliquez sur les applications SIEM:

Dans ce qui précède, nous pouvons voir qu'il ya une foule, il y a 392 connexion de l'utilisateur, et aucun échec. Il a une adresse IP unique:

Nous pouvons cliquer sur le lien ci-dessus XIAGUOLIU4100, nous pouvons voir tous les détails de cet hôte:

Nous pouvons voir la situation de tous connecté.

Nous pouvons également cliquer sur le réseau pour afficher l'utilisation de l'Internet:

À l'heure actuelle, nous n'avons pas beaucoup d'accès au réseau, donc pas beaucoup de données.

Eh bien, aujourd'hui , nous sommes allés à la démo ici. Dans le prochain article, nous allons installer auditbeat et packetbeat pour recueillir plus d' informations. S'il vous plaît lire « Solutions: élastique SIEM - pour la maison et la sécurité des affaires (c) . »

référence

【1】https://www.elastic.co/webinars/introducing-elastic-siem

Publié 512 articles originaux · louange gagné 124 · vues 900 000 +

Je suppose que tu aimes

Origine blog.csdn.net/UbuntuTouch/article/details/104863651
conseillé
Classement