Difference between revisions of "OSSEC"

From HackerNet
Jump to: navigation, search
m
Line 116: Line 116:
  
 
För att lägga till en agentless host så behöver sätta SSH lösenord eller använda SSH nykel. På Cisco saker (PIX, routers) behöver du ange en extra parameter för '''enable lösenordet'''. Samma gäller om du vill lägga till '''su''' stöd för linux.
 
För att lägga till en agentless host så behöver sätta SSH lösenord eller använda SSH nykel. På Cisco saker (PIX, routers) behöver du ange en extra parameter för '''enable lösenordet'''. Samma gäller om du vill lägga till '''su''' stöd för linux.
  /var/ossec/agentless/register_host.sh add root@hackernet.se lnxpass
+
  /var/ossec/agentless/register_host.sh add root@test.hackernet.se sshpass supass
  /var/ossec/agentless/register_host.sh add pix@pix.fw.hackernet.se pixpass enable pass
+
  /var/ossec/agentless/register_host.sh add pix@pix.fw.hackernet.se pixpass enablepass
  
 
Om du vill använda SSH nykel så anger du '''NOPASS''' som lösenord. Skapa sedan nycklar åt ossec.
 
Om du vill använda SSH nykel så anger du '''NOPASS''' som lösenord. Skapa sedan nycklar åt ossec.
 
  sudo -u ossec ssh-keygen
 
  sudo -u ossec ssh-keygen
 
Nykeln sparas i <code>/var/ossec/.ssh</code>, kopiera sedan över den publika nykeln till dina enheter.
 
Nykeln sparas i <code>/var/ossec/.ssh</code>, kopiera sedan över den publika nykeln till dina enheter.
 +
 +
====Konfigurera Agentless====
 +
När man använder agentless finns det ingen default test som körs och därför behöver man lägga till vad som ska övervakas manuellt per host i <code>/var/ossec/etc/ossec.conf</code>.
 +
 +
Exempel övervakning som kollar ifall nån fils checksumma ändrats i mapparna '''/bin, /etc, /sbin''' var 10h. Och en PIX övervakning som kollar ifall configen ändrats varje timme.
 +
<ossec_config>
 +
...
 +
<agentless>
 +
    <type>ssh_integrity_check_linux</type>
 +
    <frequency>36000</frequency>
 +
    <host>root@test.hackernet.se</host>
 +
    <state>periodic</state>
 +
    <arguments>/bin /etc/ /sbin</arguments>
 +
</agentless>
 +
 +
<agentless>
 +
    <type>ssh_pixconfig_diff</type>
 +
    <frequency>3600</frequency>
 +
    <host>pix@pix.fw.hackernet.se</host>
 +
    <state>periodic_diff</state>
 +
</agentless>
 +
...
 +
</ossec_config>
 +
 +
'''<type>'''
 +
 +
Default finns det 6st olika types script att välja mellan.
 +
*'''ssh_integrity_check_bsd'''
 +
**Kollar ifall nån fil ändrat SHA1 eller MDA5 checksum i BSD.
 +
*'''ssh_integrity_check_linux'''
 +
**Kollar ifall nån fil ändrat SHA1 eller MDA5 checksum i Linux.
 +
*'''ssh_pixconfig_diff'''
 +
**Kollar om configen ändrats på en Cisco PIX brandvägg. Behöver inget '''arguments''' i configen.
 +
*'''ssh_asa-fwsmconfig_diff'''
 +
**Kollar om configen ändrats på en Cisco ASA brandvägg. Behöver inget '''arguments''' i configen.
 +
*'''ssh_generic_diff'''
 +
**Används för att kolla vad som helst som har SSH stöd. Man skriver kommandona man vill jämföra i '''arguments'''.
 +
 +
'''<frequency>'''
 +
 +
Hur ofta en check ska köras. Skriv i sekunder.
 +
 +
'''<host>'''
 +
 +
Vilken host scriptet ska köras mot. Om man behöver köra su lösenordet så skriver man '''use_su''', ex:
 +
<host>use_su user@test.hackernet.se</host>
 +
 +
'''<state>'''
 +
 +
Det finns 2 olika states.
 +
*'''periodic'''
 +
**Skickar en kontrollerad output mot OSSEC agentless processen och jämför sedan mot tidigare körningar. Om det är någon skillnad så kommer OSSEC larma. Används för att kolla så inte checksumman ändrats.
 +
*'''periodic_diff'''
 +
**Skickar output mot OSSEC agentless processen och jämför sedan mot tidigare körningar. periodic_diff används när det är en type som jämför 2 en fil/config mot varandra.
 +
 +
