无题
PPT1 基本概念与常见攻击方式
网络安全的基本概念
网络安全中(最重要)的三个基础概念(three basic concepts): 这三个概念被缩写为CIA
- Confidentiality(保密性):to prevent the unauthorized access/sharing of data(避免未授权地访问/分享数据)
- Integrity(完整性):data must not be changed by unauthorized people (数据无法被未授权的人更改)
- Availability(可用性):information should be consistently and readily accessible for authorized parties. (数据应当可以被授权的人使用)
CIA需要在:Processing(处理)、Storage(存储)、Transmission(传输)场景下被保护。
为了维护CIA,需要Policy and procedure(政策)、Technology(技术)、Awareness, training and education (意识)

实现网络安全的三个参与实体:
- Products(产品):围绕设备、数据中心等产品的安全
- People(人员):实施并正确使用安全产品的人
- Procedures(操作流程):由组织制定的计划和政策,让人正确使用安全产品
网络安全术语
- Authentication(认证):确保通信实体是其所声称的。
- Access Control(访问控制):防止未授权的资源被使用。
- Data Confidentiality(数据保密性):防止数据避免未经授权的披露(disclosure)。
- Data Integrity(数据完整性):确保收到的数据是被授权的实体发送。
- Non-repudiation(不可否认性):防止通信一方否认其行为或参与。
- Availability(可用性):确保资源对授权用户始终可访问和可用。
- Security Mechanism(安全机制):用于检测、防止或从安全攻击中恢复的功能。
常见网络攻击
常见网络攻击有:
- 恶意软件(Malware)
- 拒绝服务攻击(Denial of Service)
- 社会工程攻击(Social Engineering)
- SQL注入攻击(SQL Injection)
- 中间人攻击(Man in the Middle)
- 密码攻击(Password)
- 加密货币劫持(Crypto Jacking)
恶意软件(Malware)
- Virus/Worm(病毒/蠕虫)病毒是一种恶意程序,会自我复制并感染计算机,但它需要依附宿主程序传播;而蠕虫自己就是完整程序不需要宿主即可传播。
- 病毒需要宿主,蠕虫不需要
- 病毒主要通过U盘、文件共享程序、恶意网站下载程序、社交网站等传播
- 病毒和蠕虫的有效载荷(payload)指造成破坏的代码片段
- Logic Bomb(逻辑炸弹):类似病毒,在特定条件触发时执行恶意行为,例如愚人节、特定日期或事件。
- Botnet(僵尸网络):由多个被感染的“僵尸”计算机组成的网络,受控于攻击者,用于发动拒绝服务攻击或发送垃圾邮件(spam)。
- Trojan(木马):伪装成合法软件诱骗用户安装,实际执行恶意操作。例如:安装广告软件、键盘记录器、后门程序。
- Ransomware(勒索软件):锁定用户关键系统或数据,要求支付赎金才能恢复访问。
- Spyware(间谍软件):根据用户活动展示广告内容,暗中收集用户信息。
- Adware(广告软件):在用户设备上显示广告,通常与其他软件捆绑安装。
- Rootkit(根套件):一组协助其他程序控制系统,并隐藏恶意软件行为的程序,使攻击者能持续控制设备而不被发现。
如何预防恶意软件:
- 用杀毒软件(antivirus software)
- 用防火墙(Firewall)(Windows和Mac OS都自带)
- 不点可疑连接(suspicious links)
- 定期更新系统和浏览器(update)
社会工程学攻击(Social Engineering)
定义: 通过操纵人们,使得他们最终提供机密信息。(It is the art of manipulating people so that they end up giving their confidential information)
网络钓鱼(Phishing)是最常见的社工攻击之一。攻击者伪装成可信的联系人,向受害者发送伪造的电子邮件。
网络钓鱼可以细分为:
- 特定目标钓鱼攻击(Spear Phishing Attack):对某个人或某一群人针对性地发邮件钓鱼
- 鲸鱼钓鱼攻击(Whaling Phishing Attack):经过精心设计,专门针对公司中关键人员进行攻击;通常假冒公司中的高管,向同事索要信息。
如何防范钓鱼攻击:
- 仔细检查邮件,通常钓鱼邮件有拼写错误或格式变化(Scrutinize the emails you receive. Most phishing emails have significant errors like spelling mistakes and format changes from that of legitimate sources.)
- 使用反钓鱼工具栏(Make use of an anti-phishing toolbar.)
- 定期更新密码(Update your passwords regularly.)
- 定期员工培训(Conduct regular employee training.)
- 保持安全补丁和更新的最新状态(Stay up-to-date with security patches and updates.)
密码攻击(Password)
定义:黑客通过各种密码破解工具来非法破解密码(It is a form of attack wherein a hacker cracks your password with various programs and password cracking tools like Aircrack, Cain, Abel, John the Ripper, Hashcat, etc., for illegal use.)
密码攻击的方式有:
- Dictionary attack(字典攻击):尝试字典中所有可能的密码
- Brute force(暴力破解):尝试所有的密码组合直到正确的被找到( tries all possible combinations of a password until the correct one is found.)有$字符集^{密码长度}$种不同组合。破解时间为$\frac{Combinations}{Spped\ of \ attempts}$
- Keylogger(键盘记录器):记录键盘输入来获取密码。
- shoulder surfing(肩窥):从别人后面偷看(包含直接观察或隐蔽监视)
- Rainbow table(彩虹表):通过哈希表来把用户的密文密码查找为明文密码,从而获取密码
例题:计算密码被暴力破解的时间
假设有95个 ASCII字符作为字符集,密码有10个字符长度,枚举器可以进行$6.4\times10^6$次尝试每秒
如何防范密码攻击:
- 使用包含特殊字符的强大字母数字密码(Use strong alphanumeric passwords with special characters)
- 避免在多个网站或账户中使用相同密码(Refrain from using the same password for multiple websites or accounts.)
- 定期更新密码,建议90天(Update your passwords (advisable to changed it every 90 days); this will limit your exposure to a password attack.)
- 不要将任何密码提示公开放置(Do not have any password hints in the open.)
中间人攻击(Man in the Middle,MITM)
定义:中间人攻击(MITM attack)又称窃听攻击(eavesdropping attack)。黑客在劫持双方通信的对话。
如何防范中间人攻击:
- 注意网站的安全性(Be mindful of the security of the website)
- 使用加密(Use encryption on your devices.)
- 避免使用公共WIFI(Refrain from using public Wi-Fi networks.)
SQL 注入攻击(SQL Injection)
定义:在数据库驱动的网站上,黑客通过在可输入的框内注入SQL相关恶意代码并执行进行SQL注入攻击。SQL注入攻击黑客可以查看、编辑和删除数据库中的表,也可以获得管理权限。(A Structured Query Language (SQL) injection attack occurs on a database driven website when the hacker manipulates a standard SQL query.)
如何防止SQL注入攻击
- 使用入侵检测系统(Use an Intrusion detection system, as they are designed to detect unauthorized access to a network.)
- 对用户提供的数据(输入)进行验证,以控制用户的输入是正常的。(Carry out a validation of the user-supplied data. With a validation process, it keeps the user input in check.)
拒绝服务攻击(Denial of Service Attack)
定义:拒绝服务攻击(Denial-of-Service ,DoS)指攻击者针对系统、服务器或网络发送大量流量,以耗尽其带宽或导致系统崩溃。(attackers target systems, servers, or networks and flood them with traffic to exhaust their resources and bandwidth or crashes their system)
当DOS攻击发生时,由于服务器负载被攻击充满了,因此正常的服务请求得不到响应。这最终会导致网站要么关闭,要么变慢。
根据攻击设备的分布,DOS攻击可以分为:
- 简单DOS攻击(Simple Dos Attack):由一个设备朝着目标主机一直发送消息。
- 分布式DOS攻击(Distributed Dos Attack, DDOS):由多个受感染的设备一起朝目标主机发消息。
DOS攻击根据作用对象,可以分为:
- 针对流量的攻击(Volume Based Attacks)
- 针对协议的攻击( Protocol Attacks)
- 针对应用层的攻击(Application Layer Attacks)
1. 经典DOS攻击(Ping ICMP 攻击)
这是最简单和经典的攻击,属于流量攻击,通过对目标主机发送大量的ICMP ping 请求来实现,被称为Ping of Death。它需要攻击者位于较高容量的链路中,这样才可以填满目标主机的带宽。
由于ICMP请求包含攻击者IP地址。这类攻击者的来源很容易被识别,进而被法律制裁;而且目标系统也会尝试相应ICMP包,相当于回ping回来了。(Source of flood traffic easily identified. Since its address is used as the source address in the ICMP echo request packets.)
由于这个问题,通常使用假的IP地址(Spoofed address)进行攻击。从前是使用虚假的IP地址并进行伪装;现在通常是使用大规模的僵尸网络,不伪装直接进行攻击。
大多数1998年之后制造的设备都能防御PoD
防御Ping攻击的方法有:
- 限速(Rate limiting):限制每秒ICMP的响应次数
- ICMP洪水检测(ICMP flood detection):防火墙检测到高流量并组织
- 防火墙/访问控制列表(Firewalls/ACLs):丢弃不受信的ICMP包
- 入侵检测(Intrusion Detection):检查异常的ICMP流量
- 云DOS防护(Cloud Dos Protection):使用WAS Shield、 Cloudflare等服务,只将合法流量转发给目标服务器。
例题:需要多少个数据包?
假设一个数据包是500Bytes,那么:
对于1.5M的宽带,需要$1.5\times10^6/(500\times8)=375 packs/sec$
对于2M的宽带,需要$2\times10^6/(500\times8)=375 packs/sec$
2. 基于协议的DDOS攻击
这种攻击主要针对网络层。包含Ping of Death、SYN floods DDoS等。
针对SYN floods,其作用于TCP三次握手:
- 攻击者朝着目标服务器发送大量SYN数据包来发起TCP连接
- 服务器随后对每个请求进行响应,并开放一个端口以接收回应。
- 服务器等待第三次握手的ACK时,攻击者会在此期间发送更多SYN
- 每一个新的SYN包都会占用一个端口一段时间,直到所有端口被占用,服务器就无法正常工作。
3. 应用层 DDOS
针对HTTP这样的应用层协议,旨在使用大量HTTP请求淹没服务器,使得它饱和。
典型的是HTTP GET/Post 攻击:多个计算机或其他设备被协调以发送/请求大量的图像、文件或其他资产的请求,直到目标服务器的容量被饱和。
4. DNS DDOS
攻击者向特定域名的DNS服务器发送大量请求来干扰该域名的DNS解析
如何防范DDOS
- 进行流量分析,识别恶意流量。(Run a traffic analysis to identify malicious traffic.)
- 识别警示信号,如网络变慢、网站间歇性关闭等。在此类情况下,组织应立即采取必要措施。(Understand the warning signs like network slowdown, intermittent website shutdowns, etc. At such times, the organization must take the necessary steps without delay.)
- 制定事件响应计划,准备清单,确保您的团队和数据中心可以应对DDoS攻击。(Formulate an incident response plan, have a checklist and make sure your team and data centre can handle a DDoS attack.)
- 将DDoS防护外包给基于云的服务提供商(如Cloudflare、NETSCOUT等)。(Outsource DDoS prevention to cloud-based service providers (Cloudflare, NETSCOUT, Akamai, AWS, etc.)
加密劫持(Crypto jacking)
是一种未经授权的利用计算机资源进行加密货币挖掘的攻击方式。攻击者会在目标计算机上偷偷运行加密货币挖掘程序,从而利用受害者的计算能力和电力来赚取加密货币。
恶意程序在后台运行,唯一迹象可能是计算机性能下降。
防范加密劫持:
- 更新软件
- 增强员工意识(awareness training for the employees)
- 安装广告拦截器(广告是加密劫持脚本主要来源之一)
- 装防挖矿插件(extensions like MinerBlock)
网络的内部威胁(Insider threat)
内部威胁在小型企业中尤其普遍,因为这些企业的员工往往能够访问多个含有数据的账户。这种攻击的原因有很多,可能是贪婪、恶意或甚至是疏忽。内部威胁难以预测,因此也很棘手。
防范措施:
- 建立良好的安全意识文化: 组织应推广和维持良好的安全意识文化,以提高员工对潜在威胁的认识。
- 限制IT资源访问: 根据员工的职位角色,限制他们对IT资源的访问权限,确保他们仅能访问与其工作相关的数据和系统。
- 培训员工识别内部威胁: 对员工进行培训,帮助他们识别和应对内部威胁,提升其安全防范意识。
黑客的分类与动机
分类:
- 白帽(White Hat):也称为道德黑客(ethical hackers),帮助公司清除病毒或进行渗透测试。
- 黑帽(Black Hat):偷钱偷信用卡信息的人
- 灰帽(Gray Hat):利用计算机安全漏洞引起所有人的注意
- 脚本小子(Script Kiddies):正在学习练习的黑客
- Hacktivist:是“Hacker(黑客)”与“Activist(激进分子/行动主义者)”的结合词,指的是通过黑客技术进行政治或社会抗议的人。他们通常以数字攻击手段来表达理念、揭露问题或对抗权力结构。
动机:
- 政府资助的黑客:网络战争、网络恐怖主义、间谍活动
- 工业间谍黑客:盗取公司机密、公开信息收集和情报分析、商业间谍
- 精英黑客:发现并公开漏洞、通过挑战展示技术、通过漏洞获得金钱
- 脚本小子:获得尊重
- 内部人员:复仇