未命名的副本_公众号封面首图_2022-05-17+18_23_06.png

意大利多个重要政府网站瘫痪

据意大利安莎通讯社报道称,当地时间5月11日, 意大利多个官方网站遭到黑客大规模DDoS攻击致服务器瘫痪,包括意大利参议院、意大利机动车协会、意大利国防部、意大利国家卫生所、B2B平台Kompass及意大利著名期刊协会Infomedix Odontoiatria Italia等7家重要机构官网临时宕机,整整4个小时的时间内,用户无法访问。而正在意大利都灵举办的欧洲歌唱大赛Eurovision投票平台也出现了无法登陆投票的情况。

DDoS(分布式拒绝服务)是一种网络攻击的常见手法,旨在耗尽服务器的可用资源,使其无法响应合法用户请求并使其托管的站点无法正常访问。

图片5.png

图/网易

亲俄黑客团伙Killnet声称对本次攻击负责。此前,他们还曾先后对罗马尼亚门户网站、美国布拉德利国际机场发动过类似攻击。

在流出的社交加密通讯软件Telegram聊天记录中,Killnet黑客组织明确将这次网络攻击称为“袭击意大利”(L’attacco all’Italia)行动,并留下“这有可能仅仅是你们末日的开始”的发言。

当前防御措施难以抵御“慢速HTTP”手法

意大利计算机安全事件响应小组(CSIRT,类似于国家CERT)在公告中解释称,恶意黑客针对该国政府、各部委、议会乃至军队网站的攻击活动,使用到了所谓的“慢速HTTP”技术。

“对于自5月11日起发现的这几次针对国内及国际目标的DDoS攻击,我们发现其不同于常规的1类容量耗尽攻击。由于实际占用的带宽较为有限,因此无法利用市面上常用的保护系统加以抵御。”——CSIRT

HTTP-FLOOD攻击是一种专门针对于Web的应用层FLOOD攻击,攻击者操纵网络上的肉鸡,对目标Web服务器进行海量http request攻击,直到服务器带宽被打满,造成了拒绝服务。

慢速HTTP拒绝服务攻击则是HTTP-FLOOD攻击的其中一种,利用HTTP现有合法机制,在建立了与HTTP服务器的连接后,尽量长时间保持该连接,不释放,那么服务器上可用的连接将一点一点被占满,从而导致拒绝服务。

CSIRT称“慢速HTTP”是一种比较少见的DDoS攻击类型,并警告如果系统管理员不做出针对性处置,那么现有防御措施恐怕将无能为力。

政府网站备受DDoS攻击影响,当下DDoS防护该如何进行

随着物联网、工业互联网、5G网、云计算等新一代信息技术全面铺展,大量IoT设备以及IDC服务因系统漏洞、配置错误等原因沦为肉鸡,导致DDoS攻击的量级逐年攀升,TB级攻击已成为常态。

每年的重要会议及节假日期间,网络安全问题相较平时都更为严峻。尤其是央企政企、事业单位等重要网站及业务系统一旦发生安全事件,所带来的政治与经济影响无法估量,所以我国党政机关、关键信息基础设施运营单位的信息系统在重要活动期间都是频繁遭受DDoS 攻击的对象。

疫情期间,北京健康宝在使用高峰期间,遭到了来自境外的网络攻击。而且,类似的攻击并不是第一次出现,在北京某大型体育赛事期间,北京健康宝就已经受到过类似的网络攻击。除此之外,全国各地的“健康码”系统都曾遭受不同程度的DDoS攻击,这也为全国政务网络预防DDoS攻击敲响了警钟。

早在2019年,某黑客组织就曾对我国 300 余家政府网站发起了 1000 余次 DDoS 攻击,在初期其攻击可导致 80.0%以上的攻击目标网站正常服务受到不同程度影响。大部分单位通过部署防护设备或购买云防护服务等措施加强自身防护能力,后期其攻击已无法对攻击目标网站带来实质伤害,说明被攻击单位的防护能力已得到大幅提升。

DDoS之所以多年来“长盛不衰”,还是在于其一打一个准。短时间内,目标网站访问拥堵甚至宕机瘫痪,直接影响到业务连续性及可用性,影响政府单位公众形象的同时,也给基层运转带来了诸多不便。

然而,为了DDoS防护而准备大量的带宽资源会让成本难以招架,历史的惨痛案例也表明,接入靠谱的第三方DDoS防护服务是预防DDoS攻击最有效的手段。

知道创宇多次为央企政企、党政机关提供安全保障工作,累积了大量客户成功案例。在疫情特殊时期,知道创宇提供远程无接触部署服务,仅需2分钟,即可快速接入抗D保,获得DDoS攻击救援,保证业务安全稳定!

对于逆向工程人员来说,他们会经常使用模拟技术来对抗此示例中的函数调用混淆和字符串加密。我们将使用flare-emu 框架实现一个IDAPython 脚本,以使IDA Pro 中的反汇编更具可读性。这将对样品的静态分析有很大帮助。

以Pandora为例

在这篇文章中,我将讨论在 Pandora 中看到的恶意程序研发人员使用的两种特定的反逆向工程技术:

1.使用不透明谓词进行函数调用混淆;

2.加密字符串;

使用不透明谓词的函数调用混淆

下图显示了 Pandora 勒索软件中一个简单的函数调用在解压后的样子。

graphic-01.png

Pandora 中的标准函数调用

