LNAV

LNAV,即Log File Navigator,INAV是一款增强型日志文件查看工具,安全审计人员可以利用INAV来分析并检查日志文件,并从中收集到相关的语义信息,例如时间戳和日志级别。使用这些额外的语义信息,INAV可以做很多事情,比如比对来自不同文件的信息,生成信息的直方图,以及帮助审计人员在日志文件中实现快速定位即导航,并帮助研究人员快速有效地发现问题。

工具依赖

在构建和使用INAV之前,研究人员需安装下列工具依赖组件:

gcc/clang – 兼容C++14的编译器

libpcre – Perl兼容正则表达式(PCRE)库

sqlite – SQLite数据库引擎,需要3.9.0或更高版本

ncurses – 文本UI库

readline – readline文本编辑库

zlib – zlib压缩库

bz2 – bzip2压缩库

libcurl – 根据URL下载文件的cURL库,需要7.23.0或更高版本

工具安装

LNAV的安装和配置符合GNU风格,广大安全审计人员可以使用下列命令完成LNAV的安装:

$ ./configure

$ make

$ sudo make install

如果广大用户是直接使用下列命令将项目代码克隆至本地的话:

git clone https://github.com/tstack/lnav.git

那么我们就需要运行下列编译脚本来完成源码编译,在命令行中切换到源码目录,然后运行下列命令:

$ ./autogen.sh

Cygwin用户

当然了,大家也可以在Cygwin中完成源码编译。或者说,你也可以直接从AppVeyor中获取已生成好的源码。请记住,此时你仍然需要使用Cygwin来配置INAV的依赖组件,直接运行下列命令即可完成依赖配置:

setup-x86_64.exe -q -P libpcre1 -P libpcrecpp0 -P libsqlite3_0 -P libstdc++6

根据我们对目前版本的测试,INAV的x64版本会比x86版本更加稳定。

工具使用

安装完成后,广大用户可以直接在无参数的情况下来使用INAV,并查看日志文件:

$ lnav

你也可以使用下列命令来查看所有的syslog信息:

$ lnav /var/log/messages*

配合systemd-journald使用

如果系统中运行了systemd-journald,你也可以使用INAV配合systemd-journald一起使用:

$ journalctl | lnav

或者:

$ journalctl -f | lnav

由于journalctl的默认输出格式忽略了年份数据,因此如果你查看的日志跨越了多个年份的话,则需要更改输出格式以包含年份,否则lNAV可能会出现错误情况:

$ journalctl -o short-iso | lnav

journalctl也可以支持JSON输出格式,INAV还会使用到很多额外的数据域,例如PRIORITY和_SYSTEMD_UNIT:

工具截图

下列截图中显示的是一个系统日志文件(syslog),其中的关键内容已高亮显示,错误信息为红色标记,警告信息为黄色标记。

项目地址

GitHub:【传送门

官网:【传送门

* 参考来源:tstack,FB小编Alpha_h4ck编译,转载请注明来自FreeBuf.COM

前言

自2016年起,Mirai僵尸网络就因发动大规模网络攻击并摧毁各种基础设施而闻名于众,它也已经成为了网络安全领域对中、大型物联网僵尸网络评估的一个参考因子。自从它开源之后,很多对僵尸网络感兴趣的人都会根据Mirai的源码来构建自己的僵尸网络,因此便出现了各式各样的Mirai变种,除了以破坏为目的的网络攻击之外,现在也开始有人在利用受损设备的算力来进行挖矿活动了。

Bitdefender的研究人员近期正在追踪分析一款名为LiquorBot的僵尸网络,这款僵尸网络同样是基于Mirai源码开发的,而且它目前也正处于积极开发阶段,最近甚至还加入了挖门罗币的功能。

有趣的是,LiquorBot采用Go语言开发,与传统的C语言风格代码相比,Go提供了很多其他的编码优势,比如说内存安全、垃圾回收、结构类型等等。

关键发现

1、使用Go语言对Mirai进行了重新编译;

2、交叉编译,涉及多种架构(ARM、ARM64、x86、x64、MIPS);

3、引入了加密货币挖矿功能;

4、利用SSH爆破以及路由器漏洞来实现传播感染;

Dropper脚本

LiquorBot被交叉编译为多种体系架构,针对了各种CPU架构,其中包含ARM、ARM64、x86、x64、MIPS。在感染过程中,Dropper脚本会下载所有的Bot Payload,这里不会根据目标设备的CPU架构来进行逻辑过滤。

Dropper脚本代码本身并不多,主要用于从攻击者控制的服务器获取源码文件。该脚本另一个比较有趣的特点是它使用了“#!/bin/sh”,这比使用“#!/bin/bash”更加稳定可靠。除此之外,由于脚本似乎没有加载“bash”支持的任何特定功能,因此恶意软件开发人员选择了“sh”变种来作为系统脚本应使用的默认Shell。

攻击者所使用的挖矿程序配置脚本似乎还针对CPU挖矿算法设置了不同的哈希率:

LiquorBot功能

跟Mirai类似,LiquorBot会对其字符串进行混淆处理,并存储至一个映射表中。每次访问一个条目时,都需要向每个字符串添加值“0×51”来完成解密。下图列出的是LiquorBot解密字符串的情况:

它还从Mirai借鉴了另一个功能,即通过尝试进行端口绑定来确保单个Bot能够在目标设备上正常运行。Bot所使用的主机地址和端口会以参数的形式发送至映射表中的“net.Listen”(条目9),其他版本的Bot会将监听端口设置为42007。

开始执行之后,Bot会进行重启,然后尝试伪装成sshd守护进程来运行。

Bot还会以下列形式并将数据写入/etc/resolv.conf来更新DNS解析器:

Bot的生命周期还包含一个清理阶段,此时它会删除所有植入的文件 (/tmp/.lmr,/tmp/.ldrop, /tmp/config.json)并清除Bash历史记录。

Bot会跟下列多个服务器进行通信:

1、CnC:Bot向服务器报告目标设备的漏洞,并从服务器接收控制命令;

2、挖矿服务器;

3、托管恶意代码的服务器;

C&C服务器可以响应下列命令:

download

rget

exec

Shutdown

恶意软件传播

LiquorBot可以利用某些关键CVE漏洞以及其他各种命令注入和远程代码执行漏洞,其中包括但不限于:

CVE-2015-2051, CVE-2016-1555, CVE-2016-6277,CVE-2018-17173, CVE-2017-6884, CVE-2018-10562, CVE-2017-6077, CVE-2017-6334, CVE-2016-5679, CVE-2018-9285, CVE-2013-3568, CVE-2019-12780

入侵威胁指标IoC

14592719e2a354633131bc238f07aa0cb9cce698

1611a8445085d1687c72b7e5a7c5602cbe580c8b

1f15195ddc1e4174674fbf5d1fc95ed0a7726f7b

2784a122089c20d5c02665da1241fe02f9ac90cc

2901d4ee7f289bf0b1a863bec716d751f66a4324

2d1d294aac29fab2041949d4cb5c58d3169a31d3

31176239ab5187af5d89666f37038340b95a5a4e

31d9ca734c5f4c1787131d3a1b6b91ca60e57794

331ec23c250b86d912fa34e0e700bfcac1a7c388

3453a96414e63a813b82c6d98fa3b76c1824abd8

36382165bb53a7ed9387a02e5b9baee36fe23f64

48c863e4ad23fb946386320f3a85391b54ba50ad

49602256c8d65d0620d5abe8011a78425c7ae177

54bdfa936c9eb4ea329ca35b95e471d51daef1d5

5821ff8eb9b23035a520e1fb836e43b1ec87ffaf

61abc90c20930c7615880ac9931778b48b9e6ebd

63b556a0afcf643337310254cc7f57c729188f36

65cd6a0371bdfffd7383907ba9a816e8e2e95da5

6c7a92d5d68b68ddba10af7ca6350cfb24b2595f

6d24c472b06e6f9ac3204ca768319d2b035a210a

8364c272e0c95ed214c71dbcb48f89c468544bc8

8df16857cb914f5eded0249cfde07f1c01697db1

a69f9f5f2ac15aec393ab68277ec268c0624fe91

b40f4f13b2b144946b165a2e4284c96fbc0d4682

b9dd4d230d103b3db458d752d4917466ec1cb9b0

ba55d92e3d7dba70205597433f1a98b35e4911b8

bb07341ab6b203687845ae38cd8c17dfc947e79f

c59dd90f7cefadaa80d9c0113f8af39e4ed0c1a1

c5adabbdbf641f3e53e3268af60ac1b26088aa6b

c6d850e264d7d8d6978cd85d69c22b29378e34e4

c7ed7241e2d21fa471b6bfd6b97b24b514b3c5f2

d216f33695421dfb17e69ed05aec46cf84b544b7

d59175ffacd8895362253a3bcb18637ced765fcd

d62cdd8f16a8f6b6cde5e8da633c224eab4765f2

e91f2d5df4ef43cb4c69b15de9a68c7ff2d4951d

fd65e6c5ae07c50c7d7639e2712c45324d4cf8de

相关域名:

ardp.hldns.ru

bpsuck.hldns.ru

Wpceservice.hldns.ru

systemservice.hldns.ru

