====== Linux Security ======
===== Auditd =====
* Extended logging based on auditd rules
auditctl # configure rules
auditsearch # search for events
auditreport # create report
/etc/audit/rules.d/##-.rules
/etc/audit/auditd.conf
auditctl -w path_to_file -p permissions -k key_name
# or in rules file:
-w path_to_file -p permissions -k key_name
sudo ausearch -i -k user-modify
# Delete all previous rules
-D
# Set buffer size
-b 8192
# Make the configuration immutable -- reboot is required to change audit rules
-e 2
# Panic when a failure occurs
-f 2
# Generate at most 100 audit messages per second
-r 100
# Make login UID immutable once it is set (may break containers)
--loginuid-immutable 1
-w /etc/passwd -p wa -k passwd_changes
-w /etc/selinux/ -p wa -k selinux_changes
-w /sbin/insmod -p x -k module_insertion
# some file and directory watches with keys
-w /var/log/audit/ -k LOG_audit
-w /etc/audit/auditd.conf -k CFG_audit_conf -p rxwa
-w /etc/audit/audit.rules -k CFG_audit_rules -p rxwa
-w /etc/passwd -k CFG_passwd -p rwxa
-w /etc/sysconfig/ -k CFG_sysconfig
# an example system call rule
-a entry,always -S umask
===== Sysmon for linux =====
* Linux port of sysmon
* Uses eBPF instead of kernel hooks
* extended Berkley Packet Filter
* Creates events instead of log entries (?)
sudo ./sysmon -accepteula
sudo ./sysmon -i
systemctl status sysmon
all-in-one.xml
sudo ./sysmon -c all-in-one.xml
sudo tail -f /var/log/syslog | sudo /opt/sysmon/sysmonLogView
sudo tail -f /var/log/syslog | sudo /opt/sysmon/sysmonLogView -f Image=/bin/cat
===== SELinux =====
* Mandatory access control
* ("direct access control" linux file permissions ("directly on file")
* -> Mandatory: generic profile rules
* Each process has domain (label) and each file has label