我们可以看到正在调用的函数的地址是在运行时计算的。 cs:qword_7FF6B6FF9AB8 似乎是某种函数地址表的基地址。然后我们使用硬编码值在该表中找到正确的函数指针,这就是我们在调用它之前加载到 rax 中的内容。不透明谓词通常表示程序中的表达式,其结果为程序员所知,但仍需要在运行时进行评估。它以许多不同的方式用作混淆和反分析技术。在这种情况下,进入 rax 的值是固定的,但是因为它仍然必须在运行时计算,它会破坏静态分析工具。

如果我们以上图为例,rax 中的地址是这样计算的:

2.png

或十进制:

3.png

此类问题的简单解决方案是在调试器中运行恶意软件并从那里获取地址。但是在这个示例中,所有函数调用都是这样的,静态链接库中的函数调用除外。这意味着我们需要在调试器中的每个函数调用处中断,以便对恶意软件中发生的事情进行自动化处理。

加密字符串

这个特定勒索软件样本的另一个挑战是所有有趣的字符串都被加密了。二进制文件中有很多纯文本字符串(如下图所示),但它们大多是 Windows API 函数名称和嵌入式库中的字符串。没有任何可以帮助我们了解恶意软件正在做什么的字符串以纯文本形式提供。这在现代恶意软件中非常常见,因此该挑战的解决方案可用于对抗各种恶意软件。

4.png

Pandora 示例中的字符串

通常当遇到带有加密字符串的恶意软件时,有两种方法:

1.使用动态方法,例如调试或模拟,并使用恶意软件自己的字符串解密函数来完成工作。

2.如此详细地了解解密功能,以至于可以在一个简单的脚本中重新实现它。当加密是简单的单字节异或时,这通常是最简单的途径。

就 Pandora 而言,至少有 14 个不同的字符串解密函数,因此重新实现解密算法可能并不总是可行的。

模拟

模拟允许我们假装代码运行在 CPU 上,但模拟软件运行的不是真正的 CPU,而是运行代码。与实际执行相比,模拟通常非常慢。但是,它允许我们完全控制我们想要运行的内容以及与模拟代码的高度交互。例如,使用模拟器,我们可以只模拟恶意软件的一个功能,甚至只是几行代码,并在每条指令处评估程序的状态。在这种情况下,模拟的一大优势是我们可以直接在 IDA Pro 中进行。

flare-emu

flare-emu 是由 Mandiant 的 FLARE 团队创建的模拟框架。它建立在著名的模拟引擎 Unicorn Engine 和 IDAPython 之上。可以直接使用 Unicorn 引擎,但flare-emu 隐藏了它的一些复杂性。本质上,人们可以定义想要模拟的内容,并为特定的挂钩定义回调函数,当模拟到达该挂钩时将调用这些函数。一个很好的例子是 callHook 参数,它接受一个回调函数,每次将要模拟 CALL 指令时调用该函数。在这个回调函数中,我们可以实现在那种情况下我们想做的任何事情,即转储寄存器、更改数据、跳过调用等。flare-emu 变得非常简单且相对易于使用。

解决挑战

我们可以编写一些代码来使用 IDAPython 脚本解决这些挑战。

函数调用混淆

下图再次显示了我们首先要解决的问题。这是 Pandora 代码解包部分中 main() 函数中的第一个函数调用。我们可以相当确定,如果我们模拟 main() 函数并在调用之前检查 rax 的值,那么我们会得到正确的结果。我们也可以读出函数调用的参数,并将所有这些信息作为 IDA Pro 中的注释添加到汇编代码中。

5.png

函数调用混淆

让我们开始整理我们的 IDAPython 脚本。下图显示了我们如何初始化模拟。当我们启动脚本时,它应该模拟 IDA 中光标当前所在的函数(由 get_screen_ea() 返回)。

6.png

初始化模拟

要初始化flare-emu,我们只需要实例化一个EmuHelper。 Flare-emu 提供了不同的方式来运行我们的模拟。我们使用 emulateRange() 函数,它用于指定我们想要模拟的内存范围。我们将起始地址设置为函数的开头,结束地址可以省略(python 中为 None),这意味着模拟将一直运行,直到到达返回类型指令。请注意,iterateAllPaths() 而不是 emulateRange() 也应该可以工作,但是由于 Pandora 中的另一种混淆技术导致了问题,这不在本文的讨论范围内。但在不太复杂的恶意软件中 iterateAllPaths() 可能是更好的选择。

当调用flare-emu 的一个模拟函数(在这种情况下为emulateRange())时,模拟开始。该框架允许我们为模拟提供额外的细节,例如带有寄存器和堆栈的处理器状态,或回调函数的数据,但我们现在不需要这些。

emulateRange() 允许我们为不同的挂钩定义回调函数:

1.指令挂钩:在模拟每条指令之前调用。我用它为 IDA 中模拟的每条指令涂色,以可视化模拟的覆盖范围。

2.调用挂钩:每当模拟 CALL 类型的指令时调用。请注意,默认情况下不会模拟被调用的函数。

3.内存访问挂钩:每当访问内存以进行读取或写入时调用。

对于我们当前的任务,我们只需要 callHook。如上图中的第 9 行所示,我们已经将 call_hook 函数名称作为 callHook 参数传递。接下来,我们需要定义 callHook 函数,如下图所示。

7.png

call_hook() 的第一个实现

我们创建了 call_hook() 函数,每次在模拟 CALL 指令之前,模拟器都会调用该函数。在其当前状态下,该函数将记录它已被执行,然后使用 analysisHelper 检查当前 CALL 指令中的操作数是否为寄存器。如果没有,那么我们可以返回,因为只有注册案例对我们来说是有趣的。然后我们恢复寄存器的名称 (operand_name) 及其值 (operand_name) 并暂时记录它们。如果我们针对 main 函数运行脚本,那么我们会得到下图中的结果。请注意,由于 Pandora 代码中存在许多其他恶意混淆,这个简单的脚本将无法模拟整个函数。但这可以通过扩展脚本来完成。

