Massimizzazione del rilevamento e della risposta alle minacce con Cortex

Feb 21 2023
Analizzatore e risponditore Cortex: la coppia rivoluzionaria per il rilevamento e la risposta alle minacce informatiche Progetto Github: https://github.com/TheHive-Project/Cortex Introduzione Con la crescente sofisticazione e il volume degli attacchi informatici, i team di sicurezza hanno bisogno di più delle semplici strumenti di rilevamento.

Cortex Analyzer and Responder: la coppia rivoluzionaria per il rilevamento e la risposta alle minacce informatiche

Progetto Github:https://github.com/TheHive-Project/Cortex

Introduzione

Con la crescente sofisticatezza e il volume degli attacchi informatici, i team di sicurezza hanno bisogno di qualcosa di più dei semplici strumenti di rilevamento di base. Le soluzioni di intelligence e risposta alle minacce sono diventate essenziali nelle odierne strategie di difesa informatica. Cortex di TheHive Project offre una piattaforma potente e flessibile per automatizzare l'intelligence e la risposta alle minacce, offrendo ai team di sicurezza la capacità di rilevare e rispondere alle minacce in modo rapido ed efficiente.

Cos'è la corteccia?

Cortex è una piattaforma open source, altamente estensibile e di facile utilizzo che consente ai team di sicurezza di automatizzare i flussi di lavoro di intelligence e risposta alle minacce. La piattaforma consente agli utenti di analizzare e rispondere agli avvisi provenienti da una varietà di fonti, inclusi SIEM, IDS e altri strumenti di sicurezza.

Una delle caratteristiche principali di Cortex è la sua capacità di integrarsi con un'ampia gamma di strumenti e servizi di sicurezza. Questa integrazione consente ai team di sicurezza di automatizzare molti aspetti delle loro operazioni di sicurezza, inclusi l'arricchimento, l'analisi e la risposta. Cortex fornisce un repository centrale per questa intelligenza, consentendo agli utenti di gestire e accedere facilmente alle informazioni di cui hanno bisogno.

Comprensione di analizzatori e risponditori

Gli analizzatori e i risponditori sono gli elementi costitutivi di Cortex, consentendo alla piattaforma di connettersi a vari strumenti e servizi di sicurezza e automatizzare diversi aspetti dell'intelligence sulle minacce e del processo di risposta.

Analizzatori

Gli analizzatori sono responsabili del recupero dei dati da fonti diverse e dell'arricchimento di tali dati per fornire più contesto e informazioni utili ai team di sicurezza. Esistono molti tipi diversi di analizzatori, ciascuno progettato per connettersi a diversi tipi di origini dati, come servizi online, feed di minacce e database.

Quando viene richiamato un analizzatore, recupera i dati dall'origine specificata e li trasforma in un formato standardizzato, semplificando l'analisi e il confronto con altri dati. Questi dati possono includere informazioni su indirizzi IP, domini, hash, nomi di file e altro.

Una volta che i dati sono stati trasformati, l'analizzatore può eseguire ulteriori processi di arricchimento, come il controllo dei dati rispetto a un elenco di indicatori dannosi noti, l'interrogazione di servizi online per ulteriori informazioni o l'esecuzione di script personalizzati per eseguire analisi più avanzate. Questi dati arricchiti vengono quindi restituiti alla piattaforma Cortex per ulteriori analisi.

Risponditori

I soccorritori hanno la responsabilità di agire in base ai dati arricchiti forniti dagli analizzatori. Esistono molti tipi diversi di risponditori, ciascuno progettato per eseguire azioni specifiche, come bloccare un indirizzo IP, isolare un dispositivo infetto o inviare un avviso a un analista della sicurezza.

Quando viene richiamato un risponditore, utilizza i dati arricchiti per eseguire un'azione specifica. Ad esempio, un risponditore potrebbe essere configurato per bloccare automaticamente un indirizzo IP associato ad attività dannose note. Il risponditore può anche essere configurato per inviare un avviso a un analista della sicurezza per intraprendere un'azione manuale o per registrare l'evento per un'analisi futura.

