原创 wazuh 原理分析之Syscollector 系統信息收集工作流程
wazuh是從ossec-hids衍生過來的,部分架構設計有所不同, 多進程多線程模式。本機的進程之間通過Unix domain socket 進行通信的。 今天簡單介紹一下數據蒐集的相關功能的實現(Linux系統)。 注意由於篇幅所
原创 cat: /proc/22657/ns/net: Invalid argument
這個錯誤是讀取文件的方式不對 使用 ls -alth 查看詳情 是一個鏈接,可以使用readlink 命令讀取之; 類似的還有 也可以使用readlink函數進行讀取 man 2 readlink 查看使用方式 下面給個例子
原创 linux 審計(auditd)原理分析
前面幾篇博客說過可以使用auditctl 添加和刪除規則等。 現在談談auditd的相關實現。基於 Linux2.6.11.12 這些代碼主要在下面的文件中 kernel/audit.c 提供了核心的審計機制。 kernel/au
原创 strace 對auditd監控的系統調用syscall性能分析
編寫測試程序,內部調用系統調用,或者比較簡單的方式,對sshd進程進行性能分析。 採用第二種方式進行分析: 找到要監控性能的進程的pid; 不開啓auditd監控規則, 使用strace開始測試 啓動檢測 sudo strace -c -
原创 tcpreplay 回放報文
sudo tcpreplay --loop=0 --mbps=10.0 --intf1=enp4s0 Downloads/test.pcap 表示 以10M/s的速度無限循環回放此報文。 --loop=0 :無限回放 --intf1
原创 gdb 斷點調試 設置條件
在閱讀osquery代碼時,通過source insight尋找調用流程時(processes),找不到它的上一級調用函數。打算用gdb來查看調用堆棧。 在調試的過程中。啓動的方式是 gdb /usr/bin/osqueryi 在genP
原创 wazuh 收集 suricata eve.json日誌
安裝suricata和規則 (源碼或者安裝包),本博客提供安裝包操作方式: 切換成超級用戶進行操作 yum -y install epel-release wget jq curl -O https://copr.fedorainfr
原创 Linux 線程私有數據 測試用例
線程私有數據可以用來存儲線程本地的信息,tcmalloc就是用了該機制來減少鎖的開銷,加快內存分配。 下面給出了一個測試用例 通過pthread_key_create創建一個線程私有數據的key,並設置這個key對應私有數據的釋放函數;
原创 串口連設備 Incorrect username or password!
最近在通過串口連設備的時候,需要用戶名密碼,然後登陸一直報錯 Username: Username: Username:admbsp_pci_scan_slot[16] not find dev 0xb746 in Password:st
原创 使用valgrind 查看 jemalloc tcmalloc ptmalloc 在auditd中的性能對比
目前在使用Linux提供的auditd的審計功能。發現在大量的系統調用的情況下,性能上不去。 使用valgrind對其進行性能分析。 目前對auditd進行分段分析性能,關閉寫文件write_logs=no (/etc/audit/aud
原创 sqlite 查詢表結構
查詢指定表結構: PRAGMA TABLE_INFO (process_open_sockets) 所有表結構: .schema
原创 關於 /proc/pid/net/unix
進程的/proc/$pid/fd 目錄下存放了此進程所有打開的fd。如果想查看某個進程打開的socket的詳細信息,可以通過inode進行關聯。 網絡連接的關聯可以參考https://blog.csdn.net/lkkey80/artic
原创 Linux 遍歷讀取/proc目錄下的pid文件夾
#include <dirent.h> #include <string.h> #include <stdio.h> #include <stdlib.h> int main() { DIR *dp; struct d
原创 c語言實現收集Linux的syslog
以只讀的方式打開syslog文件,定時收集,並將日誌輸出到終端 #include <stdio.h> #include <stdlib.h> #include <errno.h> #include <string.h> #include
原创 ubsan gcc -fsanitize=undefined 檢測棧溢出
The Undefined Behavior Sanitizer - UBSAN UBSAN is a runtime undefined behaviour checker. UBSAN uses compile-time instru