8.png

第一次测试的结果

通过模拟找到了三个 CALL 指令并打印了操作数寄存器的值。仔细想想,我们基本上解决了函数调用混淆的问题,因为我们现在知道不同的 CALL 指令调用了哪些地址。现在我们只需要将它添加到 IDA 中的反汇编中。这些是每当我们解析 CALL 指令时我们想要在 IDA 中做的事情:

1.添加一个带有被调用函数地址的注释。

2.为该函数调用添加带有参数的注释。

在 IDA 中为调用的函数添加交叉引用

更新后的代码如下图所示。

9.png

添加评论和交叉引用

在创建评论时,我们使用了来自flare-emu 的一个功能。它允许我们以独立于架构的方式获取函数参数。这个恶意软件是 x86_64,所以我们可以只使用 rcx、rdx、r8、r9 和堆栈。调用挂钩获取的参数之一是参数变量,它将包含flare-emu认为是此函数调用的参数的值。当然,如果不分析被调用的函数,我们将不知道需要多少参数,所以我们只打印所有参数。

最后(第 23 行)我们添加了一个 IDA 交叉引用,这将对我们的分析有很大帮助。如果我们在 main 函数上再次运行此代码,我们会得到下图中的结果。

10.png

函数调用解析的结果

加密字符串

现在我们已经解决了第一个问题,并且有了一个可以使用的模拟框架,我们可以继续我们的第二个挑战,解密字符串。为了能够知道要模拟哪个函数来解密字符串,我们唯一的要求是我们需要知道哪些函数是解密函数。与往常一样,逆向工程是一个迭代过程。一旦我们运行我们在 main 函数上编写的脚本,那么我们就可以开始分析调用的函数了。那么我们如何判断一个函数是否是一个解密函数呢?

1.我们在 IDA 中看到了这一点。无需深入研究 0x7ff6b6f971e0 处的函数,我们可以在图形视图中看到它相当简单并且有一些循环。

11.png

0x7ff6b6f971e0 处函数的图形视图

如果我们滚动浏览代码,我们会在下图中找到基本块,我们可以看到它迭代了某个值并对其进行异或。这表明它可能是基于 XOR 的编码/加密。

12.png

XOR 表示解码/解密

2.我们在调试器中看到它。在进行静态分析的同时,我们当然也可以调试恶意软件(在安全的环境中)。在调试器中,当我们看到一个函数获取一些地址作为输入并返回一个字符串时,这可能意味着它是一个解密函数。下图显示了 0x7ff6b6f971e0 处的函数何时返回,并且确实在 rcx 中返回了字符串“ThisIsMutexa”。

13.png

解密后的字符串出现在 rcx 中

一旦我们知道一个函数是一个解密函数,我们就可以相应地重命名它(我们使用了 mw_decrypt_str())。有趣的是,Pandora 使用了多个解密函数,随着我研究深入,我们慢慢发现了这些函数。最后,我们确定了 14 个不同的解密函数,但其中大多数看起来与图 9 非常相似,这使我们能够快速查看一个函数是否只是另一个解密函数。

一旦我们知道了(一些)解密函数,我们就可以改进我们的idpython脚本,以便在看到解密函数被调用时模拟函数调用。这实际上非常类似于flare-emu文档中的一个示例,该文档展示了此类代码通常可以很好地重用。

下图显示了更新后的 call_hook() 函数。从第 23 行开始,我们首先检查我们正在调用的地址处的函数是否具有包含字符串 mw_decrypt_str 的名称。这就是我们判断被调用函数是否为解密函数的方式。

14.png

向 call_hook() 添加解密

如果它是一个解密函数,那么我们在脚本中调用decrypt()函数。这将返回解密后的纯文本字符串。然后,我们创建一个注释,其中也将包含解密后的字符串。

解密过程如下图所示。我们创建一个新的 EmuHelper 实例,在启动 emulateRange 时,我们使用函数名称 (fname) 来获取函数的地址作为起始地址。我们还将 argv 数组的前四个元素作为参数寄存器传递。最后我们返回argv[0]中的值。

15.png

模拟解密进程

在 IDA 中运行脚本后,结果如图 12 所示。解密后的字符串是 ThisIsMutexa,它被添加到注释中并记录在输出中。

16.png

字符串解密成功

现在我们可以自动解密字符串了。随着我们对代码的分析和更多解密函数的发现,我们可以在调用这些解密函数的函数上重新运行脚本来恢复纯文本字符串。

结论

Pandora 勒索软件包含混淆和反逆向工程技术。在这篇文章中,我们研究了其中两个:函数调用混淆和字符串加密。我们使用flare-emu 模拟框架编写了一个IDAPython 脚本来解析函数调用的地址和参数,并模拟解密函数以将字符串恢复为纯文本。最终脚本可以进一步开发,以应对 Pandora 勒索软件深入分析中讨论的其他反逆向工程挑战。

总部设在以色列的NSO集团利用苹果iMessage中一个未知的零点击漏洞,将Pegasus或Candiru恶意软件植入到了政治家、记者和社会活动家的iPhone手机上。

Citizen实验室在周一的一份报告中公布了这一发现,称有65人通过一个名为HOMAGE的iPhone漏洞感染了恶意软件。报告称,这个以色列公司NSO集团和第二家公司Candiru是2017年至2020年期间发生的这些攻击活动的幕后推手。