'''<arguments>'''
 +
 +
Fyll i dom kommandona du vill jämföra. För flera kommandon kan man separera med ett ''';'''.
 +
...
 +
<arguments>ls -la /etc; cat /etc/passwd</arguments>
 +
...
 +
 +
=====Prova manuellt=====
 +
Man kan köra scripten manuellt för att prova att det fungerar. Krävs att lösenordet/nykeln blivit inlagd.
 +
cd /var/ossec && ./agentless/ssh_integrity_check_linux root@test.hackernet.se /bin

Revision as of 20:46, 18 April 2016

OSSEC är ett host intrusion detection system. OSSEC monitorerar aktivt dina filer, logar, processer och letar efter rootkit's. OSSEC använder agenter för att övervaka system, det går också att köra agentless och via remote syslog.

Supportade OS

Agent

  • GNU/Linux (all distributions, including RHEL, Ubuntu, Slackware, Debian, etc)
  • Windows XP, 2003, Vista, 2008, 2012
  • VMWare ESX 3.0,3.5 (including CIS checks)
  • FreeBSD (all current versions)
  • OpenBSD (all current versions)
  • NetBSD (all current versions)
  • Solaris 2.7, 2.8, 2.9 and 10
  • AIX 5.2 and 5.3
  • Mac OS X 10.x
  • HP-UX 11

Syslog

  • Cisco PIX, ASA and FWSM (all versions)
  • Cisco IOS routers (all versions)
  • Juniper Netscreen (all versions)
  • SonicWall firewall (all versions)
  • Checkpoint firewall (all versions)
  • Cisco IOS IDS/IPS module (all versions)
  • Sourcefire (Snort) IDS/IPS (all versions)
  • Dragon NIDS (all versions)
  • Checkpoint Smart Defense (all versions)
  • McAfee VirusScan Enterprise (v8 and v8.5)
  • Bluecoat proxy (all versions)
  • Cisco VPN concentrators (all versions)
  • VMWare ESXi 4.x

Agentless

  • Cisco PIX, ASA and FWSM (all versions)
  • Cisco IOS routers (all versions)
  • Juniper Netscreen (all versions)
  • SonicWall firewall (all versions)
  • Checkpoint firewall (all versions)
  • All operating systems specified in the “operating systems” section

Installation

OSSEC är uppdelat i server/manager som sedan pratar med agenter som installeras på varje host. Webuit får man installera separat om man vill använda det.

Server/Manager & Agent

Debian/Ubuntu

Lägg till repo nyklarna.

apt-key adv --fetch-keys http://ossec.wazuh.com/repos/apt/conf/ossec-key.gpg.key

Följande Debian distar finns det stöd för jessie,wheezy,strectch och sid.

echo "deb http://ossec.wazuh.com/repos/apt/debian wheezy main" >> /etc/apt/sources.list

Om du istället kör Ubuntu så finns det stöd för följande precise, trusty, vivid eller wily.

echo "deb http://ossec.wazuh.com/repos/apt/ubuntu precise main" >> /etc/apt/sources.list

Uppdatera repot.

apt-get update

För att installera Server/Manager.

apt-get install ossec-hids

Eller installera agenten.

apt-get install ossec-hids-agent

RPM based

Lägg till yum repo.

wget -q -O - https://updates.atomicorp.com/installers/atomic |sh

Installera sedan servern/managern.

yum install ossec-hids ossec-hids-server

Eller agenten.

yum install ossec-hids ossec-hids-client

WEBui

För att köra webui krävs:

  • Apache/Nginx med PHP (>= 4.1 or >= 5.0) installerat.
  • OSSEC (version >= 0.9-3)
git clone https://github.com/ossec/ossec-wui.git /var/www/ossec
cd /var/www/ossec && ./setup.sh

Om man har selinux på gör det att man inte kan nå visa ossec log filer. För att fixa kan man lägga till en policy.

Skapa en TE fil: /etc/seliinux/targeted/ossec-wui/ossec-wui.te med följande innehåll.

module ossec-wui 1.0;

   require {
       type var_log_t;
       type httpd_t;
       type var_t;
       class file { read getattr open };
   }

   #============= httpd_t ==============
   allow httpd_t var_log_t:file read;
   allow httpd_t var_t:file { read getattr open };

Kör sedan följande kommandon som root:

checkmodule -M -m ossec-wui.te -o ossec-wui.mod
semodule_package -o ossec-wui.pp -m ossec-wui.mod
semodule -i ossec-wui.pp

Försök nå ossec via http://<host>/ossec

Konfiguration

Lägga till agent

