初识osquery
初识osquery
osquery是一个由Facebook的开源用于对系统进行查询,监控以及分析的一款软件.
osquery对其的说明如下:
osquery将操作系统公开为高性能关系数据库。这允许您编写基于SQL的查询来探索操作系统数据。使用osquery,SQL表表示抽象概念,例如运行进程,加载的内核模块,开放网络连接,浏览器插件,硬件事件或文件哈希。
目前网上已经有非常多的相关资料供参考,这里整理下:
【初识osquery】:http://www.polaris-lab.com/index.php/archives/617
【Kolide Fleet osquery体验】: http://0cx.cc/managing-osquery-with-fleet.jspx
【Osquery检测入侵痕迹】https://evilanne.github.io/2019/02/20/Osquery检测入侵痕迹/
使用
搭建过程不再重来了,这里不是重点,如果搭建有问题找运维或网络帮忙解决即可
1、假设某木马执行后会在tmp目录释放指定的文件,这里可以快速对所有主机进行检查
SELECT * from file where directory="/tmp" and filename="xxx"

查找有私钥证书的服务器

2、当有1day漏洞暴发时,可快速查找该软件的服务器进行确认
检查所有存在某软件的服务器
SELECT * FROM processes where name  like 'systemd';
上面是根据是在运行的进程进行判断,也可跟进安装的rpm包进行判断。
3、检测反弹shell
SELECT DISTINCT(processes.pid), processes.parent, processes.name, processes.path, processes.cmdline, processes.cwd, processes.root, processes.uid, processes.gid, processes.start_time, process_open_sockets.remote_address, process_open_sockets.remote_port, (SELECT cmdline FROM processes AS parent_cmdline WHERE pid=processes.parent) AS parent_cmdline FROM processes JOIN process_open_sockets USING (pid) LEFT OUTER JOIN process_open_files ON
如果需要告警功能,可将result文件打到logstash进行解析,在elk中配置告警。
更多的功能如文件完整性检查,后门检测等请自行摸索,
常见问题
1、如果使用docker部署,docker内的日志会很快打满,可以自行清理
2、服务端重启后,客户端会掉线,此时会恢复一部分,但大部分起不来,这是我这遇到的问题
可以在客户端上加上定时探活的脚本:
#!/bin/bash
#-*- coding:utf-8 -*-
process_id=$(ps -ef | grep "osqueryd --flagfile" | grep -v "grep"  | awk '{print $2}')
result=`echo -e "\n" | telnet X.X.X.X 8080 2> /dev/null | grep Connected | wc -l`
if [ $result ]; then
    kill -9 $process_id && nohup /usr/local/osq/launcher --hostname=X.X.X.X:8080 --enroll_secret=TznYHNYSD8ZoFUJOvH4s3pY7ZGuzz2x/ --insecure &
else
    echo "无法连接服务器"
fi
或使用运维工具进行手动启动
 ansible XX -m shell -a " pgrep osquery | xargs kill -s 9 && service osqueryd start && nohup /usr/local/osq/launcher --hostname=X.X.X.X:8080 --enroll_secret=TznYHNYSD8ZoFUJOvH4s3pY7ZGuzz2x/ --insecure & " 
												
											初识osquery的更多相关文章
- Android动画效果之初识Property Animation(属性动画)
		
前言: 前面两篇介绍了Android的Tween Animation(补间动画) Android动画效果之Tween Animation(补间动画).Frame Animation(逐帧动画)Andr ...
 - 初识Hadoop
		
第一部分: 初识Hadoop 一. 谁说大象不能跳舞 业务数据越来越多,用关系型数据库来存储和处理数据越来越感觉吃力,一个查询或者一个导出,要执行很长 ...
 - python学习笔记(基础四:模块初识、pyc和PyCodeObject是什么)
		
一.模块初识(一) 模块,也叫库.库有标准库第三方库. 注意事项:文件名不能和导入的模块名相同 1. sys模块 import sys print(sys.path) #打印环境变量 print(sy ...
 - 初识IOS,Label控件的应用。
		
