【公益译文】卡内基梅隆大学软件工程学院:勒索软件威胁现状三 ...
3 技术概述3.1
3.1.1
一般来说,勒索软件攻击分为多个阶段。只有充分了解各阶段活动,组织才能有备无患,应对自如。需要注意的是,勒索软件是软件代码,在攻陷兼容计算机后执行,对本地存储、网络或云中的可访问数据进行操控。此外,还可能利用网络访问权限和互联网与命令控制(C2)服务器(攻击者的基础设施)通信。攻击受害人应料到勒索软件会利用强加密算法加密数据且只有联系勒索软件组织才能获得解密秘钥。受害人支付赎金后,攻击者提供的解密工具和秘钥可能无法正常使用,导致某些数据仍无法解密和访问。
受害人应事先知晓,勒索软件不仅可加密本地计算机存储器中的数据,而且还能通过网络加密数据。尽管数据访问可能受限,但勒索软件仍可能利用漏洞访问受限数据。此外,勒索软件可能导致企业无法访问关键数据,而这些数据对于面向客户的服务和后端服务来说非常必要。
3.1.2 勒索软件常见感染途径
勒索软件利用多种方法入侵系统。下面几节介绍最常见感染途径:邮件、被攻陷的网站以及网络上误配置系统中的漏洞。
3.1.2.1 电子邮件
电子邮件是最常用的勒索软件传播机制。第二节中提及的所有家族几乎都利用电子邮件作为感染途径。网络攻击者可通过各种方式获得大量电子邮件地址,并利用这些地址发起钓鱼攻击。通过钓鱼邮件传播的勒索软件使用了社会工程手段,旨在让用户相信邮件正常且其附件和链接可靠。大多数情况下,邮件包含恶意附件,可导致勒索软件攻击。
图2是鱼叉式钓鱼邮件例子,即勒索软件利用的定向钓鱼邮件。(Klein,2015年)在此类钓鱼攻击中,邮件正文内容和链接面向特定人员和组织量身定制。本例中,钓鱼邮件内容为顾客对Backblaze的投诉。正常情况下,邮件发送给被投诉公司的CEO。人们收到后很容易相信该邮件正常,然后根据指示点击链接。
http://i1.go2yd.com/image.php?url=0UU0WG0mEz&zhiwu55.jpg
图2:2015年Locker勒索软件的鱼叉式钓鱼邮件(Klein,2015年)
3.1.2.2 网站
通过入侵站点投递的勒索软件主要利用恶意广告和漏洞利用工具包。恶意广告并不是一种新的传播方式,最早出现在2007年。2019年6月,Sodinokibi勒索软件被发现利用恶意广告作为感染途径,借助PopCash广告网络将受害人重定向至RIG漏洞利用工具包。(趋势科技,2019年)Nemty也利用RIG漏洞利用工具包开展恶意广告活动。(Ilascu,Nemty勒索软件通过RIG漏洞利用工具包传播,2019年)利用网站传播勒索软件的好处是无需用户交互即可成功感染机器,单单让用户浏览网页就可使恶意广告的恶意代码自动执行,进而感染机器。
恶意广告不仅利用危险的网站,还渗透了诸如纽约时报、NFL、MSN和BBC等主流网站。要在网站上展示恶意广告,关键是攻击者以合法方式参与广告网络的活动。攻击者在网络上注册成为广告商,通过竞标在流行网站上投入广告,最初通过投放无恶意软件的合法广告赢得信任,一段时间后会在这些网络中引入恶意广告,赢得广告位竞标后将广告显示在网站上。若广告网络实现了交易自动化和最小安全检查,那么广告投放会非常方便。恶意广告商可轻松地在无人察觉情况下投放广告。一旦恶意广告被展示(有时需要点击),将出现多个重定向方式。最常见的情况是,代码中隐藏的内联框架(iframe)标签开始执行一系列域名/IP跳转,最终达到存储漏洞利用工具包的恶意服务器。
图3是恶意重定向至RIG漏洞利用工具包的例子。该重定向利用PopCash广告网络下载和安装Sodinokibi勒索软件。(Abrams,通过漏洞利用工具包和恶意广告实现Sodinokibi勒索软件攻击,2019年)Sodinokibi在下载并执行后可加密文件,如图4所示。
http://i1.go2yd.com/image.php?url=0UU0WGIUeg&zhiwu55.jpg
图3:在未安装补丁的Windows PC上进行恶意广告重定向(Abrams,通过漏洞利用工具包和恶意广告实现Sodinokibi勒索软件攻击,2019年)
http://i1.go2yd.com/image.php?url=0UU0WGzZHj&zhiwu55.jpg
图4:Sodinokibi勒索软件加密未打Windows补丁的 PC(Abrams,通过漏洞利用工具包和恶意广告实现Sodinokibi勒索软件攻击,2019年)
3.1.2.3 漏洞利用工具包
漏洞利用工具包指试图利用操作系统、浏览器、插件和其他软件中的已知和未知漏洞入侵机器的软件。这些工具包主要攻击浏览器及其他可通过访问网页自动执行的软件。大多数现代Web浏览器通过限制对系统资源的网页访问防御入侵,并要求进行实际的用户交互才能访问网页。
恶意代码一旦侵入系统,则会从远程服务器中下载勒索软件并在机器上执行。感染通常在后台执行,若未及时发现,勒索软件会完成数据加密,弹出赎金支付消息。
漏洞利用工具包成功执行的关键在于是否能发现漏洞。有些工具包只利用公开发布的漏洞,有些工具对发现的漏洞秘而不宣,囤积居奇,在黑市中待价而沽。以下是最常用的技术:
· 流行软件(如Adobe Acrobat Reader、Microsoft Office和WordPress)
· 浏览器(如Internet Explorer (IE)、Firefox、Chrome和Safari)
· 插件(如Adobe Flash)
有些漏洞利用工具包已成功利用。有些勒索软件运营商可能正在减少使用这些工具包,而更多的采用钓鱼邮件。下面介绍几个有代表性的工具包。
RIG:该漏洞利用工具包在2016年出现,据知已传播了Nemty和Sodinokibi等至少35个勒索软件家族。(迈克菲,2018年)RIG漏洞利用工具包一直在维护和升级,可对34个漏洞进行恶意利用,包括近期发现的Adobe Flash Player和Microsoft Windows中的CVE-2018-4878和CVE-2018-8174漏洞。
Fallout:该漏洞利用工具包在2018年8月被发现,据悉已传播了包括Maze和Sodinokibi在内的多种勒索软件家族。(迈克菲,2019年)Fallout利用Adobe Flash Player和Microsoft Windows中的CVE-2018-4878、CVE-2018-8174和CVE-2018-15982漏洞。
Spelevo:该漏洞利用工具包在2019年年初被发现,据悉已传播了Maze勒索软件。(迈克菲,2019年) Spelevo漏洞利用工具包利用CVE-2018-8174和CVE-2018-15982漏洞,通过Adobe Flash Player投放木马在Microsoft Windows中创建持续定时任务。(迈克菲,2019年)
Radio:该漏洞利用工具包针对Microsoft Windows,据知已传播了Nemty勒索软件。(Abrams,漏洞利用工具包利用勒索软件和木马攻击Windows用户,2019)Radio漏洞利用工具包基于Internet Explorer中广泛利用的漏洞CVE-2016-0189(已修复),与其他漏洞利用工具包相比可能不够先进。(nao_sec,2019年)
漏洞利用工具包五花八门,甚至无需用户交互也能入侵系统。为避免遭受这些工具包的攻击,最好严格遵守软件更新策略。似乎大多数工具包均利用公开发布的漏洞的攻击利用程序,只有少数利用个人发现的漏洞。漏洞利用程序之所以成功执行,说明软件未能定期打补丁,导致工具包可持续完全依赖公开发布的漏洞。
3.1.3 修改操作系统
勒索软件一旦在受害人机器人执行,其行为与大多数恶意软件并无二致。勒索软件的初始执行目标均为:
· 在已攻陷机器上实现持久化。
· 避免从已攻陷机器上检出并移除。
· 在某些情况下,与C2服务器建立网络连接。
3.1.3.1 建立持久化
建立持久化后,勒索软件可持续执行并可在足够长时间内访问系统中所有必要资源,实现恶意目标。勒索软件利用下面的一些策略在入侵的系统中建立持久化:
· 在新文件中自我复制。勒索软件在系统文件夹及临时文件夹等不常见的位置生成其执行文件的多个副本。这样,就可以避免被彻底删除,除非所有副本都被检出并移除。在Windows系统中,典型位置包括system32、AppData、Local和临时文件夹。
· 在现有文件中自我复制。勒索软件在现有二进制文件中写入恶意代码,该恶意代码或为自身副本,或为其他恶意代码。勒索软件一般在系统文件夹中复制,原因是这些系统文件对操作系统功能的正常运行至关重要,反恶意软件程序不会删除这些系统文件或不阻止其运行。此外,系统文件夹中的文件一般具备系统管理权限。
· 创建新二进制文件。系统中释放的勒索软件通常会创建二进制文件,这些文件稍后执行,完成恶意任务。此举的目的是将两个文件分开。若所创建的文件被移除,原始的释放文件可重新创建文件,再次尝试实现恶意目标。二进制文件可从远程主机上下载,也可从其可执行文件的嵌入代码中复制(并非精确复制);第二种情况是一种自我复制行为。
· Windows注册表。有时,勒索软件利用Windows注册表建立持久化。Windows注册表是个分层数据库,包含操作系统以及相关应用程序的设置。勒索软件试图创建和修改注册表项用于自身目的,并且重置或删除安全和反恶意软件相关的表项。此外,勒索软件就数个已知的开机自启动注册表项(主要是“CurrrentVersion\Run”)设置路径,从而创建开机自启动的恶意二进制文件。
3.1.3.2 逃避检测
勒索软件加密受害者的数据需要时间(有时需数小时),所以,须保证在这段时间内不被检出并移除。勒索软件采取如下策略逃避检测:
· 删除之前文件:勒索软件执行之前下载或创建的二进制文件。这些进程通常会衍生很多恶意子进程,避免其从被入侵的系统上移除。一般情况下,这些衍生出来的子进程运行相同实例,也就是说,指子进程执行与父进程同样的行动。在这些进程中,木马可能进行各项恶意任务或执行其他二进制文件,而这些二进制文件提供的是一些本身并无恶意的支持功能。为逃避检测,衍生出的子进程可能会从文件系统中删除父进程的二进制图片,从而尽可能地减少在入侵系统上的执行结果和痕迹。
· 终止父进程:如上所述,勒索软件一般会在首次下载或创建二进制文件后创建和生成恶意子进程。创建子进程后,父进程可能自动终止。在某些情况下,子进程会终止父进程,即删除父进程,旨在将释放的勒索软件进程与执行恶意任务的子进程分离,避免勒索软件从入侵系统上被检出和移除。
· 禁用反恶意软件程序:一些勒索软件变体知晓反恶意软件程序的进程和配置选项。为逃避检测,勒索软件试图通过终止进程禁用反恶意软件程序,导致反恶意软件程序无法正常运行或完全停止运行。
http://i1.go2yd.com/image.php?url=0UU0WGYvGF&zhiwu55.jpg
图5为勒索软件的典型文件加密示意图,从内至外,加密可能性依次递增。通常,最常见的目标文件为各种office文档(如.doc、.sxw、.xlsx和.sxc)、图像格式(如.tiff、.png和.bmp)、存档文件(如.zip和.tar)、音频文件(如.mp3和.sxc).wav)和视频文件(如.mp4和.avi)。一些勒索软件变体还可能包括数据库(如.sqlite和.mdb)和网站相关文件(如.html和.aspx)。不太复杂的加密勒索软件可能会将目标限制在系统的特定目录上,而目标明确的勒索软件可能会锁定特定应用程序(如MongoDB)。
http://i1.go2yd.com/image.php?url=0UU0WGZoHi&zhiwu55.jpg
图5:从勒索软件最青睐的加密文件(最外圈)到最不常见的加密文件(最里圈)
如图5所示,许多勒索软件家族避免加密可执行文件或系统文件,因为这样做会使系统不稳定,甚至可能导致勒索软件无法运行。然而,这种情况正在改变,许多勒索软件家族现在仅将启动计算机所需的最基本文件列入白名单,其余文件一律加密。勒索软件还瞄准组织服务器上的数据(如数据库、网站和文件共享),利用数据泄露的负面影响,迫使受害者支付赎金。
3.2 加密
勒索软件使用某种形式的加密来限制对作为勒索筹码的数据的访问。加密指通过使用唯一加密密钥的加密算法对数据进行打散来保护数据。正确使用加密可防止未经授权(即唯一解密密钥)访问数据,勒索软件正是基于此思路设计,只有收到赎金,才会提供解密密钥。本节将回顾勒索软件使用的加密算法。
3.2.1 算法
大多数勒索软件变种在攻击中结合使用对称和非对称加密算法。对称加密比较简单和快速,通常用于加密大容量数据。对称加密只使用一个加密密钥进行数据加密和解密,如图6所示。非对称加密更复杂,需要两个不同加密密钥(公钥和私钥),如图7所示。公钥加密数据,私钥用于解密由公钥加密的数据。由于非对称加密较为复杂,所以速度慢得多,通常用于加密少量数据。
http://i1.go2yd.com/image.php?url=0UU0WGeO49&zhiwu55.jpg
图6:对称加密算法
http://i1.go2yd.com/image.php?url=0UU0WG6CWG&zhiwu55.jpg
图7:非对称加密算法
这里我们以MedusaLocker为例进行介绍。勒索软件利用AES-256对称加密算法加密文件。由于AES-256是对称加密算法,须使用同一密钥加密和解密数据,如图6所示。MedusaLocker利用RSA-2048非对称加密算法对对称密钥进行加密保护,其中加密通过公钥完成,解密则利用对应私钥实现,如图7所示。大多数情况下,公钥由C2服务器提供给勒索软件,而C2服务器也保存相关私钥。这就对加密方法设置了限制,因为如果不访问C2服务器,则无法获得用于加密数据的对称加密密钥。不过,MedusaLocker通过在可执行文件中嵌入公钥绕过了这一限制,也就是说它无需连接到C2服务器利用对称和非对称加密。
从MedusaLocker实例中,我们可看出在勒索软件中利用加密算法组合的典型复杂性。事实上,许多新的勒索软件家族都试图采取相似的最佳实践进行加密以及生成和管理密钥,这使得在不支付赎金的情况下恢复数据愈加困难。
数据加密中的一个最佳实践是建议采取对称加密对大量数据进行加密,因为对称加密比非对称加密快得多。因此,合理实现的加密方案通常包括对称加密组件(例如AES)和非对称加密组件(例如RSA),如图8所示。在自定义加密算法中,漏洞很常见,因为它们不会受到严格的大范围代码审查。勒索软件开发人员可通过使用构建的加密算法限制潜在漏洞面。因为减少了勒索软件所使用加密过程的漏洞,。如上所述,MedusaLocker采取了最佳实践,使用AES-256对称加密算法和RSA-2048加密算法。目前,没有用于MedusaLocker的公共解密程序。
http://i1.go2yd.com/image.php?url=0UU0WGgv2V&zhiwu55.jpg
图8:结合使用对称性和非对称性加密保护密钥
将对称和非对称加密方法结合使用在fuxsocyl、GlobeImposter、LockerGoga、Ryuk和Nemty等很多其他勒索软件家族中非常常见。与Medu-saLocker不同,在这些勒索软件家族中,有些会与C2服务器通信,生成用于加密AES对称密钥的RSA公钥,这就使得C2服务器连接成为了一项必要条件。如果勒索软件无法连接到C2服务器将无法获得加密AES对称密钥的公钥,若缺乏安全的对称密钥,勒索软件组织将无法加密数据,进行勒索。
一些勒索软件试图通过使用本地生成的AES-256对称密钥加密数据解决该问题。若是明文密钥,那么受害者就可在不支付赎金的情况下解密他们的数据。除非无法与C2服务器通信,否则勒索软件不会在本地存储明文对称密钥。在这种情况下,勒索软件使用硬编码的RSA公钥基于对称密钥创建恢复密钥。恢复密钥创建后,原始明文格式的AES对称密钥将从系统中删除。
恢复密钥稍后会和赎金一起提交给威胁攻击方控制的网站,从而恢复原始的AES主对称密钥。然后,解密工具可使用该对称密钥恢复数据。
3.2.2 数据完整性
数据加密包含数据修改,可能导致数据损坏。如果数据在加密过程中损坏,即使使用正常运行的解密工具也可能无法恢复。从勒索软件实现来看,原始明文数据可在原位修改,也可复制到另一个文件容器中进行加密。一旦加密,原始明文数据文件将从系统中删除。然而,勒索软件代码实现中的缺陷可能导致加密数据不完整。与许多其他涉及大量数据写入的应用程序一样,数据写入过程若突然中断可能导致数据损坏。
最近几个勒索软件家族对原始数据文件进行了修改,添加了加密密钥和唯一标识符,在解密工具恢复原始文件前必须删除这些密钥和唯一标识符。最后,解密工具在实现上可能存在缺陷,导致数据损坏。
如果原始数据已删除但未在存储器中覆盖,则可利用正规的数据恢复工具恢复删除的文件。如果解密工具损坏了数据,则可对该工具进行修改避免数据损坏。在任何情况下,我们都建议您在尝试进行数据恢复前对加密数据进行备份。
与任何恶意数据修改一样,若不将数据与之前存储的副本或数据哈希值进行比较,就无法保证数据完整性未受到破坏。因此,应将恢复的数据与泄露的数据采取同样的方式处理。
3.3.1
一旦加密完成,勒索软件会向用户提示相关情况和下一步行动。提示消息以各种形式发送,包括桌面墙纸、浏览器窗口、勒索软件运行程序生成弹出窗口和提醒。此外,勒索软件通常还会锁定计算机或限制其使用,连续显示信息。
消息内容通常包含四个部分:
1. 文件加密声明;
2. 加密原因;
3. 受害者恢复文件须采取的步骤;
4. 支付赎金的最后期限及受害者延迟支付赎金的后果;赎金金额一般在最后期限前随时间的推移而增加。
这些信息通常使用社会工程让用户相信这一情况非常严重,除了支付赎金别无选择。有时候会表示可以解密少数文件,从而使受害者相信支付赎金会解密剩余文件。
3.3.2 货币
随着加密货币的广泛使用,勒索软件也在最近几年兴起。加密货币交易因具备不受监管特性而成为勒索软件支付的首选支付机制。2019年第一季度支付的赎金中,比特币约占98%。(Coverware,2019)
除了加密货币,一些勒索软件家族还接受各种形式的预付借记卡、礼品卡和更为传统的电汇和汇款单。预付卡为可能不适应加密货币交易复杂性的受害者提供了一种方便的支付方法。但是,预付卡支付方式可能会因用户所在地而异。欧洲、亚洲、北美和其他市场存在各种不同的预付卡和支付终端。
3.3.3 客户服务
有一些勒索软件运营商提供客户服务,帮助受害者获得所需的支付货币进行支付,然后解密数据。这项服务背后的逻辑是,向受害者提供的帮助越多,获得赎金的可能性就越大。勒索软件客户服务通常通过用户填写常见支持请求表或聊天窗口实现。进一步通信通常通过电子邮件进行。除了帮助受害者付款和解密数据外,通信通道还可用于协商赎金金额或延长付款期限。(Shackelford和Wade,2020年)
3.3.4 付款期限超期
勒索软件通常会设置支付赎金的截止日期,该日期到期则销毁解密密钥。在传统意义上的密码安全属性中,若解密密钥不复存在,则认为加密数据被销毁。勒索软件依靠该属性迫使受害者尽早付款。解密密钥通常存储在攻击者控制的C2服务器上。因此,在感染目标后,攻击者可根据时间逐步实施密钥销毁过程。
通过之前对勒索软件C2服务器进行分析,我们发现解密密钥在截止日期到期后未被销毁。尽管密钥过期警告可能用于诱使受害者尽早付款并阻止其拖延时间寻找替代解决方案,但若不进行分析,通常无法判断密钥过期威胁是否真实。因此,若无其他辅助知识,应对此认真分析。
勒索软件也可利用截止日期提高赎金,而不是威胁销毁解密密钥。在这种情况下,赎金通常每7至10天翻一番,直到付清为止。对于勒索软件客服来说,延长付款期限或协商价格并不罕见。
3.4 解密
3.4.1 攻击者提供的服务
赎金支付完成后,勒索软件运营商提供解密密钥、软件和支持。有时,解密软件访问权限嵌入在赎金支付屏幕中。在这些情况下,用户只需提供加密文件。在其他情况下,必须下载软件。
运营商进一步确保解密正确且所有文件都恢复到其原始形式。这项服务对于攻击活动持续取得成功至关重要。让受害者知道文件会正确恢复是确保支付赎金的一条可靠途径。图9为Alma Locker勒索软件示例。
http://i1.go2yd.com/image.php?url=0UU0WGMhRR&zhiwu55.jpg
图9:Alma Locker 内置的解密工具(Cimpanu,2016年)
3.4.2 解密的可信度
一些报告指出,即使支付了赎金,也无法恢复数据。加密数据只有在未损坏的情况下才能成功解密。2019年第四季度,平均而言,受害者在支付了解密程序费用后仍损失了3%的加密数据。(Coveware,2019年)此外,解密工具通常不仅进行数据解密,还定位数据并识别正确的解密秘钥。若每个文件均使用唯一密钥,解密工具的功能可能更为复杂。
若识别和解密过程较为复杂,则更容易出现编码和功能性错误,导致数据解密不完整或受损。此外,解密工具通常提供解密密钥,该密钥对存储加密数据的计算机有效。威胁源起方提供了正确的解密秘钥,该密钥来自存储用于勒索赎金的解密秘钥的数据库。我们在这里举一个无效解密秘钥的例子:为受损系统提供了不正确的标识符,导致密钥数据库出现多个冲突。无效的解密密钥会导致解密尝试失败或数据损坏。
如果不将解密数据与原始数据进行比较,或不验证解密数据的哈希值,则无法保证和验证解密数据的完整性。无论解密结果如何,无论解密工具来自何处,解密的数据都应被视为受损数据。
3.4.3 可靠性问题
勒索软件的设计目的是操控静态磁盘中的数据。加密是将明文格式的数据转换的加密格式。这种数据操控由合理实现的软件执行,该软件通常会加密数据,将其存储在单独创建的新文件中,然后安全删除原始明文数据,如图10所示。在该过程中,需对文件系统操作考虑周详,以确保数据完整性。
10:勒索软件文件加密流程
如果数据操控流程中断或失败,数据可能会停留在损坏状态。与执行类似数据操控商业软件产品相比,勒索软件代码通常缺乏严格的测试阶段。这种未测试的代码可能会产生更大错误面,从而导致数据损坏。
在解密方面,勒索软件解密数据,将其存储新创建的明文文件中,然后删除原始加密文件,如图11所示。虽然解密过程通常不太容易出现与文件系统和操作系统相关的错误,但解密工具的稳定性可能不及勒索软件加密组件。
http://i1.go2yd.com/image.php?url=0UU0WGJjSd&zhiwu55.jpg
图11:勒索软件文件加密流程
勒索软件通常会修改受损的系统或网络,并致使系统稳定性和安全性下降。这些修改可能包括利用各种代码漏洞来获得执行攻击所需的访问权限。例如,勒索软件使用提升的权限安装内核级驱动程序,导致受损系统不稳定,性能下降甚至经常崩溃,直至勒索软件被删除。
在决定如何处理勒索软件事件时,应考虑这些问题。事件发生后,应在解密前对加密数据进行备份。同样,删除勒索软件恢复数据时,应在事件发生后彻底移除受损的系统,对其重新安装和配置。这样可避免整个系统出现稳定性和安全性问题,并减少将来可能出现的危害。
3.5 数据转移
大多数早期勒索软件并非用于感染网络,转移大量数据。然而,可以预见的是,威胁源起方蓄意从受害人处窃取敏感信息。之前的勒索软件家族分析表明,大多数勒索软件收集受损系统的一些信息,创建唯一标识符。命令控制(C2)服务器使用此信息跟踪勒索软件攻击以及数据恢复所需的加密密钥。通常,勒索软件利用受损系统的计算机名、存储设备序列号和操作系统版本生成唯一标识符,然后传输到威胁源起方控制的命令控制(C2)服务器上。
一些勒索软件还可窃取处于加密中的各文件的信息,如文件名和路径。显然,这个过程会招致数据泄漏风险,尤其是文件名或路径中含有敏感信息时。
此外,Nemty、MegaCortex、Maze和Sodinokibi勒索软件家族在未得赎金的情况下已开始窃取全部数据内容,将之公之于众。数据转移通常发生在数据加密之前。这四个勒索软件家族对受害者组织进行攻击,导致数据泄露。大多数情况下,文档、数据库和其他敏感数字材料最终都会落入攻击者手中。但是,攻击者在收到赎金后也不一定能老老实实地删除数据,而且其他威胁源起方可能获得这些数据的访问权限。 传说中的沙发???哇卡卡 打酱油的人拉,回复下赚取积分 好帖必须得顶起 不错,顶一个!
页:
[1]