OpenSOC是思科在BroCON大会上亮相了的一个安全大数据分析架构,它是一个针对网络包和流的大数据分析框架,它是大数据分析与安全分析技术的结合,能够实时的检测网络异常情况并且可以扩展很多节点,它的存储使用开源项目Hadoop,实时索引使用开源项目ElasticSearch,在线流分析使用著名的开源项目Storm。
关于 OpenSOC
OpenSOC 是思科在 BroCON
大会上亮相了的一个安全大数据分析架构,它是一个针对网络包和流的大数据分析框架,它是大数据分析与安全分析技术的结合,
能够实时的检测网络异常情况并且可以扩展很多节点,它的存储使用开源项目
Hadoop,实时索引使用开源项目 ElasticSearch,在线流分析使用著名的开源项目
Storm。
但是其部署上和使用上可能对于大部分中小企业来说,消耗的资源和精力可能有点过于庞大。本文着重介绍如何轻量级实现
OpenSOC 框架,即使日后升级或者添加了 SEIM 也可以快速迁入。
OpenSOC 介绍
我们先来看一下 OpenSOC 框架
OpenSOC 框架组成
OpenSOC 框架主要包括六个部分
数据来源 ...
CI
CI:持续集成描述了代码库变更的过程。让我们看一个简单的模式,它给出了团队开发的示例。
一群人可以同时工作。但所有更改最终都会转移到 master
分支。不管怎样,即使是这样一个简单的模型也会引发一些问题。
我们如何知道进入 master 分支的代码可以编译通过?
我们希望开发人员为代码编写测试。我们如何验证测试覆盖率没有下降?
所有团队成员都应使用指定的代码风格来格式化代码。我们如何检查可能存在的违规行为?
软件开发中,通常会将 master 分支作为主分支。dev
作为本地开发分支。
为了完成以上几点,我们可以把所有描述的要求都进行手动验证。不过这种方法非常复杂,当代码库越来越庞大时,这个方式并不可取。
于是乎 CI 的出现是为了完成以上所提出的几点建议并将其自动化。
第一点,我们如何知道进入 master
分支的代码可以编译通过?
我们需要在架构中添加另一个模块,如下图。 大多数 CI
流程都可以根据这个架构来描述。
每次打开 Pull 请求(以及推送新更改)时,Git 服务器都会向 CI
服务器发送一条通知。
CI
服务器克隆代码库,检出错误分支(例如 bu ...
在计算机安全和逆向工程领域,强大的工具是必不可少的。x64dbg
是一款免费、开源的调试器,它在逆向工程社区中备受欢迎。在本文中,我们将深入介绍
x64dbg,探讨它的功能、特点以及它为逆向工程师和安全研究人员提供的价值。
什么是 x64dbg?
x64dbg 是一款用于 Windows
平台的用户模式调试器,专为逆向工程和反汇编任务而设计。它提供了强大的功能,以帮助分析和理解各种不同类型的程序,包括本机应用程序、恶意软件和嵌入式系统。
功能和特点
x64dbg 之所以备受欢迎,是因为它具有一系列强大的功能和特点:
开源和免费: x64dbg
是一个开源项目,可供免费下载和使用。这使得它成为广大逆向工程师和安全研究人员的首选工具,无需花费大量资金。
多平台支持: x64dbg 不仅支持 x86 和 x64
架构的程序,还支持 ARM 和 MIPS
等多种架构。这意味着它适用于各种不同类型的应用程序和设备。
直观的用户界面: x64dbg
具有直观的图形用户界面,使得用户能够轻松进行调试和反汇编操作,而无需深入了解复杂的命令行参数。
强大的插件系统: x64dbg
支持插件,允许用户根 ...
逆向工程工具在发现和分析威胁方面发挥着关键作用。其中一款备受推崇的工具就是
IDA Pro,它是 Hex-Rays
公司出品的一款交互式反汇编工具,通常简称为“IDA”。在本文中,我们将深入探讨
IDA Pro 的重要性以及它为逆向工程师和安全研究人员提供的功能和特点。
什么是 IDA Pro?
IDA Pro
是一款强大的反汇编工具,专为逆向工程和安全分析而设计。它被广泛认为是静态反编译领域中的佼佼者,它的功能之强大使得它成为了众多
0day 世界的成员和 ShellCode
安全分析人士的不可或缺的利器。其全名为“Interactive Disassembler
Professional”。
功能和特点
IDA Pro 之所以备受欢迎,是因为它具有一系列强大的功能和特点:
多处理器支持: IDA Pro 支持多种 CPU 指令集,包括
Intel x86、x64、MIPS、PowerPC、ARM、Z80、68000、c8051
等等。这意味着它可以用于分析各种不同架构的程序。
交互式反汇编: IDA Pro
提供了一个交互式的反汇编环境,允许用户以图形界面的方式浏览和编辑汇编代码 ...
简介
适配器模式(Adapter
Pattern)是一种结构型设计模式,它可以将一个接口转换成客户端所期待的另一个接口,从而使原本由于接口不兼容而不能一起工作的类可以一起工作。适配器模式也称为包装器模式(Wrapper
Pattern),因为它通过一个包装类(即适配器)来包装不兼容的接口,并提供统一的目标接口。适配器模式可以在运行时根据需要选择不同的适配器来适配不同的被适配者。
对象适配器模式的各角色定义如下。
Target(目标接口):客户端要使用的目标接口标准,对应下文中的三相插孔接口
TriplePin。
Adapter(适配器):实现了目标接口,负责适配(转换)被适配者的接口
specificRequest()为目标接口
request(),对应本章下文中的电视机专属适配器类 TriplePinAdapter。
Adaptee(被适配者):被适配者的接口标准,目前不能兼容目标接口的问题接口,可以有多种实现类,对应下文中的两相插孔接口
DualPin。
Client(客户端):目标接口的使用者。
优缺点
适配器模式的优点有:
适配器模式可以增强程序的可扩展性,通过使用适配 ...
简介
装饰器模式(Decorator
Pattern)是一种结构型设计模式,它可以在不改变现有对象的结构的情况下,动态地给对象增加一些额外的功能。装饰器模式通过创建一个包装对象(即装饰器)来包裹真实对象,并在保持真实对象的接口不变的前提下,为其提供额外的功能。装饰器模式可以在运行时根据需要选择不同的装饰器来组合和修改对象的行为。
Component(组件接口):所有被装饰组件及装饰器对应的接口标准,指定进行装饰的行为方法。对应本章例程中的展示接口
Showable。
ConcreteComponent(组件实现):需要被装饰的组件,实现组件接口标准,只具备自身未被装饰的原始特性。对应本章例程中的女生类
Girl。
Decorator(装饰器):装饰器的高层抽象类,同样实现组件接口标准,且包含一个被装饰的组件。
ConcreteDecorator(装饰器实现):继承自装饰器抽象类的具体子类装饰器,可以有多种实现,在被装饰组件对象的基础上为其添加新的特性。对应本章例程中的粉底类
FoundationMakeup、口红类 Lipstick。
优缺点
装饰器模式的优点有:
装饰器模式是 ...
线程惊群
惊群效应(thundering herd)是指多进程(多线程)在同时阻塞等待同一个事件的时候(休眠状态),如果等待的这个事件发生,那么他就会唤醒等待的所有进程(或者线程),但是最终却只能有一个进程(线程)获得这个时间的“控制权”,对该事件进行处理,而其他进程(线程)获取“控制权”失败,只能重新进入休眠状态,这种现象和性能浪费就叫做惊群效应。
性能影响
Linux内核对用户进程(线程)频繁地做无效的调度、上下文切换等使系统性能大打折扣。上下文切换(context switch)过高会导致CPU像个搬运工,频繁地在寄存器和运行队列之间奔波,更多的时间花在了进程(线程)切换,而不是在真正工作的进程(线程)上面。
代码示例
在一段无缓存则请求数据库的代码中,当高并发时只有一个线程能获取到锁,其他线程都休眠1秒,1秒后可能有成千上百个线程从休眠中被唤醒来争夺锁,但也只有一个线程能获取到锁,其他线程又继续休眠等待。
123456789101112131415161718public String getData2(String keywords) throws InterruptedE ...
当我们观察到大规模群体中的社会行为时,常常能够发现一种有趣的现象,这就是所谓的惊群效应(Herd
Effect)。这个现象描述了一个特定的行为模式,即当一部分个体采取行动或做出决策后,其他个体会迅速模仿或跟随,而不是基于个体的独立信息或思考来做决策。这种现象在不同的领域和情境中都有出现,包括金融市场、社交媒体、投票和消费行为。本文将深入探讨惊群效应的特点、例子以及它在各个领域的应用。
特点和机制
惊群效应的核心特点是社会群体中的随从行为。当某个群体中的个体面临决策时,他们往往更愿意模仿或跟随已经采取行动的个体,而不是依靠个人的信息和判断。这种行为可以在理性的情况下发生,但通常是情感和社会压力的结果。当一个人看到其他人采取某种行动时,他们可能会感到更安全,因此也选择采取同样的行动。
应用领域
金融市场:在金融市场中,惊群效应可能导致过度的价格波动和泡沫。当某支股票的价格开始上涨时,投资者可能会跟随购买,导致股价进一步上涨,而不考虑公司的基本面。反之,当某支股票的价格开始下跌时,投资者可能会跟随抛售,引发恶性循环。
社交媒体:社交媒体平台是惊群效应的温床。当某个话题或趋势在社交媒体上迅速 ...
目前我们在编程中经常会使用随机数,但是其中会不会存在什么问题呢?要知道
CPU
计算中的各种状态都是确定的,在其中的随机数不是凭空产生的,所以这种随机数真的随机吗?目前生成随机数的方式主要分为以下几种:
硬件随机数生成器
利用现有硬件,从非预期方式产生随机数(比如利用音频的产生、硬盘寻址时间等)
伪随机数
量子技术
RDRAND 指令产生的随机数目前存在争议,在此不做详细讨论。有兴趣可以参考
RdRand
虽然选择很多,但是目前还是主要采用伪随机数的方式来应对实际开发中需要的场景。用于产生这些看起来随机但实际是由确定性算法生成数字的机制被称为”伪随机数发生器”,简称为
PRNG。 PRNG
的中心是确定的,如果攻击者知道其内部的完整状态,则可以对未来的值和过去的值进行预测。如果
PRNG 被用于加密密钥、生成证书等场景,就会出现安全问题。
接下来我将详细讲解对线性同余发生器的攻击。
线性同余生成器(LCG)
线性同余方法
线性同余方法(LCG)是个产生伪随机数的方法。 它是根据递归公式: 其中
A,B,M 是产生器设定的常数。 LCG 的周期最大为 M,但大部分情况都会少于
M。 ...
LCG 算法
LCG(linear congruential
generator)线性同余算法,是一个古老的产生随机数的算法。由以下参数组成:
LCG
算法是如下的一个递推公式,每下一个随机数是当前随机数向左移动 log2 a
位,加上一个 c,最后对 m 取余,使随机数限制在 0 ~ m-1 内
从该式可以看出,该算法由于构成简单,具有以下优点:
计算速度快
易于实现
易于写入硬件
以下是针对不同参数 lcg 产生随机数的效果图
可以看出,针对不同的参数,lcg 产生的效果差别很大
以下是针对不同环境下的参数选择