山东大学系统安全期末大题整理(大三上)

本文介绍了网络安全的相关概念,包括本地和网络登录方法(如公钥+MD5、SSH),存储加密技术(如Bitlocker、EFS、LUKS),访问控制策略,以及针对操作系统、网站系统和手机应用的安全措施。特别强调了内存安全、勒索攻击防范和备份的重要性。
摘要由CSDN通过智能技术生成

虽然说当时背得真的生无可恋,但在一定程度上确实有助于我系统性地理解网络安全相关的知识,所以还是挺感谢这门课给予了我这个很好的机会。

现将当时自己整理的大题形成文档发出来,老师当时只给了这些标题,其余加粗字体都是根据老师上课内容速记的,希望能够帮助以后选修这门课的同学们!

操作系统安全

登录和认证:本地登录(/etc/passwd/shadow 、DES/MD5)

网络登录(公钥+MD5 、 SSH开始时双方互换公钥,两次加密,服务器加密客户机,客户机解密再加密给服务器访问控制、 PKI)

存储加密 :Windows的BLOB对象存储、Bitlocker、EFS加密文件系统

Linux的LUKS技术(加密硬盘分区)、DM(device mapper)

访问控制方法

杀毒:防火墙

OS延伸为网站系统、手机Android

一. 登录和认证:

1.本地登录:

  1. 在Unix/Linux系统中,本地登录的用户信息通常存储在 /etc/passwd 文件中,而密码哈希值则存储在 /etc/shadow 文件中。这样的安排增加了密码信息的安全性,因为 /etc/shadow 文件只对特定用户和管理员可读取。
  2. 使用DES或MD5等算法对密码进行哈希,以增加密码存储的安全性。

2.网络登录:

  1. 公钥+MD5:通过使用非对称加密算法,用户可以使用自己的私钥进行签名,然后服务器使用公钥进行验证。MD5可以用于验证传输过程中数据的完整性。
  2. SSH:通过使用公钥加密技术,SSH在登录时进行公钥交换,确保通信的机密性。
  3. 使用PKI(Public Key Infrastructure)的概念来管理密钥对,确保了密钥的合法性。

二.存储加密:

1.Windows:

  1. Bitlocker: 为整个磁盘提供全磁盘加密,以确保数据在存储介质上的安全性。
  2. EFS(Encrypting File System): 提供对文件和文件夹级别的加密,确保只有授权用户能够访问文件的内容。

2.Linux:

  1. LUKS(Linux Unified Key Setup): 一种用于加密整个硬盘分区的标准。LUKS使用对称密钥加密整个分区,而该密钥则由用户密码派生。
  2. DM(Device Mapper): Linux中的设备映射技术,可以用于创建加密设备,实现对特定区域的数据加密。

三、访问控制方法:

1.基于角色的访问控制(RBAC): 将权限分配给用户的角色,而不是直接分配给用户,从而简化权限管理和提高系统安全性。

2.强制访问控制(MAC): 强制系统对主体(如进程)和客体(如文件)之间的访问进行精确的控制,确保高度的安全性。

3.自主访问控制(DAC): 将访问控制的决定权交给文件或资源的所有者,允许用户自己决定对其资源的访问权限。

————————————————以下是课上补充

四、杀毒

1.Windows防火墙: Windows操作系统内置了防火墙,可管理网络流量,限制进出系统的数据。它可以过滤网络通信,阻止未经授权的访问或恶意数据包进入系统。

2.Linux:SELinux(安全增强型 Linux): SELinux是一种 Linux 内核安全模块,提供了额外的访问控制机制,有助于防止恶意软件的攻击,限制未经授权的访问

五、API

1. Crypto API:

  1. 功能和用途: 加密在操作系统安全中扮演着关键角色,而Crypto API为开发人员提供了加密和解密数据的功能。它支持各种加密算法,密钥生成、管理和交换等安全操作。这些功能可用于保护敏感数据、建立安全通信渠道和验证数据完整性。
  2. 加密算法支持: 这些API通常提供对称加密(如AES,DES)、非对称加密(如RSA,ECC)、哈希函数(如SHA-256,MD5)等多种加密算法的支持。
  3. 安全性保障: 这些API库通过提供标准化、经过验证的加密算法和协议来确保安全性,从而减少了开发人员实现加密功能时的风险。

