背景
上次寫了osquery在網絡安全入侵場景中的應用實戰(一)結果還不錯,這次篇目二再增加一些場景。osquery主要解決的時員工被入侵之后電腦該如何溯源取證的問題。通常EDR會有日志,但是不會上報全量的日志。發現機器有惡意文件需要上級取證的時候,往往是比較麻煩的,會有這樣或者那樣的問題:比如公司員工遍布海內外,第一時間拿不到主機;使用遠程桌面,但有可能遭遇設備遠程策略被破壞打不開;溯源很多過程和步驟平時使用低頻,一旦發生對運營人員來說,不重不漏完成也是一個巨大挑戰。
這里再次補充一些個人認為的osquery取證優勢:
提供全面系統信息:osquery 將操作系統視為一個高性能的關系型數據庫,把進程、文件系統、網絡連接、用戶等系統信息映射為 SQL 數據表。通過簡單的 SQL 查詢,就可以獲取到豐富而詳細的系統底層數據,例如可以查詢當前系統中所有正在運行的進程信息、開放的網絡端口、特定用戶的登錄情況等,幫助安全人員全面了解系統狀態,以便發現潛在的入侵跡象。
可擴展性與自定義:允許用戶根據特定的需求進行擴展,添加新的表格和查詢。安全團隊可以根據自身的業務特點、安全策略以及常見的攻擊模式,自定義一些特定的檢測規則和查詢語句,以更好地發現針對自身系統的獨特安全威脅,實現個性化的安全監控和防御。
集成與協作能力:可以與其他安全工具如安全信息和事件管理(SIEM)系統集成,將自身收集到的系統信息和檢測到的事件發送給 SIEM 系統進行集中分析和處理,進一步增強整個安全體系的監控和分析能力,實現不同安全工具之間的協同工作,提高安全事件的檢測和響應效率。
實戰
話不多說,重點內容馬上就來。以下是基于5.16.0版本文檔,列出的典型場景及對應命令:
六、計劃任務與定時任務
- Mac/Linux定時任務(crontab新增任務)
場景解釋:Crontab任務用于定時執行命令,攻擊者可能在入侵之后添加定時任務來下載或執行啟動(如每分鐘下載惡意文件)。
檢測目標:捕獲非root用戶新增的定時任務,尤其是包含網絡操作(如wget/curl)的命令。
SQL邏輯:篩選crontab表中用戶名非root的條目,匹配標準cron時間格式(* * * * *)或開機啟動(@reboot)。
SELECT path, command
FROM crontab
WHERE username != 'root' AND (content LIKE '* * * * * %' OR content LIKE '@reboot %');
- Windows計劃任務(新增任務)
場景解釋:Windows計劃任務可實現持久化攻擊,攻擊者可能創建任務觸發惡意程序(如每天凌晨執行rundll32.exe)。
檢測目標:發現非微軟官方的新增計劃任務,尤其