* 参考来源:bitdefender,FB小编Alpha_h4ck编译,转载请注明来自FreeBuf.COM

在这里讲一下开源WAF的测试评估方法,以成品文档为例。

一. 测试目的

当WEB应用越来越为丰富的同时,WEB 服务器以其强大的计算能力、处理性能及蕴含的较高价值逐渐成为主要攻击目标。SQL注入、网页篡改、网页挂马等安全事件,频繁发生。2007年,国家计算机网络应急技术处理协调中心(简称CNCERT/CC)监测到中国大陆被篡改网站总数累积达61228个,比2006年增加了1.5倍。其中,中国大陆政府网站被篡改各月累计达4234个。

企业等用户一般采用防火墙作为安全保障体系的第一道防线。但是,在现实中,他们存在这样那样的问题,由此产生了WAF(Web应用防护系统)。Web应用防护系统(Web Application Firewall, 简称:WAF)代表了一类新兴的信息安全技术,用以解决诸如防火墙一类传统设备束手无策的Web应用安全问题。与传统防火墙不同,WAF工作在应用层,因此对Web应用防护具有先天的技术优势。基于对Web应用业务和逻辑的深刻理解,WAF对来自Web应用程序客户端的各类请求进行内容检测和验证,确保其安全性与合法性,对非法的请求予以实时阻断,从而对各类网站站点进行有效防护。

由于公司曾接连发生入侵事件,搭建WAF阻挡黑客脚步势在必行。

二. 测试范围

本次测试包括以下几个方面:

模拟黑客攻击看是否阻断生效

模拟灾难发生(宕机或网络波动等)看是否切换备用WAF正常工作

模拟大流量并发看是否WAF能抗压正常工作

模拟误报信息看WAF是否支持调整策略

模拟紧急情况WAF是否能切换工作模式

三. 测试环境

3.1网络拓扑

3.2软/硬件环境

角色 设备 IP地址 安装模块
WAF Linux Centos 7 192.168.99.17 Nginx1.15.5
ModsecurityV3
Java1.8.0
Geoip
Elasticsearch
Logstash
Filebeat
Keepalive
Python2.7
192.168.99.18 Nginx1.15.5
ModsecurityV3
Java1.8.0
Geoip
Elasticsearch
Logstash
Filebeat
Keepalive
Python2.7
192.168.105.18 Elasticsearch
Logstash
Kibana
Java1.8.0
Geoip

四. WAF测试项对比

模拟黑客攻击看是否阻断生效

将WAF模式调整为阻断模式,模拟SQL注入,及时阻断,返回码403

测试通过

模拟灾难发生(宕机或网络波动等)看是否切换备用WAF正常工作

将主WAFnginx关闭,访问域名依然正常,备用WAF上有访问日志

测试通过

模拟大流量并发看是否WAF能抗压正常工作

测试组发送压力包,WAF工作正常,监控CPU不超过10%

测试通过

模拟误报信息看WAF是否支持调整策略

发送模拟包触发WAF规则,通过ELK观察包显示的触发规则文件修正规则,修正后重启nginx,修正生效,放行模拟包

测试通过

模拟紧急情况WAF是否能切换工作模式

将modsecurity模块关闭,访问域名依然正常,nginx有访问日志,modsecurity没有访问日志

测试通过

五. 应急措施

应急等级分为高中低三个等级

低级:

一般为测试数据阻断,返回码为403,手动分析数据包中传递参数是否合理,若合理则寻找对应规则文件进行正则匹配修改或整体规则注释;若不合理则沟通研发进行报文调整

中级:

一般为大量长期数据阻断,返回码为403,先手工切换WAF工作模式为仅检测(modsecurity.conf->SecRuleEngine DetectionOnly),观察数据包是否恢复正常,若恢复正常,后续按照低级应急方案处理,若依旧不正常,则按照高级应急方案处理

高级:

一般为中级应急方案无效,则手动切换nginx安全模块为关闭状态(nginx.conf->modsecurity off),保证数据正常的情况下再进一步排查问题

六. 测试结论

WAF部署简单方便,使用ELK分析WAF日志对于专业人员来说十分轻松,与此同时能防御多种多样的攻击,防御列表如下:

SQL注入(SQLi) PHP代码注入
跨站点脚本(XSS) HTTPoxy
本地文件包含(LFI) Shellshock
远程文件包含(RFI) 会话固定
远程执行代码(RCE) 扫描程序检测
Xml代码注入(XXE) 命令注入
拒绝服务攻击(DoS) java反序列化

使用此WAF的优点:

免费,节省开支

可控,可随时增加修改自定义策略

灵活,通过日志灵活判断是否为攻击

安全,可阻断大部分的攻击

范围,只要部署网络任意位置用nginx转发即可使用

高效,过滤恶意流量增强了后端nginx处理效率

性能,不占用过多性能完全依赖nginx处理数据

使用此WAF的缺点:

误报,存在一定几率误报需实时监控调整

经过测试分析,WAF可有效阻断大部分黑客攻击,对于0day有着一定的防御作用。由于部署模式为双机热备,极大程度保证了WAF的运行安全以及业务的稳定。并经过流量测试证明了WAF的稳定性。同时撰写了应急方案,一旦产生误报有及时的应急措施帮助业务恢复稳定。必要时可关闭防御保证业务的可持续性。

在安全防护体系中,waf作为安全前线的第一道防护,起到了缓解的作用,在实际场景中,可以阻断公司前段时间发生的安全问题像XXE攻击等,同时有助于公司通过安全等级保护,极大程度保护交易数据不被篡改,同时保护服务器免遭黑客干扰,所以部署WAF势在必行。

*本文原创作者:煜阳yuyang,本文属于FreeBuf原创奖励计划,未经许可禁止转载

一个概念或者一个事情如果有一个标准来判断好与不好,好的话那么是好到什么程度。有了这个标准可以知道当前的状态,如何往更好的方向努力。在学校期间的考试分数是一个学生学习好坏的评判标准。

在注重数字化运营时代,凡事都在追求量化数字化,有了可量化的结果,能够明白当前的状态,同时明白哪些需要可以继续提升,哪些需要部分填补空白。

因此一个好的评价体系就显得很重要,从哪些维度去进行评价,各个维度所占的权重。一旦设定好了,大家就会根据所要求的项去发力做好。拿高中教育来举例,一切唯分数论,那么学生父母也就步调一致,能否提高分数是要不要做一件事的评判标准。导致体育课,美术课,音乐课老是被占用。为什么?因为中考高考不考这些。

一个好的评价体系是为了把一件事物往长期健康的方向引导。

SDL目标就是为了减少应用系统的风险,其中一个很重要的衡量标准是漏洞数。听说有些企业如果被白帽子发现高危漏洞,影响开发团队和安全团队的KPI。

不同对象有不同的考核评价角度,我们主要谈谈安全测试人员以及公司两个部分。

安全SDL实施人员

安全人员在SDL中考核除了外暴漏洞数、漏洞漏测率、漏洞修复率,还包括安全培训、规范沉淀、自动化实现等。

外暴漏洞数、漏洞漏测率、漏洞修复率这些指标都是围绕减少风险这个目标为导向的。每年都会根据所负责的系统的情况制定一个合理KPI数值。当所负责的系统被白帽子暴漏洞的时候内心就是一句“我靠”,又被暴问题了,同事之间就会开玩笑说今年的KPI完蛋了。

围绕漏洞这个指标大家都有,这个是结果。而规范沉淀就是一个把过程更好实现的一个方式。需求评审关注哪些、设计评审关注哪些、有哪些成熟的设计方案、安全编码注意哪些、安全测试测哪些,将这日常中的点点滴滴沉淀下来,无论是形成规范、checklist、基线还是通用方案。这些可以使工作规范化,避免遗漏,同时可以在团队内共享,大家共同完善,形成知识库,随时查阅。也可以让新人快速上手工作。因此沉淀这块也基本会作为KPI之一去完成。

一项工作的发展大体遵循从混乱、到有序规范并渐渐过渡到自动化的过程。开始的时候是摸索阶段,需要花费很多的时间,后面慢慢了解了套路,每次按照套路来,很快就能完成工作。同样机械的动作重复多次之后,就会想着能否自动化。工具、脚本就是自动化的一种实现。自动化可以节省人力,大大提高效率。SDL中哪些可以自动化,最容易想到的是安全测试,DAST、IAST这两种方式已经比较成熟了,商业开源可根据实际情况选择。代码扫描也能实现自动化,还可以完美嵌入公司的开发流程中,可以做到在代码上传后自动扫描。这些都是安全SDL实施人员可以纳入KPI中的。

公司

整个SDL做得好不好,还得从整个体系去看。目前我们团队尝试做了一个初期的SDL成熟度模型,借鉴了其他安全标准的制定,比如BSI、SAMM,划分了五个阶段

第一阶段:不可预测、无反应性

第二阶段:反应缓慢、能力有限

第三阶段:可重复、主动、模板化

第四阶段:可测量、有目的性

第五阶段:不断优化、持续改进

