26、应用安全管理全解析

应用安全管理全解析

在当今数字化时代,网络安全至关重要,尤其是对于公司内部应用的管理。确保应用无漏洞且具备足够的安全性,是网络安全团队的核心任务之一。下面将详细介绍主机和应用安全的相关内容,以及嵌入式和专业系统的安全影响。

1. 主机或应用安全的实施

在一个组织中,我们会使用笔记本电脑、台式机、服务器和移动设备(如平板电脑),这些设备可能会在酒店、机场等不安全的外部环境中使用。因此,我们需要对端点及其操作系统进行强化,以确保它们尽可能安全。以下是需要考虑的各个方面:

1.1 启动完整性

主机启动时,我们要确保其受到最大程度的保护。以下是相关技术:
- 统一可扩展固件接口(UEFI) :UEFI 是基本输入/输出系统(BIOS)的现代版本,更安全,是操作系统安全启动所必需的。旧的 BIOS 无法提供安全启动功能。
- 早期启动反恶意软件 :在 Windows 计算机中,早期启动反恶意软件会测试所有正在加载的驱动程序,并防止恶意驱动程序加载。
- 测量启动 :此技术最早在 Microsoft Windows 8 中采用,从固件到应用程序和软件的所有组件都会被测量,并将信息存储在日志文件中。该日志文件存储在主板上的可信平台模块(TPM)芯片中。反恶意软件可以使用此信息来确保系统启动时软件是可信的。此日志可以发送到远程服务器,以评估主机的健康状态。
- 安全启动和证明 :像 Windows 10 这样的操作系统可以在启动时执行安全启动,检查所有驱动程序是否已签名。如果未签名,启动序列将失败,因为系统的完整性已受到损害。这可以与证明相结合,确认软件的完整性。例如,使用全磁盘加密(FDE),如 BitLocker,确保软件未被篡改。BitLocker 密钥存储在主板上的 TMP 芯片中。

示例:如果你的公司是一家跨国公司,需要一种既可以用于台式机又可以用于笔记本电脑,并且能够提供安全启动和证明功能的操作系统,那么你很可能会选择 Microsoft Windows 10,它可以提供安全启动和 BitLocker 来进行系统证明。

1.2 端点保护

端点保护对于防止攻击至关重要。以下是各种端点保护措施:
| 保护类型 | 功能描述 |
| ---- | ---- |
| 防病毒 | 监控正在访问的网站和正在下载的文件,确保它们不受病毒或特洛伊木马的影响。大多数现代防病毒解决方案还具有反恶意软件的功能。 |
| 反恶意软件 | 扫描计算机中的广告软件和间谍软件,并防止恶意软件运行。这些是防病毒程序无法检测到的。 |
| 端点保护和响应(EDR) | 一种高级解决方案,优于防病毒或反恶意软件。它是一个集中式控制台,持续监控计算机,并在检测到威胁时自动发出警报。它使用机器学习来检测威胁,并且能够检测无文件病毒。 |
| 数据丢失预防(DLP) | 可以设置端点 DLP 解决方案,以保护计算机上的数据不被通过电子邮件或 USB 驱动器窃取。DLP 还可以保护任何具有模式匹配的数据,如个人身份信息(PII)或敏感数据。 |
| 下一代防火墙(NGFW) | 比传统防火墙更强大。它可以作为有状态防火墙进行深度数据包过滤,还可以检查应用程序流量以确保其合法性,并使用白名单确保只有批准的应用程序可以运行。它还可以作为入侵预防设备,保护免受攻击,并可以检查加密的 SSL 和 HTTPS 数据包。 |
| 主机入侵预防系统(HIPS) | 一种可以安装在主机上的软件程序,用于保护主机免受攻击。它分析计算机的行为,在日志文件和内存中查找任何可疑行为,并采取适当的措施防止恶意软件等攻击。 |
| 主机入侵检测系统(HIDS) | 本质上是一种被动设备,监控计算机系统行为的模式。HIDS 使用包含计算机设置的数据库,包括注册表、关键系统文件、应用程序和组件。其功能是提醒用户任何差异或攻击。 |
| 基于主机的防火墙 | 可用于防止未经授权访问桌面,并可以为批准的应用程序设置允许规则。例如,防火墙可以允许防病毒更新、检查点、VPN、DNS 名称解析、Firefox 和 Java 等。 |

