洛克希德·马丁定义的“杀伤链”

洛克希德·马丁定义的“杀伤链”

信息安全专家来说,用洛克希德-马丁公司的网络杀伤链(Kill Chain,也称网络攻击生命周期)来识别和防止入侵的方法可能并不陌生。然而,**攻击者始终在改进攻击手段,这可能要求企业重新审视网络杀伤链。**本文将回顾杀伤链模型对网络安全的意义,以及怎样在今天的威胁环境中使用它。

什么是网络杀伤链?

“杀伤链”这个概念源自军事领域,它是一个描述攻击环节的六阶段模型,该理论也可以用来反制此类攻击(即反杀伤链)。杀伤链共有“发现-定位-跟踪-瞄准-打击-达成目标”六个环节

  1. 侦察跟踪(攻击者搜索目标的弱点,如钓鱼网站等收集信息资料)
    • 漏洞探测
    • BGP查询
    • 资产扫描
    • 代码搜索
    • 关键人物识别
    • 防护能力识别
  2. 武器构建(使用漏洞和后门制作可发送的载体)
    • 防护规则测试
    • 木马免杀
    • 钓鱼平台
    • 分布式爆破
    • 验证码识别
    • CC服务器
    • 远控开发
  3. 载荷投递(将网络武器包向目标投递)
    • 应用交互
    • 钓鱼邮件
    • 供应链投毒
    • 接入办公区
    • 信任网络投递
  4. 漏洞利用(在受害者的系统上运行利用代码)
    • 口令破解
    • 漏洞利用
    • 信息重复利用
    • 认证绕过
    • 门静破坏
  5. 安装植入(在目标位置安装恶意软件)
    • 写入木马
    • 隐藏文件
    • 隐藏进程
    • 自启动
    • 制作凭证
  6. cc通信(为攻击者建立可远程控制目标系统的路径)
    • 端口复用
    • 前置代理
    • 自定义协议
    • 通信加密
    • udp协议
  7. 目标达成
    • 目标搜素
    • 数据操作
    • 业务控制
    • 数据传输

需要牢记的点是:**在越早的杀伤链环节阻止攻击,修复的成本和时间损耗就越低。**如果攻击直到进入网络环境才被阻止,那么企业就不得不修理设备并核验泄露的信息

参考转载
https://www.aqniu.com/news-views/29381.html

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是Java代码实现: ```java import java.util.ArrayList; import java.util.Comparator; import java.util.List; import java.util.Random; import java.util.stream.Collectors; public class HeroGame { public static void main(String[] args) { // 创建10位英雄 List<Hero> heroes = new ArrayList<>(); Random random = new Random(); for (int i = 1; i <= 10; i++) { String name = "Hero" + i; int hp = random.nextInt(1001); int damage = random.nextInt(101); Hero hero = new Hero(name, hp, damage); heroes.add(hero); } System.out.println("所有英雄信息:"); heroes.forEach(System.out::println); // 传统方式过滤筛选英雄 System.out.println("传统方式过滤筛选生命值大于300,杀伤力小于50的英雄:"); List<Hero> traditionalFilterHeroes = new ArrayList<>(); for (Hero hero : heroes) { if (hero.getHp() > 300 && hero.getDamage() < 50) { traditionalFilterHeroes.add(hero); } } traditionalFilterHeroes.forEach(System.out::println); // 聚合操作方式过滤筛选英雄 System.out.println("聚合操作方式过滤筛选生命值大于300,杀伤力小于50的英雄:"); List<Hero> streamFilterHeroes = heroes.stream() .filter(hero -> hero.getHp() > 300 && hero.getDamage() < 50) .collect(Collectors.toList()); streamFilterHeroes.forEach(System.out::println); // 按生命值由小到大排序,并收集前五名英雄名字到数组中 System.out.println("按生命值排序并收集前五名英雄名字:"); String[] topFiveHeroes = heroes.stream() .sorted(Comparator.comparingInt(Hero::getHp)) .limit(5) .map(Hero::getName) .toArray(String[]::new); for (String heroName : topFiveHeroes) { System.out.println(heroName); } } static class Hero { private String name; private int hp; private int damage; public Hero(String name, int hp, int damage) { this.name = name; this.hp = hp; this.damage = damage; } public String getName() { return name; } public int getHp() { return hp; } public int getDamage() { return damage; } @Override public String toString() { return "Hero{" + "name='" + name + '\'' + ", hp=" + hp + ", damage=" + damage + '}'; } } } ``` 输出结果如下: ``` 所有英雄信息: Hero{name='Hero1', hp=27, damage=1} Hero{name='Hero2', hp=416, damage=82} Hero{name='Hero3', hp=740, damage=21} Hero{name='Hero4', hp=32, damage=92} Hero{name='Hero5', hp=883, damage=34} Hero{name='Hero6', hp=676, damage=78} Hero{name='Hero7', hp=294, damage=68} Hero{name='Hero8', hp=698, damage=12} Hero{name='Hero9', hp=777, damage=89} Hero{name='Hero10', hp=843, damage=61} 传统方式过滤筛选生命值大于300,杀伤力小于50的英雄: Hero{name='Hero3', hp=740, damage=21} Hero{name='Hero7', hp=294, damage=68} 聚合操作方式过滤筛选生命值大于300,杀伤力小于50的英雄: Hero{name='Hero3', hp=740, damage=21} Hero{name='Hero7', hp=294, damage=68} 按生命值排序并收集前五名英雄名字: Hero1 Hero4 Hero7 Hero2 Hero6 ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值