很多事物的成熟度都可以划分为这几个阶段,比较通用的。需要考虑的是每个阶段每一项内容需要写到什么程度。比如我们考察了涉及到安全部分占领导开发团队KPI多少,安全开发的深入流程深度,工具化平台化程度、公司考核、规范制度、漏洞闭环程度、人员配备等,通过这一系列的维度来判断SDL处于什么状态,后续可以往哪些方面提高。

目前SDL这块好多大公司都在实践,大家各自都有各自相关的规范、方法论、评价体系,没有优劣,只有是否合适,根据开发人员安全人员比、业务系统大小、安全预算、企业发展等,打造适合自己公司的SDL,但是规范、方法论、工具仍然是可借鉴或者部分可借鉴的。

*本文原创作者:page100,本文属于FreeBuf原创奖励计划,未经许可禁止转载

前段时间很多人给我发私信,想要交流下DSMM的相关内容,并追问下一篇文章什么时候分享。在这里给大家说声不好意思,因为这阵子工作太忙了,没时间进行总结和整理,所以每天晚上抽出点时间整理下,形成本文。以后尽量定期进行更新。

截止到目前,已经介绍和分享了五个部分,分别为DSMM开篇的总结与交流、数据采集安全、数据传输安全、数据存储安全、数据处理安全,各地址如下:

DSMM开篇总结与交流

DSMM数据采集安全

DSMM数据传输安全

DSMM数据存储安全

DSMM数据处理安全

过年了,祝大家新年快乐,也希望大家和我多多交流,多提宝贵意见。下面开始本次分享的核心内容——DSMM之数据交换安全。

一、背景

数据安全生命周期分为采集、传输、存储、处理、交换、销毁几个阶段,其中数据交换阶段涉及数据的转移,信息安全风险很高,所以数据交换安全的重要性不言而喻。数据交换安全包含四个过程域,分别为:数据导入导出安全、数据共享安全、数据发布安全、数据接口安全。

DSMM分为5个成熟度等级分别为:非正式执行、计划跟踪、充分定义、量化控制、持续优化;安全能力的维度包括组织建设、制度流程、技术工具、人员能力。我们在落地执行的时候一般按照等级3即充分定义级进行相关的工作,因为在充分定义级里面完整的包含了安全能力维度的四个方面,而等级1和等级2是没有覆盖完全的,至于等级4和等级5就是进行一些量化细化和持续改进的,可以在DSMM体系建设完成后进行拔高。每个过程域都是按照这样的思路进行要求的,所以接下来介绍的数据处理安全的各过程域都是按照这个思路进行建设的。

二、具体内容

2.1数据导入导出安全

数据导入导出广泛存在于数据交换过程中,通过数据导入导出,数据被批量化流转,加速数据应用价值的体现。如果没有安全保障措施,非法人员可能通过非法技术手段导出非授权数据,导入恶意数据等,带来数据篡改和数据泄漏的重大事故,由于一般数据导入导出的数据量都很大,因此相关安全风险和安全危害也会被乘倍放大。所以,需要采取有效的制度和工具措施控制数据导入导出的安全风险。

DSMM标准在充分定义级要求如下:

组织建设:

组织机构设立统一的数据导入导出安全管理岗位和人员,负责制定规则和提供技术能力,并推动在组织机构内业务场景落地执行。

在DSMM的要求中这个几乎都是一样的,每个过程域都需要指定专人和专岗负责该项工作,并能够胜任此工作。在实际工作中,可能所有的过程域在这个维度上都是同样的一个或多个人,可以单独任命,也可以在相应的制度章节中进行说明。

制度流程:

依据数据分类分级要求建立符合业务规则的数据导入导出安全策略,如授权策略、流程控制策略、不一致处理策略等

建立数据导出安全评估和授权审批流程,评估数据导出的安全风险,并对大量或敏感数据导出进行授权审批。

如采用存储介质导出数据,需建立针对导出介质的标识规范,明确介质的命名规则、标识属性等重要信息,定期验证导出数据的完整性和可用性。

制定导入导出审计策略和日志管理规范,并保存导入导出过程中的出错数据处理记录。

技术工具:

记录并定期审计组织内部的数据导入导出行为,确保未超出数据授权使用范围。

对数据导入导出终端、用户或服务组件执行有效的访问控制,实现对其身份的真实性和合法性的保证。

采取数据加密、访问控制等技术手段,保障数据在传输中的保密性、完整性和可用性。

在导入导出完成后对数据导入导出通道缓存的数据进行清除,以保证导入导出过程中涉及的数据不会被恶意恢复。

人员能力:

负责数据导入导出安全工作的人员能够充分理解组织机构的数据导入导出策略,并根据数据导入导出的业务场景执行相应的风险评估,从而提出实际的解决方案。

以下是我们在数据导入导出安全过程中具体落地实践的内容。

1.设置专门的负责导入导出的人员,并对导入导出安全负责,当然也可能不止一个人,我们这是一个数据团队。

2.定义数据导入导出的场景,明确数据导入导出的范围、内容、格式等,场景很重要,不同的场景,安全策略是不同的,不能一概而论。

3.建立数据导入导出安全规范,并依据不同的场景,制定不同的安全策略,如访问控制策略、审核策略、处理策略等。这些策略应该细化可执行,并经过评审才可以实施。

4.制定数据导入导出的安全审核策略,明确导入导出的数据内容、涉及的部门组织、及数据用途、授权审核同意/否决等。

5.对导出的数据存储的介质进行标识,明确介质命名规则,统一编号格式,定期对数据的完整性和可用性进行验证。如果这些数据不再使用,建议还是进行删除销毁,避免数据泄漏。

6.对导入导出的数据采取必要的安全技术措施,如木马检测、加密传输、加密存储、完整性校验等,确保导入导出数据的安全。其实,这更多的偏向于导入的安全检测防护,因为对于导入的数据,是不可信的。当然导出的数据也需要进行完整性校验等措施。

7.对导入导出的过程进行日志记录,以便溯源和监控工作的开展,并定期进行审计发现存在的安全风险。这是数据安全整个生命周期所有阶段都需要的。

8.对导入导出的人员采用必要的认证措施,防止假冒。身份认证是数据安全防护的基础。

9.对导入导出的数据进行机器和人工双重校验,保证数据的完整性和可用性。

下图是我们对数据导入导出安全的梳理。

2.2数据共享安全

在数据交换环节中,业务系统将数据共享给外部组织机构,或者以合作方式与第三方合作伙伴交换数据,数据在共享后释放更大价值,并支撑数据业务的深入开展。

数据共享过程中面临巨大安全风险,数据本身存在敏感性,共享保护措施不当将带来敏感数据和重要数据的泄漏。因此,需要采取安全保护措施保障数据共享后数据的完整性、保密性和可用性,防止数据丢失、篡改、假冒和泄露。

DSMM标准在充分定义级要求如下:

组织建设:

组织机构设立统一的数据共享交换安全管理的岗位和人员,负责相关原则和技术能力的提供,并推广相关要求在相关业务场景的落地执行。

组织建设要求和数据导入导出安全过程域中组织建设要求类似,这里不再赘述。

制度流程:

制定数据共享的原则和安全规范,明确数据共享内容范围和数据共享的管控措施,及数据共享涉及机构或部门相关用户职责和权限。

明确数据提供者与共享数据使用者的数据安全责任,确保共享数据使用者具备与数据提供者足够或相当的安全防护能力。

制定数据共享审计策略和审计日志管理规范,明确审计记录要求,为数据共享安全事件的处置、应急响应和事后调查提供帮助。

使用外部第三方的SDK/组件/源码前进行安全评估,确保第三方获取的数据符合组织机构的数据安全要求。

技术工具:

采取多种措施确保个人信息在委托处理、共享、转让等对外提供场景的安全合规,如数据脱敏、数据加密、安全通道、共享交换区域等。

对共享数据集数据共享过程进行监控审计,确保共享的数据属于共享业务场景需求且没有超出数据共享使用授权范围。

建立共享数据格式规范,如提供机器可读的格式规范,确保高效获取共享数据。

人员能力:

负责该项工作的人员能够充分理解组织机构的数据共享策略,并根据数据共享的业务场景执行相应的风险评估,从而提出实际的解决方案。

以下是我们在数据共享安全过程中具体落地实践的内容。

1.明确数据共享的场景,如内部业务系统之间的共享、基于业务需要的对外共享等,细化数据共享涉及的数据范围、数据类型、数据内容及数据格式等。要区分内外共享场景,评估不同场景的数据共享风险。

2.在提供数据共享时要明确数据提供者和数据使用者的安全责任,如建立书面的安全责任说明/协议,明确双方责任义务、对数据保护采取加密、完整性校验技术防护要求等。提前说明责任和义务以及相应的要求。

3.建立数据共享的审核流程,包括共享的数据内容、涉及的部门和组织、授权审批同意/否决、归档记录等。尤其对于向外部提供的共享数据,一定要有严格的审核流程。

4.制定数据共享审计日志管理规范,所有的数据共享内容和过程需要提供日志记录并保存,以便应急处置和溯源。

5.对于涉及第三方数据交换加工平台的场景,如使用外部第三方的SDK、组件、源代码等,需要制定明确的安全评估要求和流程,确保符合数据共享安全要求。

