Audit record created by echo "ThisIsATest" >>/tmp/test/file11

Steve Grubb sgrubb at redhat.com
Fri Oct 9 15:02:23 UTC 2015


On Friday, October 09, 2015 02:43:59 PM Boyd Memmott wrote:
> I have an audit question concerning echo "ThisIsATest" >>/tmp/test/file11
> 
> I have a rule: -w /tmp/test -p war -S all -k thekey
> 
> It produces the following audit record.
> type=SYSCALL msg=audit(1444398577.247:1581): arch=c000003e syscall=2
> success=yes exit=3 a0=1f5bca0 a1=441 a2=1b6 a3=20 items=2 ppid=17766
> pid=17808 auid=0 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0
> tty=pts3 ses=1 comm="bash" exe="/bin/bash" key="thekey" type=CWD
> msg=audit(1444398577.247:1581):  cwd="/tmp/test"
> type=PATH msg=audit(1444398577.247:1581): item=0 name="/tmp/test" inode=1436
> dev=00:2e mode=040755 ouid=0 ogid=0 rdev=00:00 nametype=PARENT type=PATH
> msg=audit(1444398577.247:1581): item=1 name="file11" inode=6797 dev=00:2e
> mode=0100644 ouid=0 ogid=0 rdev=00:00 nametype=CREATE
> 
> I understand bash is the executable, because ">" is writing to the file via
> a file handle.
> 
> Is there another switch or rule that would improve the audit record to
> capture echo as being the initiator of the command??

In this particular example, keystroke logging would. But in general, the 
answer is no. The reason being that echo is built-in to the shell while 
/bin/echo is an actual program.

For reference, this is what happens when you type a command:

* Bash checks if internal command and handles it
* If its a subshell,
  – forks and starts reading lines and performing them
* Else it: forks, sets up pipes, calls execve(filename, argv, envp)
* Kernel has a list of supported formats
  –ia_32aout
  -Flat
  -Aout
  -Script
  -Em86
  -Elf
  -elf_fdpic
* It iterates through each handler until one accepts the file
* Otherwise bash reports not an executable

-Steve




More information about the Linux-audit mailing list