Candiru,又名Sourgum,它是一家商业公司,据称它会向世界各地的政府出售DevilsTongue恶意监控软件。苹果iMessage HOMAGE漏洞就是一个所谓的零点击漏洞,这意味着不需要和受害者进行任何互动,就可以在预定的目标上偷偷地安装恶意软件。自2019年以来,苹果的iOS软件版本不再受到HOMAGE攻击的影响。

加泰罗尼亚的政治家和活动家成为了攻击目标

Citizen实验室报告的作者写道,此次黑客攻击涵盖了加泰罗尼亚国家的各个社会领域,从学者、活动家到一些非政府组织(NGO)。加泰罗尼亚的政府和民选官员也是此次广泛攻击的目标,其中就包括了约翰-斯科特-雷尔顿、埃利斯-坎波、比尔-马尔扎克、巴赫-阿卜杜勒-拉扎克、西耶纳-安斯蒂斯、戈兹德-伯库、萨尔瓦托雷-索利马诺和罗恩-迪伯特。

他们写道,从加泰罗尼亚政府的最高层到欧洲议会的成员、立法者,以及他们的工作人员和家庭成员都成为了目标。

关于谁发动了这些攻击?研究人员说,最终也没有发现该行动是由哪个组织发动的,但是有证据表明西班牙当局可能正是此次行动的幕后推手。它指出西班牙国家情报中心(CNI)可能是主谋,并引用了该组织曾经的监视和间谍丑闻的历史。

恶意软件的具体分析

针对加泰罗尼亚进行攻击的攻击者至少使用了两个漏洞对受害者进行了攻击:零点击漏洞和恶意短信。鉴于零点击漏洞不需要受害者进行任意交互,因此防御起来很有难度。

Citizen实验室称,攻击者是利用了iOS的零点击漏洞(HOMAGE)以及NSO集团用来传播其Pegasus恶意软件的恶意短信漏洞来对用户进行攻击的。

研究人员写道:"HOMAGE漏洞似乎是在2019年的最后几个月才被犯罪分子使用的,它使用到了一个iMessage零点击组件。在com.apple.mediastream.mstreamd进程中启动一个WebKit实例,在com.apple.private. alloy.photostream中可以查找到Pegasus电子邮件地址。"

据悉,HOMAGE在2019年和2020年也被使用过6次。Citizen实验室表示,运行移动操作系统版本大于13.1.3(2019年9月发布)的苹果设备不会受到攻击。

攻击活动中使用到的其他恶意软件和漏洞

研究人员说,KISMET零点击漏洞最近也被用于网络攻击。2020年12月,Citizen实验室表示,36名记者的手机被四个独立的APTs感染了KISMET,此次攻击可能与沙特阿拉伯或阿联酋有关。

NSO集团在对加泰罗尼亚的攻击中所利用的WhatsApp缓冲区溢出漏洞(CVE-2019-3568),此前Citizen实验室就曾在2019年报告过,并在2019年5月发布了补丁。当时,《金融时报》报道了一家据信是NSO集团的私人公司发动了零日攻击。

研究人员说,作为针对加泰罗尼亚攻击的一部分,有四个人使用了Candiru间谍软件公司的间谍软件从而成为了受害者。这些攻击会试图利用两个现已打过补丁的零日漏洞(CVE-2021-31979,CVE-2021-33771)来进行权限提升。两者都是由微软发现并在2021年7月发布了补丁。

研究人员写道,我们这里总共发现了七封含有Candiru间谍软件的电子邮件,这些邮件都含有stat[.]email的链接。Candiru的间谍软件也显示,Candiru是为广泛攻击设备而设计的工具,该工具可以窃取设备的文件以及浏览器的相关内容,但也会窃取保存在加密的Signal Messenger Desktop应用程序中的信息。

2021年8月,Citizen实验室报告说,最近NSO集团的Pegasus间谍软件使用了一个此前从未见过的零点击iMessaging漏洞来非法监视Bahraini的政治活动家。

Citizen实验室认为这些攻击活动是 “大量且无节制滥用” 用户隐私的例子,表明目前在向政府客户和其他人出售间谍软件方面严重缺乏监管约束。

现在可以确定的是,NSO集团、Candiru、其他同行业的公司以及它们的各种集团,都还没有完全建立起防止滥用间谍软件的基本的保障措施。

0x00 前言

本文记录从零开始搭建VMware Workspace ONE Access漏洞调试环境的细节。

0x01 简介

本文将要介绍以下内容:

VMware Workspace ONE Access安装

VMware Workspace ONE Access漏洞调试环境配置

常用知识

0x02 VMware Workspace ONE Access安装

参考资料:

https://docs.vmware.com/en/VMware-Workspace-ONE-Access/20.01/workspace_one_access_install.pdf

1.下载OVA文件

下载页面:

https://customerconnect.vmware.com/downloads/search?query=workspace%20one%20access

下载前需要先注册用户,之后选择需要的版本进行下载

VMware Workspace ONE Access 21.08.0.1的下载页面:https://customerconnect.vmware.com/downloads/details?downloadGroup=WS1A_ONPREM_210801&productId=1269

下载文件identity-manager-21.08.0.1-19010796_OVF10.ova

2.安装

(1)在VMware Workstation中导入OVA文件

注:

VMware Workstation版本需要大于14,否则报错提示无法导入

在安装页面设置Host Name,如果配置了DHCP,其他选项不用设置,我的配置指定了静态IP,配置如下图

1eb1554038f954f18593eda0117e14a.png