初识IOS,Label控件的应用. // // ViewController.m // Gua.test // // Created by 郭美男 on 16/5/31. // Copyright © ...
 - UI篇(初识君面)
		
我们的APP要想吸引用户,就要把UI(脸蛋)搞漂亮一点.毕竟好的外貌是增进人际关系的第一步,我们程序员看到一个APP时,第一眼就是看这个软件的功能,不去关心界面是否漂亮,看到好的程序会说"我 ...
 - Python导出Excel为Lua/Json/Xml实例教程(一):初识Python
		
Python导出Excel为Lua/Json/Xml实例教程(一):初识Python 相关链接: Python导出Excel为Lua/Json/Xml实例教程(一):初识Python Python导出 ...
 - 初识SpringMvc
		
初识SpringMvc springMvc简介:SpringMVC也叫Spring Web mvc,属于表现层的框架.Spring MVC是Spring框架的一部分,是在Spring3.0后发布的 s ...
 - 初识redis数据类型
		
初识redis数据类型 1.String(字符串) string是redis最基本的类型,一个key对应一个value. string类型是二进制安全的.意思是redis的string可以包含任何数据 ...
 - Redis初识、设计思想与一些学习资源推荐
		
一.Redis简介 1.什么是Redis Redis 是一个开源的使用ANSI C 语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value 数据库,并提供多种语言的API.从2010 年 ...
 
随机推荐
- SQLServer查看及设置最大连接数(转)
			
转自:https://blog.csdn.net/duanbeibei/article/details/86573840 很多时候自己本地开发会遇到 ,打开几个连接正常访问 之后就报错误,这时候需要调 ...
 - 全新思维导图 XMind ZEN v10.0.0 中文破解版
			
http://www.carrotchou.blog/20331.html 官网 https://www.xmind.cn/ 注意事项 破解版本已经去除了全部的官方试用版的限制,让大家可以像正版用户一 ...
 - Java学习-058-Jsoup爬虫获取中国所有的三级行政区划数据(三),处理二级编码缺失
			
通过查看数据可知,直辖市或者某些三级行政区域没有对应的二级区域,为方便后续的地址使用,可自定义缺失的二级地址. 如下示例自定义的二级行政区域的名称为一级区域的名称,对应的源码如下所示: 将此段源码添加 ...
 - Centos7安装完成后设定基本的网络配置
			
Centos7设定网络 新安装的centos7,网络默认是不启动的,需要人为的手工修改配置文件,在这里把这个过程简要的记录一下. 设定ip地址与mac地址自定义 [root@web ~]# cd /e ...
 - 转 mysql distinct函数 与 免密码登录 与 查看表的结构
			
#########sample 1 mysql中去重 distinct 用法 在使用MySQL时,有时需要查询出某个字段不重复的记录,这时可以使用mysql提供的distinct这个关键字来过滤重 ...
 - Golang 实现UDPServer并发送消息到ActiveMQ
			
示例代码 package main import ( "net" "os" "github.com/gpmgo/gopm/modules/goconf ...
 - 通过下载git包来安装git
			
Git是一个开源的分布式版本控制系统,可以有效.高速的处理从很小到非常大的项目版本管理.而国外的GitHub和国内的Coding都是项目的托管平台.但是在使用Git工具的时候,第一步要学会如何安装gi ...
 - png8和png24的根本区别
			
1.png8和png24的根本区别,不是颜色位的区别,而是存储方式不同. 2.png8有1位的布尔透明通道(要么完全透明,要么完全不透明),png24则有8位(256阶)的布尔透明通道(所谓半透明). ...
 - org.apache.hadoop.conf.Configuration无法引用 解决方法
			
我用的是Hadoop-common 2.6.4jar,可是明明包里面有这个类却引用不了,然后我看了下包里面是一个抽象类......................................... ...
 - Linux内核中的双向链表struct list_head
			
一.双向链表list_head Linux内核驱动开发会经常用到Linux内核中经典的双向链表list_head,以及它的拓展接口和宏定义:list_add.list_add_tail.list_de ...