Sia gli analizzatori che i risponditori possono essere personalizzati utilizzando il potente motore di scripting di Cortex, consentendo agli utenti di personalizzare la piattaforma in base alle proprie esigenze specifiche. Ad esempio, un utente potrebbe sviluppare un analizzatore personalizzato per connettersi a un database interno o sviluppare un risponditore personalizzato per eseguire un'azione specifica univoca per la propria organizzazione.

Nel complesso, gli analizzatori e i risponditori consentono a Cortex di automatizzare molti aspetti dell'intelligence sulle minacce e del processo di risposta, fornendo ai team di sicurezza più informazioni contestuali e fruibili per proteggere meglio la propria organizzazione dalle minacce informatiche.

Installazione

Cortex richiede Elasticsearch come componente fondamentale della sua architettura per archiviare e indicizzare l'enorme quantità di dati generati dagli analizzatori e dai risponditori della piattaforma. Al momento della stesura di questo documento, Cortex supporta solo Elasticsearch 7.x.

Poiché il nostro Wazuh-Indexer distribuito è un fork di Elasticsearch 7.10.2, soddisfa questi requisiti. Personalmente mi piace utilizzare il cluster Wazuh-Indexer dell'attuale stack SIEM piuttosto che dedicare un nuovo cluster Elasticsearch solo per Cortex.

Tuttavia, se desideri distribuire un nodo Elasticsearch dedicato per la tua istanza Cortex, ti consiglio docker.

Ricerca elastica tramite Docker

  1. Installa Docker
  2. Crea una directory per il volume
  3. mkdir -p /opt/elasticsearch
    chmod 777 -R /opt/elasticsearch/
    

    sysctl -w vm.max_map_count=262144
    nano /etc/sysctl.conf
    vm.max_map_count=262144
    

    docker run -d --name elasticsearch --hostname elasticsearch --rm --publish 127.0.0.1:9200:9200 --volume /opt/elasticsearch:/usr/share/elasticsearch/data -e "http.host=0.0.0.0" -e "xpack.security.enabled=false" -e "cluster.name=hive" -e "thread_pool.search.queue_size=100000" -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:7.10.2
    

  1. Installa Java
  2. apt install software-properties-common
    add-apt-repository ppa:openjdk-r/ppa
    apt-get update
    apt-get install openjdk-11-jre-headless
    

    curl https://raw.githubusercontent.com/TheHive-Project/TheHive/master/PGP-PUBLIC-KEY | sudo apt-key add -
    echo 'deb https://deb.thehive-project.org release main' | sudo tee -a /etc/apt/sources.list.d/thehive-project.list
    apt-get update
    apt install cortex
    

  1. Importa il crt della CA radice che Elasticsearch sta attualmente utilizzando. Questo comando richiederà una password per proteggere il keystore. Salva questa password poiché sarà richiesta per il file cfg in Cortex (successivo).
  2. keytool -import -file /path/to/rootca.crt -alias CA -keystore root_ca.jks
    

# Sample Cortex application.conf file

## SECRET KEY
#
# The secret key is used to secure cryptographic functions.
#
# IMPORTANT: If you deploy your application to several  instances,  make
# sure to use the same key.
#play.http.secret.key="***CHANGEME***"