以下是端点保护的流程 mermaid 图:

graph LR
    A[端点] --> B[防病毒]
    A --> C[反恶意软件]
    A --> D[EDR]
    A --> E[DLP]
    A --> F[NGFW]
    A --> G[HIPS]
    A --> H[HIDS]
    A --> I[基于主机的防火墙]
1.3 数据库安全

数据库可能包含个人的 PII 信息或信用卡信息,因此保持数据库安全非常重要。以下是一些保护措施:
- 存储过程 :SQL 注入攻击会操纵 SQL 语句,通过插入“1=1”来结束。我们可以将 SQL 脚本预编写并保存在存储过程中,例如 ABC。这可以防止语句被操纵。然后将 ABC 插入到 Transact - SQL 中,从而防止更改。这类似于批处理文件的工作方式。
- 标记化 :标记化被认为比加密更安全。加密数据时,我们使用公钥,然后可以使用私钥解密数据或破解加密来反转加密。这意味着攻击者可能会解密数据。标记化会将敏感数据(如信用卡号)替换为随机数据,因此无法反转。
- 哈希 :数据库包含大量数据,我们使用哈希来索引和从数据库中提取项目。这使得搜索更快,因为哈希键比数据短。哈希函数将所有数据映射到实际记录所在的位置。
- 加盐 :在数据库中对密码加盐意味着我们将存储在数据库中的密码添加随机数,以增加暴力攻击的计算时间。

2. 应用程序安全

在当今相互连接的世界中,我们使用的应用程序越来越多,这些应用程序可能成为攻击者的目标。因此,作为网络安全专业人员,我们需要强化这些应用程序以防止攻击。以下是可以采取的保护类型:
- 输入验证 :控制应用程序的输入对于确保不会对应用程序和数据库发起缓冲区溢出、整数溢出和 SQL 注入攻击至关重要。输入验证是指通过网页或向导输入数据时,两者都设置为仅接受在最小和最大值范围内的正确格式的数据。例如,当你快速填写网页表单时,如果将邮政编码输入到其他字段中,表单会出现错误,无法处理提交按钮。网页表单顶部会以红色列出不正确的参数,并在每个参数旁边显示红色星号。一旦你更正了输入,表单将接受并提交。
- 安全 Cookie :Web 浏览器使用 Cookie 来包含有关你的会话信息,攻击者可以窃取这些 Cookie 以进行会话劫持攻击。我们可以在网站上设置安全标志,以确保仅在有安全的 HTTPS 会话时才下载 Cookie。在 Java EE 6 中,可以通过在 web.xml 文件中应用以下信息来实现:

<session-config>
    <cookie-config>
        <secure> 'true' </secure>
    </cookie-config>
</session-config>
  • 超文本传输协议(HTTP)头 :HTTP 头用于在主机和 Web 服务器之间传输信息。攻击者可以通过注入 HTTP 响应头来进行跨站脚本攻击。可以通过输入 HTTP 严格传输安全(HSTS)头来防止这种情况:
function requestHandler(req, res) {
    res.setHeader('Strict-Transport-Security','max-age=31536000; includeSubDomains; preload');
}

这意味着 HSTS 确保浏览器将忽略所有 HTTP 连接。
- 代码签名 :获取代码签名证书,允许你对脚本和可执行文件进行数字签名,以验证其真实性并确认它们是正版的。
- 允许列表 :允许列表仅允许明确允许的应用程序运行。可以通过设置应用程序白名单来实现。像 pf - sense 这样的防火墙可以有允许列表。
- 阻止列表/拒绝列表 :阻止/拒绝列表通过使用黑名单来防止明确禁止的应用程序运行。像 pf - sense 这样的防火墙可以有阻止列表。
- 安全编码实践 :开发软件的开发者应确保代码没有漏洞或缺陷,以防止诸如缓冲区溢出或整数注入等攻击。
- 静态代码分析器 :开发者使用静态代码分析器时,代码不会在本地执行。相反,他们启动静态代码分析器工具,然后在工具中运行源代码,报告任何缺陷或弱点。
- 动态代码分析 :开发者使用动态分析时,代码在本地运行,然后使用一种称为模糊测试的技术,将随机输入插入应用程序以查看输出。白盒渗透测试人员在将应用程序部署到生产环境之前使用模糊测试来查看应用程序的缺陷和弱点。
- 手动代码审查 :开发者逐行阅读代码,以确保代码编写正确且没有错误。这非常繁琐且耗时。
- 模糊测试 :将随机信息输入应用程序,查看应用程序是否崩溃、是否导致内存泄漏或返回错误信息。白盒渗透测试人员在新应用程序发布之前使用此方法来解决任何潜在问题。黑盒测试人员使用模糊测试来查找应用程序的任何漏洞。这也称为不正确的输入验证。

