初识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检测入侵痕迹/

【osquery操作系统检测与分析】https://bloodzer0.github.io/ossa/infrastructure-security/host-security/ids-ips/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的更多相关文章

  1. Android动画效果之初识Property Animation(属性动画)

    前言: 前面两篇介绍了Android的Tween Animation(补间动画) Android动画效果之Tween Animation(补间动画).Frame Animation(逐帧动画)Andr ...

  2. 初识Hadoop

    第一部分:              初识Hadoop 一.             谁说大象不能跳舞 业务数据越来越多,用关系型数据库来存储和处理数据越来越感觉吃力,一个查询或者一个导出,要执行很长 ...

  3. python学习笔记(基础四:模块初识、pyc和PyCodeObject是什么)

    一.模块初识(一) 模块,也叫库.库有标准库第三方库. 注意事项:文件名不能和导入的模块名相同 1. sys模块 import sys print(sys.path) #打印环境变量 print(sy ...

  4. 初识IOS,Label控件的应用。

    初识IOS,Label控件的应用. // // ViewController.m // Gua.test // // Created by 郭美男 on 16/5/31. // Copyright © ...

  5. UI篇(初识君面)

    我们的APP要想吸引用户,就要把UI(脸蛋)搞漂亮一点.毕竟好的外貌是增进人际关系的第一步,我们程序员看到一个APP时,第一眼就是看这个软件的功能,不去关心界面是否漂亮,看到好的程序会说"我 ...

  6. Python导出Excel为Lua/Json/Xml实例教程(一):初识Python

    Python导出Excel为Lua/Json/Xml实例教程(一):初识Python 相关链接: Python导出Excel为Lua/Json/Xml实例教程(一):初识Python Python导出 ...

  7. 初识SpringMvc

    初识SpringMvc springMvc简介:SpringMVC也叫Spring Web mvc,属于表现层的框架.Spring MVC是Spring框架的一部分,是在Spring3.0后发布的 s ...

  8. 初识redis数据类型

    初识redis数据类型 1.String(字符串) string是redis最基本的类型,一个key对应一个value. string类型是二进制安全的.意思是redis的string可以包含任何数据 ...

  9. Redis初识、设计思想与一些学习资源推荐

    一.Redis简介 1.什么是Redis Redis 是一个开源的使用ANSI C 语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value 数据库,并提供多种语言的API.从2010 年 ...

随机推荐

  1. Python3用多线程替代for循环提升程序运行速度

    [本文出自天外归云的博客园] 优化前后新老代码如下: from git_tools.git_tool import get_collect_projects, QQNews_Git from thre ...

  2. layui弹出层layer的area过大被遮挡

     layer弹出窗口在弹出时指定了area,弹出后,如果当前页面(iframe)大小比弹出的窗口小,那么就会出现无法操作弹出窗口的尴尬情况.如图: 弹出窗口比当前页面大,这时,唯有放大整个页面才能看到 ...

  3. linux安装nvm和nodejs

    下载nvm包: [root@centos ~]# wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install ...

  4. 媲美GWAS Catalog,囊括45万人数据,778个表型,3千万个位点的公共数据库:GeneATLAS

    欢迎关注微信公众号"bio生物信息" GeneATLAS的数据全部来自 UK Biobank 的452,264个英国白人样本. 总共囊括的表型有778个,位点有三千万个. 优点 网 ...

  5. Classic BAdi and New BAdi

    Former Member Classic BAdi and New BAdi ... 2007年04月27日 04:43 | 1.5k Views Hi all, I have a question ...

  6. 将pip源设置国内源

    windows (1)打开文件资源管理器(文件夹地址栏中) (2)地址栏上面输入 %appdata% (3)在这里面新建一个文件夹 pip (4)在pip文件夹里面新建一个文件叫做 pip.ini , ...

  7. 实例句柄0x10000000有什么特别之处?What is so special about the instance handle 0x10000000?

    当Load­Library函数返回特殊值时,客户想知道它意味着什么0x10000000.嗯,这意味着LIB被加载进了0x10000000?好的,这里有一些更多的信息:“我们正在尝试调试一个加载DLL的 ...

  8. 阿里开源 OpenJDK 发行版 Dragonwell

    日有消息显示,阿里将于 21 日重磅发布其 OpenJDK 发行版 Alibaba Dragonwell. 我们知道 OpenJDK 是基于 GPL v2/Classpath Exception 的 ...

  9. 【npm permission denied错误】npm ERR! Error: EACCES: permission denied, access

    在命令前加上 sudo sudo npm install --save-dev grunt 不过这样子可能还是不行,你需要这样: sudo npm install --unsafe-perm=true ...

  10. WIN10设置notepad++默认打开txt文件

    修改txt的默认打开方式为notepad++.效果如下图所示 修改方式: 1.新建名称为OpenFromNotepad++的txt文档,并将后缀名修改为reg格式(注册表格式),在文件中输入以下内容. ...