6.在数据共享交换过程中需要采取必要的措施对重要的数据、个人隐私敏感数据等进行防护,做到“可用不可见”,如电话信息可不见但是可以直接拨打、***信息不可见,但是可以进行比对认证等。电子商务和O2O业务的企业在这方面做的很不错,本人也有切身体会。

下图是我们对数据共享安全的梳理。

2.3数据发布安全

数据发布是指组织内部数据通过各种途径向外部组织公开的一个过程,如数据开放、企业宣传、网站内容发布、社交媒体发布、PPT资料对外宣传等。通过在对外部组织机构进行数据发布的过程中对发布数据的格式、适用范围、发布者与使用者权利和义务执行的必要控制,实现数据发布过程中数据安全可控与合规,防止出现违规对外披露造成对组织的名誉损害,资产损失等不良影响时间发生。数据发布安全保障发布内容的真实性、正确性、实效性和准确性。

DSMM标准在充分定义级要求如下:

组织建设:

组织机构指定专人或设立相关岗位人员,负责组织机构的数据公开发布信息,并且对数据披露人员进行安全培训。

组织建设要求和数据导入导出安全过程域中组织建设要求类似,这里不再赘述。

制度流程:

建立数据资源公开发布的审核制度,严格审核数据发布符合相关法律法规要求。

明确数据资源公开内容、适用范围及规范,发布者与使用者权利和义务。

定期审查公开发布的数据资源中是否含有非***息,并采取相关措施确保发布数据使用的合规性。

技术工具:

建立数据资源公开数据库,通过数据发布平台服务实现公开数据资源登记、用户注册等发布数据和发布组件的验证互认机制。

采取必要措施建立数据资源公开事件应急处理机制。

人员能力:

负责数据发布安全管理工作的人员充分理解数据安全发布的制度和流程,通过了岗位能力测试,并能够根据实际发布要求建立相应的应急方案。

以下是我们在数据发布安全过程中具体落地实践的内容。

1.建立数据发布审核制度和流程,包括数据待发布内容、涉及的部门和组织、审核批准/否决、数据发布应急处理流程等,确保发布内容可以公开的并且符合法律法规要求。这需要和市场部门一起进行会议协商、评审,确保制度和流程的合理可行。

2.发布的数据内容应明确适用范围、发布者和使用者的权利和义务。如所有权归属,未经同意禁止转载、禁止商业使用等。

3.建立定期审核检查制度,对已发布的数据进行监控,确定符合数据发布安全管理规定,同时对有效性进行监控,及时检查已发布数据在现有情况下是否仍然有效。

下图是我们对数据发布安全的梳理。

2.4数据接口安全

在数据共享交换中,通过API数据接口获取数据是常见的方式。如果对于数据接口进行攻击,将导致数据通过数据接口泄漏。通过建立组织机构的对外数据接口的安全管理机制,防范组织机构在数据接口调用过程中的安全风险。

DSMM标准在充分定义级要求如下:

组织建设:

组织机构设立统一负责数据接口安全管理的岗位和人员,由该岗位人员负责制定整体的规则并推广相关流程的推行。

组织建设要求和数据导入导出安全过程域中组织建设要求类似,这里不再赘述。

制度流程:

制定数据服务接口安全控制策略,明确规定使用数据接口的安全限制和安全控制措施,如身份鉴别、访问控制、授权策略、签名、时间戳、安全协议等。

明确服务接口安全规范,包括接口名称、接口参数、接口安全要求等。

与数据接口调用方签署了合作协议,明确数据的使用目的、供应方式、保密约定、数据安全责任等。

技术工具:

采用技术工具实现对数据服务接口调用的身份鉴别和访问控制。

具备对接口不安全输入参数进行限制或过滤的能力,为接口提供异常处理能力。

具备服务接口访问的审计能力,并能为大数据安全审计提供可配置的数据服务接口。

对跨安全域间的服务接口调用采用安全通道、加密传输、时间戳等安全机制。

人员能力:

负责数据接口安全工作的人员充分理解数据接口调用业务的使用场景,具备充分的数据接口调用的安全意识、技术能力和风险控制能力。

常见的接口安全攻击方式如下:

伪装攻击。例如:第三方有意或恶意的调用。

篡改攻击。例如:请求头/查询字符串/内容 在传输过程被修改。

重放攻击。例如:请求被截获,稍后被重放或多次重放。

数据信息监听。例如:截获用户登录请求,截获到账号、密码等敏感信息。

针对这些常见的安全威胁,以下是我们在数据接口安全过程中具体落地实践的内容。

1.制定接口开发规范,对涉及的接口类型、编码格式、变量名称、变量类型、长度、大小等内容进行规范定义。

2.制定接口安全策略,包括但不限于接口身份鉴别token、访问控制权限、签名防抵赖、时间戳、安全传输协议HTTPS等。

3.与接口调用方签订安全责任声明书,包括双方权利义务、数据使用目的、调用频次、责任归属等。

4.建立统一的数据接口管理平台,实现对数据接口的管理和审核,保证开放的接口符合安全规定要求。

5.对接口进行大量的安全测试,包括非授权登录、重放攻击、数据篡改、假冒伪装等,确保接口安全。

6. 应提供接口调用的日志记录,包括日期、时间、调用人/ip、状态、返回内容等,方便后期进行溯源,同时对接口异常事件进行告警通知。

下图是我们对数据接口安全的梳理。

三、写在最后

大数据时代,数据只有“活”起来,才能发挥出应有的价值,企业进行数据共享交换才会带来更大的经济效益,所以数据交换会发生的的很频繁,随之产生的安全风险也非常高,在这样的场景下,数据交换安全显得尤为重要。

虽然在文中,很多制度和技术工具是分开叙述,但是在实际工作中可能是混在一起的,同时很多具体实现的部分也不仅仅只是应用在一个过程域或者一个生命周期阶段,甚至可以应用在整个生命周期过程中。比如各过程域都提到了要进行相应的审计,保留日志记录,以便进行溯源和事件问题追踪,这在其他各阶段,如采集、传输、存储、处理等也有相应要求。

以上就是DSMM数据交换安全过程的要求以及我们在实际落地执行过程中的一点心得和体会,希望能够给大家带来一些启发,也算是抛砖引玉,欢迎大家和我进行沟通交流,提出宝贵意见,一起进步。

*本文原创作者:LJ_Monica,本文属于FreeBuf原创奖励计划,未经许可禁止转载

RansomCoin

RansomCoin是一款DFIR工具,可以帮助广大研究人员从二进制源码文件中提取加密货币地址以及其他的入侵威胁指标IoC。RansomCoin支持提取的包括勒索软件的元数据以及硬编码的入侵威胁指标IoC,它能够以一种可扩展的、高效的、与Cuckoo集成的形式进行数据采集,在理想情况下,它可以在Cuckoo动态分析的过程中执行,但也可以用于对大量勒索软件**进行静态分析。该工具运行速度非常快,并且针对加密货币地址的误报率非常低。除此之外,该工具针对电子邮件、URL地址、洋葱域名以及其他域名的误报率也比较低,但在这些方面很难做到完美。

简而言之,如果你需要对这些货币化的攻击向量进行简单而快速的初始分类,那么RansomCoin就是你绝佳的选择。

工具下载

广大用户可以直接使用下列命令将项目代码克隆至本地:

git clone https://github.com/Concinnity-Risks/RansomCoinPublic.git

工具安装

在使用RansomCoin之前,请确保你的主机中已安装并配置好了Python 3环境。

Linux虚拟机

我们建议广大安全研究人员下载并安装一个虚拟机环境,例如VirtualBox。安装好你的Linux虚拟机之后,请按照下列操作步骤进行配置。

切换到工具所在目录,然后运行下列命令:

sudo apt-get install build-essential libpoppler-cpp-dev pkg-config python-dev python3-tlsh

python3 -m pip install -r requirements.txt

请注意:如果系统提示有关pip命令的错误,请尝试运行下列命令:

sudo apt-get install python3-pip

工具使用

下列命令都可以直接从项目目录下的“Tools”文件夹中直接运行,并对该目录下的恶意软件样本直接进行分析。在该目录下运行命令可以直接扫描目录下的所有文件,并通过TQDM提供预计完成分析的时间。在开始之前,我们需要给目录下的Ransomware.csv文件提供可写权限。

工具演示视频:

Coinlector.py

运行完coinlector.py之后,脚本将会把分析结果输出到该目录下的一份名叫Ransomware.csv的文件之中:

python3 coinlector.py

运行下列命令即可查看分析结果:

less Ransomware.csv

功能介绍

当前版本的RansomCoin支持下列检测因子:

-比特币地址(BTC)

-比特币现金地址(BCH)

-门罗币地址(XMR)

-比特币私钥

-以太坊地址(ETH)

-XRP地址(XRP)

-莱特币地址(莱特币)

-DOGECOIN地址(DOGE)

-NEO地址(NEO)

-DASH地址(DASH)

-域名(地址)

-电子邮件地址(电子邮件)

-洋葱地址(地址)

我们还可以通过运行下列grep命令来查看URL地址、电子邮件地址和加密货币地址:

less Ransomware.csv | grep URL

less Ransomware.csv | grep Email

less Ransomware.csv | grep Address

针对门罗币地址的grep命令如下:

less Ransomware.csv | grep XMR