3. 强化措施

为了应对不断增加的网络犯罪威胁,我们需要强化运行应用程序的设备和应用程序本身。以下是不同类型的强化技术:
- 开放端口和服务 :应用程序使用的端口是连接的端点。每个应用程序或协议使用不同的端口号。安装操作系统时,一些端口是开放的,因此你需要在基于主机的防火墙中关闭未使用的端口。在 Windows 计算机上,可以使用 netstat 命令查找开放端口,端口号在“本地地址”列中的冒号后面。可以使用 netstat - ano 命令关闭未使用的端口。应用程序使用服务来运行,安装操作系统时,默认会运行很多服务,其中一些你可能永远不会使用。例如,telnet 服务允许以明文形式远程访问你的计算机,因此我们需要禁用这些服务。在 Windows 计算机中,在运行命令中输入 services.msc 可以查看哪些服务正在运行,然后禁用你不使用的服务。
- 注册表 :注册表是计算机上所有设置的数据库,访问注册表可能会导致计算机受损。如果进行控制更改,该更改会反映在注册表中。有一组称为“hives”的设置,有五个主要的 hive 键,以“HKEY_”开头。可以使用 regedit 命令访问注册表。Docker 工具允许将应用程序隔离到称为容器的单独空间中。现在可以将注册表隔离到单独的容器中,使其更安全。
- 操作系统 :为了强化操作系统,确保操作系统具有最新的补丁和更新非常重要。订阅供应商的安全公告有助于在发布新补丁时获取更新。
- 补丁管理 :网络安全团队从供应商处获取更新,并在沙箱中的计算机上测试这些更新,以确保不会对操作系统或安装的应用程序造成任何损害。像 Microsoft WSUS 服务器这样的补丁管理系统可以推出供应商更新和第三方更新。一旦更新测试通过,就可以设置为自动更新你的操作系统。
- 全磁盘加密(FDE) :用于计算机系统,对整个硬盘进行加密,因为它存储静态数据。FDE 使用 X509 证书对全磁盘进行加密,但需要主板上的 TPM 芯片来存储密钥。例如,Microsoft 的 BitLocker,如果它认为驱动器已被篡改,会锁定驱动器,需要一个 48 字符的密钥才能解锁。
- 可信平台模块(TPM) :TPM 芯片存储在主板上,用于存储加密密钥,以便系统启动时可以比较密钥,确保系统未被篡改。
- 硬件信任根 :使用 FDE 证书时,它们使用硬件信任根,在安全启动过程发生之前验证密钥是否匹配。
- 自加密驱动器(SEDs) :OPAL 存储规范是自加密驱动器的行业标准,是一种硬件解决方案。因此,它们优于其他加密方法,因为其他加密方法是软件解决方案。它们没有软件的相同漏洞,因此更安全。SEDs 是固态硬盘(SSD),购买时已设置为对静态数据进行加密。加密密钥存储在硬盘控制器上。因此,它们对冷启动攻击免疫,并且与所有操作系统兼容。驱动器具有安全机制,允许锁定驱动器,以防止未经授权的用户访问数据。只有计算机用户和供应商可以解密驱动器。
- 硬件安全模块(HSM) :HSM 类似于 TPM 芯片,但它是可移动的。密钥托管使用 HSM 来存储和管理私钥,较小的 HSM 可用于计算机。
- 沙箱化 :可以在与网络隔离的虚拟机环境中安装应用程序,以便在将其放入生产环境之前进行修补、测试并确保其安全。在 Linux 环境中,这称为 Chroot Jail。

应用安全管理全解析

