故障攻击(精选4篇)
故障攻击 篇1
0引言
随着计算 机技术的 发展 、社会信息 化程度的 不断提高 , 安全问题 越来越受 到人们的 广泛重现 , 因此各种 形式的专 用密码电 路和密码 算法处理 器被广泛 地应用于 各类产品 中 。 分组密码 算法是一 种最常用 的加密手 段 , 具有速度 快 、易于标准 化和便于 软硬件实 现等特点 。 目前比较 流行的分 组密码算 法有DES算法 、AES算法等 , 其中DES[1]是目前使 用非常广 泛的数据 加密方法 , 它于1977年被美国 国家标准 局作为第46号联邦信 息处理标 准而采用 。
传统的密 码分析方 法是采用 数学的分 析手段 。 近年来随 着测量分 析方法的 进步 ,各种分析 攻击方法 也不断发 展 ,差分功耗 攻击和故 障攻击是 具有代表 性且对智 能卡芯片 威胁性较 强的两种 攻击方法 。 差分功耗 攻击是1998年由Paul Kocher等[2]提出 , 它利用了 密码设备 运行期间 泄露的侧 信息与密 码算法的 中间值有 一定的相 关性 , 通过多次 测量侧信 息后进行 统计分析 , 进而获得 密钥信息 。 故障攻击 的基本原 理是将密 码芯片置 于强磁场 中 , 或者改变 芯片的电 源电压 、 工作频率 、 温度等 , 使密码芯 片中的寄 存器 、存储器在 加解密过 程中产生 随机错误 , 某些输出 比特从原 来的0变成1或1变成0。 通过对正 确密文输 出和错误 密文输出 的比较 ,经过理论 分析得到 芯片内部 的秘密数 据信息 。
国内外对 于差分功 耗攻击和 故障攻击 防御方面 的研究和 技术方法 也不断涌 现 ,防御差分 功耗攻击 的方法包 括 : 随机掩码 、 动态双轨 电路技术 、 随机伪操 作等 , 防御故障 攻击的方 法主要包 括对相同 的数据计 算多次后 比较运算 结果是否 一致 。 但有的防 御方法往 往会增加 实现代价 ,而计算多 次比较运 算结果又 会降低算 法运算效 率 。 本文以DES算法为例 ,提出了分 组密码算 法的一种 有效防护 方法 , 可以同时 抵御差分 功耗攻击 和故障攻 击 。 采用流水 线技术同 一时钟周 期内有不 同的轮运 算操作叠 加 , 增加了正 常加解密 运算的噪 声 , 可以抵抗 侧信道攻 击 , 同一明文 依次进入 不同级的 流水线进 行运算 , 最后比较 运算结果 是否一致 ,可以抗故 障攻击 。 通过对电路 的仿真和 分析 ,验证了其 良好的抗 攻击性能 。
1DES差分功耗分析及故障攻击
DES是一个分组算法 , 使用长度 为56 bit的密钥加 密长度为64 bit的明文 ,获得长度 为64 bit的密文 。 它的加密 过程如下 :
( 1 ) 给定明文m , 对m进行一个 固定的初 始IP置换 。
( 2 ) 然后进行16轮完全相 同的运算 , 将数据与 密钥相结 合 。 在16轮操作的 每一轮中 ,DES都会进行8次S盒查表操 作 。 这S盒的输入 为6 bit的密钥与E扩展后的6 bit R寄存器的 异或值 , 输出为4 bit。 32 bit的S盒输出经 过P置换 , 然后与L寄存器的 值进行异 或 , 接着将L和R的值进行 交换 。
( 3 ) 进行初始 置换的逆 置换 , 得到密文 。 具体过程 如图1所示 。
1.1差分功耗分析
目前绝大 多数集成 电路均采 用CMOS工艺制作 , CMOS门级电路 的功耗模 型[3]为 :
其中Pswitch为逻辑门 翻转引起 负载电容 充放电导 致的功耗 ;Pshort_circuit为短路电 流导致的 功耗 ;Pleakage为泄漏电 流导致的 功耗 。 其中Pswitch是电路功 耗的主要 部分 ,功耗
大小与逻 辑门是否 翻转有密 切关系 ,因此电路 中运算数 据的0、1状态与电 路的功耗 必然具有 一定的相 关性 ,这个特性 是DPA攻击的物 理基础 。
以DES算法为例 ,DPA攻击的主 要步骤如 下 :
( 1 ) 随机生成 大量明文 , 加密这些 明文并记 录下加密 操作时的 功耗曲线 。
( 2 ) 关注第一 轮第一个S盒输出的 第一比特b , 猜测第一 个S盒对应的6 bit密钥 , 并用其与 相应的明 文计算出b。
( 3 ) 根据b的值 , 将能耗曲 线按照b = 0和b = 1分为两类 。
( 4 ) 计算出这 两类的平 均能耗曲 线 , 并将二者 相减求得 差分能耗 曲线 。
( 5 ) 观察步骤 ( 4 ) 生成的能 量曲线 。 若密钥猜 测正确 , 则步骤 (3) 的分组就 是正确的 , 差分能耗 曲线中将 出现明显 的峰值 。 因此攻击 者通过观 察峰值来 判断密钥 的猜测是 否正确 。
( 6 ) 重复步骤 ( 2 ) ~ ( 5 ) , 得到其他 的子密钥 。
这样 , 通过差分 迹中的尖 峰 , 就可以确 定出完整 的48 bit密钥信息 。 再使用穷 举搜索或 继续分析 下一轮等 方法 ,可以很容 易地确定 出剩下的8 bit密钥 。
1.2故障攻击
故障攻击 是通过将 故障引入 到芯片中 , 如改变芯 片的工作 频率或工 作电压 , 使得芯片 工作不正 常 , 从而获得 芯片内部 关键信息 。
Biham和Shamir提出了对DES算法的差分故障分析[4], 该攻击的 基本方法 如下 : 攻击者对 同一明文 加密两次 , 其中一次 正常加密 , 另外一次 在加密的 第15轮运算时 引入故障 ,使得芯片 输出错误 运算结果 。 攻击者通 过记录正 确加密结 果和错误 结果并对 这两个结 果进行数 学分析 ,即可获得 密钥的相 关信息 。
如图2所示 ,攻击者在 第15轮的f函数运算 期间注入 故障 ,则有 :
其中R16′ 和R15′ 分别是R16和R15对应的错 误值 , 通过对上面 的两个等 式两边异 或可以得 到 :
在该等式 中只有K16是未知的 , 通过解方 程即可获 得密钥信 息 。
2DES算法抗差分功耗攻击和故障攻击设计
流水线的 概念在数 字电路中 应用得很 广 , 它是加快 数字电路 的有效手 段 ,在分组密 码算法中 应用得同 样很广泛 , 如DES、AES等分组加 密算法都 有相关的 流水线实 现方案 。
本文通过 把流水线 技术与抗 差分功耗 分析和故 障攻击相 结合 , 同一明文 进入不同 级的流水 线进行运 算 , 其他级流 水线的输 入为随机 数 ,这样在同 一时钟周 期内有不 同的运算 操作叠加 , 增加了正 常运算的 噪声 , 可以抵抗 差分功耗 攻击 ;通过比较 同一明文 的运算结 果是否一 致 , 来检测运 算过程中 是否有故 障注入 , 可以抵抗 故障攻击 。
如图3所示 ,DES算法采用 四级流水 线 , 每级流水 线进行4轮运算 。 图中虚线 部分表示 随机数参 与该级流 水线运算 。
首先产生 所需的随 机数 , 一个随机 数用于确 定这四级 流水线中 哪两级的 输入为真 实的明文P, 两个随机 数作为随 机明文进 入另外两 级流水线 ,两个随机 数分别作 为密钥用 于为两个 随机明文 产生随机 轮密钥 。
这里不妨 假设前两 级流水线 的输入为 真实的明 文 , 后两级输 入为随机 数 。 待真实明 文的两级 流水线运 算完成后 对这两个 密文进行 比较 ,若一致则 说明运算 过程中没 有注入故 障 ,可输出正 确密文 ;否则返回 错误信息 。
当然 , 为增加抗 攻击能力 , 本文的方 法可以与 其他防护 方法相结 合 ,如每一级 的流水线 在实现时 可以引入 随机掩码 ,这样抗差 分功耗攻 击的效果 会更好一 些 。
3实验仿真及分析
以DES算法中轮 输出的寄 存器为攻 击点 ,采用汉明 距离模型 ,通过仿真 实验对本 文防护方 法的有效 性进行验 证 。
对标准的DES算法和本文的防护方法分别进行VLSI设计 ,采样后采 用Riscure公司的Inspector侧信道分 析平台对 其FPGA实现进行 分析 , 结果如图4所示 。 对于标准 的DES算法 , 分析第一 轮中的第 一个S盒 , 当猜测到 密钥为0x00时会出现明显的尖峰,这说明密钥猜测正确 ; 对于本文 的防护方 法 ,当猜测到 密钥仍为0x00时没有出 现明显的 尖峰 ,说明本方 法可以有 效的抵抗 功耗分析 。
4结论
本文以DES算法为例 ,给出了一 种既可以 抵抗差分 功耗分析 ,又可以抵 抗故障攻 击的分组 密码算法 防护方法 , 采用流水 线技术不 仅增加了 正常加解 密运算的 噪声 ,同一明文 依次进入 不同级的 流水线比 较运算结 果是否一致 ,可以抗故 障攻击 。 通过实验 验证 ,本方法可 以有效地 抵抗攻击 。
故障攻击 篇2
关键词:故障攻击,分组校验,互补存储,奇偶校验,汉明码校验
自1996年由Boneh等人[1]提出故障攻击方法由简单故障攻击发展为差分故障攻击、安全故障攻击,攻击的对象包括功能运算单元、存储单元和状态机,已对智能卡、密码器件等专用芯片的安全造成很大威胁。其中,以存储单元为对象建立的故障模型最为常用。Bar-El等人[2]建立向RSA密码算法的私钥存储器中导入单比特故障的模型;Berzati等人[3]通过向模数N中导入故障成功获得RSA密码算法的私钥。如何防护专用芯片中的存储单元,抵抗故障攻击成为专用芯片设计的一个重要方面。付小兵等人[4]利用奇偶校验码对128 bit的寄存器进行故障测验,通过比较输入数据与输出数据中0的个数是否相等来检测故障,这种方法对芯片性能影响较大,实时寄存数据时易造成误判。Ocheretnij等人[5]利用奇偶校验码对ROM实现的S盒进行故障检测,属于固定表形式。Bar-El等人[2]提出复用比较的抗故障攻击方案,但是不能够检测出同步对称故障。
1 存储单元的防护技术背景
在抗故障攻击的芯片设计中,存储单元的常用防护措施是复用检测和奇偶校验码检测。复用检测是指复制存储单元,存储数据时,把数据分别存储在2个或多个存储单元中;读取数据时,把各个存储单元中的数据读出,通过比较读取数据是否一致来检测故障。奇偶校验码检测是指为存储数据添加奇偶校验位,读取数据时,重新计算数据的奇偶位,通过与原校验位比对检测故障。
Ocheretnij等人[5]把S盒设计为8进9出的查找表,附加位是奇偶校验位。在故障监测过程中,计算输入的校验和,并与所有S盒的附加位“异或”,即得经S盒修正的奇偶校验值。在此基础上进一步设计了监测AES轮运算的奇偶校验机制,奇偶校验码原理简单,使用方便,但是只能检测奇数个故障,检测概率低。随着数据位数的增加,只简单的进行奇偶校验编码将降低设计的性能。本文主要针对大数存储器进行设计,但是防护方法同样适用于寄存器、缓存器等存储单元。
2 抗故障攻击的存储单元设计
2.1 互补存储单元设计
复用检测是重要的抗故障攻击设计技术,具有故障检测率高、设计简单的优点。互补存储单元在复用的基础,存储的内容是互反的,同时各自的存储位置也是互反的,其结构如图1所示。
故障检测函数EDF(Error Detection Function)是互补存储器两个输出的函数,函数关系式为:
显然,当输出XA和XA互反时,两者每位的“异或”值恒为1,因此逐位相“与”的值恒为1。当两者不互反时,判决位check值为0,表明存储单元发生故障。互补存储结构避免了简单复用易受同步故障导入的攻击,即向复用存储单元的同一位置同时导入比特翻转故障。
2.2 奇偶校验存储单元设计
根据参考文献[5]对S盒防护的策略,设计“在线”奇偶校验编码的大数存储器。存储单元的每个位置设计存储一个字和一个校验位,即33 bit。存储数据时,数据先输入校验位编码器PDC(Parity Detection Coder),获得输入字的校验位,输入字与校验位合并存储在存储单元的一个位置。读取数据时,输出字和校验位同时输入PDC,计算所读取数据(33 bit)的校验值,获得判决位check,由check检测存储器的故障。奇偶检验存储单元结构如图2所示。
奇偶校验编码过程为逐位“异或”,PDC的输入输出函数为:
输出check=1,表明读取数据与原数据不相符,即发生故障;若check=0,表明存储单元可能无故障发生。奇偶校验码的故障检测范围仅限于奇数个故障位。由于码间的最小距离越大,纠检错能力越强[6]。增加校验位数能够加大码的最小距离,也就能够提高故障检测能力。结合字节故障模型,采取分组奇偶校验方法,把输入字分为4个字节,设置8个奇偶校验位,每个校验位检测4个字节中的一个比特,能够有效抵抗故障攻击。
2.3 汉明码校验存储单元设计
四位监督位的汉明码最小距离为3,它能够纠正一个错误或检测两个错误。汉明码的每组码元中有n位,其中k个信息位,r个监督位,2r≥n+1=k+r+1。
抗故障攻击设计主要关注故障检测能力,不必要求纠正错误。因此需要选择能够检测两个故障的监督矩阵,即矩阵中的任两列的“异或”不等于零。为了防止故障比特连续,需要监督矩阵能够检测连续的故障信息位,即矩阵中的任意相邻若干列(不含监督位)的“异或”不等于零。选取监督位r=4,信息位k=8,组成(12,8)汉明码。选择汉明码的监督矩阵H为:
设码字为C=(D0 D1 D2 D3 D4 D5 D6 D7 P0 P1P2 P3,监督子S=(S3 S2 S1 S0),则监督方程式为HCT=ST,CT、ST分别为C、S的转置,矩阵相乘得监督子,按偶校验关系,校验位应使监督子为零,表示无差错,故得各校验位如下所示:
编码时,按校验关系式计算出P0、P1、P2、P3,置于信息位之后;译码时,用监督矩阵乘以码字,得S值,若S不等于0,则码字中存在故障比特;反之,可能无故障发生。
汉明码的监测范围是8 bit,采用分组汉明码检测的设计方法,把输入字分为4个字节,对每一个字节分别进行汉明编码,共得四组16 bit监督位。为了减小所需存储空间,把四组监督位的对应位分别“异或”,获得一组总监督位(4 bit),并与输入字合并存储在一个地址中。汉明码检测器HDC(Hamming Detection Coder)的设计结构如图3所示。
设:汉明编码函数为P=H(x),x∈[0,28-1],P∈[0,11],P′为存储单元中存储的总监督位,对输入字进行汉明编码后的总监督位和读取数据的校验子、判决位分别为:
表示输入xi的按位“异或”之和,Σx表示输入x的逐位“或”之和。把输入字从高至低分成四个字节,字节序号用上标标识,字节的比特位权值用下标标识。input j表示第j个字节,P′i j为存储字的第j字节、第i位校验位。由于校验位中发生的故障对于攻击者来说是无意义的,不会成为故障攻击的目标,因此重点防护是信息位。对一个字进行分组检测时,假如存储字的第k个字节发生故障,其他字节都无改变,则:
输出check=1,表明存储单元中的某个字节发生故障;若check=0,则可能无故障发生。假如4个字节中发生对称故障时,则check=0,不能正确反映故障发生情况。
3 功能验证与分析
设计实现了抗故障攻击双端口RAM存储器,按字存储,存储深度为32 B。在均衡速度和面积的条件下,Quartus II6.0综合结果如表1所示。
在互补检测、1位奇偶码校验、4位奇偶码校验和汉明码检验防护方案中,互补检测RAM的故障检测概率最高。当奇偶校验位增加时,故障检测概率也会随之增大,以一个字节的故障检测情况进行仿真统计,4位奇偶校验位数的故障检测率是0.937 2,比1位奇偶位的故障检测率提高了80%,但是仅增加了约0.9%的存储负担。权衡两者利弊,4位奇偶校验位检测方案更可取。汉明码的故障检测能力与4位奇偶校验码相同,但是汉明码能够检测单个字节中的两个任意故障和连续发生的故障,故障检测范围更具有针对性,适用于以字节故障为模型的抗故障攻击设计。汉明码检测RAM在Modesim中的仿真波形如图4所示,check是高电平时表示发生故障,单个字节中的连续故障及其他不属于对称故障的多比特故障都能够检测出来。
根据以上分析,存储单元的抗故障攻击设计,适合采用复用或线性校验码的方式实现,不仅具有较高的故障检测概率,而且对设计的性能影响不大。本文提出的互补检测、奇偶码检验和汉明码检验三种抗故障攻击方案具有较广的应用范围,互补存储单元适用于故障检测率要求高和安全级别高的位置,奇偶校验存储单元适用于安全级别较低和随机故障类型,汉明码校验存储器适用于故障发生较集中、连续的场合。而且,同时存储校验位与数据位,实现了实时的故障检测功能,避免了数据存储读取变换时的误判行为。
参考文献
[1]BONEH D,DEMILLO R A,LIPTON R J.On the impor-tance of checking cryptographic protocols for faults,Advances in cryptology-EUROCRYPT′97(W.Fumy,ed.)[J].Lecture Notes in Computer Science,Springer-Verlag,1997(1233):37-51.
[2]HAGAI B E,CHOUKRI H,NACCACHE D,et al.The sorcerer′sapprentice guide to fault attacks[C].CryptologyePrint Archive,2004.
[3]BERZATI A,CANOVASL C,GOUBIN L.Perturbating RSA public keys:An Improved Attack[C].CHES2008,LNCS5154,2008.
[4]付小兵,严迎建,朱巍巍.抗差分故障攻击的AES密码芯片设计[J].电子技术应用,2009,39(5):153-156.
[5]OCHERETNIJ V,KOUZNETSOV G R,KARRI M G.On-line error detection and BIST for the AES encryption algo-rithm with Different S-Box Implementations.IEEE2005.
故障攻击 篇3
随着物联网技术的不断发展, 物联网环境下的数据安全也对物联网技术提出了新的问题和挑战。越来越多的轻量级分组密码算法被提出。在资源受限的环境中, 如何保证有效性的前提下加强现有密码的安全性, 是轻量级分组密码算法所面临的最突出的问题。
随着不同的轻量级分组密码的产生, 针对轻量级分组密码算法的分析方法也相继出现, 主要有差分分析、线性分析、代数分析、故障分析以及这些分析方法的扩展。目前的分析方法不仅推动着轻量级分组密码算法分析理论的发展, 也给其设计提供了一定的依据。
本文对轻量级分组密码算法的故障攻击技术进行了概述和分类, 并在此基础上论述了故障攻击技术的研究现状;针对不同密码算法展开的攻击分析的特点并进行了比较;最后, 对故障攻击技术的发展进行了总结与展望。
2. 故障攻击技术概述
在加密过程中, 通过计算机导入错误信息使其产生故障, 并从中获取密码系统信息的一种密码分析方法, 称为故障攻击方法。首次提出是在1996年, D.Boneh等[1]人利用随机硬件故障攻击公钥密码体制, 成功获取了基于CRT方式实现的RSA签名算法密钥。此后在密码分析方法中, 使用故障攻击方法进行分析的案例越来越多, 其地位也越来越重要。
1997年, E.Biham和A.Shamir[2]针对DES密码算法提出了差分故障攻击方法 (DFA) , 成功破解了DES算法。之后, 密码学家们从不同的方面对密码算法的故障攻击方法进行了分类, 并从性能、效率、攻击难易程度等方面研究, 并应用到多种密码体制中。
故障攻击在发展过程中, 逐步衍生出多种攻击方法, 目前国内外研究学者提出的故障攻击方法中, 主要有两大类型, 分别是差分故障攻击 (Differential Fault Analysis Attacks) 和代数故障攻击 (Algebraic Fault Attacks) 。
2.1 差分故障攻击
差分故障攻击方法是故障攻击的一种主要分析方法, 它最先由E.Biham和A.Shamir针对DES密码提出。之后, 针对AES算法, 2003年C.Giraud[3]首次提出了在两种不同要求的故障模型下, 分别实现了对AES算法的差分故障攻击。2006年, A.Moradi[4]等人在故障模型要求更“弱”的情况下, 提出并实现了差分故障攻击AES算法的新方法。
对SMS4算法的故障攻击, 2006年, 张蕾等[5]人提出了其故障攻击方法;随后, 李玮等[3]人给出了改进的故障攻击结果;同时, 李瑞林[3]等给出了类似SMS4结构的算法一种统一有效的故障攻击方法。
另外, Clavier等[6]人在CT-RSA 2008上完成了对IDEA算法的故障攻击。2009年, 周永彬[7]最先提出了对Camellia算法的故障攻击。2012年, 张金中[8]等提出一种新的故障分析方法, 完成了针对椭圆曲线密码 (ECC) 进行的故障分析。
随着轻量级密码算法的出现, 密码学家们又展开了对一系列轻量级密码算法的差分故障分析。2010年12月, 赵新杰等[11]人给出了MIBS算法及故障分析原理, 基于不同深度的故障模型, 提出了3种针对MIBS差分故障分析方法。2012年3月, 李玮[9]等人提出并讨论了一种针对LED算法的差分故障攻击方法, 对攻击其它轻量级密码算法, 提供了一种通用的分析手段。同年9月, 赵光耀, 李瑞林[10]等人提出并实现了一种针对Piccolo-80算法的差分故障分析方法。
在差分故障分析的基础上, 密码学家先后实现了对AES等分组密码、ECC等公钥密码、LED等轻量级密码的攻击, 证明了差分故障分析的适用性及攻击能力。但同时也暴露出其需要结合具体算法结构来建立故障模型进行密钥推导、分析方法复杂的缺点。为弥补此些不足, Courtois等[11]人率先将故障攻击和代数攻击结合起来, 提出了代数故障攻击。它既克服了代数攻击求解方程组复杂度高的缺陷, 又弥补了手动分析故障差分的繁琐复杂、适用性较差等不足, 提高了攻击的可行性。
2.2 代数故障攻击
代数故障攻击在2010年由N.Courtois[11]提出, 用来攻击DES算法。近年来, 大量的轻量级分组密码算法被广泛提出, 2007年提出的PRESENT[12];2008年提出的PUFFIN[13]算法;2009年提出的MIBS[14];2010年提出的GOST[15]算法;2011年提出的Klein[16]、LED[17]、Piccolo[18]等算法。这一系列轻量级设计、轻量级实现的密码算法, 都具有简单的代数结构, 防护程度受限, 容易遭受故障注入, 因此易遭受代数故障攻击。
继Courtois之后, 许多密码研究学者对代数故障攻击分析方法展开了研究。2011年在Mohamed等人[19]将代数故障分析扩展至Trivium算法, 结果表明仅需2次故障注入对420比特密钥流进行分析即可恢复密钥。在SCC 2012上, Zhao等人[20]和Jovanovic等人[21]对LED分组密码进行代数故障分析, 实现了1次故障注入, 使用普通PC机分析可在1分钟内恢复LED密钥。2012年8月, 吴克辉, 赵新杰等[22]将代数故障攻击应用到PRESENT密码算法, 其攻击所需样本量与同类PRESENT故障攻击相比是最小的。
紧接着, 赵新杰等人又展开了对Piccolo密码算法的代数故障分析研究。2013年, 分别对Piccolo, DES, MIBS, LBlock密码的抗故障攻击安全性进行了评估[23], 发现代数故障分析与传统差分故障分析相比, 具有在线注入故障少, 可离线分析, 且方法简单, 计算资源利用率高, 通用性较好等优势。
3. 总结与展望
故障攻击 篇4
ARP (Address Resolution Protocol,地址解析协议)作为TCP/IP协议栈的网络层,是将目标设备IP地址解析成对应的MAC地址,通过目标设备的IP地址,查询目标设备的MAC地址,并进行通信。所以,ARP是网络协议中涉及网络安全最重要的和最常见的协议之一,比如“ARP欺骗”可以实现的伪造IP地址和MAC地址;而“ARP攻击”则在网络中攻击者迸发大量的ARP通信,持续不断的发出伪造的ARP响应包造成网络通讯阻塞,并能够更改目标主机ARP缓存中的IP-MAC条目造成网络中断。
广播电台的计算机网络即使采用了高可用性结构,配置了主备服务器及路由,但是遇到“ARP攻击”也会造成全网瘫痪的严重后果。
“ARP攻击”对于局域网而言虽然容易发生而且后果很严重,但是,由于电台制播网络均是封闭的内网,通常采取了较为严格的安全措施以防止病毒的感染,实际发生情况并不多见,由于不同于系统设备的“硬故障”那样容易排查,“ARP攻击”属于网络协议层的“软故障”,工程技术人员在故障出现后很容易被误导,造成故障排查时间较长,处理较为困难。今年年中在国内某省级广播电台就发生了一起,其制作播出网络因为遭受ARP攻击出现网络瘫痪。为了更好地阐述在网络维护过程中,如何快速判查网络ARP攻击故障,我们把整个对故障分析和排查解决过程进行了总结,提供给大家参考,以提高网络安全性和网络免疫力,从而满足现代广播电台安全播出的要求。
1 故障描述
2015年8月,国内某省级广播电台计算机音频制作及播出网络发生故障,内网用户访问制播网中得服务器的速度非常慢,甚至不能访问,主、备服务器群聚系统无法正常工作,导致整个电台制播网络不能使用,即使启动单独的备份服务器工作也不正常,严重影响了电台正常的节目生产制作,所幸的是由于播出工作站因有本地备份,采用断网播出确保了故障期间重要广播节目没有停播。
故障发生后,播出系统在播放中出现中断和网络丢失等错误信息,服务器的群集IP会丢失。
2 故障分析
故障出现后在排查开始阶段,初步判断引起问题的原因可能是服务器的群集软件出现问题,造成播出系统制作客户端和播出客户端无法正常运行。并着手进行群集软件故障具体分析排查,发现Windows服务器和群集软件的日志中很多报错信息,把日志信息仔细分析后,问题基本缩小为群集的IP地址设置无法生效,客户端访问失败、播出掉线等问题都是这个问题引起的。通过前期分析,并受到安全播出时间的苛刻要求,力图快速解决,于是多次修改配置,重新启动群集系统,同时按照该存储群集系统厂家给出了几个排查方向进行操作处理,问题均没有得到解决。
在获取网络信息的时候,发现网络已经发生严重阻塞,通过ping的方式访问客户机和服务器,速度非常慢,而且严重丢包,甚至不能访问,在主机房的客户终端和播出站分别使用“arp-a”命令查看ARP缓存信息,结果发现很多IP终端使用了相同的MAC地址。
3 故障排查
首先在电台网络机房进行网络信息的获取,将笔记本电脑连接到电台的中心交换机上,做好端口镜像配置操作,通过网络分析系统捕获约半分钟的网络通讯数据,并分析捕获到的数据包。
如图1,通过详细分析图1中的连接信息发现大多数连接的源地址都是192.168.5.119,即连接都是由IP为192.168.5.X中的主机终端发起的,在网络分析软件主界面左边的节点浏览器中我们还发现,同时在线的IP主机达到了100多台,而电台节目制作播出内网的音频工作站电脑终端约为50多台,因为网络故障和夜间工作时间关系,此时同时在线的最多有20台左右,很明显网络中有大量的伪造IP地址的主机终端,采用伪造的IP地址进行攻击或者进行自动扫描攻击。
点击鼠标右键选中源地址192.168.5.119的任意一个连接,在弹出的菜单中点击“定位浏览器节点”和“端点1 IP”,节点浏览器会自动定位到192.168.5.119主机,这样,就可以通过选择视图图表中“TCP连接子视图项”进行查看192.168.5.119主机的TCP连接情况,如图2所示。
我们知道,采用TCP通讯协议工作时,请求端发起连接需要通过三次“握手”,当请求端向不存在的目的端发起了同步请求时,由于收不到目的端主机的确认回复,就会一直处于请求同步状态,直到超时断开。所以,当我们在网络分析软件界面中选择连接视图,查看图2可以看到,主机192.168.5.119在大约5分钟的时间内发起了2800个“连接”,且其中有2793个“连接”都是初始化连接,也就是大多数都是客户端请求同步的状态,即TCP通讯中三次“握手”的第一步,这表示192.168.5.119主机肯定存在自动扫描攻击。据此,可以更加确定在电台制播网络中存在自动扫描攻击。
通过选择数据包视图查看192.168.5.119传输通讯的数据包信息,其数据包的协议都是CIFS,源地址都是192.168.5.119,数据包的大小都是66字节,而数据包的目标地址则是随机的,目标端口都是445,且查看数据包的TCP标志位,都是同步位置1,所有这些都说明主机192.168.5.119正在主动对网络中的TCP 445端口进行扫描攻击,可以确定故障原因很可能就是192.168.5.119主机感染病毒程序。
最后我们查看该广播电台播出制作网得知该IP网段是192.168.0.X,出现192.168.2.X、92.168.4.X和192.168.5.X等这样的IP地址肯定不是播出制作网段的计算机。所以基本能够确定电台计算机网络故障是该播出网络被接入了其它网络,并被其它网络中带有ARP病毒的计算机攻击了。
4 故障原因
在明确了网路受到ARP攻击以后,电台技术人员开始对整个制播网络系统进行物理排查,通过排查后发现故障原因:广告部在更换防火墙时操作失误将不应接入内网的互联网交换机接入内网,导致可以连接外网的主机通过内网对主服务器(server1和server2)和备服务器(bf)发起了ARP断网攻击,将有欺诈性质的ARP数据包通过内网发送给主备服务器,将多个与192.168.0.-网段内的IP地址所对应的mac地址进行了修改,修改为一个错误的mac地址,导致备服务器(bf)与各频率直播间的的播出电脑之间的网络时常无法连通,也造成启用备用服务器后播出软件频繁死机。由于主服务器(server1和server2)通过群集技术来访问磁盘阵列,而群集是通过产生虚拟IP来管理和访问磁盘阵列的,由于ARP断网攻击将虚拟IP的mac地址进行了错误的修改,导致主服务器(server1和server2)无法通过群集正常的访问磁盘阵列,从而也导致了采用主服务器(server1和server2)时播出软件的死机和无法操作。经调查发现192.168.5.-网段的IP是属于电台西配楼广告部的,因广播广告上单需要,西配楼广告部有一个直接连入内网的交换机,由于其操作人员的疏忽将与外网相连的交换机与电台内网的交换机错误的级联在一起,导致能够访问外网的主机错误的接入了内网,也正是广告部的这台主机发起的ARP攻击造成了这次严重事故。
5 结束语
经过这个事件后,该广播电台根据《GB/T 22039信息安全技术信息系统安全等级保护》基本要求,分别针对制播网、综合业务网,从网络安全(基础网络安全和边界安全)、主机安全(终端系统安全、服务端系统安全)、应用安全、数据安全几个层面对台里的计算机系统进行了相应的安全防护升级和整改,以杜绝相关事件的再次发生。
摘要:ARP攻击是导致局域网瘫痪的常见原因,本文就今年发生在国内某省级广播电台制作播出网络因遭受ARP攻击出现网络瘫痪的真实故障案例,介绍了故障分析、排查解决过程和故障原因,为广播电台的网络安全建维护、如何快速判查网络ARP攻击故障提供了参考。