我们还可以通过替换上述命令中的加密货币名称来搜索其他类型的检测因子。

Tempuscoin.py

tempuscoin.py将会输出带时间戳的赎金交易列表,该脚本运行后将会创建一个名叫TemporalRansoms.csv的文件,其中将存储和显示发送和接收的比特币地址、比特币金额及其交易时等值的欧元和美元兑换价格。

python3 tempuscoin.py

运行下列命令即可查看分析结果:

less TemporalRansoms.csv

Eventcoin.py

这个脚本需要进行自定义修改以适用于不同的MISP实例。该脚本可以使用PyMISP来从Ransomware.csv文件中创建事件,并且同一事件组共享相同的事件名称。默认情况下,它会创建未发布的事件,然后需要在发布之前手动添加事件的详细信息。

项目地址

RansomCoin:【GitHub传送门

* 参考来源:Concinnity-Risks,FB小编Alpha_h4ck编译,转载请注明来自FreeBuf.COM

“实战是检验安全的唯一标准”

随着企业组织的业务规模不断扩大,信息化运用快速发展,业务与数据安全已经被推上战争的高地,成为企业保护自身安全的重中之重,成为企业信息安全官在战略计划汇报中不得不谨慎对待的课题。

现阶段,全球范围内的网络空间对抗加剧,网络军事化特征明显,信息安全正面临严峻的挑战,国家也愈发重视。今年网络安全的红蓝对抗为人们安全观念和意识的转变带来了契机,虽然企业安全防御技术争论不休,但唯一不争的共识是,企业能够建立最好的安全防御体系的方式就是通过对抗演练来进行检验。

企业市场也不断涌现红蓝对抗的建设需求,攻防演练得到企业的重视,攻击视角能帮助防守团队找到防守视角的盲点,企业级渗透测试服务的采购也成为企业安全团队思考的问题。

渗透测试服务标准

企业级渗透测试服务,是工程化的项目服务,具有完整的管理流程和标准化服务。尽管渗透测试的方法各不相同,但依然有一些标准化的方法体系规范,而对于企业内部安全部门在提供安全测试服务时,依然有可取之处。

PTES(Penetration Testing Execution Standard)渗透测试执行标准是安全业界在渗透测试技术领域中开发的一个新标准,也是普遍应用比较广的事实标准,目标是在对渗透测试进行重新定义,新标准的核心理念是通过建立起进行渗透测试所要求的基本准则基线,来定义一次真正的渗透测试过程,已得到安全行业的广泛认同。

完成更好的渗透测试

高价值的渗透测试活动涉及对现实世界中恶意攻击者使用的技术进行建模、发现漏洞,并在一定受控环境下,根据提前精心设计的参与规则和协定的范围,以专业、安全的方式利用这些漏洞。此过程有助于确定业务风险和可能受到攻击的潜在影响,所有这些都旨在帮助企业组织改善其安全现状。

以下是安全专家总结的渗透测试某些阶段的提示,以帮助您在日常工作中提供更高的业务价值。可以成为安全部门在内部提供标准化服务建设时的成熟小建议,同时也可以作为组织寻求企业级渗透测试服务的标准化要求。

1、前期交互:

1.前期沟通时使用话术模板来指导语音会话,以确定参与的范围和规则。

2.对目标系统(MSSP、云提供商、ISP、共享托管环境、边界路由器、DNS服务器等)进行获取信息或进行操作时,请确保您获得了任何第三方的测试书面许可。

3.在与目标系统方人员交流制定您的规则时讨论同时使用黑盒与白盒测试,并指出白盒测试通常提供更详细的结果、更安全,并提供更好的商业价值。

4.与目标系统人员讨论他们在其环境中具有的特殊敏感的信息(例如PII),以及如何在不实际下载的情况下测试对其数据的访问。考虑尝试使用植入通用的样本记录来演示您的访问权限,而不是实际的敏感数据。

5.每天与目标系统人员进行电话汇报,交流意见和经验教训。如果每天太频繁,可以考虑每周打2-3次电话。(每周留出1-2小时参加各种CTF比赛,保持你的技能熟练程度。这些比赛包括各大CTF网站提供的免费在线比赛或线下赛,以及其他类对抗比赛。)

2、情报侦察:

1.仔细考虑与第三方服务器和搜索的所有交互(谨慎使用),以确保您不会泄露有关目标的敏感信息或使用他们导致的违反保密协议。您可能需要考虑使用Tor网络来模糊隐匿您与目标组织的关系。

2.使用谷歌语法搜寻目标网站上常见的办公类文件,例如(或filetype:):

site:<TargetDomain> ext:doc |ext:docx | ext:xls | ext:xlsx | ext:pdf

3.记得搜集社交网站,QQ、微信朋友圈、知乎、微博、支付宝生活圈、抖音,安全从业者尤其喜欢安全圈子论坛及Facebook、Twitter,甚至暗网论坛,了解目标员工及其使用的技术。

4.使用Shodan的“net:”命令在目标网络地址范围内寻找不寻常或有趣的设备。此外,使用唯一的页脚信息(例如目标web页面上的常见版权通知)通过Shodan使用“html:”查找其他页面(推荐FOFA和ZoomEye网络空间搜索引擎)。

5.仔细检查正在进行测试范围中包含的所有IP地址是否属于目标组织,并且无错误。使用whois和traceroute检查地址是否有意义并且实际上属于目标组织。

6.在公开的信息中,查找目标企业的长期以来的IT管理和信息安全管理员工,看看他们熟悉哪些技术,包括防火墙、开发环境等等。

3、脆弱性分析:

1.扫描目标时,运行tcpdump之类的嗅探器,这样可以持续验证扫描器是否仍在正常运行。

2.虽然TCP 445之类的开放端口通常表示目标为一台Windows机器,但情况并非总是如此。目标可以是Samba守护进程,也可以是另一个基于smb的目标。

3.通过研究如何手动或通过Bash、PowerShell、Nmap脚本 (NSE)或其他脚本检查问题,验证发现的漏洞。

4.将根据您已识别的漏洞来确定资产的重要程度,因为这有助于您分配优先级并评估风险。

5.尝试通过运行不同的探测工具(Nmap、Masscan、Nessus、OpenVAS、PocSuite)来排除误报,以确认结果。

6.如果您本地正在使用虚拟机进行远程攻击,请将其配置为桥接网络模式,以避免填充NAT表并确保反向shell连接可以成功返回给您。

4、密码攻击:

1.根据其网站上的文字信息创建一个针对目标组织微调的字典列表。

2.根据用户的社交网络档案,创建一个针对用户进行微调的字典列表。

3.当您使用字符规则成功破解密码时,请将该密码添加到字典中,以便对该渗透测试进行进一步的密码攻击。这样,如果您遇到相同的密码以不同的哈希格式出现,则无需等待单词爆破才能重新发现该密码。

4.记住,可以使用各种技术收集密码,包括通用密码、社工库、自动化猜测、破解、嗅探和击键记录。

5.对于密码猜测,请始终考虑可能的帐户锁定策略,并试图通过使用密码喷射技术(大量帐户和数量很少的密码)来避免它。

6.一旦从目标中获取密码哈希值,就启动密码破解程序以尝试破解确定此密码。不要让时间浪费流逝,请立即开始破解你已经得到的哈希。

7.有时您不需要密码进行身份验证,因为只需使用哈希即可完成工作,例如针对Windows和SMB目标的传递哈希攻击,以及存储在某些网站的cookie中的密码哈希值。

8.如果您的系统上有兼容的GPU,可考虑使用基于GPU的密码破解工具,例如Hashcat,因为将获得20-100倍的速度性能。

5、渗透测试:

1.在创建逃避反恶意软件的免杀payload时,请不要将恶意样本提交到在线扫描站点(例如virustotal.com)以检查能否成功免杀,因为这可能会在分发新签名更新时破坏您的有效载荷(被反恶意软件查杀)。

2.设置一个命令或脚本,在攻击时每隔几秒检查一次目标服务的可用性。这样,如果目标崩溃了,你会很快注意到并且可以联系目标系统人员一起尝试重新启动它。

3.构建有效载荷Payload,以便它们与您建立反向连接shell,从而增加您通过“仅允许出站连接”的防火墙的机会。

4.对于您的有效payload,请使用可能允许从目标环境出站的协议,例如https(具有代理感知的有效载荷,如PowerShell Empire、Metasploit和Veil Framwork中可用的模块)或DNS(如DNScat工具)。

5.为了降低Windows目标系统和服务崩溃的几率,一旦您获得了管理员级别的凭证和SMB访问权限,使用psexec或类似的Windows特性(WMIC, sc等)来让它们运行代码,而不是缓冲区溢出或相关的漏洞。

6.如果您的漏洞利用失败,请仔细阅读您的利用工具的输出信息,以查看错误的位置。此外,运行诸如tcpdump之类的嗅探器,以查看它在建立连接、发送exploit载荷以及加载stager和stage之间的差别。如果你的stager工作正常但你的stage无法加载,那么你的反病毒逃避策略可能失败了(MSF的payload分single、stager、stage三种) 。

6、后渗透:

1.当您获得对目标计算机的访问权限时,请不要过早使用它来扫描内网更多目标,因为这会使您过早被检测到。相反,应根据网络活动发现其他潜在目标信息:

DNS缓存(Windows): c:\>ipconfig /displaydns

ARP缓存:arp -a

建立TCP连接:netstat -na

路由表:netstat -nr

2.当您获得对目标的访问权限时,如果计算机上安装了嗅探器(如tcpdump或Wireshark的tshark工具),则运行它以查找网络流量以识别其他可能的目标计算机,以及包含敏感或有用信息的明文协议。

3.即使没有目标计算机上的root、system或admin权限,您仍然可以执行非常有用的后渗透活动,包括获取用户列表,确定已安装(可能是易受攻击)的软件以及在系统中进行操作。

4.当你进入Windows系统时,寻找端口445(SMB)和3389(RDP)的STABLISHED TCP连接,因为这些系统可能是很好的跳板机。使用如属下列命令:

c:\> netstat -na | find “EST” | find“:445”

c:\> netstat -na | find “EST” | find“:3389”

5.虽然它们对管理人员演示效果非常有用,但对打开摄像头并从受感染的目标机器中捕获音频,要保持小心谨慎。只有获得书面许可情况下才能进行这种的侵入性访问,并由您的法律团队进行审核,以确保符合当地法律。

7、编写报告:

1.通过IP地址(如果您拥有IPv4和IPv6)、域名(如果有)和MAC地址(特别是对于使用DHCP的受损客户机)识别目标。

2.不要等到渗透测试结束才开始编写报告。相反,在渗透测试进行时随时记录编写报告,每天留出时间写一到三页,你不但会写出更好的报告,你的成果也会更好。

3.在你的报告中添加截图,以清楚地说明调查结果。用箭头和圆圈标注截图,指出插图的重要点。

4.如果想要为您的修复建议增加额外的价值,请考虑增加操作人员可以采取的易于落地的步骤,以验证建议的修复是否到位,例如检查补丁是否存在的命令。对于某些发现的问题,这可能很难做到,所以在这些情况下,建议重新测试给定的问题。

5.在报告的每个部分为适当的读者受众撰写不同结构的报告:

- 执行摘要应该适用于分配资源的决策者

- 应根据业务问题从技术角度撰写调查结果

- 修复建议应充分考虑到运营团队及其流程

*本文原创作者:两块,本文属于FreeBuf原创奖励计划,未经许可禁止转载

这里分享一个自动化发现IDOR(越权)漏洞的方法,那就是在BurpSuite中利用Autozie和Autorepeater插件实现IDOR漏洞的探测识别,而无需针对每个请求手动去变化参数或请求。

IDOR(越权)漏洞:也称“不安全的直接对象引用”,场景发生于当用户对内部资源的访问请求,或基于用户提供的输入对象进行访问时,服务端未进行合理的权限验证,导致当前用户可以未经授权访问获取到不属于自己账户权限的资源或数据。

我们可以在BurpSuite的插件库Bapp中对Autorize 和 Autorepeater进行安装:

用Autorize发现IDOR漏洞

先来看Autorize,对于客户端发送的任何请求来说,它会执行一个等效请求,只是其中的Cookies需要是其他用户的会话Cookie,或是加入其它授权验证头,如下我们假设两个用户:

用户A — 管理员

用户B — 普通用户

现在,我们用管理员(用户A)账户访问Web应用,然后在Autorize的请求配置中我们把用户B的会话Cookie加入,之后,请求将会以用户B的身份地起。配置如下:

对作用域过滤器中我们稍微做一些设置,以此能直观地显示出响应消息,避免收到大量无用结果。接下来,开启Autorize,对Web应用来说,表面上的访问客户端是用户A,但其实其中用的是用户B的会话Cookie:

可以看到,在这种情况下,原始长度(Original length)和修正长度(Modified length)之间都没有任何差异,且响应回来的状态码都是200,因此,这样来看,Web服务端可能存在IDOR漏洞。当然,如果收到的状态码是403 Forbidden,那么说明就不存在IDOR漏洞,是不行的。

用Autorepeater发现IDOR漏洞

Autorepeater可以说是复杂版本的Autorize,它可以针对细化参数实现更加准确的测试,如通常涉及到的uuid,、suid、uid等用户参数。但是,它的设置有些麻烦,比如下面这种uuid的替换测试,需要手动设置:

这种自动化的IDOR探测,在一些云应用中,不仅可针对内部租户,还能针对跨域租户进行安全功能审计。比如在下面这里的设置中,我们可以选择添加替换变量来实现请求主体的变化,另外,还可以对其它参数或请求进行修改,如:

User = Admin

False = True

JSON = XML

Autorize主页:https://github.com/Quitten/Autorize

AutoRepeater主页:https://github.com/nccgroup/AutoRepeater

具体应用可参考视频:

https://www.youtube.com/watch?v=3K1-a7dnA60&t=357s

*参考来源:medium,clouds 编译整理,转载请注明来自 FreeBuf.COM

Stowaway是一款采用Go语言开发的多级代理工具,该工具专为渗透测试人员设计,广大用户可以使用该工具将外部流量通过多个节点代理至内网,并实现自定义管理功能。demo文件夹下为其Beta版本的demo,大家可以放心使用,如需获取更多demo相关内容,可以访问demo文件下的ReadME文件。

注意:此工具仅限于安全研究和教学,用户承担因使用此工具而导致的所有法律和相关责任!

功能介绍

1、简单易懂的节点管理模式

2、多级Socks5流量代理转发

3、SSH代理连接

4、远程交互式Shell

5、节点间流量以AES-256(CBC模式)进行加密

工具下载

广大研究人员可以使用下列命令直接将项目源码克隆至本地:

git clone https://github.com/ph4ntonn/Stowaway.git

工具使用

Stowaway分别由管理端和代理端两个部分组成,并且集成在一个程序中,研究人员可以通过不同的参数来进行控制。如果你不想重新编译源码的话,也可以直接使用本项目Release页面提供的已编译完成的程序文件。

简单样例:

admin mode:./stowaway admin -l 9999 -s 123

命令解析:

admin表示以管理模式启动

-l 参数即为监听端口

-s 参数即为表节点通信加密密钥(管理端与代理端必须一致!)

目前该工具仅支持这两个参数!

agent mode: ./stowaway agent -m 127.0.0.1:9999 -l 10000 --startnode -s 123 -r

命令解析:

agent表示以agent端模式启动

-m 表示上一级节点的地址

-l 表示监听端口

-s 参数表示节点通信加密密钥(管理端与代理端必须一致!)

–startnode 表示此节点是管理端的第一个节点(第一个节点必须加上–startnode选项!若无–startnode表示为普通节点,命令与startnode一致)

-r 表示以反向模式启动(即下级节点需要本节点主动连接而不是等待下级节点主动连接到本节点,若正向连接可以去除此选项)

目前该工具仅支持这这五个参数!

使用样例

下面给大家提供一个该工具的使用样例,该例子为一个管理端,三个代理端:

管理端:

起始节点:

第一个普通节点(设置为反向连接模式):

此时,切换到该节点的上级节点,即起始节点,使用下列命令即可将这个反向模式节点加入网络:

connect 127.0.0.1:10001

第二个普通节点:

成功接入后,即可在管理端查看节点:

此时,我们可以在管理端控制第二个普通节点:

接下来,打开远程Shell:

此时,我们就可以在管理端控制第二个普通节点的Shell了。接下来,打开Socks5代理:

用户可以将管理端的7777号端口作为Socks5的代理端口,然后把流量代理到第二个普通节点中,如果你想关闭Socks服务的话,可以直接在节点模式下输入stopsocks,这样就可以关闭与此节点相关的Socks代理服务了。

打开SSH:

这样一来,我们就可以在管理端将SSH流量代理至第二个普通节点,并由第二个普通节点来访问指定的SSH服务了。

项目地址

Stowaway:【传送门

* 参考来源:kitploit,FB小编Alpha_h4ck编译,转载请注明来自FreeBuf.COM

一、前言

ATT&CK是今年国内安全行业的一个备受瞩目的火热概念,很多组织和厂商发布了文章阐释各自对于它的理解,甚至连不少甲方单位也开始关心起ATT&CK,不仅向安全厂商咨询其在这方面的研究成果,似乎也有意将其当做衡量厂商产品能力的一个维度——安全圈一时间颇有些“平生不识此概念,纵做安全也枉然”的氛围。

当然,这个现象很正常,ATT&CK作为一项来自国外的新技术概念,安全行业理所应当对其进行研究分析。但另一方面,当前业内对于ATT&CK的研究分析存在很多误解和片面的地方,因此我们从自己的角度出发对ATT&CK进行了一些探讨,希望能够还原其本来面目、消除过度的“神秘感”,重新审视这一技术的真正价值。当然作为一家之言,我们肯定也存在不客观的地方,是非对错,尽付公论。

二、ATT&CK

1、ATT&CK框架介绍

ATT&CK(Adversarial Tactics, Techniques & Common Knowledge)是MITRE公司开发的、基于真实环境观察攻方战术和技术的知识库。

MITRE是由美国政府资助的一个非盈利研发机构,向美国政府提供系统工程、研究开发和信息技术的支撑。并和美国国家标准与技术研究所(NIST)标准化组织合作制定相关安全标准,比如漏洞缺陷CVE、CWE编号规则以及威胁情报格式STIX。

