Difference between revisions of "OSSEC"

From HackerNet
Jump to: navigation, search
m
Line 2: Line 2:
 
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.
 
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==
+
=Supportade OS=
===Agent===
+
==Agent==
 
*GNU/Linux (all distributions, including RHEL, Ubuntu, Slackware, Debian, etc)
 
*GNU/Linux (all distributions, including RHEL, Ubuntu, Slackware, Debian, etc)
 
*Windows XP, 2003, Vista, 2008, 2012
 
*Windows XP, 2003, Vista, 2008, 2012
Line 14: Line 14:
 
*Mac OS X 10.x
 
*Mac OS X 10.x
 
*HP-UX 11
 
*HP-UX 11
===Syslog===
+
==Syslog==
 
*Cisco PIX, ASA and FWSM (all versions)
 
*Cisco PIX, ASA and FWSM (all versions)
 
*Cisco IOS routers (all versions)
 
*Cisco IOS routers (all versions)
Line 28: Line 28:
 
*Cisco VPN concentrators (all versions)
 
*Cisco VPN concentrators (all versions)
 
*VMWare ESXi 4.x
 
*VMWare ESXi 4.x
===Agentless===
+
==Agentless==
 
*Cisco PIX, ASA and FWSM (all versions)
 
*Cisco PIX, ASA and FWSM (all versions)
 
*Cisco IOS routers (all versions)
 
*Cisco IOS routers (all versions)
Line 36: Line 36:
 
*All operating systems specified in the “operating systems” section
 
*All operating systems specified in the “operating systems” section
  
==Installation==
+
=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.
 
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===
+
==Server/Manager & Agent==
====Debian/Ubuntu====
+
===Debian/Ubuntu===
 
Lägg till repo nyklarna.
 
Lägg till repo nyklarna.
 
  apt-key adv --fetch-keys http://ossec.wazuh.com/repos/apt/conf/ossec-key.gpg.key
 
  apt-key adv --fetch-keys http://ossec.wazuh.com/repos/apt/conf/ossec-key.gpg.key
Line 52: Line 52:
 
Eller installera '''agenten'''.
 
Eller installera '''agenten'''.
 
  apt-get install ossec-hids-agent
 
  apt-get install ossec-hids-agent
====RPM based====
+
===RPM based===
 
Lägg till yum repo.
 
Lägg till yum repo.
 
  wget -q -O - https://updates.atomicorp.com/installers/atomic |sh
 
  wget -q -O - https://updates.atomicorp.com/installers/atomic |sh
Line 59: Line 59:
 
Eller agenten.
 
Eller agenten.
 
  yum install ossec-hids ossec-hids-client
 
  yum install ossec-hids ossec-hids-client
===WEBui===
+
==WEBui==
 
För att köra webui krävs:
 
För att köra webui krävs:
 
*Apache/Nginx med PHP (>= 4.1 or >= 5.0) installerat.
 
*Apache/Nginx med PHP (>= 4.1 or >= 5.0) installerat.
Line 90: Line 90:
 
Försök nå ossec via http://<host>/ossec
 
Försök nå ossec via http://<host>/ossec
  
==Konfiguration==
+
=Konfiguration=
===Agent===
+
==Agent==
 
Agent är att rekommendera på dom system det finns stöd för.  
 
Agent är att rekommendera på dom system det finns stöd för.  
====Lägga till====
+
===Lägga till===
 
Det finns 2 sätt att lägga till en agent i ossec.
 
Det finns 2 sätt att lägga till en agent i ossec.
 
*'''manage_agents'''
 
*'''manage_agents'''
Line 100: Line 100:
 
**Smidigt för att det går snabbt att lägga till nya agenter. Osäkert för att alla som kan nå porten kommer att få en nykel och bli inlagd i OSSEC systemet. Går att blocka med hjälp av brandväggen.  
 
**Smidigt för att det går snabbt att lägga till nya agenter. Osäkert för att alla som kan nå porten kommer att få en nykel och bli inlagd i OSSEC systemet. Går att blocka med hjälp av brandväggen.  
  
=====manage_agents=====
+
====manage_agents====
 
Kör följande kommando på servern och välj '''(A)dd an agent'''.
 
Kör följande kommando på servern och välj '''(A)dd an agent'''.
 
  /var/ossec/bin/manage_agents
 
  /var/ossec/bin/manage_agents
Line 111: Line 111:
 
Välj '''(I)mport key from the server''' och kopiera in nykeln. Starta sedan OSSEC agenten.
 
Välj '''(I)mport key from the server''' och kopiera in nykeln. Starta sedan OSSEC agenten.
  
=====ossec-authd=====
+
====ossec-authd====
 
Kör följande på '''servern'''.
 
Kör följande på '''servern'''.
 
  /var/ossec/bin/ossec-authd -p 1515
 
  /var/ossec/bin/ossec-authd -p 1515
Line 118: Line 118:
 
  /var/ossec/bin/agent-auth -m <ossec server ip> -p 1515
 
  /var/ossec/bin/agent-auth -m <ossec server ip> -p 1515
  
===Agentless===
+
==Agentless==
 
Agentless körs på system som inte har stöd för en agent men har stöd för SSH. Tex brandväggar, switchar, routrar.  
 
Agentless körs på system som inte har stöd för en agent men har stöd för SSH. Tex brandväggar, switchar, routrar.  
====Lägga till====
+
===Lägga till===
 
Börja med att aktivera agentless stödet på ossec servern.
 
Börja med att aktivera agentless stödet på ossec servern.
 
  /var/ossec/bin/ossec-control enable agentless
 
  /var/ossec/bin/ossec-control enable agentless
Line 132: Line 132:
 
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====
+
===Konfigurera===
 
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>.
 
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>.
  
Line 193: Line 193:
 
  ...
 
  ...
  
=====Prova manuellt=====
+
====Prova manuellt====
 
Man kan köra scripten manuellt för att prova att det fungerar. Krävs att lösenordet/nykeln blivit inlagd.  
 
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
 
  cd /var/ossec && ./agentless/ssh_integrity_check_linux root@test.hackernet.se /bin

Revision as of 21:01, 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

Agent

Agent är att rekommendera på dom system det finns stöd för.

Lägga till

Det finns 2 sätt att lägga till en agent i ossec.

  • manage_agents
    • Manuellt men ett säkrare och mer kontrollerat sätt att lägga till agenter.
  • ossec-authd
    • Smidigt för att det går snabbt att lägga till nya agenter. Osäkert för att alla som kan nå porten kommer att få en nykel och bli inlagd i OSSEC systemet. Går att blocka med hjälp av brandväggen.

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

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

Agentless

Agentless körs på system som inte har stöd för en agent men har stöd för SSH. Tex brandväggar, switchar, routrar.

Lägga till

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

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