manage_agents

Kör följande kommando på servern och välj (A)dd an agent.

/var/ossec/bin/manage_agents

När man ska fylla i ett IP kan du också skriva en IP range (10.0.0.0/24) eller any ifall hosten byter IP ofta.

Välj sedan (E)xtract key for an agent och fyll sedan i ID numret du valde i sista steget.

Kopiera nykeln och kör följande kommando på agenten.

/var/ossec/bin/manage_agents

Välj (I)mport key from the server och kopiera in nykeln. Starta sedan OSSEC agenten.

ossec-authd

Man kan också lägga till agenter på ett automatiserat sätt. Alla som kan nå ossec-authd porten kan få tag på en OSSEC agent key. Därför kan det vara bra att använda brandvägen för att blocka vissa nät.

Kör följande på servern.

/var/ossec/bin/ossec-authd -p 1515

agenten kör du.

/var/ossec/bin/agent-auth -m <ossec server ip> -p 1515

Lägga till agentless

Börja med att aktivera agentless stödet på ossec servern.

/var/ossec/bin/ossec-control enable agentless

För att lägga till en agentless host så behöver sätta SSH lösenord eller använda SSH nykel. På Cisco saker (PIX, routers) behöver du ange en extra parameter för enable lösenordet. Samma gäller om du vill lägga till su stöd för linux.

/var/ossec/agentless/register_host.sh add root@test.hackernet.se sshpass supass
/var/ossec/agentless/register_host.sh add pix@pix.fw.hackernet.se pixpass enablepass

Om du vill använda SSH nykel så anger du NOPASS som lösenord. Skapa sedan nycklar åt ossec.

sudo -u ossec ssh-keygen

Nykeln sparas i /var/ossec/.ssh, kopiera sedan över den publika nykeln till dina enheter.

Konfigurera Agentless

När man använder agentless finns det ingen default test som körs och därför behöver man lägga till vad som ska övervakas manuellt per host i /var/ossec/etc/ossec.conf.

Exempel övervakning som kollar ifall nån fils checksumma ändrats i mapparna /bin, /etc, /sbin var 10h. Och en PIX övervakning som kollar ifall configen ändrats varje timme.

<ossec_config>
...
<agentless>
   <type>ssh_integrity_check_linux</type>
   <frequency>36000</frequency>
   <host>root@test.hackernet.se</host>
   <state>periodic</state>
   <arguments>/bin /etc/ /sbin</arguments>
</agentless>

<agentless>
   <type>ssh_pixconfig_diff</type>
   <frequency>3600</frequency>
   <host>pix@pix.fw.hackernet.se</host>
   <state>periodic_diff</state>
</agentless>
...
</ossec_config>

<type>

Default finns det 6st olika types script att välja mellan.

  • ssh_integrity_check_bsd
    • Kollar ifall nån fil ändrat SHA1 eller MDA5 checksum i BSD.
  • ssh_integrity_check_linux
    • Kollar ifall nån fil ändrat SHA1 eller MDA5 checksum i Linux.
  • ssh_pixconfig_diff
    • Kollar om configen ändrats på en Cisco PIX brandvägg. Behöver inget arguments i configen.
  • ssh_asa-fwsmconfig_diff
    • Kollar om configen ändrats på en Cisco ASA brandvägg. Behöver inget arguments i configen.
  • ssh_generic_diff
    • Används för att kolla vad som helst som har SSH stöd. Man skriver kommandona man vill jämföra i arguments.

<frequency>

Hur ofta en check ska köras. Skriv i sekunder.

<host>

Vilken host scriptet ska köras mot. Om man behöver köra su lösenordet så skriver man use_su, ex:

<host>use_su user@test.hackernet.se</host>

<state>

Det finns 2 olika states.

  • periodic
    • Skickar en kontrollerad output mot OSSEC agentless processen och jämför sedan mot tidigare körningar. Om det är någon skillnad så kommer OSSEC larma. Används för att kolla så inte checksumman ändrats.
  • periodic_diff
    • Skickar output mot OSSEC agentless processen och jämför sedan mot tidigare körningar. periodic_diff används när det är en type som jämför 2 en fil/config mot varandra.

<arguments>

Fyll i dom kommandona du vill jämföra. För flera kommandon kan man separera med ett ;.

...
<arguments>ls -la /etc; cat /etc/passwd</arguments>
...
Prova manuellt

Man kan köra scripten manuellt för att prova att det fungerar. Krävs att lösenordet/nykeln blivit inlagd.

cd /var/ossec && ./agentless/ssh_integrity_check_linux root@test.hackernet.se /bin