等待OVA文件导入完成后,将会自动开机进行初始化,初始化完成后如下图

c05e76989c4301eb8904c6b8a0794bf.png

(2)配置

修改本机的hosts文件,将192.168.1.11指向workspaceone.test.com

访问配置页面https://workspaceone.test.com:8443

设置admin、root和sshuser用户的口令,口令需要包含大写字母、小写字母、数字和特殊字符

注:

我的测试结果显示,口令长度需要设置为14,否则无法登陆root和sshuser用户

我的测试环境设置口令为[email protected],如下图

0a0223ca5d50ac2ea6209d86f8ce493.png

设置数据库,为了便于环境搭建,这里选择Internal Database

等待安装完成,如下图

2376b6d173df948781aeef019089ace.png

3.设置允许root用户远程登录ssh

需要登录VMware Workspace ONE Access,修改系统的配置文件,有以下两种登录方法:

(1)在虚拟机中直接登录root用户

选择Login,输入root和口令[email protected]

(2)通过ssh登录sshuser用户

登录后再切换至root

切换至root用户后,依次执行以下命令:

vi /etc/ssh/sshd_config

设置PermitRootLogin从no变为yes

systemctl restart sshd

4.开启远程调试功能

修改文件:/opt/vmware/horizon/workspace/bin/setenv.sh

修改参数JVM_OPTS,添加参数:-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8000

如下图

1f94ca59c082957e7eadefbd51e9fee.png

重新启动系统

打开防火墙:iptables -P INPUT ACCEPT && iptables -P OUTPUT ACCEPT

IDEA设置远程调试参数,如下图

c24da3d796292bdf64d092b888e51fd.png

注:

IDEA的完整配置方法可参考之前的文章《Zimbra漏洞调试环境搭建》

0x03 常用知识

1.常用命令

查看系统服务状态: chkconfig --list

查看所有服务状态: systemctl status

查看IP地址: ip addr show

查看Host Name: hostname

日志路径: /opt/vmware/horizon/workspace/logs/

2.查看系统版本

需要root权限执行命令: vamicli version --appliance

查看系统版本的实现细节:

#!/usr/bin/env python2
import sys
sys.path.append("/opt/vmware/lib/python/site-packages/")
import pywbem
def getCIMConnection (url, namespace):
    cred = {}
    cred ['cert_file'] = '/opt/vmware/etc/sfcb/client.pem'
    cred ['key_file'] = '/opt/vmware/etc/sfcb/file.pem'
    cliconn = pywbem.WBEMConnection (url, None, namespace, cred)
    return cliconn
def showVersion():
  try:
    cliconn = getCIMConnection ('https://localhost:5489', 'root/cimv2')
    esis = cliconn.EnumerateInstances ('VAMI_ElementSoftwareIdentity')
  except:
    print('error')
    return
  for esi in esis:
    ess = esi ['ElementSoftwareStatus']
    if (ess == [2, 6]):
      inst = cliconn.GetInstance (esi['Antecedent'])
      print ('Version - ' + inst ['VersionString'])
      print ('Description - ' + inst ['Description'])
showVersion()

需要root权限是因为访问文件/opt/vmware/etc/sfcb/client.pem和/opt/vmware/etc/sfcb/file.pem需要root权限

3.数据库连接口令

连接数据库的明文口令位置为:/usr/local/horizon/conf/db.pwd

连接数据库的口令加密保存在文件/usr/local/horizon/conf/runtime-config.properties中,文件内容示例:

datastore.jdbc.url=jdbc:postgresql://localhost/saas?stringtype=unspecified
datastore.jdbc.userName=horizon
secure.datastore.jdbc.password=BAACs8MW1xyMe7/8ONd2QwtG3mw37wF1/1pQ6D09xXqf56ncfRtCun6y8A1XFtjajhU60V1QNYnCOxk3t1m0dV0JvA==

其中,BAACs8MW1xyMe7/8ONd2QwtG3mw37wF1/1pQ6D09xXqf56ncfRtCun6y8A1XFtjajhU60V1QNYnCOxk3t1m0dV0JvA==为加密口令

需要以下文件作为解密密钥:

/usr/local/horizon/conf/configkeystore.pass
/usr/local/horizon/conf/configkeystore.bcfks

4.数据库中的加密信息

admin用户的口令加密存储在数据库中

查询命令:saas=> SELECT "passwordAuthData" FROM "PasswordInformation";

查询结果如下图

加密的主要实现代码1:

   private String AES_encrypt(@Nonnull byte[] clearData, @Nonnull byte[] key, @Nonnull EncryptionAlgorithms encAlg) throws EncryptionServiceException {
        Preconditions.checkNotNull(clearData);
        Preconditions.checkNotNull(key);
        Preconditions.checkNotNull(encAlg);
        Preconditions.checkArgument(clearData.length != 0);
        try {
            String cipherName = encAlg.getCipherName();
            Cipher cipher = Cipher.getInstance(cipherName, provider);
            int nonceSize = encAlg.getNonceSize(cipher.getBlockSize());
            IvParameterSpec ivSpec = null;
            String encodedIv;
            if (nonceSize > 0) {
                byte[] iv = new byte[nonceSize];
                srand.nextBytes(iv);
                ivSpec = new IvParameterSpec(iv);
                encodedIv = new String(Hex.encode(iv), StandardCharsets.US_ASCII);
            } else {
                encodedIv = "";
            }
            if (encAlg.forcePadding()) {
                clearData = ArrayUtils.add(clearData, (byte)1);
            }
            SecretKey secret = new SecretKeySpec(key, cipherName);
            cipher.init(1, secret, ivSpec, srand);
            byte[] data = cipher.doFinal(clearData);
            String output = Integer.toString(4) + ":" + encodedIv + ":" + new String(Hex.encode(data), StandardCharsets.US_ASCII);
            return output;
        } catch (InvalidKeyException | BadPaddingException | IllegalBlockSizeException | InvalidAlgorithmParameterException | NoSuchPaddingException | NoSuchAlgorithmException | FipsUnapprovedOperationError var12) {
            log.error("Failed to encrypt with AES: " + var12.getMessage());
            throw new EncryptionServiceException(var12);
        }
    }