MITRE ATT&CK框架内系统性的收集整合了整个攻击过程完整生命周期的攻击手法的知识库,并且这些攻击手法均来自于对真实安全事件的洞察。该框架把攻击者所采用的TTP(战术Tactics,技术Techniques,过程Procedures)系统性地组织起来。在每个战术项内又包含实现该战术目的的各种已知的攻击技术,同时在每项技术中详细描述了运用该技术的具体步骤和流程。

ATT&CK模型是在洛克希德-马丁公司提出的Kill Chain模型的基础上,构建了一套更细粒度、更易共享的知识模型和框架。现在经过几年的发展,整个矩阵内容变得丰富,被拆分为PRE-ATT&CK和ATT&CK for Enterprise,其中PRE-ATT&CK覆盖了Kill Chain模型的前两个阶段,包含了与攻击者尝试利用特定目标网络或系统漏洞进行相关操作有关的战术和技术。ATT&CK for Enterprise覆盖了Kill Chain的后五个阶段。

ATT&CK for Enterprise将网络安全事件划分为12个阶段。初始访问阶段、执行阶段、持久化阶段、提权阶段、防御规避阶段、凭证访问阶段、发现阶段、横向移动阶段、采集阶段、命令与控制阶段、渗出阶段、影响阶段。攻击手法和各阶段的映射关系如下图所示:

2、ATT&CK的能力

ATT&CK知识库被用作在政府以及网络安全产品和安全服务中开发特定威胁模型和方法的基础。同时也可用来检测EDR产品是否具备侦测APT的能力。现在主要被应用在模拟攻击、评估和提高防御能力、威胁情报提取和建模、威胁评估和分析四大方向上。

1、模拟攻击:基于ATT&CK进行红蓝攻防演练,进行红蓝军建设 ;

2、检测分析:基于具体的”技术“,有效增强检测能力,用于甲方安全建设;

3、威胁情报:使用ATT&CK框架来识别攻击组织,用于安全情报建设;

4、评估改进:将解决方案映射到ATT&CK威胁模型,发现并弥补差距,用于评估安全能力。

ATT&CK框架内整合的知识库为安全行业提供了一个标准,对已知的TTPs进行收集,促进安全产品的优化改进。本文将从 TTPs 的检测、分析提出关于 ATT&CK 框架在提升主机EDR检测能力的探索和思考。

3、ATT&CK落地环境

本文将要探讨的是ATT&CK框架在终端安全产品的落地和应用。ATT&CK的出现为终端安全产品的检测能力提供了一个明确的,可衡量,可落地的标准,改变防守方以往对于入侵检测常常会陷入不可知和不确定的状态中,有效的弥补自己的短板,通过检测攻击的技术,映射到ATT&CK的战术,清晰的了解攻击者所处攻击阶段。

另外如果能让终端安全产品具有针对TTP的检测能力,无疑能增强安全产品的核心检测能力,提高攻击检测的覆盖度和自动处置的精确度,避免被攻击者通过一些简单的变形绕过检测,因为针对TTP进行检测,意味着我们是在根据攻击者的行为进行检测。如果攻击者想要躲避检测就需要改变他们的行为,这需要研究一些新的技术和攻击手段,这意味着更高的难度和付出更大的成本。

而所有的攻击检测都是基于数据源和策略的特征匹配。我们如果需要检测某个攻击技术,首先需要获取到这项技术所对应的数据,这些数据就是当攻击者执行某项技术攻击主机或网络后,在主机或网络设备上留下的蛛丝马迹,他们所呈现的形式往往是各种日志,可能是系统或应用内置的日志,也可能是因为安全需要而特意录制的日志数据。在MITRE ATT&CK的每项技术描述中都有对应于该技术的数据源信息,它告诉我们可以从哪些类型的数据中找到攻击技术实施后所留下的痕迹。

4、数据分类

通过在STIX 2.0 GitHub存储库中,调用与ATT&CK对象和属性映射的STIX对象和属性,对数据源进行分析统计,共有59种。

下图是通过对每个数据源能检测的技术数量进行统计,并获取检测数量前十的数据源排行。

5、技术选择

除了检测数据源的获取,针对不同技术点的检测也有难易程度之分。场景复现时,有些只需要执行系统命令,公开工具,而有些是需要特制、专用工具,检测从常见命令程序监控,到深入系统内核调用,进程上下文监控。

(网图:检测攻击技术的难易表)

以及同一个工具不同的命令、不同形式的使用,可映射不同攻击阶段的不同技术,检测的技术点也是不一样的。以下为分析mimikatz工具映射的TTP。

三、Sysmon

1、Sysmon介绍

Sysmon是微软的一款免费的轻量级系统监控工具,最开始是由Sysinternals开发的,后来Sysinternals被微软收购,现在属于Sysinternals系列工具(带有微软代码签名)。它通过系统服务和驱动程序实现记录进程创建,网络连接以及文件创建时间更改的详细信息,并把相关的信息写入并展示在windows的日志事件里。经常有安全人员使用这款工具去记录并分析系统进程的活动来识别恶意或者异常活动。

Sysmon安装后分为用户态系统服务,驱动两部分,用户态通过ETW(Event Tracing for Windows)实现对网络数据记录,通过EventLog对驱动返回的数据进行解析,驱动部分则通过进、线程,模块的回调函数收集进程相关的信息,通过Minifilter文件过滤驱动和注册表回调函数记录访问文件、注册表的数据。

2、选择理由

从功能上来讲,Sysmon一旦安装在系统上,在驻留系统期间,可以监视系统活动并将其记录到Windows事件日志中。 与一般检测工具相比,Sysmon可以执行系统活动深度监视,并记录高级攻击的高可信度指标,是一款优秀的HIDS、EDR的主机入侵检测引擎。

稳定性方面超过大部分自研的驱动,功能完善,对性能影响较小,虽然功能强大但却有很多监控盲区。若加以自研Agent与其配之,便可弥补自身监控盲区及非查询功能等其他需求。

接下来的针对ATT&CK的技术检测主要依托sysmon的监控,测试从终端捕获事件数据进行分析。后面我将向您展示如何安装sysmon以及如何使用自定义配置来过滤噪声并获得威胁特征。

3、搭建环境测试

执行sysmon程序进行安装,用于生成日志监测数据。

模拟攻击环境,编写批处理文件,执行minikatz恶意程序(可用于从内存获取明文密码、黄金票据和****等)。

安装winlogbeat产品,帮助我们将Windows事件日志实时流式传输到我们的ELK存储。

打开winlogbeat.yml文件编辑其收集的日志类型。在-name:System后添加以一行:-name:Microsoft-windows-sysmon / operational

进行winlogbeat的配置测试,执行.\winlogbeat.exe -c .\winlogbeat.yml -configtest -e。测试正常后,开启服务,执行start-service winlogbeat。

处理遭受攻击后捕获系统监测数据,可用于二次分析处理。

建议优先考虑您在环境中当前可能看到的内容,而不是仅选择矩阵中的任何技术。例如,如果您的环境中正在运行Sysmon,并且正在收集“ ProcessCreate”事件,则可以优先考虑需要将“ Process Monitoring”或“ Process命令行参数”作为数据源的技术。

四、分析过程

在本文中,主要探讨通过利用minikatz技术来利用获取hash凭证或者传递的过程,这一类技术主要是通过命令行参数检测及程序运行上下文相关调用进行监测,然后通过对其特征进行提取,分析如何有效降低数据噪声,并模拟测试命令执行建立会话进行验证,不断提升工程化实施检测的效果。

以下通过调用系统API接口实时监测系统命令行程序调用接口,通过匹配命令行参数特征,模拟检测恶意攻击。

但是单纯通过匹配命令行参数特征,虽然能够匹配一定的攻击事件,但是也存在被容易绕过的现象。

1、Sysmon工具分析

我们可以借助Sysmonview 这类工具可以很好的将攻击者的行为,恶意程序执行过程完整呈现出来。有助于行为分析,特征提取。由下图可以分析,mimikatz执行过程中先后加载了cryptdll.dll、samlib.dll、hid.dll、WinSCard.dll、vaultcli.dll等动态链接库,并访问了系统lsass.exe进程。

但是被调用的这些dll是不是只有mimikatz才会调用的程序,是不是存在噪声,还是无法确定,可能存在某些程序也需要调用这些dll文件,还是需要进一步分析确认。

2、Sysmon数据平台分析

面对海量的数据日志,我们需要有个大的数据平台,进行分析,了解主机,进程、文件、网络、驱动、注册表、管道等一系列对象间的关联关系,分析比对,筛选出符合某些攻击技术的能够识别的最小唯一特征。

3、Sysmon规则分析

通过行为分析,初步提取特征后,我们可以通过sysmon规则进行特征匹配。

ATT&CK技术编号T1003-凭证转储可通过以下sysmon规则配置,进行监测。

或者通过yaml规则,进行配置检测。

在系统日志检测,结果成功捕获minikatz相关运行信息。

因为使用bat脚本来运行minikatz程序,所以下图显示命中技术T1036-混淆攻击的检测规则

