Hi Dominik
Maybe the best way is log all in auditd,
Add these 2 lines to /etc/audit/audit.rules:
-a exit,always -F arch=b64 -F euid=0 -S execve
-a exit,always -F arch=b32 -F euid=0 -S execve
You will have logs like the next under audit.log
type=SYSCALL msg=audit(1467905123.502:361): arch=c000003e syscall=59
success=yes exit=0 a0=2567ff0 a1=2567f70 a2=2571bf0 a3=7ffcbac478f0
items=2 ppid=1513 pid=1526 auid=0 uid=0 gid=0 euid=0 suid=0 fsuid=0
egid=0 sgid=0 fsgid=0 tty=pts1 ses=3 comm="ls" exe="/bin/ls"
subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 key=(null)
if you do a ossec-logtest
type=SYSCALL msg=audit(1467905123.502:361): arch=c000003e syscall=59
success=yes exit=0 a0=2567ff0 a1=2567f70 a2=2571bf0 a3=7ffcbac478f0
items=2 ppid=1513 pid=1526 auid=0 uid=0 gid=0 euid=0 suid=0 fsuid=0
egid=0 sgid=0 fsgid=0 tty=pts1 ses=3 comm="ls" exe="/bin/ls"
subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 key=(null)
**Phase 1: Completed pre-decoding.
full event: 'type=SYSCALL msg=audit(1467905123.502:361):
arch=c000003e syscall=59 success=yes exit=0 a0=2567ff0 a1=2567f70
a2=2571bf0 a3=7ffcbac478f0 items=2 ppid=1513 pid=1526 auid=0 uid=0
gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts1 ses=3
comm="ls" exe="/bin/ls"
subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 key=(null)'
hostname: 'centos67'
program_name: '(null)'
log: 'type=SYSCALL msg=audit(1467905123.502:361): arch=c000003e
syscall=59 success=yes exit=0 a0=2567ff0 a1=2567f70 a2=2571bf0
a3=7ffcbac478f0 items=2 ppid=1513 pid=1526 auid=0 uid=0 gid=0 euid=0
suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts1 ses=3 comm="ls"
exe="/bin/ls" subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
key=(null)'
**Phase 2: Completed decoding.
decoder: 'auditd'
action: 'SYSCALL'
id: '361'
proto: '59'
status: 'yes'
dstuser: '0'
url: '3'
extra_data: '/bin/ls'
**Phase 3: Completed filtering (rules).
Rule id: '80720'
Level: '0'
Description: 'Auditd: system call to the kernel'
So you need to create a child rule to match with dstuser: '0' in your
local_rules.xml
<rule id="xxxxx" level="10">
<if_sid>80720</if_sid>
<user>0</user>
<description>Root command</description>
</rule>
Regards
-----------------------
Jose Luis Ruiz
Wazuh Inc.
[email protected]
On July 7, 2016 at 3:19:10 PM, Dominik ([email protected]) wrote:
Hi there,
I've been using ossec for about half a year now and I'm very happy about
it. Thanks for this great tool.
I have a linux client on which I need to monitor all activities
performed as root. My thought is to watch */root/*.bash_history and create
alerts on changes in the file.
So I created a configuration to watch this file in the clients ossec.conf:
<localfile>
<log_format>syslog</log_format>
<location>/root/.bash_history</location>
</localfile>
This works well and creates entries in the log archives of the
ossec-sever e.g.:
2016 Jul 07 11:06:28 (TheClient) xx.xx.71.109->/root/.bash_history top
I also want to generate alerts.
If I understand correctly, the next steps will be to create a decoder
and a rule. I tried with the following decoder in
etc/decoder_local.xml
<decoder name="bash_history">
<program_name>.bash_history</program_name>
</decoder>
and a rule in
rules/local_rules.xml
<rule id="105412" level="8">
<decoded_as>bash_history</decoded_as>
<description>Command run as root extracted from bash_history
</description>
</rule>
This does not create allerts. Thus I used ossec-logtest to see if
things go alright:
bin/ossec-logtest -v
2016/07/07 14:40:56 ossec-testrule: INFO: Reading local decoder file.
2016/07/07 14:40:56 ossec-testrule: INFO: Started (pid: 4092).
ossec-testrule: Type one log per line.
2016 Jul 07 11:06:28 (TheClient) xx.xx.71.109->/root/.bash_history top
**Phase 1: Completed pre-decoding.
full event: '2016 Jul 07 11:06:28 (TheClient)
xx.xx.71.109->/root/.bash_history top'
hostname: 'ossec-server'
program_name: '(null)'
log: '2016 Jul 07 11:06:28 (TheClient)
xx.xx.71.109->/root/.bash_history top'
**Phase 2: Completed decoding.
No decoder matched.
**Rule debugging:
Trying rule: 1 - Generic template for all syslog rules.
*Rule 1 matched.
*Trying child rules.
Trying rule: 5500 - Grouping of the pam_unix rules.
<and so on...>
Obviously, the decoder I'm using is not working. Also pre-decoding does
not extract information from this log entry.
How do I advance to get alerts from the root activities extracted from
bash_history?
According to the log-archive, OSSEC knows the origin of the message
(*/root/*.bash_history). Is this available to the decoder or to a rule?
Im also not sure, this is the best approach to observe activities of the
root user. Hints are welcome.
Greetings
Dominik
--
---
You received this message because you are subscribed to the Google Groups
"ossec-list" group.
To unsubscribe from this group and stop receiving emails from it, send an
email to [email protected].
For more options, visit https://groups.google.com/d/optout.
--
---
You received this message because you are subscribed to the Google Groups
"ossec-list" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.