加密的主要实现代码2:

String encryptedData = Integer.toString(1) + "," + encKey.getSafeUuid().toString() + "," + this.AES_encrypt(clearData, aesKey, encAlg);

5.8443端口登录口令

登录口令加密保存在文件/usr/local/horizon/conf/config-admin.json

加密的主要实现代码:

    private void setPassword(String newPassword, boolean isSet) throws AdminAuthException {
        int ic = this.passwordAuthenticationUtil.getIc(iterationCountBase, iterationCountRange);
        try {
            String newEncryptedPassword = this.passwordAuthenticationUtil.createPWInfo("admin", "admin", ic, newPassword);
            PasswordInfo newPasswordInfo = new PasswordInfo(newEncryptedPassword, isSet);
            if (this.passwordInfo != null) {
                newPasswordInfo.setAttemptDelay(this.passwordInfo.getAttemptDelay());
                newPasswordInfo.setMaxAttemptCount(this.passwordInfo.getMaxAttemptCount());
            }
            objectMapper.writeValue(this.passwordInfoFile, newPasswordInfo);
        } catch (IOException | EncryptionServiceException var7) {
            throw new AdminAuthException("Failed to set password" + var7.getMessage(), var7);
        }
        try {
            this.loadEncryptedPasswordFromFile();
        } catch (IOException var6) {
            throw new AdminAuthException("Failed to load stored password" + var6.getMessage(), var6);
        }
    }

0x04 小结

在我们搭建好VMware Workspace ONE Access漏洞调试环境后,接下来就可以着手对漏洞和数据库口令的解密方法进行学习。

当地时间5月16日,美国司法部指控了一名来自委内瑞拉的 55 岁医生是Thanos勒索软件的幕后策划者,并通过销售该勒索软件从中获取了大量利润。

这位“幕后黑手”——现居委内瑞拉、拥有委内瑞拉和法国双重国籍的心脏病专家Moises Luis Zagala Gonzalez至少在两年前就创建了Thanos勒索软件。作为一项勒索软件即服务 (RaaS),根据Recorded Futu

2022年5月18日,奇安信对外发布数据跨境卫士,帮助企业满足数据跨境传输、流转时面临的合规和合法监管需求,并为企业开展跨境业务、管理境外分支机构、境外上市、跨境数据流动等提供专业的安全保障。

2021年是数据安全相关法律密集出台的一年,也是数据跨境流动引发全民关注的一年。这一年,《数据安全法》、《个人信息保护法》、《关键信息基础设施安全保护条例》先后出台,《数据出境安全评估办法(征求意见稿)》、《网络数据安全管理条例(征求意见稿)》陆续发布,从宏观的上位法到微观的条例、办法和规章制度等各个层面,对个人敏感信息、重要数据等出境进行了全面明确的法律规定。

同时,2021年关于数据跨境安全的事件屡次成为社会焦点。6月30日,国内某网约车平台“悄悄”赴美上市,在上市第三天就收到国内网络安全审查办公室针对该企业启动网络安全审查的公告,原因是“防范国家数据安全风险,维护国家安全”,最终该企业被迫退市。同时,特斯拉的数据跨境传输风险和安全问题也引发了广泛关注,特斯拉 CEO马斯克在2021年世界互联网大会乌镇峰会上承诺,特斯拉已在中国建立数据中心,所有中国业务所产生的所有数据完全存储在中国境内,车主所有个人身份信息不会转移到海外,只有极少数情况下,部分数据才会在获得相关批准后跨境传输。这些数据安全保障措施的落地,确保了特斯拉在中国业务的顺利开展。 

 “数字化转型是把双刃剑,企业在享受红利的同时,也面临数据传输、流动过程的安全挑战,尤其很多跨国企业还会涉及数据出境等相关安全问题,其潜藏的数据安全威胁远超我们的想象,甚至可能会危害到国家及社会公众的利益。”奇安信集团副总裁孔德亮表示,解决数据安全问题并非一蹴而就,需要一套思路、方法与工具,按照不同的发展阶段,帮助企业去设计和构建基于业务场景的数据安全体系。奇安信推出的数据跨境卫士,正是数据安全建设中重要的一环,不仅能解决企业跨境传输的数据能满足《数据安全法》、《个人信息保护法》、数据跨境监管等合规要求,还能对敏感数据的跨境流动情况,进行全局、清晰和直观的掌控。

bd67f65da3a1764f81c76cb9a71a406.png

图:数据跨境卫士应用场景

据介绍,奇安信数据跨境卫士具有四方面功能,首先是保障合规,即帮助企业满足数据安全法、个人信息保护法、数据跨境监管相关条例等合规要求;其次是可查可检,满足企业正常业务开展的同时,清晰掌握业务数据、重要数据、个人信息等敏感数据跨境流动详情;第三是及时止损,可以帮助企业避免名誉受损、经济受损,同时避免被通报处罚;最后是看清流向,可以全面了解WHO(什么人)、WHEN(什么时间)、WHERE(什么地点)、HOW(什么方式)、WHAT(什么数据)等整个数据跨境流转的整个过程,实现全局掌控。

