黑客攻防技术宝典|黑客攻防技术宝典小白能看吗( 五 )


养成好的编程习惯 , 对象delete后 , 指针及时置空 。
重点关注:C/C++工程师
HOOKHOOK原意钩子的意思 , 在计算机编程中时常用到 , 用来改变原有程序执行流程 。
黑客攻防技术宝典|黑客攻防技术宝典小白能看吗


在那个互联网充斥着流氓软件的年代 , 流行着一种键盘记录器的木马 , 用于记录用户键盘的输入 , 从而盗取密码 , 这其中QQ曾经是重灾区 。
黑客攻防技术宝典|黑客攻防技术宝典小白能看吗


而实现这一功能的技术就是用到了HOOK技术 , 钩到了键盘敲击的事件消息 。
除了消息HOOK , 用得更多的是程序执行流程层面的HOOK 。恶意代码被注入目标程序后 , 在函数入口处添加跳转指令 , 导致执行到此处的线程转而执行攻击者的代码 , 实现修改参数、过滤参数的目的 。
黑客攻防技术宝典|黑客攻防技术宝典小白能看吗


HOOK技术不仅为黑客使用 , 安全软件用的更多 , 安全软件需要守护整个系统的安全防线 , 通过HOOK技术在各处敏感API处设立检查 , 从而抵御非法调用攻击行为 。
黑客攻防技术宝典|黑客攻防技术宝典小白能看吗


另外 , 软件补丁技术中也时常用到HOOK技术 , 软件厂商发现原来程序漏洞后 , 通过HOOK , 修改既有程序的执行逻辑 , 从而达到修复漏洞的目的 。
重点关注:C/C++工程师
权限提升现代操作系统都对运行于其中的进程、线程提供了权限管理 , 因为安全攻击无可避免 , 而权限的限制作为一道颇为有效的屏障将程序被攻击后的影响减少到最小 。
换句话说 , 即便我们的程序因为漏洞原因被攻击执行了恶意代码 , 但因为操作系统的权限控制 , 恶意代码能干的事情也有限 。
黑客攻防技术宝典|黑客攻防技术宝典小白能看吗


就像一枚硬币总有两个面 , 有权限限制 , 自然而然就有权限提升 。攻击者想要做更多事情 , 就得突破操作系统的限制 , 获取更高的权限 。
在Windows上 , 经常叫获得管理员权限 。
在Linux上 , 经常叫获得Root权限 , 手机Root也是这个意思 。
在iOS上 , 经常叫“越狱” 。
黑客攻防技术宝典|黑客攻防技术宝典小白能看吗


权限提升的方式五花八门 , 总体来说 , 程序执行的时候 , 所属进程/线程拥有一个安全令牌 , 用以标识其安全等级 , 在访问资源和执行动作的时候由操作系统内核审核 。
权限提升的目标就是将这个安全令牌更改为高等级的令牌 , 使其在后续访问敏感资源和执行敏感动作时 , 凭借该令牌可以通过系统的安全审核 。
黑客攻防技术宝典|黑客攻防技术宝典小白能看吗


而更改这个安全令牌的惯用伎俩便是利用操作系统内核漏洞(如前面所述的栈溢出、整数溢出、释放后使用等)执行攻击者的代码 , 实现安全令牌的篡改 。
重点关注:安全工程师
可信计算安全攻击无处不在 , 不仅应用程序的环境不可靠 , 甚至连操作系统内核的环境也充满了风险 。
如果一段程序(比如支付)必须在一个极度绝密的环境下执行 , 该怎么办?
黑客攻防技术宝典|黑客攻防技术宝典小白能看吗


可信计算的概念被安全研究者提了出来 , 根据百科的解释:

可信计算/可信用计算(Trusted Computing , TC)是一项由可信计算组(可信计算集群 , 前称为TCPA)推动和开发的技术 。可信计算是在计算和通信系统中广泛使用基于硬件安全模块支持下的可信计算平台 , 以提高系统整体的安全性 [1]。签注密钥是一个2048位的RSA公共和私有密钥对 , 它在芯片出厂时随机生成并且不能改变 。这个私有密钥永远在芯片里 , 而公共密钥用来认证及加密发送到该芯片的敏感数据 。
可信计算中一个非常重要的概念是可信执行环境TEE(Trusted Execution Environment) , 简单来说就是在现有的计算机内部的世界里 , 再构建一个秘密基地 , 专门用于运行极度机密的程序 。该秘密基地甚至连操作系统都轻易无法访问 , 更别说操作系统之上的应用程序了 。