像Mimikatz这样的凭证转储程序可以直接通过本地二进制程序文件执行,也可以通过Powershell直接加载到内存中运行,并从内存中读取其他进程的数据。分析查找这类程序时,可进一步分析提取进程请求特定的权限以读取LSASS进程的部分,用以检测何时发生凭证转储。辨别Mimikatz与其他程序使用的常见访问模式。

常见的Mimikatz GrantedAccess模式。

这些特征特定于Mimikatz当前版本的工作方式,因此对于Mimikatz的将来更新和非默认配置都是不可靠的。

EventCode=10

TargetImage=”C:\\WINDOWS\\system32\\lsass.exe”

(GrantedAccess=0×1410 OR GrantedAccess=0×1010 OR GrantedAccess=0×1438 OR GrantedAccess=0x143a OR GrantedAccess=0×1418)

CallTrace=”C:\\windows\\SYSTEM32\\ntdll.dll+*|C:\\windows\\System32\\KERNELBASE.dll+20edd|UNKNOWN(*)”

| table _time hostname user SourceImage GrantedAccess

以下是编号T1003凭证访问阶段战术凭证转储技术映射更细粒度多个子技术的sysmon配置语句。

以下为系统检测到键盘记录器创建文件的行为,可以通过检测异常行为,提升检测攻击的能力,发现主机侧更多的安全问题。

五、Sysmonhunter分析

利用Empire工具进行模拟测试,Empire是一款内网渗透测试利器,其跨平台的特性类似于Metasploit,有丰富的模块和接口,用户可以自行添加模块和功能,是针对PowerShell 利用较好的平台。

通过对终端监测的数据进行特征匹配处理,并将结果推送到Elasticsearch数据库,查看数据的录入情况。

通过分析查看dll的调用次数,分析文件是不是存在被正常程序调用的情况。

分析某些dll是只被某些程序调用,或是某些操作必须调用的过程,需要逐个分析,判断能够被当成特征工程的一个指标。

通过导入图数据库进行关联分析,蓝色表示程序,红色表示调用过程,黄色表示节点,绿色表示终端编号。

六、实际应用

结合产品进行检测,通过抽象提炼,完成了适当的分类,将攻击者的行为和具体的检测方式联系起来。通过抽象提炼,形成一个通用检测方法,让产品可以检测单项对抗行为及其目标。

1、单点测试

·测试框架应用

Atomic Red Team是一个简单测试库,每个安全团队都可以执行此测试来测试安全产品的检测能力。该测试库是映射到MITER ATT&CK框架的小型、高度可移植的检测测试框架。每个测试旨在映射特定的策略。

以下通过该交互式测试框架,检验EDR的检测能力。

任何攻击者进入内网最想要的是窃取尽可能多的凭据。如果他们能用凭证登录其他系统,就没必要在通过研究其他资产尚存的漏洞,进行测试攻击,所以主机凭据获取,历来都是兵家必争之地,不管是渗透测试、红蓝对抗还是护网行动,得凭证者得天下。故以下选取相关凭证获取相关攻击的应用检测。

·卷影副本操作

vssadmin用于创建/删除Windows驱动器的卷影副本的命令。卷影副本简单理解就是备份,您可以创建卷影副本备份和完全相同的文件副本。例如,以独占方式打开的数据库以及由操作员和系统活动打开的文件都可以通过命令在创建卷影副本过程中备份。可以使用卷影副本将SAM文件导出,配合SYSKEY利用mimikatz等工具获得NTLM Hash。也可以利用VSS卷影副本拷贝ntds.dit,ntds.dit是AD(活动目录)中的数据库文件,包含有关活动目录域中所有对象的所有信息,其中包含所有域用户和计算机帐户的密码哈希值。

以下是产品依据程序hash及进程行为分析后的检测情况。

·Mimikatz

mimikatz是法国人Gentil Kiwi编写的一款windows平台下的神器,它具备很多功能,其中最亮的功能是直接从 lsass.exe 进程里获取windows处于active状态账号的明文密码。mimikatz的功能不仅如此,它还可以提升进程权限,注入进程,读取进程内存,hash传递等等

以下是产品依据程序hash及进程行为分析后的检测情况。

·Procdump

Procdump是Windows工具包里的一款工具,由于有微软的官方签名,所以大部分杀软不会查杀。通过procdump导出lsass.exe的内存文件,在用mimikatz.exe在本地读取内存文件提取密码。

以下是产品依据程序hash及进程行为分析后的检测情况。

·Ntdsdump

Ntdsdump是NTDS.dit(活动目录数据库)密码快速提取工具,可通过从域控制器上导取的ntds.dit文件以及SYSTEM文件,离线获取域控制器上所有hash的神器。

以下是产品依据程序hash及进程行为分析后的检测情况。

2、场景测试

·勒索检测

模拟执行勒索程序后,通过提取行为特征,hash比对,匹配特征库,检测异常告警。

最终通过自动分析判定主机正遭受勒索病毒攻击。

七、持续演进

1、ATT&CK细化子攻击的粒度

虽然ATT&CK提供了一套系统的理论指导,但仍任然不能解决具体的检测点技术问题,没有描述技术的特定实现的方法。对于某些技术描述还是比较笼统,对于检测安全产品的检测覆盖率还是不够。ATT&CK的广度问题目前已经基本解决了,往后发展就是不断增加深度,不是一个测试用例就算覆盖一个指标了,而是一组测试用例可以验证一个指标的深度。

近期ATT&CK组织为了增强框架结构,开始对整个框架进行调优和重新设计,细化描述攻击技术的粒度,提出了子技术概念。子技术是一种更详细地描述技术的特定实现的方法。后期可以在技术列表中,查看可以执行技术的各种方式。例如凭据转储就是一个很好的例子。

在“凭据转储”的技术中,可以执行该操作的方式共计9个,例如Windows SAM和“缓存的凭据”。尽管最终结果每次都是相似的,但很多不同的行为都集中在一种技术中。对于子技术,我们将对其进行拆分,并拥有一种顶级的凭证转储技术,其下具有九种子技术,以更详细地介绍这些变化,以了解它们如何以特定方式应用于各个平台。

子技术将从.001开始,并随着每个新的子技术递增。例如,访问令牌操纵仍将是T1134,但是“令牌操纵/盗窃”将是T1134.001,“使用令牌创建进程” T1134.002,等等

对子技术所需的技术的进行深入分析,导致战术和技术之间归属位置的调整。可能会删减了一些不适合该策略核心定义的技术,例如“ 隐藏文件”和“目录”不适合“持久性”,以及一小部分需要弃用的技术,例如“ Hypervisor”,在该系统中,我们发现没有证明的用例概念。以及技术降级到子技术的调整。例如,由于我们添加了“ Pre-OS Boot” 技术,因此将现有的Bootkit技术作为其子技术移至其下方。

以下是将旧技术映射到新子技术的对应表

2、攻防检测对抗

ATT&CK在持续更新升级,攻击者也在不断寻找更隐蔽的方法,绕过传统安全工具的检测,因此防御者也不得不改变检测和防御方式。

就像上面我们用于入侵检测的sysmon检测引擎,很多人在安装Sysmon的过程中直接使用默认配置,不更改文件名、服务名、驱动名,在攻击者发现主机环境装有Sysmon后,通过对现有规则及对环境分析,结合具体情境使用绕过及阻断方式组合技术,可轻松突破Sysmon日志记录。所以防御方需要对sysmon进行隐藏,否则将影响对攻击者TTP检测,及入侵行为检测。

从战术、技术和过程(TTPs)的攻击层面分析,现在攻击者使用工具,往定制化、模块化、无文件落地发展,可绕过大部分传统的安全防护设备。例如以下工具运行不带任何参数可直接转储lsass.exe的内存。

这就需要依托安全厂商投入研究,研究分析得越透彻,攻击者绕过的难度就越高。尤其是针对现有的TTPs的研究,研究如何精确匹配攻击事件,我觉得这也是未来的趋势,往精准化检测前行,否则安全分析人员,将被淹没在各种设备海量的告警中,剪不断理还乱,当然这是个持续的过程,在攻防对抗中不断升级,不断演进。

3、大数据智能平台分析

往更深层次上讲,如果仅仅只为了发现特定的已知攻击行为而进行的检测会是什么样场景?一个新的特征,一个新的告警,一个新签名,一个接一个!是的,这很可能是作为安全分析师在每天工作中所经历的对于威胁的检测分析处理。我们是否想过,通过由几个开源框架组成的生态系统,自研启用高级分析功能来增强威胁检测能力,通过赋能机器学习,构建大数据智能分析平台,进一步发展根据数据做出预测或建议的分析技术,解决检测已知的威胁,通过关联分析,挖掘未知的威胁,提高检测率。

八、小结

随着 ATT&CK 框架的不断完善和延伸,应用的方向也会更广。就目前阶段,我们认为深入分析 ATT&CK的TPPs 能提高主机EDR产品对于入侵行为的检测和分析。ATT&CK是一个非常庞大的框架,我们将致力于实战,从多维度深入研究,不断提高检测的广度和准确率。欢迎对ATT&CK感兴趣的安全爱好者和我们一起交流讨论。

*本文作者:安全狗safedog,转载请注明来自FreeBuf.COM