今年1月,国务院印发《“十四五”数字经济发展规划的通知》(下称《规划》)提出,到2025年,数字经济迈向全面扩展期,数字经济核心产业增加值占GDP比重达到10%。可以预测,整个“十四五”期间,对外数字经济将极大得到发展空间,在经济交流过程中合法合规使用数据,将成为国家安全和企业发展的重中之重。根据奇安信调研,随着越来越多的企业走出国门,以及国际企业共享中国发展机遇,未来2-3年,单数据跨境检查这一细分赛道,总体市场份额至少在几十亿元的市场空间。

网安新势力SOLO发布集第四期节目已正式上线直播官网。本期节目请到了攻防安全新势力,北京未来智安科技有限公司创始人兼CEO唐伽佳先生,发布《浅谈XDR扩展威胁检测与响应》的议题。

应对大量威胁告警,企业往往需要投入多种安全产品以及人员,才能从中分析提升安全处置效率。通过多元数据治理接入NDR、EDR等数据、基于安全数据关联分析建模、威胁狩猎、攻击事件挖掘形成完整的攻击事件,「未来

网安新势力SOLO发布集第四期节目已正式上线直播官网。本期节目请到了攻防安全新势力,北京未来智安科技有限公司创始人兼CEO唐伽佳先生,发布《浅谈XDR扩展威胁检测与响应》的议题。

应对大量威胁告警,企业往往需要投入多种安全产品以及人员,才能从中分析提升安全处置效率。通过多元数据治理接入NDR、EDR等数据、基于安全数据关联分析建模、威胁狩猎、攻击事件挖掘形成完整的攻击事件,「未来

KubeCon Europe,西班牙,瓦伦西亚 – 2022 年 5 月 17 日 - 企业级开源解决方案领导者 SUSE 发布了容器安全平台NeuVector 5.0,这是 NeuVector 自 1 月份开源以来的首个版本,该版本已经集成到刚刚发布的 SUSE Rancher 2.6.5 中。NeuVector 新版本的发布进一步实现了 SUSE 全面整合云原生平台的愿景,将助力用户构建和部署 Kubernetes 应用程序,并轻松实施安全防护,加速数字化转型。此外,SUSE 还宣布将 NeuVector 的开源项目 Open Zero Trust (OZT) 捐赠给 CNCF,持续践行其对开源社区的承诺。

45e7de2a8f37d986231ae4dc4b127eb.png

NeuVector 5.0:为任意环境的容器应用提供全生命周期安全防护

SUSE NeuVector 5.0 能够与 SUSE Rancher 集成,也能够与 Amazon EKS、Google GKE 和 Microsoft AKS 等其他企业级容器管理平台对接。NeuVector 已成为 SUSE Rancher  v2.6.5 的一部分,用户可通过 SUSE Rancher 控制台直接访问 NeuVector 并通过身份验证来管理 NeuVector。此举简化了遍布全球的大规模 Kubernetes 环境的安全管理,提供了无缝的用户体验,使其尽享完全零信任堆栈的优势。 

“业界对容器安全的担忧持续加深,我们的客户深知可以信赖 SUSE 提供的全面解决方案,帮助他们强化整个 Kubernetes 生命周期的安全防护。”SUSE 企业级容器管理总经理 Greg Muscarella 表示。“基于 SUSE Linux Enterprise 的积淀,以及与 SUSE Rancher 的无缝集成,SUSE NeuVector 能够助力企业强化对任意环境的安全防护,抵御日渐增强的网络威胁,同时避免影响开发者的敏捷性和技术创新。”

新版 NeuVector 将继续强化企业实时构建弹性容器系统的能力,其功能包括:Web 应用程序防火墙检测、自动化容器保护、漏洞 (CVE) 调查与分类、合规性检查和报告。 

此外,SUSE 还宣布将 NeuVector 的开源项目 Open Zero Trust (OZT) 捐赠给 CNCF (Cloud Native Computing Foundation,云原生计算基金会),再次践行了其对开源社区的承诺。 

“对于部署云原生工作负载的所有用户和企业而言,安全至关重要。”SUSE 安全策略副总裁 Fei Huang 表示。“在将 Open Zero Trust 项目捐赠给 CNCF 后,整个社区都将参与 Kubernetes 的安全防护工作,该项目的整体价值也将持续提升。Open Zero Trust 将赋予每个人NeuVector 世界顶级的容器安全防护能力,以加速构建一个强大的专注安全防护的贡献者社群,这对抵御漏洞和黑客攻击至关重要。”  

了解更多,访问https://www.suse.com/zh-cn/ 

关于SUSE

SUSE 是全球范围内创新且可靠的企业级开源解决方案领导者,财富 500 强中有 60% 以上的企业依靠 SUSE 为其关键任务的工作负载赋能。SUSE 专注于企业级Linux、企业容器管理和边缘解决方案,通过与合作伙伴和社区合作,帮助客户随时随地在任意场景进行创新——无论是在数据中心、云端还是边缘环境。SUSE 让“开源”重新“开放”,使客户能够灵活地应对当今的创新挑战,并能够自由地在未来发展其IT战略和解决方案。SUSE 在全球拥有近 2000 名员工,2021 年在法兰克福证券交易所的监管市场(Prime Standard)上市。

前瞻性声明