## ElasticSearch
search {
  # Name of the index
  index = cortex
  # ElasticSearch instance address.
  # For cluster, join address:port with ',': "http://ip1:9200,ip2:9200,ip3:9200"
  uri = "https://ELASTICSEARCH_HOST:9200"

  ## Advanced configuration
  # Scroll keepalive.
  #keepalive = 1m
  # Scroll page size.
  #pagesize = 50
  # Number of shards
  #nbshards = 5
  # Number of replicas
  #nbreplicas = 1
  # Arbitrary settings
  #settings {
    # Maximum number of nested fields
  #  mapping.nested_fields.limit = 100
  #}

  ## Authentication configuration For Elasticsearch
  user = "admin"
  password = "ELASTIC_PASS"

  ## SSL configuration
  keyStore {
    path = "/etc/cortex/root_ca.jks"
    type = "JKS" # or PKCS12
    password = "KEYSTORE_PASS"
  }
  trustStore {
    path = "/etc/cortex/root_ca.jks"
    type = "JKS" # or PKCS12
    password = "KEYSTORE_PASS"
  }
}

  • Python2
  • Python3
  • Dipendenze
  • cd /opt

    wget https://bootstrap.pypa.io/get-pip.py

    python2 get-pip.py

    python3 get-pip.py

    pip2 install -U pip setuptools && sudo pip3 install -U pip setuptools

    git clone https://github.com/TheHive-Project/Cortex-Analyzers

    2. Installa

    for I in $(find Cortex-Analyzers -name 'requirements.txt'); do sudo -H pip2 install -r $I; done && \
    for I in $(find Cortex-Analyzers -name 'requirements.txt'); do sudo -H pip3 install -r $I || true; done
    

    nano /etc/cortex/application.conf

    ## ANALYZERS
    #
    analyzer {
      # analyzer location
      # url can be point to:
      # - directory where analyzers are installed
      # - json file containing the list of analyzer descriptions
      urls = [
        #"https://download.thehive-project.org/analyzers.json"
        "/opt/Cortex-Analyzers/analyzers"
      ]
    
      # Sane defaults. Do not change unless you know what you are doing.
      fork-join-executor {
        # Min number of threads available for analysis.
        parallelism-min = 2
        # Parallelism (threads) ... ceil(available processors * factor).
        parallelism-factor = 2.0
        # Max number of threads available for analysis.
        parallelism-max = 4
      }
    }
    
    # RESPONDERS
    #
    responder {
      # responder location (same format as analyzer.urls)
      urls = [
        #"https://download.thehive-project.org/responders.json"
        "/opt/Cortex-Analyzers/responders"
      ]
    
      # Sane defaults. Do not change unless you know what you are doing.
      fork-join-executor {
        # Min number of threads available for analysis.
        parallelism-min = 2
        # Parallelism (threads) ... ceil(available processors * factor).
        parallelism-factor = 2.0
        # Max number of threads available for analysis.
        parallelism-max = 4
      }
    }
    

    sudo mkdir /etc/cortex
    (cat << _EOF_
    # Secret key
    # ~~~~~
    # The secret key is used to secure cryptographics functions.
    # If you deploy your application to several instances be sure to use the same key!
    play.http.secret.key="$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 64 | head -n 1)"
    _EOF_
    ) | sudo tee -a /etc/cortex/application.conf
    

    tail -f /var/log/cortex/application.log

    Se la pagina di manutenzione non viene caricata per impostazione predefinita, inseriscihttp://IP:9001/index.html#!/maintenance

    Guarda il video qui sopra per scoprire come creare la tua prima organizzazione e come abilitare i tuoi analizzatori e risponditori.

    Conclusione

    Cortex offre una piattaforma potente e flessibile per automatizzare l'intelligence e la risposta alle minacce. Grazie alla sua capacità di integrarsi con un'ampia gamma di strumenti e servizi di sicurezza, gli utenti possono automatizzare molti aspetti delle loro operazioni di sicurezza, riducendo il carico di lavoro e aumentando l'efficienza. Il design estensibile della piattaforma e il potente motore di scripting forniscono anche un elevato grado di flessibilità, consentendo ai team di sicurezza di personalizzare Cortex in base alle proprie esigenze specifiche. Cortex è uno strumento prezioso per qualsiasi organizzazione che desideri migliorare la propria posizione di sicurezza e rispondere in modo rapido ed efficiente alle minacce.

    Ho bisogno di aiuto?

    Le funzionalità discusse in questo post, e molto altro ancora, sono disponibili tramite i servizi professionali di SOCFortress. Lascia che SOCFortress aiuti te e il tuo team a proteggere la vostra infrastruttura.

    Sito web:https://www.socfortress.co/

    Servizi professionali:https://www.socfortress.co/contact_form.html