导航

公墓网

当前位置: 首页 > 公墓资讯

asone.safesvc.gov.cn

更新时间:2025 09 04 15:19:09 作者 :庆美网 围观 : 56次

大家好,感谢邀请,今天来为大家分享一下asone.safesvc.gov.cn的问题,以及和的一些困惑,大家要是还不太明白的话,也没有关系,因为接下来将为大家分享,希望可以帮助到大家,解决大家的问题,下面就开始吧!

一、国家外汇管理局及其分支局(以下简称外汇局)通过国家外汇管理局应用服务平台外汇局端(http://100.1.48.51:9101/asone)访问系统,各托管金融机构通过国家外汇管理局银行信息门户网站(IP访问地址为http://100.1.95.15,域名访问地址为http://banksvc.safe)访问系统,各保险集团(控股)公司、保险公司和保险资产管理公司(以下简称保险机构)及其省级分支机构通过国家外汇管理局应用服务平台互联网端(http://asone.safesvc.gov.cn/asone)访问系统。

外汇局、托管金融机构和保险机构及其省级分支机构访问系统前,应先从访问地址首页下载《国家外汇管理局保险业务数据报送系统用户手册》,并进行相关设置。

二、系统上线后,托管金融机构、保险机构及其省级分支机构应按《国家外汇管理局关于印发<保险业务外汇管理指引>的通知》(汇发[2015]6号)中所要求报送的数据(除明确规定书面报告外),通过系统及时、准确进行报送,报送时限见附件。

asone.safesvc.gov.cn

托管金融机构、保险机构及其省级分支机构应以金融机构标识码登录系统并按要求报送数据;未取得金融机构标识码的,应按照《国家外汇管理局信息系统代码标准管理实施细则》(汇综发[2011]131号)的要求向所在地外汇局申请金融机构标识码。初始登陆密码的申领及密码的重置工作由国家外汇管理局技术部门负责。

三、国家外汇管理局各分局、外汇管理部(以下简称各分局)应按季度通过系统报送所辖地区办理的保险业务行政审批情况,报送时限见附件。

四、各分局应做好有关报送数据的审核工作,发现数据报送错误的,应要求报送主体及时更正。

本通知自2015年12月1日起开始实施。《国家外汇管理局关于报送保险外汇监管报表有关问题的通知》(汇发[2003]27号)和《国家外汇管理局综合司关于调整保险外汇监管报表报送方式的通知》(汇综发[2014]64号)同时废止。

各分局收到本通知后,应及时转发辖内中心支局(支局)、保险机构、地方性商业银行及外资银行。中资外汇指定银行和保险机构收到本通知后,应尽快转发下属分支机构。执行中如遇问题,请及时与国家外汇管理局技术或业务部门联系。

技术支持联系电话:010-68402220 68402394

业务支持联系电话:010-68519113 68402663

特此通知。

附件:保险业务数据报送时限

国家外汇管理局综合司

2015年11月30日

主打安全的谷歌 Fuchsia OS 能否扛住黑客攻击?

Fuchsia 是谷歌开发的一种通用的开源操作系统。它基于用 C++ 编写的 Zircon 微内核,目前正在积极开发中。开发人员表示,Fuchsia 的设计重点是安全、可升级性和性能。作为一个 Linux 内核黑客,我决定看一看 Fuchsia OS,并从攻击者的角度评估它。这篇文章描述了我的实验。

Fuchsia 是一个通用的开源操作系统。谷歌在 2016 年左右开始了这个操作系统的开发。2020 年 12 月,这个项目对来自公众的贡献者开放。2021 年 5 月,谷歌正式发布了在 Nest Hub 设备上运行的 Fuchsia。该操作系统支持arm64x86-64。Fuchsia 正在积极开发中,看起来很有活力,所以我决定在它身上做一些安全实验。

让我们来看看 Fuchsia 设计的基本理念。这个操作系统被开发用于与各种设备相关联的生态系统:物联网、智能手机、PC。这就是为什么 Fuchsia 的开发者特别关注安全性和可更新性。因此,Fuchsia 操作系统采用了非同一般的安全架构。

  • 首先,Fuchsia 没有用户的概念。相反,它是基于能力的。内核资源作为需要相应能力的对象公开给应用程序。其主要思想是,如果一个应用程序没有显式授予的能力,它就不能与一个对象进行交互。此外,在 Fuchsia 上运行的软件应该获得最少的能力来执行其工作。因此,我认为,Fuchsia 中的本地权限升级(Local privilege escalation,LPE)的概念将不同于 GNU/Linux 系统中的概念,在 GNU/Linux 系统中,攻击者以非特权用户的身份执行代码,并利用一些漏洞来获得 root 权限。
  • 第二个有趣的方面:Fuchsia 是基于微内核的。这极大地应县了该操作系统的安全性。大量的功能都从 Zircon 微内核转移到了用户空间。这使得内核的攻击面更小。在 Fuchsia 文档中,可以看到 Zircon 仅实现了少数服务,与单片式操作系统内核不同。不过,Zircon 并不追求最小化:它拥有超过 170 个系统调用,远远多于典型的微内核。
  • 我不得不提到的下一个安全解决方案是沙箱。在 Fuchsia 中,应用和系统服务是被称作组件的独立的软件单元。这些组件在隔离的沙箱中运行。它们之间的所有进程间通信(inter-process communication,IPC)都必须明确声明。Fuchsia 甚至没有全局文件系统。相反,每个组件都有自己的本地命名空间来运行。这种设计方案增加了用户空间的隔离性和 Fuchsia 应用的安全性。我认为这也使得 Zircon 内核对攻击者很有诱惑力,因为 Zircon 为所有 Fuchsia 组件提供了系统调用。
  • 最后,Fuchsia 在软件发布和升级方面有着非同一般的计划。Fuchsia 的组件是由 URL 识别的,可以按需解决下载执行。这个设计方案的主要目标是使 Fuchsia 中的软件包永远是最新的,就像网页一样。

这些安全特性使 Fuchsia OS 成为我感兴趣的新研究目标。

Fuchsia 文档提供了一个很好的教程,描述如何开始使用这个操作系统。该教程给出了一个脚本的链接,该脚本可以检查你的 GNU/Linux 系统是否符合从源代码构建 Fuchsia 的要求:

复制代码

它说不支持非 Debian 发行版。然而,我还没有经历过针对 Fedora 34 的问题。该教程还提供了下载 Fuchsia 源代码和设置环境变量的说明。

以下命令建立了 Fuchsia 的workstation productx86_64的开发者工具:

复制代码

构建完 Fuchsia 系统后,你可以在 FEMU(Fuchsia 模拟器)中启动它。FEMU 基于安卓模拟器(AEMU),它是 QEMU 的一个分支。

复制代码

让我们为 Fuchsia 创建一个“hello world”的应用程序。正如我前面提到的,Fuchsia 的应用程序和程序被称为组件。这个命令为一个新的组件创建一个模板。

复制代码

我希望这个组件将“hello”打印到 Fuchsia 日志:

复制代码

组件清单 src/a13x-pwns-fuchsia/meta/a13x_pwns_fuchsia.cml 应该有这一部分,以允许 stdout 记录:

复制代码

这些命令用一个新的组件来构建 Fuchsia:

复制代码

当带有新组件的 Fuchsia 构建完成后,我们就可以测试它了:

  1. 在主机系统的第一个终端中使用fx vdl start -N命令,启动带有 Fuchsia 的 FEMU。
  2. 在主机系统的第二个终端使用命令fx serve来启动 Fuchsia 软件包发布服务器。
  3. 在主机系统的第三个终端使用命令fx log来显示 Fuchsia 的日志。
  4. 在主机系统的第四个终端上使用ffx工具启动新的组件。

复制代码

在这张截图中,我们看到 Fuchsia 通过 URL 解析了这个组件,下载并启动了它。然后,该组件将Hello from a13x, Fuchsia!打印到第三个终端的 Fuchsia 日志中。

现在我们来关注一下 Zircon 内核的开发工作流程。C++ 的 Zircon 源代码是 Fuchsia 源代码的一部分。它位于zircon/kernel子目录下,在 Fuchsia 操作系统建立时进行编译。Zircon 的开发和调试需要使用fx qemu -N命令在 QEMU 中运行它。然而,当我尝试时,我得到了一个错误:

复制代码

我发现这个故障发生在具有非英语控制台语言的机器上。这个错误已经存在了很长时间了。我不知道为什么这个补丁还没有被合并。有了这个补丁,Fuchsia OS 可以在 QEMU/KVM 虚拟机上成功启动。

复制代码

在 QEMU/KVM 中运行 Fuchsia 可以用 GDB 调试 Zircon 的微内核。让我们来看看这个动作。

  1. 用这个命令启动 Fuchsia:

复制代码

  • 参数-s 1指定了这个虚拟机的虚拟 CPU 的数量。拥有一个虚拟 CPU 可以使调试体验更好。
  • 如果你在调试过程中需要单步执行,–no-kvm参数很有用。否则 KVM 的中断会破坏工作流程,Fuchsia 会在每个stepinextiGDB 命令后进入中断处理程序。然而,在没有 KVM 虚拟化支持的情况下运行 Fuchsia VM 会慢很多。
  • 命令末尾的-s参数在 TCP 1234 端口上打开了一个 gdbserver。
  1. 允许执行 Zircon GDB 脚本,该脚本提供以下内容:
  • GDB 的 KASLR 重定位,这是正确设置断点所需要的。
  • 带有zircon前缀的特殊 GDB 命令。
  • Zircon 对象的漂亮打印机(目前还没有)。
  • 增强了 Zircon 内核故障的解除器。

复制代码

  1. 启动 GDB 客户端并附加到 Fuchsia VM 的 GDB 服务器上:

复制代码

这个过程是为了使用 GDB 调试 Zircon。

然而,在我的机器上,Zircon 的 GDB 脚本在每次启动时都完全挂起,我不得不对这个脚本进行调试。我发现它调用了带有-readnow参数的add-symbol-fileGDB 命令,这需要立即读取整个符号文件。由于某些原因,GDB 无法在合理的时间内从 110MB 的 Zircon 二进制文件中读出符号。在我的机器上去掉这个选项就解决了这个问题,并允许正常的 Zircon 调试。

复制代码

KASAN(Kernel Address SANitizer)是一个运行时内存调试器,旨在发现越界访问和内存释放后使用的错误。Fuchsia 支持用 KASAN 编译 Zircon 微内核。在这个实验中,我建立了 Fuchsia 的core product

复制代码

为了测试 KASAN,我在使用TimerDispatcher对象的 Fuchsia 代码中添加了一个合成 bug:

复制代码

正如你所看到的,如果定时器的最后期限值以31337结束,那么无论 refcount 值如何,TimerDispatcher对象都被释放了。我想从用户空间组件打这个内核 bug,看看 KASAN 错误报告。这就是我添加到我的a13x-pwns-fuchsia组件中的代码。

复制代码

这里调用了zx_timer_create()系统调用。它初始化了一个新定时器对象的定时器句柄。然后这个程序将定时器的最后期限设置为以31337结尾的魔法值。在这个程序等待zx_nanosleep()的时候,Zircon 删除了被启动的定时器。下面的zx_timer_cancel()系统调用对于被删除的定时器会引发使用后的免费。

因此,执行这个用户空间组件会使 Zircon 内核崩溃,并产生一个可爱的 KASAN 报告。很好,KASAN 管用!引述相关部分:

复制代码

Zircon 还将崩溃的回溯打印成一些模糊的内核地址链。为了使它能被人类阅读,我不得不用一个特殊的 Fuchsia 工具来处理它:

复制代码

以下是fx symbolize后的回溯:

复制代码

你可以看到wrapper_timer_cancel()系统调用处理程序调用了sys_timer_cancel(),其中 GetDispatcherWithRightsImpl() 与一个引用计数器一起工作,并执行了内存释放后使用。这个内存访问错误在asan_check()中被检测到,它调用了panic()

这个回溯帮助我理解了sys_timer_cancel()函数的 C++ 代码实际上是如何工作的。

复制代码

当我让 Fuchsia OS 与 KASAN 一起工作时,我感到自信并为安全研究做好了准备。

在研究了 Fuchsia 内核开发工作流程的基础知识后,我决定开始安全研究。对于 Fuchsia 内核安全的实验,我需要一个 Zircon bug 来开发一个 PoC 漏洞。实现这一目标的最简单方法是模糊处理。

有一个伟大的覆盖率引导的内核模糊器,叫做 syzkaller。我很喜欢这个项目和它的团队,我喜欢用它来对 Linux 内核进行模糊处理。syzkaller 的文档说它支持对 Fuchsia 的模糊处理,所以我首先尝试了一下。

然而,由于 Fuchsia 上不寻常的软件交付,我遇到了麻烦,这是我前面描述过的。一个用于模糊测试的 Fuchsia 镜像必须包含syz-executor这个组件。syz-executor是 syzkaller 项目的一部分,负责在虚拟机上执行模糊测试的输入。但我没能用这个组件构建一个 Fuchsia 镜像。

首先,根据 syzkaller 文档,我尝试用外部的 syzkaller 源代码来构建 Fuchsia:

复制代码

看起来构建系统并没有正确处理syzkaller_dir参数。我试图删除这个断言并调试 Fuchsia 的构建系统,但我失败了。

然后我在 Fuchsia 源代码中发现了third_party/syzkaller/子目录。它包含了 syzkaller 源代码的一个本地拷贝,用于在没有–args=syzkaller_dir的情况下构建。但这是一个相当老的副本:最后一次提交是在 2020 年 6 月 2 日。用这个老版本的 syzkaller 构建当前的 Fuchsia 也失败了,因为 Fuchsia 的系统调用、头文件位置等有很多变化。

我又试了一次,更新了third_party/syzkaller/子目录下的 syzkaller。但是构建没有成功,因为 Fuchsia BUILD.gn 文件对于 syzkaller 来说需要根据 syzkaller 的变化进行大幅度地重写。

简而言之,也许 Fuchsia 与 syzkaller 的集成在 2020 年曾经工作过,但目前它已经损坏。我查看了 Fuchsia 的版本控制系统,找到了致力于这个功能的 Fuchsia 开发者。我给他们写了一封邮件,描述了这个 bug 的所有技术细节,但没有得到回复。

在 Fuchsia 构建系统上花费更多的时间,让我感到压力很大。

我反思了我的进一步研究的策略。如果不进行模糊处理,要成功发现操作系统内核中的漏洞需要:

  1. 对其代码库的良好了解;
  2. 对其攻击面的深刻认识。

获得 Fuchsia 的这些经验需要我花费大量的时间。我想在我的第一个 Fuchsia 研究上花费大量时间吗?也许不是,因为:

  • 把大量的资源投入到对系统的第一次熟悉中是不合理的;
  • 事实证明,Fuchsia 并不像我预期的那样可以用于生产;所以我决定推迟在 Zircon 中搜索零日漏洞,并尝试为我用于测试 KASAN 的合成漏洞开发一个 PoC 漏洞。最终,这是一个很好的决定,因为它给我带来了快速的结果,并允许我沿途发现其他 Zircon 漏洞。

所以我专注于利用TimerDispatcher的免费使用。我的开发策略很简单:用受控数据覆盖释放的TimerDispatcher对象,使 Zircon 的定时器代码工作异常,或者说,将这段代码变成一个奇怪的机器。

首先,为了覆盖TimerDispatcher,我需要发现一个堆喷射(Heap Spraying)的利用原语,该原语是:

  1. 可以被攻击者从无特权的用户空间组件中使用;
  2. 让 Zircon 分配几个新的内核对象,使其中一个对象大概率地被放在被释放对象的位置上;
  3. 让 Zircon 把攻击者的数据从用户空间复制到这个新的内核对象中。

我从我的 Linux 内核经验中知道,堆喷射通常是利用进程间通信(IPC)构建的。根据第 1 段,基本的 IPC 系统调用通常对无特权的程序可用。根据第 3 段,它们将用户空间的数据复制到内核空间,以便将其传输给接收者。最后,根据第 2 段,一些 IPC 系统调用设置了传输的数据大小,这就给出了对内核分配器行为的控制,允许攻击者覆盖目标释放的对象。

这就是为什么我开始研究负责 IPC 的 Zircon 系统调用。我发现了 Zircon FIFO,它被证明是一个很好的堆喷射原语。当zx_fifo_create()系统调用被调用时,Zircon 创建了一对FifoDispatcher对象(见 zircon/kernel/object/fifo_dispatcher.cc 中的代码)。它们中的每一个都为 FIFO 数据分配所需的内核内存。

复制代码

通过调试器,我确定释放的TimerDispatcher对象的大小是 248 字节。我假设,为了成功地进行堆喷射,我需要创建相同数据大小的 Zircon FIFO。这个想法立即奏效:在 GDB 中,我看到 Zircon 用FifoDispatcher的数据覆盖了释放的TimerDispatcher! 这就是我的 PoC 漏洞中的堆喷射的代码:

复制代码

这里zx_fifo_create()系统调用被执行了 10 次。每一次都会创建一对包含 31 个元素的 FIFO。每个元素的大小为 8 字节。所以这段代码创建了 20 个FifoDispatcher对象,有 248 字节的数据缓冲区。

而在这里,Zircon FIFO 被填充了堆喷射的有效负载,准备覆盖释放的TimerDispatcher对象:

复制代码

好的,我可以更改 TimerDispatcher 对象的内容。但是,要在其中写入什么内容才能发动攻击呢?

作为一个 Linux 内核的开发者,我已经习惯了用 C 结构来描述内核对象。一个 Linux 内核对象的方法被实现为一个存储在相应 C 结构中的函数指针。这种内存布局是明确而简单的。

但是,Zircon 中 C++ 对象的内存布局在我看来要复杂得多,也晦涩难懂。我试图研究TimerDispatcher对象的解剖结构,并在 GDB 中使用print -pretty on -vtbl on命令进行展示。输出结果是一大堆乱七八糟的东西,而且我没能把它和这个对象的十六进制转储关联起来。然后我试了一下TimerDispatcherpahole工具。它显示了类成员的偏移量,但对理解类方法的实现方式没有帮助。类的继承性使整个情况更加复杂。

我决定不把时间浪费在研究TimerDispatcher对象的内部结构上,而是尝试盲目实践。我使用 FIFO 堆喷射,用零字节覆盖了整个TimerDispatcher,看看发生了什么。Zircon 在 zircon/system/ulib/fbl/include/fbl/ref_counted_internal.h:57 的断言处崩溃了:

复制代码

没有问题。我发现这个 refcount 被存储在从 TimerDispatcher 对象开始的 8 字节偏移处。为了绕过这个检查,我在堆喷射出的有效负载中设置了相应的字节:

复制代码

在 Fuchsia 上运行这个 PoC 导致了下一次 Zircon 崩溃,从攻击者的角度来看,这非常有趣。内核在 HandleTable::GetDispatcherWithRights中遇到了一个空指针解除引用。用 GDB 踏查指令,帮助我发现这个 C++ 的黑魔法导致了 Zircon 的崩溃。

复制代码

这里 Zircon 调用了TimerDispatcher类的get_type()公共方法。这个方法是用 C++ 的 vtable 来引用的。TimerDispatchervtable 的指针被存储在每个TimerDispatcher对象的开头。这对于控制流劫持是很好的。我想说的是,它比针对 Linux 内核的类似攻击更简单,在那里你需要用函数指针搜索适当的内核结构。

控制流劫持需要了解内核符号地址,这取决于 KASLR 的偏移。KASLR 是指内核地址空间布局随机化。Zircon 源代码中多次提到 KASLR。一个例子来自zircon/kernel/params.gni

复制代码

对于 Fuchsia,我决定实现一个类似于我对 Linux 内核的 KASLR 绕过的技巧。我对 CVE-2021-26708 的 PoC 攻击使用了 Linux 内核日志来读取内核指针,以启动攻击。Fuchsia 内核日志也包含安全敏感的信息。所以我尝试从我的非特权用户空间组件读取 Zircon 日志。我添加了use: [ { protocol: \”fuchsia.boot.ReadOnlyLog\” } ]到组件清单中,用这段代码打开了日志:

复制代码

首先,这段代码创建了一个 Fuchsia 通道,将用于 Fuchsia 日志协议。然后,它为ReadOnlyLog调用fdio_service_connect(),并将通道传输附加到它上面。这些函数来自fdio库,它为各种 Fuchsia 资源提供了一个统一的接口:文件、套接字、服务和其他。执行这段代码会返回错误:

复制代码

那是正确的行为。我的组件是无特权的,而且在父类中没有匹配的fuchsia.boot.ReadOnlyLogoffer声明。因为这个 Fuchsia 组件不具备所需的能力,所以不被授予访问权。没有办法。

所以我放弃了从内核日志中泄露信息的想法。我开始浏览 Fuchsia 的源代码,等待另一种启示。突然间,我发现了另一种使用zx_debuglog_create()系统调用来访问 Fuchsia 内核日志的方法:

复制代码

Fuchsia 文档中指出,resource参数必须具有资源类ZX_RSRC_KIND_ROOT。我的 Fuchsia 组件并不拥有这种资源。总之,我试着用zx_debuglog_create()和……

复制代码

这段代码成功了!我设法在没有所需功能和ZX_RSRC_KIND_ROOT资源的情况下读取了 Zircon 内核日志。但为什么呢?我很惊讶,发现 Zircon 代码负责处理这个系统调用。以下是我的发现:

复制代码

这的确是一次搞笑的安全检查!在 Fuchsia 的错误报告系统中,32044 和 30918 问题的access denied。Fuchsia bug 报告系统对 32044 和 30918 的问题给予了拒绝访问。所以我提交了一个安全漏洞,描述sys_debuglog_create()有一个不当的能力检查,导致内核信息泄露。顺便说一下,这个问题追踪器要求提供纯文本的信息,但默认情况下,它将报告渲染成Markdown(这很奇怪,点击 Markdown 按钮可以禁用这种行为)。

Fuchsia 的维护者批准了这个问题,并申请了 CVE-2022-0882。

由于阅读 Fuchsia 的内核日志不再是一个问题,我从其中提取了一些内核指针来绕过 Zircon KASLR。我第二次感到惊奇,又笑了起来。

尽管有 KASLR,但每次 Fuchsia 启动时的内核指针都是一样的!请看相同的日志输出的例子。Boot #1:

复制代码

Boot #2:

复制代码

内核指针是一样的。Zircon KASLR 不起作用。我在 Fuchsia 的 bug 追踪器中提交了一个安全问题(禁用 Markdown 模式才能正确看到)。Fuchsia 的维护者回答说这个问题他们已经知道了。

Fuchsia OS 的实验性比我想象的要强。

在我意识到 Fuchsia 的内核函数有固定地址之后,我开始研究 Zircon C++ 对象的 vtables。我想,构造一个假的 vtable 可以实现控制流劫持。

正如我所提到的,指向相应 vtable 的指针被存储在对象的开头。这是 GDB 为TimerDispatcher对象显示的内容:

复制代码

像 0xffdcb5a4ffe00454 这样的奇怪值肯定不是内核地址。我看了一下与 TimerDispatcher vtable 一起工作的代码:

复制代码

这个高级别的 C++ 噩梦变成了下面的简单汇编:

复制代码

这里的r13寄存器存储了TimerDispatcher对象的地址。vtable 指针位于该对象的开头。所以在第一条mov指令之后,rax寄存器存储了 vtable 本身的地址。然后movsxd指令将 vtable 中的值0xffdcb5a4ffe00454移动到r11寄存器中。但是movsxd也将这个值从 32 位的源头扩展到 64 位的目的地。所以0xffdcb5a4ffe00454变成了0xffffffffffe00454。然后 vtable 地址被加到r11的这个值上,这就形成了TimerDispatcher方法的地址:

复制代码

尽管 Zircon vtables 中存在这种奇怪的指针计算方法,我还是决定制作一个假的TimerDispatcher对象 vtable 来劫持内核控制流。这让我想到了将我的假 vtable 放在哪里的问题。最简单的方法是在用户空间创建它。然而,x86_64上的 Zircon 支持SMAP(Supervisor Mode Access Prevention),它阻止从内核空间访问用户空间的数据。

在我的 Linux 内核防御图中,你可以看到 SMAP 在 Linux 内核中控制流劫持攻击的各种缓解措施中。我看到有多种方法可以通过在内核空间放置假 vtable 来绕过SMAP保护。

例如,Zircon 也像 Linux 内核一样有physmap,这使得 Zircon 的ret2dir攻击的想法非常有希望。

另一个想法是使用某个内核地址的内核日志信息泄露,该地址指向攻击者控制的数据。

但为了简化我对 Fuchsia 的第一次安全实验,我决定在启动 QEMU 的脚本中禁用SMAPSMEP,并在用户空间创建我的漏洞中的假 vtable。

复制代码

然后我让漏洞利用这个假的 vtable 在堆中喷出数据,覆盖TimerDispatcher对象:

复制代码

这看起来很棘手,但不要害怕,你会喜欢它的!

这里spray_data数组存储了zx_fifo_write()覆盖TimerDispatcher的数据。vtable 指针位于TimerDispatcher对象的开头,所以vtable_ptrspray_data[0]的地址所初始化。然后fake_vtable全局数组的地址被写入spray_data的开头。这个地址将出现在DownCastDispatcher()rax寄存器中,我在上面描述过。fake_vtable[1]元素(或DWORD PTR [rax+0x8])应该存储用于计算TimerDispatcher.get_type()方法的函数指针的值。为了计算这个值,我从我的pwn()函数的地址中减去假 vtable 的地址,我将用它来攻击 Zircon 内核。

这就是在执行漏洞时发生在地址上的魔法。真实的例子:

  1. fake_vtable数组在0x35aa74aa020pwn()函数在0x35aa74a80e0
  2. fake_vtable[1]0x35aa74a80e0 – 0x35aa74aa020 = 0xffffffffffffe0c0。在DownCastDispatcher()中,这个值出现在DWORD PTR [rax+0x8]
  3. 在 Zircon 执行movsxd r11, DWORD PTR [rax+0x8]后,r11寄存器存储了0xffffffffffe0c0
  4. 将带有0x35aa74aa020rax添加到r11,得到0x35aa74a80e0,这就是pwn()的确切地址
  5. 所以当 Zircon 调用__x86_indirect_thunk_r11时,控制流就会进入漏洞的pwn()函数。

在实现了 Zircon 内核空间的任意代码执行后,我开始考虑用它来攻击什么。我的第一个想法是伪造一个假的ZX_RSRC_KIND_ROOT超能力资源,我之前在zx_debuglog_create()中看到过。但我没能利用ZX_RSRC_KIND_ROOT设计出特权升级,因为在 Fuchsia 的源代码中,这个资源用得不多。

由于知道 Zircon 是一个微内核,我意识到特权升级需要攻击通过微内核进行的进程间通信(IPC)。换句话说,我需要在 Zircon 中使用任意代码执行来劫持 Fuchsia 用户空间组件之间的 IPC,例如,在我的非特权开发组件和一些特权实体(如组件管理器)之间。

我又回到了研究 Fuchsia 用户空间的过程中,这很混乱,也很无聊……但我突然有了一个想法:

在 Zircon 中植入一个 rootkit 怎么样?这看起来有趣多了,于是我转而研究 Zircon 系统调用的工作原理。

文档中简要介绍了 Fuchsia 系统调用的生命周期。像 Linux 内核一样,Zircon 也有一个系统调用表。在x86_64上,Zircon 在 fuchsia/zircon/kernel/arch/x86/syscall.S 中定义了x86_syscall()函数,其代码如下(我去掉了注释):

复制代码

下面是这段代码在调试器中的样子:

复制代码

啊哈,它显示系统调用表在 0xffffff003c49f8。让我们看看内容:

复制代码

这里系统调用表中的第一个地址0xffffff00307040指向 x86_syscall_call_bti_create()函数。它是系统调用编号为 0,在 gen/zircon/vdso/include/lib/syscalls/ 目录下自动生成的文件kernel-wrappers.inc中定义。而那里的最后一个系统调用是 x86_syscall_call_vmo_create_physical(),位于0xffffff00307d10,是 175 号(见 ZX_SYS_COUNT 定义为 176)。显示了整个 syscall 表,再加上一点:

复制代码

是的,最后一个系统调用的函数指针0xffffffff00307d10就在系统调用表的末端。这些知识对于我的 rootkit 实验来说已经足够了。

作为第一个实验,我在pwn()函数中用0x41重写了整个系统调用表。正如我提到的,这个函数的执行是 Zircon 中控制流劫持的结果。为了覆盖只读的系统调用表,我使用了老派的经典方法,即改变CR0寄存器中的WP位:

复制代码

CR0助手:

复制代码

结果:

复制代码

很好。然后我开始考虑如何劫持 Zircon 的系统调用。类似于 Linux 内核 rootkits 的做法是不可能的:通常的 Linux rootkit 是一个内核模块,在内核空间提供钩子作为特定模块的功能。但在我的案例中,我试图将用户空间的 rootkit 植入微内核中。把 rootkit 的钩子作为用户空间的函数在利用进程的上下文中实现是行不通的。

所以我决定把 Zircon 的一些内核代码变成我的 rootkit 钩子。我的第一个覆盖对象是assert_fail_msg()函数,它在漏洞开发过程中让我很头疼。这个函数足够大,所以我有很多空间来放置我的钩子有效负载。

我用 C 语言编写了zx_process_create()系统调用的 rootkit 钩子,但不喜欢编译器生成的钩子汇编。所以我用 asm 重新实现了它。让我们看一下代码,我喜欢这部分:

复制代码

  1. 这个钩子保存了(推到栈)所有的寄存器,这些寄存器可能会被后续的函数调用所破坏。
  2. 然后我准备并调用 Zircon 的printf()内核函数。
  3. 这个函数的第一个参数是通过rdi寄存器提供的。它存储了我想打印到内核日志的字符串的地址。这方面的更多细节将在后面介绍。STRXSTR宏的技巧被用于字符串化;你可以在 GCC 文档中读到它。
  4. al表示没有向量参数被传递给这个参数数量可变的函数。
  5. r11寄存器存储了 Zirconprintf()函数的地址,它是由callq *%r11指令调用的。
  6. 在调用内核printf()后,被钩住的寄存器被恢复。
  7. 最后,钩子跳到原来的系统调用zx_process_create()

现在是最有趣的部分:植入 rootkit。pwn()函数将钩子的代码从利用二进制文件复制到assert_fail_msg()地址处的 Zircon 内核代码中。

复制代码

  1. hook_addr被初始化为assert_fail_msg()内核函数的地址。
  2. 这个函数的第一个字节被覆盖为0xc3,也就是ret指令。我这样做是为了跳过 Zircon 在断言上的崩溃;现在断言处理会立即返回。
  3. 该漏洞将我的 rootkit 钩子的代码复制到内核空间,用于zx_process_create()系统调用。我在上面描述了process_create_hook()
  4. 这个漏洞复制了我想在每个zx_process_create()系统调用中打印的信息字符串。钩子将执行mov #34; XSTR(ZIRCON_ASSERT_FAIL_MSG + 1 + HOOK_CODE_SIZE) \”,%rdi,这个字符串的地址将进入rdi。现在你知道为什么我在这个地址上加了 1 个字节了吧:这是为了在assert_fail_msg()的开头增加ret指令。
  5. 钩子ZIRCON_ASSERT_FAIL_MSG + 1的地址被写入系统调用表,项目编号 102,这是为了zx_process_create()系统调用处理程序。
  6. 最后,pwn()漏洞函数返回 42。正如我所提到的,Zircon 使用我的假 vtable 并执行这个函数,而不是TimerDispatcher.get_type()方法。这个内核对象的原始get_type()方法返回 16,以通过类型检查并继续处理。而在这里,我返回 42,表示该检查失败,并完成了zx_timer_cancel()系统调用,该调用击中了内存释放后使用。

好了,现在 rootkit 已经被植入 Fuchsia OS 的 Zircon 微内核中了。

我为zx_process_exit()系统调用在assert_fail()内核函数的位置上实现了一个类似的 rootkit 钩。所以 rootkit 在进程创建和退出时将信息打印到内核日志中。请看该漏洞演示:

视频地址:https://www.youtube.com/embed/JPg-VHuKQIQ

这就是我遇到 Fuchsia OS 及其 Zircon 微内核的原因。这项工作对我来说是一次全新的体验。自从我在温哥华举行的 2018 年 Linux 安全峰会上听说了这个有趣的操作系统,我想在这个操作系统上尝试我的内核黑客技术已经很久了。所以我很高兴这项研究。

在这篇文章中,我对 Fuchsia OS、其安全架构和内核开发工作流程进行了概述。我从攻击者的角度评估了它,并分享了我对 Zircon 微内核的漏洞开发实验结果。对于本研究中发现的 Fuchsia 安全问题,我遵循了负责任的披露程序。

这是关于 Fuchsia OS 安全的首批公开研究之一。我相信这篇文章对操作系统安全社区很有帮助,因为它突出了微内核漏洞利用和防御的实际问题。我希望我的工作也能激发你做内核黑客的热情。谢谢你的阅读!

作者简介:

Alexander Popov,2013 年成为 Linux 内核开发人员,关注内核安全。技术博主,专注漏洞发现、利用技术和防御技术。

原文链接:

https://a13xp0p0v.github.io/2022/05/24/pwn-fuchsia.html

2018企业存储年度回顾:闪存,SDS与超融合

2018年,全球存储市场在软件定义存储、闪存和超融合这三驾马车带动下迎来了新一轮的增长,在这三大趋势的相互带动下,整个存储产业从底层介质,到设备层,到系统层,到应用方面,都在不断迭代创新中推陈出新,在这个数据战略意义越来越明朗的时代,存储数据的方式也自然更重要了。

与几年前不同,公有云喊打喊杀似乎是无所不能,企业存储在一旁,一边审视自己的价值,一边看着公有云在存储上的边界。现在,从一些调研数据来看,公有云服务对以本地为主的企业存储开始由舆论上的对立,转变为行动上的相互合作与渗透。

当人们认清现实,市场会给出反应。IDC数据显示,2018年Q3,全球企业存储市场增长了19.4%,达到了140亿美金,出货存储容量更是增长了57.3%,达到113.9EB,企业级存储市场如此增长令所有存储人士为之振奋。

2018年Q3,中国存储市场占全球存储整体市场12.2%的份额,以19.3%的季度增长率仅次于美国市场,位列全球第二,市场规模达到7.7亿美元。(全球以及中国市场上,全闪存都是最强的增长动力。

本文,将以企业存储媒体的视角总结过去一年看到的新技术,新趋势,市场变化,穿插着对未来的预测性描述,以及一些令笔者印象深刻的小细节。

闪存

闪存的创新关键词离不开,SCM,多层3D NAND,QLC,NVMe,NVMe over fabric。

SCM,常见的有来自英特尔的Optane和三星的Z-SSD。

目前来看,Optane的应用大多时候是用作缓存加速,从系统层的应用来看,比如HPE(新华三)的Nimble和3Par,还有人开始将SCM用作持久存储层,比如DELL EMC的PowerMax,NetApp也有一些这方面的规划与设想。

市场宣传来看,主流大型厂商包括HPE、IBM、DELL EMC等都推出了基于NVMe over fabric技术的全闪存,国内的华为也在其中,如果dual-port闪存盘进展顺利,将会为NVMe oF全闪的发展扫清一大障碍,当然,这事儿好像对于Purestorage没那么重要,E8的NVMe oF方案也越发成熟。

2019年将是个重要的时间点,各种技术趋于成熟后,这些基于更高级NVMe OF协议,下一代的PCIe 4.0,基于新一代的存储介质的全闪存,都将会加速从市场宣传阶段进入落地阶段,在对性能有更高要求的场景中发光发热。

Optane是3D Xpoint创新介质的重量级产品,原本是英特尔和美光联合开发的,如今两家分道扬镳了,走着不同的发展路线。原因或许很复杂,我们只是看到,英特尔既想让Optane当SSD又想让它当内存用,Optane的采用会减少人们对DRAM内存的需求,这点,不知道美光怎么想。

如今,美光还没有正式推出基于3D Xpoint的产品,而英特尔方面凭借在处理器方面的优势力推Optane,在中国的阿里巴巴,青云QingCloud等喜欢尝鲜又善于挖掘价值点的公有云厂商中,在一些大型企业用户的应用中都有一些积极反馈。

说起SCM,还要想到三星的Z-SSD,Z-SSD被视为3D Xpoint的竞争对手,作为一种SCM,包括耐久性等特性跟3D Xpoint相似,但从命名上就能看出来,主要还是用在SSD上,三星也确实推出了基于Z-SSD的NVMe盘,从市场宣传的声量来看,Z-SSD略显低调,莫非是因为,企业级市场上,卖内存比卖SSD简单?

2018年以及在未来的几年中,NRAM和ReRAM还会继续开发,目前,还没看到大规模商用的迹象。

从2D到3D是一次跨越,从TLC到QLC又是一次跨越,QLC是TLC之后的新世代NAND,目前只有包括美光、英特尔、东芝等少数大厂有相关产品推出,QLC的实际应用还有很多问题,2018年年底,美光的专家在中国存储与数据峰会上介绍了QLC存储在AI场景中的应用,英特尔介绍了一种Optane结合QLC的方案,都在减少QLC的写入次数。

介质层的创新会直接带动闪存存储系统密度的提升,早在2017年FMS上,英特尔介绍的Ruler架构就能在1U空间内放置1PB的存储空间,三星也有高密度的存储方案,如果要比拼密度的话,磁盘是望尘莫及的,这是闪存着力的方向之一,由此带来的宝贵的数据中心空间节省将是用户乐意为闪存买单的一大因素。

说起介质创新,一些企业在探索HMC(Hybrid Memory Cube)技术,NAND能从2D做成3D的,那内存就不行吗?HMC技术已经研究了很多年,希望在不久的将来能看到“3D的内存”,单位容量的内存价格会降下来吗?

从市场格局来看,NAND已进入了新一轮的降价,未来价格会越来越低。

2018年,中国长江存储首次介绍了Xtacking技术,2019年,随着长江存储量产64层3D NAND芯片,2020年还将推出128层的NAND技术,几大NAND厂商都表示将尽快推出更高层的NAND颗粒,NAND的价格将进一步降低,市场格局也会发生变化。

与之相关的产业下游,还有控制器以及SSD厂商,控制器领域,除了西数、三星、英特尔、希捷、Marvell、SMI慧荣这样的老牌控制器公司,一大批新兴控制器公司开始崛起,在中国,有华澜微、国科微、还有Starblaze、华为、得一微、威固等,做SSD的还有Memblaze,华为,金泰克以及一众企业级SSD厂商,大家目光直指千亿美金的市场。

值得一提的是,甚至连阿里巴巴都推出了自己的SSD产品,据说是某国内企业代工设计生产,但单独作为一个品牌列出来,也足见对于SSD的重视。这种重视体现在对价格的敏感和对SSD需求的苛刻要求,毕竟,阿里云这样的超大规模数据中心对SSD的需求很多时候跟企业数据中心里的SSD是不一样的,有动力,也有能力对SSD挑肥拣瘦指指点点。

超融合HCI

市场调研机构Reportlinker给出的数据显示,2018年全球HCI市场规模约为41亿美金,预计到2023年,市场规模将增长到171亿美金,复合增长率达到32.9%。IDC 2018年Q2的调研数据显示,超融合市场比上年同期增长了78%,市场规模为15亿美金。

超融合以极强的便利性和灵活性征服了越来越多的用户,全球范围内数得上名字的就有好几十家,常见的有Nutanix、戴尔易安信、思科、HPE、VMware,在中国,除了这些国际巨头外,常见的有深信服、青云QingCloud、曙光、华为等品牌,有业内人士声称,在中国有几百家厂商声称自己也有超融合方案。

截图自笔者整理的数据云图,囊括了部分国内外超融合Vendor

超融合是什么?超融合是服务器硬件,在加上分布式存储系统比如Ceph或者Gluster,加上虚拟化软件,以及管理平台,还需要别的吗?对此,大家莫衷一是,但可以肯定的是,为了让自家的超融合有更多特色或者说是附加值,各种版本的“真正超融合”的定义更是五花八门。

超融合有计算存储和网络三大资源,为什么超融合归类到存储市场呢?

在超融合概念普及的初级阶段,Nutanix和VMware都强调存储才是超融合的关键,到后来,Nutanix在市场宣传上淡化存储的标签但收效有限,在VMware眼里,VSAN分布式存储更有价值点,Nutanix是公认的超融合领头羊,而据IDC统计,超融合市场中有37.2%的产品使用vSAN作为分布式存储软件,这两家都是靠软件吃饭的超融合的典型。

在联想、思科、DELL EMC看来,服务器硬件更重要,硬件是保障系统平稳运行的重要依托,但仅靠服务器是不行的,为了多面下手,DELL EMC推出了多个超融合产品系列,比如XC系列性能型超融合,比如VxRail。凭借资源优势,硬件厂商与软件派的超融合合作,推出各种认证的设备,联合推出一体化解决方案。显然,硬件的成本更高或者说市场规模更大。

存储市场上有这样一种声音,现如今,没有服务器的存储厂商应该怎么做呢?IBM卖掉了x86服务器之后,至今扔没有超融合的概念,NetApp选择与服务器厂商比如思科UCS合作推出超融合方案,从这个角度看,如果EMC与DELL合并看中的是戴尔的服务器的话,也算一个听上去有点根据的戏言了,总之,硬件服务器还是很重要的。

国际巨头以外,别人怎么玩超融合的呢?首先,在市场上取得成功的超融合方案都得认可分布式存储的价值,并且做好分布式存储,因为这是超融合的关键,为了与巨头在市场上拼杀,这些缠上要加入自己在特定领域的长期积累。

伴随着超融合业务崛起的硬件厂商,华为,浪潮在服务器方面也取得了很大的市场成功;在深信服眼里,超融合更强调在安全上,在网络方面的能力;在Cohesity,Rubrik,Exagrid眼里,超融合应该提供灾备能力,或者说超融合的灾备更合适。

一些容器云创业公司也开始拥抱超融合,博云选择自己做超融合,SmartX与Rancher Labs一起做,深信服与灵雀云联合,为超融合带入了容器的能力,这也是未来的一大趋势。

在青云QingCloud眼里超融合是搭建公有云的砖头,也是为企业搭建私有云的砖头,青云的青立方超融合系统能快速帮助用户在本地数据中心构建公有云同款私有云服务,青云将全栈云的能力同步到超融合方案中,与公有云业务能力同步增长,完善中的青立方超融合增加与上层业务之间的粘性。

青云并不孤独,微软沿着一样的思路,用超融合来将Azure的服务能力与云端快速对接,为此与许多国内外服务器硬件厂商合作,推出了Azure Stack,最著名的可能就是DELL EMC的Cloud for Microsoft Azure Stack,此外,还有联想,思科,华为等也都有类似的方案。

很多人在思考,超融合是过渡产物,还是像服务器,存储,计算网络以外的第四大件呢?

2018年存储峰会期间,Bigtera在接受笔者采访时谈到了Software Composable Infrastructure-软件可组合架构(SCI)相对于超融合的优势,SCI的架构思路与HCI恰好相反,但也更强调软件的能力,同时,非常依赖NVMe over Fabric等新一代高速互联技术的成熟、应用与普及。提出这一概念的还有西数、Attala Systems等等。

SDS

2017年上半年中国SDS市场主要玩家

SDS的使命是要用标准的通用服务器来取代传统存储阵列,为各种类型的业务提供灵活可靠的存储服务,为此,需要在软件上下功夫。(XSKY&Intel)对于DELL EMC,IBM,HPE(新华三),NetApp等传统厂商来说,重构创新或者说自我颠覆在所难免。

2018年发布的Gartner文件和对象存储魔力象限

典型如IBM,作为一家典型的硬件存储大厂,在SDS大潮下,IBM存储重新包装了一系列的SDS方案,包括Spectrum Control,Spectrum Archive归档存储,Spectrum Virtualize(原来的SVC)虚拟化存储,Spectrum Scale(大名鼎鼎的GPFS)大数据存储,Spectrum Accelerate(网格块存储XIV)块存储,还有通过收购Cleversafe获得的对象存储方案。

你可以说是新瓶子装老酒,这是IBM存储中的纯软件产品,IBM声称可运行在x86服务器上,在官网上,笔者还意外地看到了可供免费下载试用的IBM存储方案。

类似的DELL EMC旗下有Isilon文件存储和Elastic Cloud Storage (ECS)对象存储,还收购了ScaleIO块存储SDS方案,NetApp也推出了叫ONTAP Select的方案,Red Hat(已被IBM宣布收购)同时有Ceph和Gluster两大方案,这些方案都有纯软的方案。

从某种意义上来讲,SDS的突破就是软件摆脱了对硬件的依赖,开始走向独立自主的道路,在我看来,SDS的软件就像和奴隶主解除关系得到解放的奴隶一样。

软件定义存储避开了硬件架构设计的复杂工作,降低了企业存储的参与门槛,搞硬件的不如搞软件的,软件更容易实现,很多时候一台电脑就可以,这点从全球开源软件和开源硬件的数量就能看出来,硬件设计周期长见效慢,相比之下,软件开发更像是所见即所得。

所以,SDS国际市场上,除了有传统磁盘阵列厂商DELL EMC,IBM,HPE(新华三),NetApp这些老面孔以外,还出现了许多中国的存储厂商,在中国市场,包括XSKY,曙光,华为,新华三等都有杰出表现。

2017年上半年,中国SDS市场上块和对象存储市场份额概况

中国,SDS文件存储

说起SDS,Ceph是绕不开的话题,由于受本身设计的影响,Ceph的性能表现广为诟病,但不影响Ceph是一个非常有影响力的存储开源项目。2018年,第一届Ceph亚太峰会还在北京举办了一次,Ceph虽然有很多问题,但不失为一个关注度奇高的存储开源项目。

Ceph RADOS

市场上XSKY的产品就是典型的Ceph方案,在一个平台X-EDP上同时提供文件、对象和块存储服务,从市场表现来看,XSKY可以说是最成功的Ceph开源存储服务商了,在中国市场表现中都居于TOP前列,类似的还有杉岩数据USP,深信服的aStor-EDS,同样也对开源Ceph软件做了大量的优化和扩展。

除了自身设计的优势外,Ceph凭借在技术生态上与OpenStack的对应关系,在国内外收获了大批用户,在中国许多企业的大型私有云建设当中,都能看到Ceph的身影。

Ceph虽然很热,但远非一统天下,青云QingCloud也有分布式存储产品QingStor,早期,青云也选择了Ceph,不过,因为看到太多Ceph问题后,最后还是决定自己写一套存储系统。

在青云QingCloud的SDS方案架构当中,青云循序渐进,采用自研技术,先后推出了对象存储、分布式块存储NeonSAN和分布式文件存储,在性能,稳定性,扩展性以及丰富多样的企业级特性方面不断优化,并且指出了Ceph性能以及一些设计上的问题。

不久前,基于Gluster做ServerSAN的大道云行也获得了融资,在国内,还有许多互联网公司都在研发和探索包括Gluster在内的分布式存储方案。在技术架构更先进,更热衷于敢为人先的互联网公司,软件定义存储也有丰富的实践经验,不过,互联网技术不在此次话题讨论范围内。

看未来,随着ServerSAN技术的逐步成熟,性能越来越好,功能逐步完善,应用范围会越来越广,比如,青云QingCloud摆出了用QingStor NeonSAN替代Oracle数据库一体机的态势,具体替换的是否顺利,虽然现阶段已经有了生产系统落地的案例,但可行性还有待验证,但总体来看,ServerSAN的发展趋势是对的。

在对象存储方面,归档存储将更多与云端互动,与云端集成,将备份归档交给云端来完成一部分,有人说对象存储不是一块单独的市场而是一种技术,是一种经常跟文件存储市场非常接近的存储。如果说性能和使用便捷性是两者最根本区别的话,随着场景多样化的发展,这种区别只会原来越大,或许,未来会有更多人认可对象存储的独立市场地位。

4,二级存储

2018年存储市场的新热点还有第二存储(secondary storage),代表性事件是2018年4月软银(就是投融ARM和阿里的那个软银)估值Cohesity达10亿美金,企业存储界又一个独角兽的节奏,值得一提的是,Cohesity还有许多来自谷歌、Nutanix、VMware以及思科的人才。

2018年11月,Cohesity的D轮融资拿到了来自软银的2.5亿美金,比前三轮加起来都多。前不久,同类型企业Rubrik获得了2.6亿美金E轮融资,融资总额高达5.5亿美金。

Gartner 2017 年数据中心备份与恢复魔力象限

从分类来看,Cohesity、Rubrik都是做数据管理的平台,提供数据备份和恢复服务,做这个的很多,为什么是这几家公司冲出来了呢?

以Cohesity为例,他提供的是一种能以便捷的方式整合企业数据孤岛的方案,在便捷性和创新性方面,超融合是很重要,超融合在这里不是用作主存储。

以Rubrik的描述来看,二级存储平台需要支持多种关系型数据库、NoSQL数据库、各种操作系统、各种虚拟化环境以及云环境,在多种复杂环境下都能游刃有余。

二级存储的核心是把所有的数据都整合到一个平台上,二级存储不是新的概念,大致上就是备份和归档。让二级存储重新焕发生机的是方案本身的优势,还有企业数字化转型时代,企业对数据战略意义认识更深入,数据保护意识提升了。

结语

以上是笔者对于2018年企业存储市场的一些认识和看法,以及一些大致上的趋势描述,企业存储不会有太明显的跨世代的突破,只要数据越来越重要,数据存储的价值也将持续提升,这应该是存储市场最没毛病的描述了吧。

来源:东北新闻网

用户评论

陌上花

这个网站好像很专业啊,感觉像政府部门的安全平台似的?希望他们能提供一些实际帮助!

    有16位网友表示赞同!

折木

网站界面简洁大方,但内容看了一圈也没太明白他们的主要功能是什么? 还是得再研究一下了。

    有12位网友表示赞同!

无关风月

是的!这种安全服务网站很重要! 希望这个平台能够真正保护大家的个人信息!

    有20位网友表示赞同!

高冷低能儿

我之前试着注册了一个账号,页面跳出很多验证提示,感觉有点麻烦啊...不知道是不是我的网络连接有问题?

    有9位网友表示赞同!

我的黑色迷你裙

我一直想寻找可靠的安全服务,这个网站看起来不错,我得重点关注一下了。 希望能够提供更多实用的安全工具!

    有5位网友表示赞同!

歇火

这个地址好奇怪啊,你们知道这是一家什么样的安全服务公司吗? 看起来挺神秘的...

    有16位网友表示赞同!

盲从于你

对于网络安全问题越来越重视了,这样的网站确实很有必要,希望能为我们打造一个更安全的网络环境!

    有11位网友表示赞同!

呆萌

感觉这个网站功能比较有限,页面也很空泛,像是刚建立不久的样子。或许需要更多实质内容才能吸引用户吧?

    有5位网友表示赞同!

追忆思域。

网站导航不太清晰,我找了一圈也没找到我想看的具体信息。希望能够优化一下网站结构,更容易上手!

    有17位网友表示赞同!

毒舌妖后

太棒了!终于找到了可以信任的安全服务机构了! 以后可以用这个平台放心管理我的个人信息和网络安全。

    有5位网友表示赞同!

漫长の人生

我有一些隐私保护的疑问,想在网站上找到答案,但貌似找不到相关的咨询页面。 希望他们能提供更完善的服务内容!

    有13位网友表示赞同!

回忆未来

看了一下网站的功能,貌似主要是防病毒和安全知识介绍? 对于更高端的网络安全解决方案还不太满意……

    有7位网友表示赞同!

风中摇曳着长发

这个网站看起来确实比较官方,感觉安全性挺高吧! 我打算注册一个账号试试效果。

    有8位网友表示赞同!

有一种中毒叫上瘾成咆哮i

网上有很多宣传虚假安全服务的服务机构,真的难以辨别。 希望这个网站能够真正实实在在的帮助人们保护自己的信息安全!

    有8位网友表示赞同!

恰十年

我对这类网站比较谨慎,毕竟涉及到个人数据安全问题不容马虎。 暂时先观望一下再决定注册账号。

    有9位网友表示赞同!

青墨断笺み

对网络安全的担忧越来越重了,希望能有一个可靠的平台帮我们应对各种网络威胁。这个网站应该挺权威的!

    有11位网友表示赞同!

烬陌袅

看起来很专业的样子,界面设计也比较简洁易懂,希望他们能持续提供优质的安全服务!

    有9位网友表示赞同!

汐颜兮梦ヘ

有些安全软件的功能太复杂了,反而容易让人不知所措。 这个网站是不是可以提供一些简单实用且易于操作的安全工具呢?

    有15位网友表示赞同!

标签: 公墓资讯
相关资讯
  • 手机相册存储位置查找指南

    大多数智能手机,无论是Android还是iOS,都具有内置的画廊应用程序。对于Android用户,画廊应用程序通常位于手机的主屏幕或应用程序抽屉中。图标上经常有

    2025-09-04 15:15:34 公墓资讯 
  • activitymanager(activitymanagerservice 启动进程(3))

    Root虽然给用户带来更多自由,却也让设备的安全性大幅下降。Root设备存在诸多潜在风险:黑客可能利用Root设备的漏洞提升权限,实现对设备的全面控制;设备可能

    2025-09-04 14:15:50 公墓资讯 
  • SNAPCHAT广告 Snapchat广告账户

    该广告出现于Snapchat的“黑色星期五”主题Story合集,该Story汇集了用户发布的与该购物节相关的照片和视频。Snapchat目前也为其它的活动(演唱

    2025-09-04 13:15:45 公墓资讯 
  • 如何解决家中WiFi信号不稳定问题

    首先,您需要检查路由器的位置。如果将路由器放置在房间的角落或墙壁附近,则可能会影响信号的传输。尝试将路由器放置在房间的中心或更高位置,以便可以更好地传输到整个房

    2025-09-04 13:15:40 公墓资讯 
  • asone.safesvc.gov.cn

    一、国家外汇管理局及其分支局(以下简称外汇局)通过国家外汇管理局应用服务平台外汇局端(http://100.1.48.51:9101/asone)访问系统,各托

    2025-09-04 12:15:43 公墓资讯 
  • 淘宝网店注册教程:轻松开启网上开店之旅

    1。注册一个TAOBAO帐户首先,您需要访问TAOBAO的官方网站(www.taobao.com),然后单击页面右上角的“免费注册”按钮。在“注册”页面上,填写

    2025-09-04 11:15:44 公墓资讯