原文:
zh.annas-archive.org/md5/16f1790d47286c6fa5714ff44649219e
译者:飞龙
第八章:基于区块链的 DNS 安全平台
域名系统(DNS)主要设计用于将主机名查询解析为 IP 地址。互联网用户需要域名,例如www.packtpub.com,但互联网需要 IP 地址才能将请求路由到所需目的地。这样,DNS 就成为互联网的电话簿,并允许每个人在全球范围内使用它;然而,这也会导致其被滥用的可能性很高。在本章中,我们将了解 DNS 基础架构、核心组件、现有系统存在的挑战以及区块链如何改变其当前功能。
在本章中,我们将涵盖以下主题:
-
DNS
-
DNS 结构和层次结构
-
大型企业的 DNS 拓扑结构
-
当前 DNS 解决方案面临的挑战
-
基于区块链的 DNS 解决方案
-
实验室
DNS
DNS 是互联网的核心。如果 DNS 不可用,我们每个人都会在互联网上找资源时遇到困难。作为互联网的大型电话簿,我们的整个在线系统都严重依赖 DNS。由于 DNS 命名空间,我们中没有人需要记住一长串 IP 地址;相反,我们只需要记住网页的名称。
对于 IT 和安全专业人员来说,了解其基本结构、功能和操作是很重要的。DNS 是一个具有委托权限的分层数据库。根据本章的范围,我们将考虑企业 DNS 部署及其功能。组织可以通过允许他们的互联网服务提供商(ISP)管理或内部管理来管理其 DNS 基础架构。ISP 网络中的任何配置错误或故障都可能导致组织的互联网基础设施中断。
随着互联网用户数量的增长,DNS 成为了互联网上组织的支柱,因此它给组织提供了控制自己 DNS 的强有力理由。通过有效的 DNS 部署,组织甚至可以实现更好的电子邮件垃圾邮件过滤系统和优化的网络拓扑结构。以下是 DNS 在组织中发挥关键作用的一些方式:
-
反垃圾邮件:一些 DNS 机制,包括发件人策略框架(SPF)和域键识别邮件(DKIM),确保只有预定义的域应被允许代表特定组织发送电子邮件。如果组织中的 DNS 正常工作,则这些机制是有效的。
-
负载均衡:DNS 服务可以通过将高利用率服务器的流量与其他低利用率服务器进行负载均衡来优化服务器基础设施。
-
隐私:DNS 服务通过使用不同的名称掩盖地址,具体取决于是否从网络内部或外部访问,以确保组织命名空间信息的隐私,有助于实现更强大的网络安全。
理解 DNS 组件
DNS 不仅仅是一个协议,它由几个独立的实体共同工作,以提供可扩展和可靠的域名数据库。在最简单的形式中,DNS 有三个核心组件—命名空间、服务器和解析器。
命名空间
命名空间是 DNS 数据库的结构。它以倒置树的形式表示,其根节点位于顶部。树中的每个节点都有一个标签,根节点具有 null 标签。请看下面的图示:
域名是从一个节点到根之间以点分隔的标签序列。命名空间最大深度为 127 级,域名长度不超过 255 个字符:
名称服务器
名称服务器负责以区域的形式存储有关命名空间的信息。可以有多个名称服务器,对于一个区域,有一个加载完整区域的服务器被称为权威。通常,单个区域有多个名称服务器被用作权威服务器,以确保更好的冗余性和负载共享:
有两种主要类型的名称服务器—权威服务器和缓存服务器:
-
权威名称服务器:它提供 DNS 查询的响应。它负责为每个 DNS 查询提供原始和最终答案。权威名称服务器分为两种类型:
-
主服务器(主名称服务器):它存储所有区域记录的原始副本。管理员只能对主服务器区域数据库进行更改。
-
从属服务器(辅助名称服务器):从属服务器保留主服务器文件的副本。它用于分享 DNS 服务器负载和提高 DNS 区域的可用性。
-
-
缓存名称服务器:它将名称服务带给用户更近,并提升整体名称查找性能。它还通过允许用户从本地缓存中获取所有的名称映射,为本地用户提供私有命名空间的完善机制。
解析器
名称解析器帮助名称服务器在命名空间中查找数据。名称解析器用于查找根区域的名称和 IP 地址。根名称服务器存储关于顶级区域的信息,并指示要联系哪些服务器以获取所有顶级域(TLD)的数据。解析器基本上从右到左地将名称分成其标签。首个组件,TLD,使用根服务器进行查询,以获取指定的权威服务器。
DNS 结构和层次结构
类似于互联网的 DNS 基础架构,组织也部署其内部 DNS 基础架构。要部署内部 DNS 基础架构,组织可以选择任何域层次结构;然而,一旦连接到互联网,它们必须遵循通用的 DNS 框架。让我们了解名称服务器层次结构。
根名称服务器
在互联网上保持一致的命名空间中,根名称服务器直接响应对根区域中记录的请求,并通过返回适当 TLD 的权威名称服务器列表来回答其他请求。
为了修改根区域,必须首先在互联网上发布区域文件。根区域文件在互联网上由 A 到 M 的 13 台服务器上发布。
根区域包含以下信息:
-
通用顶级域名,如
.com
、.net
和.org
-
全球认可的 TLDs
-
国家代码 TLDs,每个国家的两字母代码,如
.in
代表印度,.no
代表挪威 -
全球认可的 TLDs,通常类似于国家代码 TLD 名称
根区域包含服务 TLD 内容的名称服务器的数值地址,当 TLD 询问时,根服务器会用这些地址回答。
当组织获得新的域名时,注册商可能代表他们配置 DNS 记录并为他们提供一个名称服务器(NS)。组织需要一个名称服务器告诉互联网的 DNS 目录其网页服务器和相应服务的 IP 地址。
当前 TLD 结构
TLD 是 DNS 层次结构中最高级别的域之一。TLDs 安装在命名空间的根区域中。系统中最后部分的域必须用完全合格的域名识别。互联网名称与数字分配机构(ICANN)确保 TLDs 由委托组织管理。互联网分配数字机构(IANA)由 ICANN 运营,负责管理 DNS 根区域。
IANA 负责管理以下顶级域名(TLDs):
-
ccTLD—国家代码顶级域名
-
gTLD—通用顶级域名
-
.arpa—基础设施 TLDs
此分层图解释了现有的 TLD 结构:
注册表、注册商和注册人
DNS 存储着大量的域名数据库。为了进行注册,有三个实体共同合作——注册表、注册商 和 注册人:
-
注册表:负责维护命名空间数据库的组织,具有对该数据库的编辑权限。注册表运行命名空间的权威 NS 并管理 TLD 名称。他们的角色是创建域名扩展名、制定域名规则,并与注册商合作向公众提供域名。例如,Verisign 管理着
.com
域名及其 DNS 的注册。 -
注册商:保留域名并被授权向公众出售域名的组织。此注册商必须由通用顶级域名(gTLD)注册表或国家代码顶级域名(ccTLD)注册表授权。注册商按照域名注册表提供的指南操作。
只有指定的注册商才能修改或删除中央注册数据库中有关域名的信息。最终用户直接从注册商购买域名,最终用户完全有权切换注册商,调用注册商之间的域名转移流程。一些最受欢迎的注册商包括 GoDaddy、HostGator、BigRock 等。
- **注册人:**这只是持有域名权利的最终用户。作为域名注册人,每个人都有一定的权利和责任,包括从用户的注册商那里获取有关注册、管理、转移、续订和恢复域名注册的流程的信息。
这是一个显示所有三个实体一起工作的图示:
DNS 记录
DNS 记录是与 DNS 服务器相关联的映射文件,处理发送到每个域的请求。各种字母字符串被用作模拟 DNS 服务器操作的组件,这些命令字符串称为 DNS 语法。这些语法包括 A、AAAA、规范名称(CNAME)、邮件交换器(MX)、指针(PTR)、名称服务器(NS)、权威起始(SOA)、服务(SRV)记录、文本(TXT)和名称授权指针(NAPTR)。让我们详细了解其中一些 DNS 记录。
- SOA:SOA 记录标记了区域文件的开始。它由区域的名称、技术联系点、其 NS、序列号和超时值组成:
-
NS:NS 记录标识区域的授权名称服务器。NS 还在区域文件上将子域委托给其他组织。在前面的例子中,我们可以清楚地看到www.google.com的 NS 列表。
-
记录:地址记录建立了名称到地址的前向绑定。在这个例子中,我们将 IP 地址与域名www.google.com映射起来:
-
MX 记录:这些记录标识可以交换电子邮件的服务器。每个记录都与优先级相关联,因此用户可以选择主要和备份邮件服务器。
-
TXT 记录:这些记录提供了通过 DNS 扩展提供的信息的方法。这个文本记录存储了有关 SPF 的信息,可以确定授权服务器代表您的组织发送电子邮件。
-
CNAME:CNAME 实质上是将流量绑定到域和子域的文本别名。它们表示安全文件传输协议(SFTP)服务器与邮件服务器位于同一系统上。CNAME 在服务器不受组织控制时发挥重要作用,比如托管或管理的网络服务器。
-
PTR 记录:这些记录提供从地址到名称的反向绑定。PTR 记录应与前向映射完全匹配。
大型企业的 DNS 拓扑
对于 IT 专业人员来说,了解 DNS 查询和名称服务器类型是组织 DNS 最佳实践的重要内容:
-
网络拓扑:冗余在域基础设施中起着关键作用。即使一个服务器失败,另一个也会接管,保持服务正常运行。BIND(广泛使用的 DNS 软件)通过主从关系支持高冗余性。主 NS 通过区域传输机制将映射更改更新到一个或多个从服务器。
-
配置文件:BIND 的配置存储在一个名为
named.conf
的文件中。此named.conf
文件帮助服务器识别权威和/或缓存服务器以及其是否为任何特定区域的主或从服务器。该文件指向包含真实映射数据库的区域文件。它包含定义特定域的名称到地址和地址到名称映射的行或记录。
架构
随着技术和网络转型的变化,DNS 必须随着时间的推移进行升级。存在着像DNS 运营、分析和研究中心(DNS-OARC)和互联网系统联盟(ISC)等机构。在以下图表中,我们可以看到一个优化 DNS 基础设施的标准 DNS 架构:
先前的标准 DNS 架构可以描述如下:
-
**主 DNS 区域:**主区域包含区域数据的读/写副本。网络中只允许一个主区域。所有 DNS 记录必须手动或自动写入主区域。然后,此数据存储在标准文本文件中。
-
从属 DNS 区域:从属区域是区域数据的只读副本。通常,它是主区域的复制版本。如果尝试在辅助区域上更改 DNS 记录,则可以将其重定向到具有读/写访问权限的另一个区域。从属 DNS 区域的作用是备份 DNS 区域文件。
-
聚合缓存转发器(ACF):它基本上转发请求而不处理它们。当服务器发送响应时,它将其传递回自己的客户端。在某些情况下,解析器也可以是转发器或缓存转发器。它可能会或可能不会缓存数据;但是,对于希望向没有预定义 DNS 服务器地址的 DHCP 客户端提供 DNS 数据的系统(如小型办公室家庭办公室(SOHO)网关)非常有用。
当前 DNS 的挑战
如今,DNS 已成为互联网和组织网络的支柱。DNS 是一项使组织无法正常运行的关键基础设施。然而,尽管在网络和信息安全方面投入了越来越多的投资,攻击者仍然成功入侵网络,DNS 仍然是网络基础设施中的一个容易受攻击的组件,经常被用作攻击向量。防火墙保持 53
端口开放,从不查看每个查询的内部。让我们来看一下最广泛使用的基于 DNS 的攻击之一:
DNS 欺骗
当 DNS 服务器的记录被更改以将流量重定向到攻击者的服务器时,DNS 将被劫持。这种流量重定向允许攻击者在网络中传播恶意软件。DNS 欺骗可以通过以下三种方式之一进行:
-
DNS 缓存投毒:攻击者可以利用缓存的 DNS 记录,然后通过向 DNS 服务器注入伪造的 DNS 条目来执行欺骗。结果,所有用户现在将使用该伪造的 DNS 条目,直到 DNS 缓存过期。
-
攻击 DNS 服务器:DNS 服务器是整个 DNS 基础设施的核心。攻击者可以利用多种攻击向量来 compromis… 即可提供恶意网络服务器的 IP 地址。
-
中间人(MITM)攻击:在这种类型的攻击中,威胁行为者不断监听客户端和 DNS 服务器之间的对话。在收集信息和序列参数之后,它开始欺骗客户端,假装是实际的 DNS 服务器,并提供恶意网站的 IP 地址。
基于区块链的 DNS 解决方案
区块链技术具有改变多个行业的能力,在本章中,我们将使用它来管理名字服务器,以克服一些最关键的 DNS 挑战。DNSChain 是转换 DNS 框架并保护免受欺骗挑战的最活跃的项目之一。
DNSChain 是一个基于区块链的 DNS 软件套件,取代了 X.509 公钥基础设施(PKI)并提供了 MITM 身份验证证明。它允许互联网用户设置公共 DNSChain 服务器以进行 DNS 查询,并使用以 .bit
结尾的域名访问该服务器。
X.509 PKI 替代方案
X.509 是一个标准框架,定义了 PKI 的格式,用于在互联网上标识用户和实体。它帮助互联网用户知道与特定网站的连接是否安全。DNSChain 具有提供可扩展和去中心化替代方案的能力,不依赖于第三方。
MITM 证明的 DNS 基础设施
这使用了公钥固定技术来解决中间人攻击问题。 公钥固定指定了两个 pin-sha256 值;也就是说,它固定了两个公钥(一个是当前证书链中任何公钥的 pin,另一个是当前证书链中没有的任何公钥的 pin):
-
它与现有的 DNS 服务器并行运行
-
网站和个人将其公钥存储在区块链中
-
密钥通过 DNSChain 软件框架共享
基于以太坊的安全 DNS 基础设施实验室
DNS 基础设施一直是组织中最受攻击的资产。传统 DNS 易受多种复杂威胁的影响。当前的 DNS 系统是分层的,系统根服务器成为高价值的攻击向量。由于整个基础设施是集中化的,即使是轻微的故障也可能导致整个系统的失败。一群工程师——Greg Siepak 和 Andrea Devers 已经开发了一个基于以太坊的 DNS 平台,以在客户端和名称服务器之间建立连接而不涉及任何第三方。该项目名为 DNSChain,托管在 GitHub 上,链接为github.com/okTurtles/dnschain
。
实验室准备
在 Ubuntu 中配置 DNSChain 服务器。 它将运行 PowerDNS Recursor,发出.com
和.net
域的 DNS 查询,正如您所期望的那样,但是要查阅本地 Namecoin 区块链以解析.bit
域。
我们将从一份新的 Ubuntu LTS 开始。在我们的实验室中,我们将在亚马逊的 AWS 云上部署这个 Ubuntu 系统。
这里的一些示例可能使用已过期的域名,因此最好在你个人注册的 Namecoin 区块链域名上测试域名解析。从一个新的 Ubuntu 16.04 LTS 开始。我在亚马逊云上使用的是 Ubuntu 16.04 LTS。
我们将使用以下命令准备基础设施:
sudo sh -c "echo 'deb
http://download.opensuse.org/repositories/home:/p_conrad:/coins/xUbuntu_16.04/ /' >> /etc/apt/sources.list.d/namecoin.list"
wget http://download.opensuse.org/repositories/home:p_conrad:coins/xUbuntu_16.04/Release.key
sudo apt-key add - < Release.key
sudo apt-get update
Namecoin 区块链安装
在本节中,我们将从安装 Namecoin 区块链开始。
- 安装: 我们需要在本地系统中安装
namecoin
区块链:
sudo apt-get install namecoin
要配置namecoin
,请按照快速入门指南。 本教程将使用当前用户,而不是创建多个用户。
- 配置: 完成 Namecoin 安装后,我们需要使用以下命令配置区块链:
mkdir -p ~/.namecoin \
&& echo "rpcuser=`whoami`" >> ~/.namecoin/namecoin.conf \
&& echo "rpcpassword=`openssl rand -hex 30/`" >> ~/.namecoin/namecoin.conf \
&& echo "rpcport=8336" >> ~/.namecoin/namecoin.conf \
&& echo "daemon=1" >> ~/.namecoin/namecoin.conf
我们将继续运行namecoind
来启动事务。让我们使用namecoind getinfo
检查区块链下载的进度。
对于 Ubuntu,我们使用upstart
而不是systemd
。 我们需要将此文件写入/etc/init/namecoind.conf
,记得替换你的用户名; 在我的情况下,它是ubuntu
:
现在我们必须使用namecoind stop
来停止进程。之后,我们需要发出sudo initctl reload-configuration
命令,然后使用sudo shutdown -r
立即重新启动。最后,namecoin
会自动重新启动。
- 验证: 如前所述,
namecoind
将开始下载区块链。 在它取得一些进展之前,我们将无法从区块链上查找域名。 稍后,当我们重新访问 Namecoin 时,我们可以尝试以下命令:
namecoind getinfo
在输出中,我们可以清楚地看到有关 Namecoin 的详细信息以及有关难度级别、连接、时间偏移、创建的块、余额甚至任何错误的详细信息:
此外,我们将使用以下命令获取有关 Namecoin 交易 ID 和地址的详细信息:
namecoind name_show d/okturtles
以下截图显示了运行上述命令的输出:
此外,我们还可以检查 RPC 接口(使用namecoin.conf
中的rpcuser
和rpcpassword
):
现在,我们将使用curl
命令获取托管在http://127.0.0.1:8336
上的内容的 Web 信息:
curl --user ubuntu:b17401a7fcc7a3db10c8efcac65ff96db56bfad6cc199f3a08e1b2cf6805 --data-bina' -H 'content-type: text/plain;' http://127.0.0.1:8336
我们可以看到针对本地系统托管内容的curl
命令的以下输出:
此外,我们可以使用curl
命令提取 HTTP 站点发送给我们的标头。 以下命令存储 HTTP 站点发送给我们的标头。 此命令将接收到的协议标头写入指定的文件:
curl -v -D - --user ubuntu:b17401a7fcc7a3db10c8efcac65ff96db56bfad6cc199f3a08e1b2cf6805 --darams":["d/okturtles"]}' -H 'content-type: text/plain;' http://127.0.0.1:8336
运行上述命令的输出如下所示:
安装 PowerDNS
PowerDNS是开源 DNS 软件、服务和支持的首要供应商。 PowerDNS 是一个用 C++编写的 DNS 服务器,并在 GNU 通用公共许可证(GPL)下许可。 它运行在大多数 Unix 派生系统上。 它具有许多不同的后端,从简单的 BIND 到关系数据库。 我们将使用以下命令在系统上安装 PowerDNS:
sudo apt-get install pdns-recursor
运行上述命令的输出如下:
- 配置:我们需要在本地环境中配置 PowerDNS。 我们将命令 PowerDNS 将对
.bit
、.eth
和.p2p
域名的请求发送到端口5333
。
此配置在/etc/powerdns/recursor.conf
文件中指定:
forward-zones=bit.=127.0.0.1:5333,dns.=127.0.0.1:5333,eth.=127.0.0.1:5333,p2p.=127.0.0.1:5333
export-etc-hosts=off
allow-from=0.0.0.0/0
local-address=0.0.0.0
local-port=53
在以下截图中,我们可以看到查询的前向区域文件的提取:
在以下截图中,我们可以找到托管在127.0.0.1:5333
上的前向区域信息:
特别注意我们的前向区域声明。 在此时确保使用sudo service pdns-recursor restart
重新启动 PowerDNS。 然后,在我们继续之前,确认 PowerDNS 能够正确解析传统域名:
- 验证: 为了验证前向区域 PowerDNS 的安装,我们需要运行以下命令:
dig @127.0.0.1 packtpub.com
我们将找到以下输出,其中包含packtpub.com
的 IP 地址:
安装 DNSChain
首先,我们将更新apt-get
并安装一些前提条件。请注意,尽管我们安装npm
(需要 Node.js 安装),但需要安装nodejs-legacy
。
- 安装依赖项: 在此步骤中,我们将安装所有可靠的脚本和命令:
sudo apt-get update
sudo apt-get install git npm
sudo apt-get install nodejs-legacy
sudo npm install -g coffee-script
- 安装 DNSChain: 现在可以通过以下命令执行 DNSChain 的安装:
sudo npm install -g dnschain
在下面的输出中,我们可以发现结果包括coffee-script-1.12.7.tgz
注册表文件的提取:
- 配置: 我们需要配置 DNSChain 将其绑定到端口
5333
,但只要与 PowerDNS 交付请求的端口号匹配即可使用任何高端口号。这在/etc/powerdns/recursor.conf
中早已指定。 DNSChain 的另一个很棒的特性是我们可以通过 HTTP 公开查找结果。我们将为此指定端口8000
,但您可以使用任何打开的高端口号。例如,DNSChain 可以设置为通过端口8000
通过 Web 服务器访问。以此为例,写入/home/ubuntu/.dnschain/dnschain.conf
:
我们需要为 DNSChain 制作另一个upstart
文件,并将此文件写入/etc/init/dnschain.conf
:
我们现在将运行sudo initctl reload-configuration
,然后重新启动机器。最后,我们通过尝试解析.bit
域名来进行测试。
你可能需要等待大量区块链加载完毕才能正常运行。
- 验证: 最后,我们可以通过查找
hello.bit
地址来验证 DNSChain。在输出结果中,我们可以找到所需服务器 IP 地址为51.101.1.6
的结果:
dig @127.0.0.1 okturtles.bit
以下屏幕截图显示了运行上述命令的输出:
总结
在本章中,我们了解了 DNS 框架及其核心组件。我们了解到,任何受损的 DNS 服务器都可能对基础架构造成巨大破坏,以及区块链如何利用其基本优势来解决其中一些关键挑战。
问题
DNS 是互联网的支柱,也是最复杂的协议框架之一。随着每一种新的攻击向量,DNS 都在准备更强大和更全面。读者可以查阅以下问题:
-
什么是 DNS 隧道攻击?
-
区块链可以用于部署整个 DNS 基础架构吗?如果可以,怎么使用?
更多阅读
阅读以下文章,以了解更多关于 DNS-OARC 和 ISC 的信息:
-
DNS-OARC 介绍在
www.dns-oarc.net/
。
第九章:部署基于区块链的 DDoS 保护
互联网的用户数量和应用程序以及它们的带宽正在急剧增长。在过去的几年里,一种新的互联网用户进入了互联网的世界,通常被称为智能设备。它可以是冰箱、空调或微波炉,也可以是无人机或自动驾驶车辆。这些智能设备也被称为物联网(IoT)设备,监控着连接的公用事业的功能和操作。尽管有足够的用例,攻击者正在利用它们发动所谓的分布式拒绝服务(DDoS)攻击。在本章中,您将学习有关 DDoS 攻击以及区块链如何更有效地保护组织免受此类大规模攻击行动的信息。
在本章中,我们将涵盖以下主题:
-
DDoS 攻击
-
DDoS 攻击类型
-
当前 DDoS 保护解决方案的挑战
-
区块链如何改变现有的 DDoS 保护平台
-
实验室
DDoS 攻击
DDoS 攻击是通过让来自地理分布系统的大量请求淹没目标服务器,以恶意尝试干扰合法流量的一种攻击方式。现在,让我们首先了解拒绝服务(DoS)攻击是如何工作的。在 DoS 攻击期间,攻击者向目标机器发起大量请求,导致服务器资源耗尽,并因此无法满足合法用户的请求。在 DoS 攻击中,威胁参与者使用单台机器来耗尽目标服务器;然而,DDoS 攻击更为强大,因为可以使用数百万台机器来耗尽目标服务器。
什么是 DDoS 攻击?
越来越多的组织正在转向具有重大基础设施的云端,以满足其沉浸式客户需求。组织要么建立自己的重型服务器基础设施,要么转向云提供商托管他们的服务器。今天,攻击者更喜欢使用 DDoS 攻击方法来破坏目标服务,因为他们可以生成大量的随机数据,以淹没目标。此外,目标安全团队很难识别和阻止每个攻击机器,因为它们的数量达到了数百万。
此外,攻击者从未合法地控制他们的攻击机器,而是通过特制的恶意软件在全球数百万台计算机上感染病毒,然后获得完全访问权限来发动大规模的 DDoS 攻击。这个由数百万台感染的计算机组成的集合被称为僵尸网络,而单个被感染的计算机则被称为僵尸。
DDoS 的第一个实例有点难以确切回忆起来,但第一个明显和重大的攻击发生在 1999 年,目标是明尼苏达大学。它影响了 220 多个系统,并使整个基础设施瘫痪了好几天。
2016 年 10 月 21 日星期五,整个世界目睹了对 Dyn(一家托管 DNS 提供商)进行的最复杂和精密的 DDoS 攻击之一。Dyn 确认 Mirai 僵尸网络是恶意攻击流量的主要来源。这次攻击引起了对互联网安全和威胁的重要关注。
它是如何工作的?
要发动 DDoS 攻击,威胁行为者可以构建整个僵尸网络,也可以从暗网市场租用。一旦攻击者准备好他们的武器,他们需要发现脆弱的站点或主机,或者可能整个网络。
洛克希德·马丁公司的计算机科学家创造了一个称为网络杀链的术语,它阐述了网络攻击的阶段,从侦察到最终攻击目标。这些阶段包括:
-
侦察:攻击者确定其目标设备并开始搜索其中的漏洞。
-
武器化:攻击者使用远程工具包和恶意软件,如病毒或蠕虫,来利用漏洞。
-
交付:威胁行为者通过诸如钓鱼邮件、随意下载、USB 驱动器、内部人员等多种方法将网络战争引入受害网络
-
利用:恶意软件代码用于触发攻击,在目标网络上采取行动以利用漏洞
-
安装:恶意软件现在已安装在受害机器上
-
命令和控制:这种恶意软件允许远程威胁行为者访问受害者机器
为了从 DDoS 的角度理解每个阶段,了解僵尸网络基础设施及其建立方式至关重要。
建立僵尸网络
如前所述,DDoS 攻击的分布式性质需要全球数以百万计受感染的机器。今天,攻击者利用暗网市场,要么租用现成的僵尸网络,要么购买它们。有一些工具,如 Jumper、Dirt 和 Pandore,可以消除创建这些僵尸网络的技术障碍。
以下图表概述了僵尸网络的生命周期:
侦察
目标系统可以大到数据中心,小到计算机。在这两种情况下,建立僵尸网络都涉及识别存在漏洞的主机,可以利用一些恶意软件家族进行利用。攻击者寻找与他们的目标直接或间接相关的信息,以未经授权地获取他们受保护的资产。威胁行为者尝试各种可能的方法来绕过存在的安全系统,如防火墙、入侵防护系统(IPS)、网络应用防火墙和端点保护。
武器化
各种开源软件的广泛使用已消除了创造恶意代码的技术障碍。如果程序员有恶意意图并开发了代码,就可以开发出一种新型的恶意软件,对安全系统检测来说会比较困难。
以下是一些用于开发 DDoS 的流行工具列表:
-
**低轨道离子炮 (LOIC):**这是一种由流行的黑客活动分子团体 anonymous 使用的最受欢迎的工具之一。它是一个简单的洪水工具,可以生成大量的 TCP、UDP 或 HTTP 流量以过载目标服务器。它最初是用来测试服务器性能的吞吐量;然而,匿名团体使用这个开源工具发起了复杂的 DDoS 攻击。该工具后来通过 IRC 功能进行了增强,允许用户通过 IRC 控制连接的机器。
-
高轨道离子炮 (HOIC):在成功使用 LOIC 几年后,匿名团体放弃了它,并使用 HOIC 工具首先瞄准了美国司法部 (DOJ),以回应其关闭网站
megaupload.com
的决定。HOIC 再次是一个简单的应用程序,用于支持跨平台的基本脚本,用于发送 HTTP POST 和 GET 请求,并带有简单和简化的 GUI。它后来被配备了 booster 脚本,这些脚本是包含额外基本代码的文本文件,称为 booster 脚本。这个 booster 脚本还允许攻击者指定要攻击的目标 URL 列表。HOIC 仍然被匿名团体用来全球发起 DDoS 攻击。 -
**hping:**就像匿名团体一样,还有几个不同的黑客活动分子团体积极地瞄准企业和政府机构。一种叫做 hping 的工具被开发出来以克服 Ion Cannon 工具的匿名挑战。它再次被用来在目标处生成大量的 TCP 流量,并且通过欺骗源 IP 地址来保持匿名。它是几个黑客活动分子团体中最强大和最全面的工具之一。
-
Slowloris:Slowloris 是最先进的工具之一,用于使攻击者难以检测和追踪。这个工具是由一位被称为RSnake的灰帽黑客开发的,它能够通过创建非常慢的 HTTP 请求来为服务器发起 DDoS 攻击。它生成大量微小的 HTTP 头,以瞄准服务器并使其等待其余的头到达。
交付
一旦恶意代码被开发或从暗网市场购买,这个软件可以通过针对性钓鱼邮件交付,也可以通过垃圾邮件活动发送。选择其中一种取决于目标,还取决于操作的复杂性。
我们可以将传播恶意代码的过程分类为以下三组方法:
- 中央源传播:在这种方法中,攻击者计划将易受攻击的系统变成一个或多个僵尸机器人的系统将被给予一个中央系统,以便攻击系统的副本从中央托管的基础架构转移到新受损系统。整个工具包移动后,脚本会自动启动一个新的攻击周期。这整个机制使用 HTTP、FTP 和 远程过程调用(RPC)协议。在这种方法中,威胁行为者利用受害者机器,受损系统连接到攻击者的中央仓库,最后,中央源推送代码。请看以下图表:
- 反向链接传播:在这种方法中,攻击者的工具包被重新定位到新受损的主机上。攻击者的工具包是专门设计用于接受来自受损系统的文件请求的。反向通道文件复制可以通过使用 简单文件传输协议(TFTP)的端口监听器来完成。与中央源传播方法不同,攻击者将利用和代码一起传输到受害机器中:
- 自动传播:在这种机制中,一旦攻击者侵入系统,他们的工具包就会转移到受损主机上。这种机制在传输方式上有所不同,因为攻击工具包首先由攻击者种植到受损主机上。在这种方法中,攻击者先传输利用,然后再从自身传输代码,而不是从任何中央仓库传输。请看以下图表:
利用
一旦恶意软件传递到网络中,它将启动利用未打补丁的软件漏洞、薄弱的软件编码实践和用户注意力缺失的过程。通常,网络中存在许多漏洞;然而,漏洞的利用性使漏洞的性质变得更加关键。
安装
在安装阶段,恶意软件被安装在目标系统中,并允许远程攻击者访问它。在安装过程中,恶意软件可能被安装在系统的用户空间或内核空间。安装在用户空间的恶意软件被检测到的可能性很高;然而,安装在内核空间的恶意软件被安全系统,如终端保护、终端检测和响应平台,检测到的可能性较低。
命令与控制(C2)
武器成功安装后,目标现在完全受到一个名为系统的远程中央系统的控制。被攻击的设备网络被称为僵尸网络,完全在威胁行为者的控制之下;然而,这个僵尸网络保持沉默,直到被攻击者激活。甚至还有几种加密的僵尸对僵尸的通信存在于公共对等网络上。
行动目标
一旦 C2 通道建立,攻击者就可以对目标发动 DDoS 攻击。在这个阶段,攻击者运行脚本来激活整个僵尸网络中的所有僵尸。攻击者还会配置僵尸网络以确定需要生成什么类型的流量。
DDoS 攻击类型
DDoS 攻击有多种方式进行。然而,攻击者会根据不同因素选择其中一种,如目标难度、财务能力、匿名性、优先级和其他因素。运行 DDoS 攻击程序并发动它并不需要太多技术专长。主要有三种类型的攻击,分类如下:
-
目标网络资源的攻击
-
目标服务器资源的攻击
-
目标应用程序资源的攻击
目标网络资源的攻击
这些是计划消耗目标系统网络资源的攻击活动。在这种攻击中,网络带宽被洪泛攻击完全消耗。以下是几种洪泛攻击类型。
用户数据报协议 (UDP) 洪泛
UDP 是嵌入在 IP 数据包中的用于两个设备之间的套接字级通信的协议。UDP 洪泛攻击不会利用目标系统的任何特定漏洞,而是通过以大量洪泛来淹没目标系统的正常流量来干扰它。它指向目标服务器上的随机端口,并消耗目标系统的所有流量带宽。这种 UDP 洪泛甚至不允许系统发送互联网控制消息协议 (ICMP) 目的地不可达的数据包。通常,这种类型的攻击被认为是小型到中型洪泛攻击的一种,并以 Mbps 和 PPS 衡量,如下图所示:
ICMP flood
ICMP 是另一种用于 IP 层可达性和管理操作的无连接协议。同样,它不依赖于任何漏洞来工作。可以使用任何类型的 ICMP 消息执行 ICMP 洪泛,例如回显请求和回显回复。作为最古老的洪泛技术之一,组织已经采取了在网络设备上部署控制平面策略的做法,以限制设备的控制平面可以处理的 ICMP 数据包的数量。
互联网组管理协议 (IGMP) 洪泛
IGMP 是一种多播协议,性质上是无连接的。它是基于非漏洞的,涉及向网络或路由器发送大量的 IGMP 消息报告。
放大攻击
放大攻击利用通信渠道中请求和响应之间的差异。攻击者可以 compromise 一个路由器,强制路由器向多播地址发送广播消息,伪造源地址。甚至可以与 DNS 放大一起使用,攻击者可以 compromise 递归 DNS 名称服务器以缓存大型文件。请看下图:
针对服务器资源的攻击
针对受害者服务器资源并最终耗尽整个服务器处理和内存的攻击最终会对合法流量造成破坏。在这个类别中,攻击者识别目标服务器的漏洞,并武装恶意软件以利用这些漏洞。您将了解到一些用于执行这些攻击的最常见技术。
TCP SYN Flood
这种攻击利用了 TCP 的三次握手机制,并通过 TCP 同步消息消耗大部分服务器资源。在 TCP 的三次握手中,客户端首先发送设置了同步标志的 TCP 包,请求服务器分配资源并建立通信渠道。在 TCP SYN 攻击中,攻击系统发送一系列设置了 SYN 标志的 TCP 请求。为了管理每一个请求,服务器必须打开并分配一定的 CPU 资源,并且缓冲以准备进一步的通信。现在,服务器发送一个设置了 SYN-ACK 标志的 TCP 消息,并期望客户端用带有 ACK 标志的 TCP 消息来确认。攻击系统接收到了,但从未做出响应,结果是,服务器保持套接字打开并为同一客户端机器分配资源。服务器资源是有限的,但攻击者可以不断向服务器发送请求,最终耗尽服务器资源,使其对合法用户流量不可用。TCP 对请求和响应过程有特定的超时时间,但攻击者利用了同样的时间段发送大量的 TCP 请求。请看下图:
TCP RST 攻击
在 TCP/IP 栈中,TCP 中的复位(RST)标志用于通知服务器重置其正在进行的 TCP 连接。在 TCP RST 攻击中,攻击者拦截客户端和服务器之间的活动 TCP 连接,尝试随机序列号。成功识别序列号后,攻击者伪造 TCP RST 消息发送给客户端的源 IP 地址。对于人类来说,执行这样的活动将非常困难。因此,会使用机器人来拦截和识别活动序列号。
基于安全套接字层(SSL)的攻击
SSL 是建立 Web 服务器和浏览器之间加密通道的标准安全协议。这确保了 Web 服务器和浏览器之间传输的所有数据都是加密的,从而为互联网用户提供了更好的隐私和完整性解决方案。SSL 在 TCP/IP 上运行,并且仅在完成 TCP 三次握手后发送 SSL hello。基于 SSL 的 DDoS 攻击可以通过各种方式进行,例如针对 SSL 握手机制、向 SSL 服务器发送随机和垃圾数据,或者利用某些与 SSL 加密密钥机制相关的功能。
加密的 HTTP 攻击
随着 SSL/TLS 加密的 Web 应用程序的使用增加,攻击者也转向加密的基于 HTTP 的攻击。大多数组织没有能够检查 SSL 流量的安全解决方案,因此无法保护免受恶意流量的侵害。攻击者利用这一弱点,并采用越来越多的能力通过加密的 HTTP 来破坏网络。
针对应用程序资源的攻击
DDoS 攻击不断增加;威胁行为者正在从传统方法转向更先进和复杂的基于应用程序的攻击。这些不仅仅局限于基于 HTTP 的攻击,甚至还适应了 HTTPS、DNS、FTP、SMTP 和 VOIP。应用程序由多个独立组件构建,因此易受攻击。因此,基于应用程序的攻击对威胁行为者变得更具吸引力。我们将介绍一些最常用的攻击。
DNS 洪泛攻击
DNS 无处不在,并且每个组织网络都必须打开 DNS 端口以进行名称解析。发动基于 DNS 的洪泛攻击很容易,而安全系统难以检测到它。DNS 使用 UDP 协议以获得更快的请求和响应时间,而不建立新的连接(就像在 TCP 握手中)。在这种类型的攻击中,DNS 服务器可能会被大量 DNS 请求压垮,使受害者服务器无法处理合法请求。这种技术曾在最近对 Dyn 网络的 Mirai 攻击中使用,导致用户无法访问 YouTube、Twitter、Netflix 和其他几个应用程序。
正则表达式 DoS 攻击
使用低速攻击方法来攻击受害者服务器。攻击者利用服务器部署的库文件中的漏洞。每当客户端发送带有正则表达式的请求时,服务器都必须花费大量资源来处理正则表达式。攻击者利用这一点来利用服务器,并定期发送安全系统无法检测到的正则表达式。
散列碰撞 DoS 攻击
使用这种攻击方式,攻击者需要花费数天到数月的时间来识别 Web 应用程序框架中的漏洞。大多数应用程序服务器使用哈希表来索引 POST 会话。当返回相似的哈希值时,服务器必须管理哈希冲突。冲突解决消耗大量的处理资源,因为攻击者不断发送带有大量参数的 POST 消息。攻击者设计参数的方式导致服务器端发生哈希冲突,结果使服务器忙于处理它们。
当前 DDoS 解决方案面临的挑战
在过去的几年中,DDoS 攻击呈上升趋势。根据 Radware 最近的报告,43%的组织经历了爆发性攻击,但其余的组织不知道自己是否受到了攻击。攻击者正在采用几种新兴技术和复杂的策略来 compromis 目标网络。
在 2018 年 2 月 28 日,代码托管网站 GitHub 遭受了有史以来最大的 DDoS 攻击,记录在 1.35 Tbps。由于 DDoS 攻击属于无法部署任何安全预防机制的网络威胁类别,因为系统漏洞受到组织控制,但威胁无法控制。Web 应用程序的前端对于所有用户保持集中,因此为组织留下了单点故障的局面。
区块链如何改变 DDoS 保护?
根据定义,区块链是一个去中心化网络,允许独立的各方进行通信,而无需任何第三方的参与。为了保护网络免受 DDoS 攻击,组织可以分布在多个服务器节点之间,提供高弹性并消除单点故障。使用区块链有两个主要优势,如下所示:
-
区块链技术可用于部署一个分散式分类的 IP 地址存储黑名单
-
区块链技术消除了单点故障的风险
实验室
为了部署基于区块链的 DDoS 保护平台,我们必须准备带有 Node.js 和 Truffle 的测试环境,以太坊区块链。我们将使用现有的区块链项目来保护网络免受 DDoS 攻击。项目链接可以在链接github.com/gladiusio/gladius-contracts
中找到。
此外,我们需要按照步骤准备 Gladius 项目的基础架构:
-
首先,我们将在环境中安装 Node.js,网址为
nodejs.org/uk/download/package-manager/#arch-linux
。 -
我们需要安装
truffle
来测试环境:
npm install -g truffle
- 在终端中运行以下命令:
npm install -g ganache-cli
- 现在,我们可以通过以下命令在终端中启动测试网络:
ganache-cli
以下屏幕截图显示了运行上述命令的输出:
- 在这个终端窗口中,我们可以看到测试区块链网络中的所有交易。现在,我们必须打开一个新的终端窗口并跳转到工作目录。
要设置项目,请按照以下说明操作:
-
转到
github.com/gladiusio/gladius-contracts
并下载.zip
文件。然后,将此文件解压缩到您想要的文件夹中。 -
用以下代码替换
truffle.js
文件中的代码:
let HDWalletProvider = require('truffle-hdwallet-provider')
module.exports = {
networks: {
development: {
host: "localhost",
port: 8545,
network_id: "*" // Match any network id
},
truffle: {
host: "localhost",
port: 9545,
network_id: "*", // Match any network id
},
travisci: {
host: "localhost",
port: 8545,
network_id: "*"
},
rinkeby: {
host: "localhost", // Connect to geth on the specified
port: 8545,
from: "0x0085f8e72391Ce4BB5ce47541C846d059399fA6c", // default address to use for any transaction Truffle makes during migrations
network_id: 4,
gas: 4612388 // Gas limit used for deploys
}
}
};
- 我们将通过终端转到名为
gladius-contracts-master
的文件夹,并使用以下命令编译合约:
truffle compile
下面的截图显示了运行上述命令的输出:
- 现在,我们将使用以下命令将我们的合约部署到
ganache-cli
本地区块链:
truffle migrate --reset
下面的截图显示了运行上述命令的输出:
- 现在,我们必须使用
truffle test
命令启动单元测试以确保智能合约可用:
-
转到
github.com/gladiusio/gladius-control-daemon
,下载.zip
文件,并将其解压到与gladius-contracts
相同的文件夹中。 -
接下来,我们在终端中找到
gladius-control-daemon-master
文件夹,并链接合约应用程序二进制接口(ABI)。ABI 是两个程序模块之间的接口,其中一个模块位于机器代码级别:
ln -s ../gladius-contracts-master/build build
下面的截图显示了运行上述命令的输出:
- 接下来,我们将使用
npm install
命令安装依赖项:
- 接下来,我们将使用
node index.js
命令启动脚本:
- 让我们打开一个新的终端窗口并运行
gladius-networkd
命令:
- 接下来,我们需要打开一个新的终端窗口并运行
gladius-controld
命令:
- 要启动您的节点,您需要在新的终端窗口中运行以下命令:
gladius node start
下一个截图显示了运行上述命令的输出:
- 我们可以将数据提交给特定的池,使其接受或拒绝您成为池的一部分:
- 创建节点完成后,我们可以使用我们的管理器应用程序检查其状态。这将从区块链中显示您的节点信息:
您只需将 Gladius 客户端下载到您的计算机并访问系统即可。
一旦 Gladius 被激活,所有节点都会处理连续的请求流以验证网站连接并阻止恶意活动。Gladius 正在积极努力解决系统中的若干挑战,并实现系统的稳定。
摘要
在本章中,您了解了 DDoS 攻击及其运作方式。我们了解了当前 DDoS 解决方案所面临的挑战,也了解了如何利用区块链来帮助我们更有效地保护网络免受恶意流量的侵害。
问题
读者应该理解这只是防御 DDoS 攻击的多种方式之一。读者应该查阅以下一些问题:
-
为什么 DDoS 攻击变得越来越频繁?
-
我们可以使用区块链准备关于即将发生的 DDoS 攻击的威胁情报吗?
进一步阅读
为了进一步探索区块链技术用于 DDoS 保护,以下链接可能会有帮助:
-
基于智能合约的协作 DDoS 缓解的区块链架构 可在
www.springer.com/cda/content/document/cda_downloaddocument/9783319607733-c2.pdf?SGWID=0-0-45-1609389-p180909480
找到。 -
基于区块链的协作 DDoS 缓解 可在
files.ifi.uzh.ch/CSG/staff/Rafati/Jonathan%20Burger-BA.pdf
找到。
第十章:区块链与网络安全的事实
区块链技术具有创新性,并使用一种独特的方法,结合了计算算法和数据结构来解决各个领域长期存在的问题。区块链技术仍在不断发展,并且对各个组织来说都是新的。然而,真正的问题不仅仅是了解这项技术;更重要的是知道是否值得用区块链技术解决现有问题。
让我们看看区块链有意义的不同情况。
在本章中,我们将涵盖以下主题:
-
区块链的决策路径
-
领导者的清单
-
区块链的挑战
-
利用区块链的网络安全未来
区块链的决策路径
就像每一次新技术更新一样,领导者和管理机构在批准技术升级提案之前必须遵循特定的预定义程序。决策路径是一组必须在得出结论之前遵循的行动流程。让我们了解一些区块链技术的热门决策路径:
- IBM 模型:这是帮助决策者知道何时使用区块链的内容。它还将带领您通过区块链的市场推广。这是一个简化的布局,说明了在什么条件下区块链集成可以成为您组织的良好选择。IBM Hyperledger Fabric 旨在为行业提供私有区块链解决方案,如下图所示:
- Karl Wust 和 Arthur Gervais 模型:此模型更多地是关于决定哪种区块链类型最适合您的业务需求。这是于 2017 年 5 月开发的,并旨在构建一种方法论,以确定解决业务问题的解决方案,如供应链管理、银行间和国际支付网关,以及去中心化自治组织。请见下图:
作家基本上指的是对区块链分类账有写入权限的各方,并且他们也参与共识机制来创建一个区块并将其添加到分类账中。
- Birch-Brown-Parulava 模型:再次,这是一个很棒的模型,专门开发出来以制定适当的区块链选择方法。流程的上下文更多的是关于识别各方完整性的需求。如果需要由选定的一组维护完整性,那么私有区块链是更好的选择。然而,如果涉及激励或奖励,那么公共区块链是更好的选择。见下图:
何时使用区块链?
区块链可以应用于以下情景:
-
冲突情况:区块链网络不仅连接了可信任的各方,还连接了不可信任的各方。因此,需要特别注意冲突情况并无缝解决。区块链利用共识算法来确认交易并准备区块。不同的区块链使用不同的共识模型,例如工作证明(PoW)、股权证明(PoS)等,但目的是相同的,即避免冲突并执行成功的交易。
-
共享通用数据库:如果组织在员工(管理员或非 IT 人员)、承包商或第三方之间共享一个通用数据库,那么权限区块链确实可以满足要求。当一个集中式数据库在不同方之间共享时,会增加访问控制利用的风险,这可能导致特权升级。当使用权限区块链时,可以确保只有提交对等方有权对数据库进行更改,而事务认可可以由预选参与者中的任何一个完成。
-
需要业务交易规则:如果业务模型要求您有一个简单或复杂的逻辑策略来执行任何交易,区块链可以通过其智能合约(如以太坊的智能合约)或超级账本的链代码等逻辑策略来提供极大的保证。业务策略总是被定义在节点软件中,强制节点根据定义的规则工作。
-
需要系统透明性:如果一个组织的商业模式要求其必须对其客户或供应商在整个供应链中有透明度,分布式账本技术可以更好地提供对供应链运营和管理系统的端到端可见性。在无权限区块链网络中,每个节点都被允许读取和写入区块链账本,因此也变得透明。然而,企业对在只有预选节点参与区块链计算过程和账本管理的有权限环境中总是更倾向。
-
需要数据不可变性:如果一个组织需要开发一个高度安全的仅追加数据库,加密哈希和数字签名都可以帮助我们构建一个高度安全的账本。在准备每个区块时,它会取前一个区块的哈希值,因此在创建后就无法修改或重新排列数据库。
何时不应该使用区块链?
尽管区块链是业界见过的最强大技术,但它并不总是适合所有工作的正确工具。这使得评估阶段在各个方面都非常关键。在了解它最适用的地方后,让我们来看看一些区块链不适合的情况:
-
存储相当大的数据:由于其分布式和去中心化的特性,在区块链网络中的每个节点都存储了整个数据库(在许可分类账的情况下,只有预先选择的参与者可以被允许读取和存储数据,结果,复制数据库需要很长时间并可能导致速度变慢)。已经有一些解决方案可以完成这一目的;让我们快速浏览一下每个解决方案。
-
如果交易规则经常变更:一旦设置和启动了智能合约政策,它将不会改变执行路径。频繁更改业务流程和操作的组织不推荐使用基于区块链的应用。区块链网络内的每个子系统和子流程都必须是确定性的。
-
如果区块链需要从外部来源获取数据:区块链智能合约并不是用来从外部来源获取信息的。即使配置了区块链与可信数据库之间的通信,它也将被操作为常规数据库操作。此外,在这种情况下,区块链智能合约不会从外部数据库中取出条目;相反,可信数据库必须将数据推送到区块链上。
领导者的清单
区块链正在创造一些很棒的技术和商业机会,它正在促进组织之间的合作。组织领导者目前正处于感知和识别区块链技术对其业务运营的用例的情况,以便跟上不断变化的市场需求。让我们关注您的区块链计划中的重要问题:
-
谁是我行业中在区块链技术方面最值得信赖的领导者?
-
我的竞争对手对区块链有什么看法?
-
哪些业务部门可能会受到最大的干扰?
-
谁将受到我们的区块链部署影响最大,他们可能的反应是什么?
-
区块链的可能业务案例是什么,我们如何实现更好和可持续的商业模式?
-
部署涉及的整体成本因素是什么?
-
当前的规则和法规对区块链应用的影响会是什么?
-
我们如何与监管机构实现双赢的局面,将区块链应用推向市场?
-
我们如何将安全控制应用到我们的区块链应用中?
在将区块链应用推向市场之前,预计要进行一系列的头脑风暴,但建议准备项目范围并对齐适当的利益相关者。
区块链的挑战
尽管区块链对资产交换产生了巨大影响,并为金融机构降低了运营成本,但通常情况下,炒作会产生模糊的结构,从而分散对潜在业务解决方案和用例的关注。现在重要的是了解一些需要特别关注的挑战,以便我们能够实现基于区块链的应用的可持续商业模式。这些挑战包括:
-
技术专长:根据 2017 年全球数字智商调查,大约 86%的金融高管表示他们的组织尚未开发所需的区块链技能。全球市场上对区块链专业知识的缺乏导致了对其潜在商业用例和多种实施方法的关注较少。尽管区块链从根本上是一种变革性技术,但完善区块链后端系统的途径仍然是通过编程语言,比如 Node.js、JavaScript,以及一些新开发的语言,比如 Go 和 Solidity。然而,仅有程序员是不够的。拥有了解业务流程和核心要素的区块链顾问是至关重要的。
-
合规性:自 2018 年 5 月 25 日起生效的欧盟通用数据保护条例(GDPR)正在改变不仅在欧洲运营的企业的战略,也改变了全球企业(那些在欧洲地区有客户基础的企业)的战略。 GDPR 已推出这个概念,与区块链的基本原则恰恰相反。根据 GDPR,组织必须对其所有数据库进行创建、读取、更新、删除(CRUD)操作;然而,区块链数据库不允许用户或管理员对数据库中的任何条目进行更新或删除。其次,GDPR 规定个人信息不应离开欧盟,而公共区块链的一个主要问题是分布式模型不允许限制数据存储到特定节点或一组节点。
-
互操作性:技术适应的转变应该是渐进且无缝的,为了达到这一点,区块链应该能够与传统平台进行交互。最初,区块链可能无法处理现有系统的所有功能;因此,必须对现有系统进行相当大的修改,以便实现渐进式过渡。
-
存储:根据属性,区块链是一个仅追加的数据库,不断增长。区块链通常存储文件或媒体的文本或元数据,即使我们尝试存储所有实际数据,区块链的一个属性也将成为障碍,那就是分布式网络。确保所有节点具有相同数据库的可用性的默认性质可能成为处理大型数据的障碍。有几家初创公司正在解决这个问题,以克服区块链的基本挑战。
-
能源消耗:根据 Digiconomist 的数据,比特币目前的能源消耗约为 61.4 TWh,相当于美国电力消耗的 1.5%。以 PoS 共识模型的以太坊正在克服能源消耗问题并实现绿色经济。
区块链与网络安全的未来
网络安全是一种最多才多艺的行业,在这个行业中,企业几乎每隔一天就会遇到新的威胁。尽管网络安全的未来对全球领导者来说始终是一个不可预测的任务,但对可能的威胁和潜在的安全创新进行评估以保持一致的客户和利益相关者信任至关重要。
区块构建算法和哈希的结合使得区块链在处理任何价值类型的交易时都成为网络安全组合中的一个重要解决方案,提高了数据安全性。区块链以多种方式改变了网络安全解决方案。在云计算和其他数字化进步之后,组织应该使用数百个应用程序(内部和基于云的)来满足多种业务需求已成为显而易见的事实。这也导致了终端用户和组织数据泄露的水平上升。
根据 2017 年的数据泄露指数(BLI),超过 25 亿条数据记录已经遭到泄露。因此,在即将到来的数字时代,舒适性和灵活性将被隐私和安全所取代是可以预见的。正如已经清楚地展示的,区块链致力于为机密信息提供数据安全和隐私保护,因此,区块链很可能成为几个商业应用的重要吸引力,以提供更好的安全性和隐私保护。
摘要
在本章中,我们介绍了一些关于区块链和网络安全的关键事实。我们了解到在选择区块链技术之前,充分关注决策过程的重要性。网络安全将始终是攻击者和防御者之间永无止境的竞赛。对于防御者来说,不断测试和部署创新武器至关重要,因为攻击者永远不会停止。
问题
在成功介绍了一些关于区块链和网络安全的关键事实后,读者可能会有以下问题:
-
有哪些流行的区块链决策路径?
-
如何克服所提及的区块链挑战以及它们可以多快解决的困难是什么?
进一步阅读
要了解更多关于卡尔·沃斯特(Karl Wust)和亚瑟·杰尔维斯(Arthur Gervais)决策路径模型的信息,请访问链接:eprint.iacr.org/2017/375.pdf
。
第十一章:评估
第一章
-
有几种开放标准和专有方式可以实现对对手能力的更新状态。MITRE 的对抗战术、技术和通用知识(ATT&CK™)是一种广泛使用的网络对手模式框架,反映了对手生命周期的各个阶段和已知攻击目标的平台。 MITRE 开发了三类主要用于确定对手能力的类别——预攻击,面向企业的攻击和攻击移动配置文件。
-
网络威胁情报始于收集大量数据和信息。它包括一系列步骤——建立情报优先框架,协作情报来源,咨询威胁情报专家,然后就解决方案达成结论。
-
几乎每个季度都有几种技术在门口敲响,然而,了解特定技术的有效性和目的非常重要,然后才能给予机会。 安全利益相关者应参加一些私人安全会议和知名公共论坛,包括 RSA 会议,黑帽子会议,DEFCON 黑客大会,云安全博览会,SANS 峰会,Infosecurity 欧洲,世界网络安全大会,Infosec 世界,国际网络安全会议等等。 首席信息安全官和首席安全官也应考虑加入一些独立的安全研究公司,如 Gartner 和 Forrester。
第二章
-
零信任方法要求完全了解网络的可见性和控制。 进行评估和内部网络审计需要花费大量人力资源。 在考虑零信任方法之前,必须充分了解网络渠道,漏洞,第三方渠道,业务合作伙伴网络,DMZ 等概念。 大多数组织倾向于使用大多数应用程序和网络设备的默认设置,这也可能成为部署高效零信任方法的问题。
-
采取违反假设的方法有助于组织为数据泄漏条件做好准备,以便可以规划更好的网络防御计划。 违反假设的思维模式要求持续进行网络和应用程序监视,并增加一层事件响应计划。 重要的是要区分正常流量和异常流量,并对每个数据集应用适当的策略和响应。 必须小心和准确地执行整个过程,因为一个小错误可能会扰乱整个方法。
-
互联网从未被建立用于金融系统和关键资产转移。然而,由于高度依赖互联网,组织现在不断增加新的安全层来保护关键基础设施。几乎所有的商业应用程序都在客户端-服务器框架上运行,以支持现有的 TCP/IP 互联网堆栈;从集中式数据库迁移需要高度的互操作性支持和行业接受度。
第三章
-
不,它不能用于商业应用,因为应用程序需要根据多个要求进行编程。比特币区块链构建为具有严格的性质,这使得它不适用于商业应用。
-
以太坊的未来取决于其行业适应性,然后是以太币。虽然在当前情况下,以太坊市场看起来并不那么稳定,但它有潜力在市场上蓬勃发展,成为长期的商业机会。以太坊的创始人正在多种方式上改进现有的共识,并使其成为更节能的挖掘以太币的解决方案。
第四章
-
不,IBM 和 Linux 基金会专注于为企业构建私有区块链环境。 Hyperledger Fabric 旨在为具有已知身份的许可网络提供更好的框架。
-
虽然已经发布了几个用例来连接区块链与传统数据库,但都没有一个经过验证的框架。
第五章
-
由于 Hyperledger Fabric 建立在相同的分布式分类帐系统上,它具有与区块链类似的特性和属性。 Hyperledger Fabric 甚至更加安全可靠,适用于商业应用。它通过其许可数据库结构满足了所有 CIA 安全三元条件。
-
为了实现 dApp 的高可用性,重要的是在仍然使用传统的 JavaScript、HTML 编程语言的前端开发上进行工作。
第六章
-
密码学密钥管理是任何组织的最关键目标。员工使用硬件安全模块(HSMs)来签署较低数量的文档或代码,认证到 VPN 或任何其他网络。 HSM 也可以 API 并支持自动化工作流程。其次,物理不可克隆函数(PUF)技术是密钥保护的一次范式转变。借助这项技术,密钥可以直接从芯片的 SRAM 存储器的独特物理属性中派生出来。
-
总部位于阿姆斯特丹的软件安全公司 Guardtime 推出了无密钥签名基础设施(KSI)技术来改变 PKI。 KSI 技术使用哈希函数加密,允许仅依赖区块链使用哈希函数的安全性。
第七章
-
是的,以太坊甚至可以用于开发一个多因素身份验证平台,通过编写智能合约来实现。这个智能合约必须被编程连接到几个集成,如生物识别和移动应用程序。
-
为了实现基于短信的两步验证平台,以太坊的智能合约必须编程与短信网关集成以发送一个一次性密码 (OTP) 来进行第二级别的认证。这个 OTP 可以防范中间人攻击 (MITM)。
第八章
-
DNS 隧道是对 DNS 的滥用。域名服务器 (DNS) 被称为互联网上的电话簿等同。与记住长达十二位数的 IP 地址不同,您只需要知道与 IP 地址相关联的域名。DNS 隧道试图劫持该协议,将其用作隐秘通信协议或数据外泄手段。这是一个被广泛忽视的安全威胁。
-
是的,可以实现。Emercoin 在区块链上构建了完整的 DNS 解决方案,其中 EmеrСоіn 是基于流行虚拟货币 Peercoin 的平台。有些 DNS 功能也是从 Namecoin 分叉出来的。该系统使用第二代股权证明 (PoS) 算法。这就可以在没有挖矿的情况下运行。这使得 EmerCoin 对 51%攻击更加环保和更加抵抗。将发行总计十亿 EMCs。
第九章
-
最近的研究发现,与上一季度相比,2017 年第一季度大于 10 Gbps 的大规模 DDoS 攻击增加了 55%。DDoS 专家预测,先进的容量攻击在不久的将来将变得更加普遍。越来越多地使用暗网市场和开源软件平台使得 DDoS 成为频繁发生的事件,大量物联网设备,如连接的冰箱或其他智能设备,安全性很低且很容易被卷入这样的攻击。攻击者利用 DDoS 作为一种工具来使他们不喜欢的事物下线,而这些工具在互联网上是免费提供的。
-
尽管没有完美的答案,但有几项措施可以阻止 DDoS 攻击。一个去中心化的平台允许用户出租他们的带宽,然后可以汇集起来以实现大规模数据处理,极大降低 DDoS 成功的风险。
第十章
-
最有效和流行的决策路径是由 IBM 开发的。这有助于组织决定适当的区块链模型。这包括减少成本方法、提高可发现性等多个因素。
-
区块链面临的最大挑战是行业意识。尽管有几家初创公司正在开发具有区块链的创新产品,但仍然很难确定其有效性。Linux 基金会提出了与行业领袖合作开发面向企业的开源区块链平台的重大举措,并将该项目命名为 Hyperledger。Hyperledger 项目可以成为建立区块链技术快速增长的推动因素。