4. 嵌入式和专业系统的安全影响

嵌入式系统将其自身的软件内置到设备硬件中,有些是可编程的,有些则不是。嵌入式系统常见于用于健康监测、汽车、医疗和家用产品的消费设备中。以下将重点介绍物联网相关的安全问题。

4.1 物联网(IoT)

物联网由小型设备组成,如自动取款机(ATMs)、小型机器人和可穿戴技术,这些设备可以使用 IP 地址并连接到具备互联网功能的设备。我们必须确保更改这些设备的默认用户名和密码,以防止被黑客攻击。从安全角度来看,支持物联网设备是一件令人头疼的事情,因为设备种类繁多。大多数物联网设备用户并不知道他们的设备有默认用户名和密码,因此这些设备很容易受到攻击。购买设备后应立即更改默认设置。以下是一些常见物联网设备的安全问题:
| 设备类型 | 安全风险 | 解决建议 |
| ---- | ---- | ---- |
| 智能设备(如智能电视、冰箱) | 可连接家庭网络和互联网,如果不更改默认用户名和密码,容易受到攻击。默认密码可在 www.cirt.net 找到,大多数家庭用户对此不知情。 | 购买后立即更改默认用户名和密码。 |
| 家庭自动化系统 | 控制报警系统、照明、气候、娱乐和厨房电器等,由于大多数设备直接连接互联网,容易受到攻击。例如,Alexa 会存储周围的对话,如果不定期删除语音历史记录,攻击者可能获取这些对话。 | 定期删除语音历史记录,如对 Alexa 说“Alexa, delete what I say today”。 |

以下是物联网设备安全防护的 mermaid 流程图:

graph LR
    A[物联网设备] --> B{是否更改默认设置}
    B -- 是 --> C[正常使用]
    B -- 否 --> D[存在安全风险]
    D --> E[更改默认用户名和密码]
    E --> C
5. 总结与实践建议

为了更好地保障应用和系统的安全,我们可以将上述各项安全措施整合为一个实践指南。以下是一个按照不同层面的安全措施总结表格:
| 安全层面 | 具体措施 | 操作步骤 |
| ---- | ---- | ---- |
| 主机与端点 | 启动完整性保障 | 选择支持 UEFI 的操作系统,如 Windows 10;利用早期启动反恶意软件、测量启动和安全启动证明等功能。 |
| | 端点保护 | 安装防病毒、反恶意软件、EDR、DLP 等软件;配置下一代防火墙、HIPS、HIDS 和基于主机的防火墙。 |
| 数据库 | 数据安全防护 | 使用存储过程防止 SQL 注入;采用标记化、哈希和加盐等技术保护数据。 |
| 应用程序 | 应用安全加固 | 进行输入验证、设置安全 Cookie、添加 HTTP 头保护、代码签名、设置允许列表和阻止列表等;采用安全编码实践、静态和动态代码分析以及手动代码审查。 |
| 设备与系统 | 强化措施 | 关闭未使用的端口和服务;隔离注册表;及时更新操作系统;进行补丁管理;采用 FDE、SEDs、HSM 等加密技术;进行沙箱化测试。 |
| 物联网 | 设备安全管理 | 立即更改物联网设备的默认用户名和密码;定期清理智能设备的敏感数据。 |

在实际操作中,我们可以按照以下步骤建立全面的安全防护体系:
1. 评估现状 :对现有的主机、应用程序、数据库和物联网设备进行安全评估,确定存在的安全漏洞和风险。
2. 制定计划 :根据评估结果,制定详细的安全改进计划,包括实施各项安全措施的时间表和责任人。
3. 实施措施 :按照计划逐步实施各项安全措施,如安装软件、配置防火墙、更新系统等。
4. 测试验证 :在实施过程中,对各项安全措施进行测试和验证,确保其有效性和稳定性。
5. 持续监控 :建立持续的安全监控机制,及时发现和处理新出现的安全问题。
6. 培训教育 :对员工进行安全培训,提高他们的安全意识和操作技能。

通过以上全面的安全管理措施和实践建议,可以有效降低应用和系统面临的安全风险,保障企业和个人的信息安全。在不断发展的网络环境中,持续关注安全技术的发展和更新,及时调整安全策略,是确保安全的关键。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值