2. Lib API:

  1. 功能和用途: Lib库是一个通用的术语,代表着各种不同类型的库,提供了广泛的功能,包括安全、数据处理、网络通信等。
  2. 安全功能: 许多Lib库提供了安全相关的功能,比如安全存储、安全传输层等,以帮助开发人员实现安全性强、稳健的应用程序。
  3. 灵活性和可定制性: 这些库通常提供了丰富的选项和配置,使开发人员能够根据特定需求调整和定制安全功能。

网络端系统

网络端操作系统:网络登录方法与本地登录方法

网站系统(web):从泄漏案频发的角度思考

一、网络端操作系统:网络登录方法与本地登录方法

1.网络登录方法:

  1. 身份验证协议: 在网络端系统中,身份验证通常涉及使用协议,如SSH(Secure Shell)或HTTPS(HTTP Secure)。这些协议允许用户通过网络远程连接到服务器。
  2. 公钥加密: 在网络登录中,公钥加密是一种常见的安全机制。通过在客户端和服务器之间交换公钥,可以确保安全地建立连接,并且在整个会话中保持数据的机密性。

2.本地登录方法:

  1. 用户凭证: 本地登录通常涉及使用用户名和密码进行身份验证。用户提供凭证,系统验证这些凭证的有效性,以确定用户是否有权访问系统。
  2. 本地账户管理: 本地登录方法可能涉及本地账户的创建和管理,例如在操作系统中的用户管理工具。这包括为用户分配权限、设置密码策略等。

二、网站系统(Web):从泄漏案频发的角度思考

1.敏感信息加密: 网站系统应该使用加密协议(如TLS/SSL)来保护用户和服务器之间的数据传输。这可以防止中间人攻击,并确保用户输入的敏感信息在传输过程中是加密的。

2.数据泄漏防护: 网站系统应采取措施来防范数据泄漏,包括:

  1. 访问控制: 限制对数据库和其他敏感信息的访问权限,确保只有授权的人员能够访问敏感数据。
  2. 审计日志: 记录系统和用户活动的审计日志,以便及时检测和应对潜在的威胁。
  3. 数据分类: 对于敏感数据,采用分类和标记,以便更有针对性地实施安全控制。
  4. 强化身份验证: 强化用户身份验证,使用多因素身份验证(MFA)等方式提高账户的安全性。这有助于防止未经授权的访问,即使用户的密码被泄漏。
  5. 定期漏洞扫描: 定期进行系统漏洞扫描,确保系统和应用程序没有已知的安全漏洞,及时修复可能存在的问题。

3.Linux系统中,拥有root权限的用户可以对系统进行几乎无限制的操作,包括修改系统文件、安装软件、更改系统配置等。在网站安全中,对root权限的管理是至关重要的,因为滥用这种权限可能导致严重的安全漏洞和系统崩溃。


网络传输

传输加密:VPN PPTP IPSec openUPN 、wireguard、APP:proxy

网络漏洞

一、传输加密:

1.VPN (Virtual Private Network):

  1. PPTP (Point-to-Point Tunneling Protocol): 一种较旧的VPN协议,已经被认为不够安全,容易受到攻击。通常不建议使用,因为它的加密机制相对较弱。
  2. IPSec (Internet Protocol Security): 提供了更强大的加密和认证机制,适用于建立安全的点对点连接。IPSec可用于保护整个通信链路,包括数据加密和身份验证。
  3. OpenVPN: 一种开源的VPN解决方案,支持多种加密算法和身份验证方式。由于其开放源代码和广泛的支持,被认为是一种相对安全的VPN协议。
  4. WireGuard: 一种新兴的VPN协议,被设计为轻量级、高效且安全。它采用了先进的加密算法,同时保持了较低的复杂性,使得其在性能和安全性之间取得了良好的平衡。
  5. APP代理: 一些应用程序级别的代理,如Shadowsocks、V2Ray等,提供了加密的通信通道,可以用于绕过网络审查和保护用户隐私。

二、网络漏洞:

1.漏洞扫描与修复: 定期进行网络漏洞扫描,及时发现系统中可能存在的漏洞。漏洞修复包括及时应用安全补丁、关闭不必要的服务、更新网络设备的固件等。

2.防火墙与入侵检测系统 (IDS): 使用防火墙来监控和控制网络流量,限制不必要的入口。入侵检测系统可以检测和警报潜在的攻击行为,帮助迅速响应网络威胁。