本新闻稿中任何关于公司未来的期望、计划和前景的声明,包括含有“目的”、“目标”、“将会”、“相信”、“预期”、“计划”、“期望”以及旨在表明其为前瞻性声明的类似表述,应谨慎阅读。这些声明仅为预测,由于不确定性因素的影响,实际结果可能与这些前瞻性声明所表示的结果产生巨大差异。不确定性因素包括竞争环境、客户交易的发展、对客户关系的依赖、增长和收购的管理、未被发现软件问题的可能性、新冠病毒的流行和经济衰退影响的风险、定价压力和互联网的可行性等。此外,前瞻性声明仅反映了本新闻稿发布当日的情况,我们不对更新或修正任何前瞻性声明承担责任。由于前瞻性声明可能发生变化,所以本新闻稿发布之日以外的任何时间,都不应以此代表公司观点。

2021 SUSE LLC 版权所有。保留所有权利。SUSE 和 SUSE 标志是 SUSE LLC 在美国和其他国家的注册商标。所有第三方商标均为其各自所有者的财产。

KubeCon Europe,西班牙,瓦伦西亚 – 2022 年 5 月 17 日 - 企业级开源解决方案领导者 SUSE 发布了容器安全平台NeuVector 5.0,这是 NeuVector 自 1 月份开源以来的首个版本,该版本已经集成到刚刚发布的 SUSE Rancher 2.6.5 中。NeuVector 新版本的发布进一步实现了 SUSE 全面整合云原生平台的愿景,将助力用户构建和部署 Kubernetes 应用程序,并轻松实施安全防护,加速数字化转型。此外,SUSE 还宣布将 NeuVector 的开源项目 Open Zero Trust (OZT) 捐赠给 CNCF,持续践行其对开源社区的承诺。

45e7de2a8f37d986231ae4dc4b127eb.png

NeuVector 5.0:为任意环境的容器应用提供全生命周期安全防护

SUSE NeuVector 5.0 能够与 SUSE Rancher 集成,也能够与 Amazon EKS、Google GKE 和 Microsoft AKS 等其他企业级容器管理平台对接。NeuVector 已成为 SUSE Rancher  v2.6.5 的一部分,用户可通过 SUSE Rancher 控制台直接访问 NeuVector 并通过身份验证来管理 NeuVector。此举简化了遍布全球的大规模 Kubernetes 环境的安全管理,提供了无缝的用户体验,使其尽享完全零信任堆栈的优势。 

“业界对容器安全的担忧持续加深,我们的客户深知可以信赖 SUSE 提供的全面解决方案,帮助他们强化整个 Kubernetes 生命周期的安全防护。”SUSE 企业级容器管理总经理 Greg Muscarella 表示。“基于 SUSE Linux Enterprise 的积淀,以及与 SUSE Rancher 的无缝集成,SUSE NeuVector 能够助力企业强化对任意环境的安全防护,抵御日渐增强的网络威胁,同时避免影响开发者的敏捷性和技术创新。”

新版 NeuVector 将继续强化企业实时构建弹性容器系统的能力,其功能包括:Web 应用程序防火墙检测、自动化容器保护、漏洞 (CVE) 调查与分类、合规性检查和报告。 

此外,SUSE 还宣布将 NeuVector 的开源项目 Open Zero Trust (OZT) 捐赠给 CNCF (Cloud Native Computing Foundation,云原生计算基金会),再次践行了其对开源社区的承诺。 

“对于部署云原生工作负载的所有用户和企业而言,安全至关重要。”SUSE 安全策略副总裁 Fei Huang 表示。“在将 Open Zero Trust 项目捐赠给 CNCF 后,整个社区都将参与 Kubernetes 的安全防护工作,该项目的整体价值也将持续提升。Open Zero Trust 将赋予每个人NeuVector 世界顶级的容器安全防护能力,以加速构建一个强大的专注安全防护的贡献者社群,这对抵御漏洞和黑客攻击至关重要。”  

了解更多,访问https://www.suse.com/zh-cn/ 

关于SUSE

SUSE 是全球范围内创新且可靠的企业级开源解决方案领导者,财富 500 强中有 60% 以上的企业依靠 SUSE 为其关键任务的工作负载赋能。SUSE 专注于企业级Linux、企业容器管理和边缘解决方案,通过与合作伙伴和社区合作,帮助客户随时随地在任意场景进行创新——无论是在数据中心、云端还是边缘环境。SUSE 让“开源”重新“开放”,使客户能够灵活地应对当今的创新挑战,并能够自由地在未来发展其IT战略和解决方案。SUSE 在全球拥有近 2000 名员工,2021 年在法兰克福证券交易所的监管市场(Prime Standard)上市。

前瞻性声明

本新闻稿中任何关于公司未来的期望、计划和前景的声明,包括含有“目的”、“目标”、“将会”、“相信”、“预期”、“计划”、“期望”以及旨在表明其为前瞻性声明的类似表述,应谨慎阅读。这些声明仅为预测,由于不确定性因素的影响,实际结果可能与这些前瞻性声明所表示的结果产生巨大差异。不确定性因素包括竞争环境、客户交易的发展、对客户关系的依赖、增长和收购的管理、未被发现软件问题的可能性、新冠病毒的流行和经济衰退影响的风险、定价压力和互联网的可行性等。此外,前瞻性声明仅反映了本新闻稿发布当日的情况,我们不对更新或修正任何前瞻性声明承担责任。由于前瞻性声明可能发生变化,所以本新闻稿发布之日以外的任何时间,都不应以此代表公司观点。

2021 SUSE LLC 版权所有。保留所有权利。SUSE 和 SUSE 标志是 SUSE LLC 在美国和其他国家的注册商标。所有第三方商标均为其各自所有者的财产。