原创 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