3.安全协议与加密传输: 采用安全协议,如HTTPS(基于TLS/SSL的安全HTTP协议)来保护数据在传输过程中的安全。对于内部通信,使用安全的协议和加密算法保障数据的机密性。


安全漏洞:分析和对抗

内存安全:bof、Rust(代替c语言)、栈安全与临时变量(通过溢出修改)

手机端系统:apk安全、Java安全

一、内存安全:

1.Buffer Overflow (缓冲区溢出):

  1. 漏洞原理: Buffer Overflow是一种常见的安全漏洞,发生在程序试图写入超出预分配缓冲区范围的数据时。攻击者可以通过溢出的数据覆盖相邻内存,执行恶意代码或修改关键数据。
  2. 对抗措施: 使用编程语言和工具来防范缓冲区溢出,如使用Safe C或者Rust语言,以及使用内存安全的编程实践,如输入验证和正确的内存分配。

2.Rust语言代替C语言:

  1. 漏洞原理: C语言的灵活性使得开发者在内存操作时更容易犯错,从而导致内存安全问题。Rust是一种系统编程语言,旨在提供与C语言一样的性能,但通过所有权系统和借用检查来确保内存安全。
  2. 对抗措施: 使用Rust语言能够在编译时检测和防止一些常见的内存安全问题,如空指针引用和数据竞争。

3.栈安全与临时变量溢出修改:

  1. 漏洞原理: 通过栈溢出攻击,攻击者可以修改栈上的临时变量,改变程序的控制流或者执行恶意代码。
  2. 对抗措施: 实施栈保护机制,如使用栈保护工具、随机化栈地址等,以减缓栈溢出攻击的效果。同时,开发时要确保正确处理临时变量,避免溢出漏洞。

二、手机端系统:

1.APK安全:

  1. 漏洞原理: APK是Android应用的安装包格式,其中可能存在恶意代码或者安全漏洞,如不安全的权限配置、未加密的敏感数据等。
  2. 对抗措施: 使用应用签名和应用审核来确保APK的完整性和来源。开发者应采用最小权限原则,仅允许应用访问其正常运行所需的资源。

2.Java安全:

  1. 漏洞原理: Java是一种广泛用于Android应用开发的编程语言,但可能存在安全漏洞,如反序列化漏洞、未受限制的反射等。
  2. 对抗措施: 更新Java运行时环境以获取最新的安全修复。在应用设计中,谨慎使用反序列化和反射功能,并对用户输入进行充分验证以防止潜在的安全问题。

综合对抗:

病毒:狭义上

勒索:勒索病毒如何加密解密、如何避免口令明文被偷走、备份

虚拟

对抗的第0条是备份

公钥比口令的密文更安全

这两句很重要!!!

一、病毒(狭义上):

1.定义:病毒是一种恶意软件,其主要目标是通过感染主机,破坏正常的计算机操作,窃取敏感信息或利用主机资源。

2.对抗方法:使用反病毒软件是最常见的对抗病毒的手段。这些软件通过检测、隔离和删除恶意代码来保护计算机系统。此外,定期更新操作系统和软件,以修补已知的漏洞也是防范病毒的重要步骤。

二、勒索:

1.加密解密:勒索病毒通过加密文件来勒索受害者。对抗这种威胁的方法之一是定期备份数据。如果数据被加密,用户可以还原到之前的备份状态。此外,一些安全软件可以检测和阻止勒索病毒的活动。

2.口令明文保护:防止口令明文被窃取的关键在于采用安全的身份验证方法,如多因素身份验证(MFA)。MFA在口令之外需要额外的身份验证信息,提高了系统的安全性。

3.备份:定期备份数据是对抗勒索的重要措施。在遭受勒索攻击时,可以还原数据而不付赎金。

三、虚拟:

1.虚拟网络安全:在虚拟环境中,安全意味着确保虚拟机和网络的保密性、完整性和可用性。使用虚拟专用网络(VPN)可以加密虚拟机之间的通信,提高数据传输的安全性。

2.虚拟化安全措施:在虚拟环境中,需要注意对虚拟机和宿主机的访问控制。确保只有授权的用户可以访问和管理虚拟资源,防止未经授权的虚拟机启动和运行。


其他:

工具和用法:二进制分析工具、openssh/openssl/openvpn、docker

一. 二进制分析工具:

1.IDA Pro: 用于反汇编和分析二进制文件的专业工具。它允许安全专业人员检查程序的内部结构,理解代码执行路径,并识别可能的安全漏洞。

2.Ghidra: 由美国国家安全局(NSA)开发的开源逆向工程工具,用于进行二进制代码分析。它提供反汇编、反编译和程序分析功能。

3.Radare2: 一个开源框架,用于进行逆向工程和二进制分析。它包含一系列工具,可以用于分析二进制文件、反汇编、调试等任务。

二. 加密通信工具:

1.OpenSSH: 用于通过加密的通信渠道(如SSH协议)安全地访问远程系统的工具。它提供了加密的远程登录、文件传输和命令执行功能。

2.OpenSSL: 提供了开放源代码的SSL/TLS协议的实现,用于加密网络通信。它包括一系列加密算法和工具,用于生成证书、管理密钥、以及实施加密通信。

3.OpenVPN: 一种开源的虚拟专用网络(VPN)解决方案,用于在不安全的网络上建立安全的加密连接。OpenVPN支持多种协议和加密算法,提供了安全、灵活的远程访问解决方案。

三. Docker:

用于创建、部署和运行应用程序的开源平台。Docker容器提供了隔离和轻量级的运行环境,可以加强应用程序的安全性,并简化开发、测试和部署流程。


密码在安全中的应用:

对称加密(1.key重复几次再与明文异或 2.DES SAES SM4三种分组密码3. ECB、CBC)

一、密码的生成方式:

在对称加密中,密钥(key)是加密和解密的关键。对称加密使用相同的密钥进行加密和解密。密码的生成方式可以采用随机生成、密码学安全的伪随机数生成器(PRNG)生成,或者通过密码学协议协商生成。key重复几次再与明文异或。

二、分组密码算法:

1.DES(Data Encryption Standard): DES 是一种对称分组密码算法,使用56位密钥对64位数据块进行加密。然而,由于其密钥较短,已经被认为不够安全,现在更推荐使用更强大的算法。

2.AES(Advanced Encryption Standard): AES 是一种分组密码算法,取代了DES。它支持128位、192位和256位的密钥,对不同长度的数据块进行加密。AES 被广泛认为是安全可靠的加密算法。

3.SM4: SM4 是一种分组密码算法,是中国国家密码管理局推荐的对称加密算法。它使用128位密钥,支持128位的分组大小。SM4被广泛用于中国国内的安全领域。

三、加密模式:

1.ECB(Electronic Codebook): ECB 是最简单的加密模式,将明文分成固定大小的块,然后对每个块独立进行加密。ECB 的问题在于相同的明文块将产生相同的密文块,这可能导致一些安全性问题。

2.CBC(Cipher Block Chaining): 在CBC模式中,每个明文块都与前一个密文块进行异或运算,然后再进行加密。这样做可以防止相同的明文块产生相同的密文块,提高了安全性。CBC 是更常见和更安全的模式之一。

补充:SSH -R、-L 和 -D

一、反向端口转发 -R:

1.允许远程主机连接到本地主机上的服务,但需要谨慎配置以防止未经授权的访问。

2.需要确保只有合法的远程主机能够连接到本地主机,可以通过限制远程主机的IP地址或使用SSH密钥进行身份验证来实现。

3.实践

  1. 限制允许连接的远程主机的IP范围。
  2. 使用密钥身份验证以提高安全性。
  3. 定期审查和监控反向端口转发的活动。

二、本地端口转发 -L:

1.允许本地主机访问远程主机上的服务,需要确保访问权限受到有效的控制。

2.需要防止未经授权的用户访问通过本地端口转发的服务。

3.实践:

  1. 限制本地主机上的用户能够使用本地端口转发。
  2. 使用SSH密钥进行身份验证。
  3. 定期审查和监控本地端口转发的活动。

三、动态端口转发 -D:

1.创建一个 SOCKS 代理,需要确保只有受信任的用户能够访问并使用该代理。

2.需要防止未经授权的用户使用动态端口转发来绕过安全策略。

3.实践:

  1. 限制访问动态端口转发的用户。
  2. 使用SSH密钥进行身份验证。
  3. 监控和审查动态端口转发的使用。

  • 16
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值