系统安全
文章平均质量分 68
车联网安全杂货铺
君子务本,本立而道生。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Linux VLAN 实现原理技术笔记
Linux 通过精心设计的数据结构 struct vlan_group 和 struct vlan_dev_info ,以及在数据包收发流程中的关键函数 netif_receive_skb 、 vlan_skb_recv 、 dev_hard_start_xmit 和 vlan_dev_hard_start_xmit 等的协同工作,实现了 VLAN 功能。它首先获取 VLAN 设备的配置信息,然后将 VLAN 标签添加到数据包中,最后通过底层的网络设备驱动将带有 VLAN 标签的数据包发送到物理网络中。原创 2024-11-30 09:01:16 · 670 阅读 · 0 评论 -
Linux内核实现AES加密
需要注意的是,上述代码只是一个简单的示例,实际上在内核中实现加密模块需要更多的细节和安全性考虑。#define PLAINTEXT_SIZE 16 // 明文长度为16字节。#define KEY_SIZE 16 // AES密钥长度为16字节。// 创建加密算法句柄。// 分配密文缓冲区。// 创建加解密请求。// 设置加解密请求。原创 2023-12-14 22:51:42 · 1872 阅读 · 0 评论 -
Linux内核密钥环
在此示例中,`keyring_example_init()`函数创建了一个名为`my_keyring`的密钥环,并将其存储在指针`my_key`中。例如,`keyctl_instantiate_key()`用于创建密钥,`keyctl_search()`用于根据指定条件搜索密钥,`keyctl_unlink()`用于删除密钥等。在密钥环中,密钥通过一个哈希表进行管理。当需要使用密钥时,应用程序通过调用`search_keyring()`函数从密钥环中搜索密钥,并将找到的密钥返回给应用程序使用。原创 2023-12-14 20:58:47 · 2350 阅读 · 0 评论 -
ARM SMMU简介
SMMU可以根据映射表中的设置,将外设的DMA请求限制在特定的虚拟地址空间范围内,防止外设越界访问或无限制地修改内核或其他应用程序的数据。Context可以看作是一个独立的地址空间,用于隔离外设的访问权限。总结起来,ARM SMMU能够根据配置的映射表,为外设、硬件加速器和虚拟机等提供内存隔离保护,防止未经授权的内存访问和数据修改,从而提升系统的安全性和稳定性。通过以上配置,ARM SMMU可以实现处理器与外设之间的内存映射和安全隔离,确保每个外设只能访问其所需的内存,提高系统的安全性和性能。原创 2023-12-13 21:58:27 · 1753 阅读 · 0 评论 -
ARM MMU简介
ARM MMU和TZC-400是两个不同的组件,其中ARM MMU是ARM处理器内核的一部分,用于实现虚拟内存管理和内存保护机制,而TZC-400则是ARM提供的一个外设,用于提供可配置的内存保护和安全性功能。在基于ARM的Linux系统中,ELF文件的只读数据段(read-only data segment)的只读属性是在内核加载ELF文件到内存时进行设置的。它们分别负责处理器内核和外设设备的内存管理和保护。ARM MMU可以将不同的进程或线程的虚拟地址映射到不同的物理地址空间,实现进程间的内存隔离。原创 2023-12-13 21:53:29 · 1241 阅读 · 0 评论 -
ARM TZC-400原理及配置方式
TrustZone是ARM提供的一种安全技术,通过在处理器上创建两个不同的安全区域(Secure Zone和Non-Secure Zone)来提供硬件级别的安全隔离。TZC-400是针对TrustZone的一个集中式安全域管理器(Security Domain Controller),它负责管理和保护TrustZone中的安全和非安全资源之间的安全隔离。TZC-400可以根据安全策略对处理器的内存映射进行配置,以划分安全区域和非安全区域,并定义安全区域的访问权限。原创 2023-12-13 21:07:13 · 1487 阅读 · 0 评论 -
ARM BTI安全特性使用效果示例
然后,在`Protect`函数中,我们使用`bti`指令来插入BTI保护。在这个示例中,`vulnerable_func`函数中的汇编代码使用`pop {pc}`指令,该指令从堆栈中弹出一个值,并将其作为程序计数器(PC)的值,从而可以将执行流转移到攻击者控制的代码段,从而进行恶意操作。在这个示例中,我们首先使用`__attribute__((used, naked, section(".text.bti")))`指令定义了一个`Protect`函数,并将其放置在`.text.bti`节中。原创 2023-12-13 20:59:40 · 1154 阅读 · 0 评论 -
ARM NEON加速介绍及使用示例
在 Linux 内核中,ARM NEON 驱动提供了对 NEON 寄存器和指令的支持,以便在内核中利用 NEON 进行高性能的数据处理。例如,可以使用 <asm/neon.h> 头文件来引用 NEON 寄存器和数据类型,并使用 NEON 相关的函数和宏来执行特定的 NEON 操作。NEON 驱动通过内核编译器选项和内核源代码中的向量化宏等方式,提供了对 NEON 指令的编译器优化支持。确保内核配置中启用了ARM NEON的支持,以便内核代码可以直接使用NEON寄存器和指令。// 使用通用的数据处理方法。原创 2023-12-12 21:09:32 · 2419 阅读 · 0 评论 -
Linux内核加解密框架介绍
加密框架是Linux内核加密API的核心组成部分,它为内核中的加密操作提供了通用的接口和管理机制。通过使用这些加解密API,应用程序可以通过调用相应的系统调用,直接在内核中进行加解密操作。加密API还提供了范围和散列函数的接口,用于处理分散的数据和计算散列值。使用此API可以获得一个用于RSA公钥加密和解密操作的公钥对象,以便进行加密和解密操作。使用此API可以获得一个用于RSA私钥加密和解密操作的私钥对象,以便进行加密和解密操作。使用此API可以将加密的数据使用RSA私钥进行解密。原创 2023-12-12 20:53:37 · 3312 阅读 · 0 评论 -
风控反欺诈安全学习路标
掌握常见的反欺诈工具和平台,如Blacklisting、Whitelisting、Rules Engine和Machine Learning-based Fraud Detection Systems。- 学习反欺诈技术的原理和常见方法,包括行为分析、设备指纹识别、IP地理位置分析和网络连接分析等。- 学习数据分析和数据挖掘的基本原理和技术,包括数据清洗、特征工程、模型选择和评估等。- 学习机器学习和统计模型的基础知识,包括监督学习和无监督学习、回归模型和分类模型等。6. 安全合规和合作伙伴管理。原创 2023-12-08 21:04:17 · 1075 阅读 · 0 评论 -
IOS安全学习路标
了解常见的iOS应用安全漏洞,如信息泄露(例如内存泄露和日志泄露)、越狱检测和代码注入,并学习如何进行安全编码和应用审计。- 学习应用签名和证书的原理,以及如何使用Xcode和iOS Provisioning Portal进行应用开发和签名。以上学习路线图仅供参考,iOS安全领域的知识和技术不断演进和更新,建议持续学习和保持对最新安全漏洞和攻击技术的跟踪。- 熟悉iOS应用的启动过程,包括应用生命周期、应用的主线程和多线程开发等。- 深入了解iOS应用的沙盒机制,包括数据隔离和应用权限。原创 2023-12-08 20:58:15 · 650 阅读 · 0 评论 -
IOT安全学习路标
深入了解IoT云端平台的安全机制和风险管理,包括身份和访问管理、数据隐私和加密、漏洞管理等。学习云安全服务和工具,如侦测和响应、威胁情报和分析等。学习关于物联网通信和网络安全的基础知识,包括加密和认证技术、安全协议(如HTTPS、MQTT)、远程访问和管理的安全性、网络隔离和防火墙等。了解IoT设备的硬件安全特性和保护措施,包括芯片级安全和物理隔离技术、硬件根信任和安全启动、硬件密钥存储和加密等。首先,你需要建立坚实的物联网基础知识,包括IoT的架构和组件,传感器和设备的连接和通信技术,云端和边缘计算等。原创 2023-12-08 20:49:54 · 962 阅读 · 0 评论 -
嵌入式安全学习路标
深入了解嵌入式设备的通信和网络安全,包括加密和认证协议、防火墙和入侵检测系统、安全协议和远程管理等。学习如何进行安全测试和审计,包括黑盒测试、白盒测试和灰盒测试等。首先,你需要建立坚实的嵌入式系统基础知识,包括嵌入式系统的构成和特点,微处理器架构,实时操作系统(RTOS)的原理和应用等。了解如何保护嵌入式设备的知识产权和软件版权,学习反逆向工程的技术和方法,如代码混淆、加密和数字签名等。学习关于物理安全的基础知识,并了解如何对嵌入式设备进行物理攻击和防护,如侧信道攻击、硬件破解等。6. 安全测试和审计。原创 2023-12-08 20:47:03 · 876 阅读 · 0 评论 -
ARM安全学习路标
学习关于栈和堆保护的技术,包括栈溢出检测、堆溢出检测和防护、缓冲区溢出防护等。研究学习安全操作系统,如OP-TEE(Open Platform TEE)和Trustonic TEE等,了解TEE的架构、安全服务和应用开发。首先,你需要全面了解ARM架构的基础知识,包括指令集和寄存器的特点,处理器模式和特权级的切换机制,内存管理单元(MMU)和保护域等。学习如何进行漏洞分析和安全评估,使用静态和动态分析工具,检测和利用ARM平台上的安全漏洞。了解安全政策制定和实施,以及如何设计和实施安全的ARM系统。原创 2023-12-08 20:43:50 · 909 阅读 · 0 评论 -
Android安全学习路标
深入了解Android的用户认证和应用授权机制,包括Android权限模型、权限管理和授权框架的机制和最佳实践。跟踪Android安全领域的最新趋势和发展,学习新的安全工具、技术和解决方案,保持对Android安全领域的持续学习和进一步的专业发展。学习如何分析和反制Android恶意软件和攻击,包括恶意软件的行为分析、静态和动态分析技术、恶意代码检测和防御等。学习安全事件响应的最佳实践和紧急处理措施。学习如何进行Android应用和系统的安全测试和评估,包括渗透测试、代码审查、安全评估工具的使用等。原创 2023-12-08 20:40:17 · 704 阅读 · 0 评论 -
Linux安全学习路标
不断保持学习和更新,关注最新的安全威胁、漏洞和技术趋势,参与安全社区和活动,与其他安全专业人员进行交流和合作,这样你将能够不断提升自己并成为一名资深的Linux安全专家。学习关于网络和通信安全的基础知识,包括TCP/IP协议栈、网络攻击类型、防火墙配置、网络策略和访问控制等。学习如何管理和应用系统安全补丁,了解常见的漏洞扫描和漏洞管理工具,以及如何对系统进行实时监测和安全审计。学习使用工具和技术监测系统的安全事件和入侵尝试,以及如何设置入侵防御系统、日志分析和事件响应。6. 安全检测和入侵防护。原创 2023-12-08 20:33:49 · 828 阅读 · 0 评论 -
setuid 的风险及开发过程中的避免方式
如果攻击者能够访问被设置setuid标志的可执行文件,并且成功地利用了其中的漏洞,攻击者可以以拥有该文件所有者的权限运行恶意代码。这意味着,即使普通用户运行了该文件,它仍能以文件所有者的权限来执行,以执行特权操作。通过这样的设置,我们可以避免使用setuid产生DAC权限问题,并确保应用程序仅具有必要的最低权限来访问网络接口。这样做可以提高应用程序的安全性。如果执行的程序存在漏洞或被恶意利用,攻击者可以使用被setuid特权所包含的权限来滥用操作系统资源,例如修改系统配置、删除文件或者访问私有数据。原创 2023-12-08 20:02:24 · 991 阅读 · 0 评论 -
useradd 在Linux原生应用开发过程中的简单应用
useradd还会添加用户到适当的用户组,并创建一个新的家目录。通过这样的设置,只有属于任务管理组的用户(例如 "taskmanager" 用户)才能读取和修改 "tasks.txt" 文件,其他用户无法访问该文件,确保了对任务数据的访问控制。总之,useradd命令通过修改/etc/passwd和/etc/shadow文件以及分配唯一的UID和GID来创建新用户,并设置相关的属性和权限。最后,useradd会将新用户的信息写入/etc/passwd文件,同时将密码信息写入/etc/shadow文件。原创 2023-12-08 19:56:40 · 824 阅读 · 0 评论 -
chmod 在Linux原生应用开发过程中的简单应用
在Linux系统中,每个文件或目录都有一个表示其权限的数字值,即用三个八进制数字来表示文件或目录的访问权限。具体的权限值分别为"读"(Read,读取文件的权限)、"写"(Write,修改文件的权限)和"执行"(Execute,执行文件或访问目录的权限)。当使用chmod命令来修改文件或目录的权限时,它实际上会按照指定的权限值重新设置文件或目录的ACL。通过这样的设置,我们确保只有应用程序能够读取和修改"users.txt"文件中的敏感信息,其他用户无法访问该文件,从而保护用户的隐私和安全。原创 2023-12-08 19:52:46 · 554 阅读 · 0 评论 -
Linux DAC权限的简单应用
这意味着只有文件的属主 "admin" 可以读取和写入 "data.txt",属组 "data_group" 的成员 "manager" 只能读取 "data.txt",而其他用户 "employee" 则无法进行任何操作。在该例子中,第一个字符 "-" 表示这是一个文件,接下来的三个字符 "rw-" 表示属主的权限,紧接着的三个字符 "r--" 表示属组的权限,最后的三个字符 "---" 表示其他用户的权限。- 用户2:名为 "manager",属于文件的属组 "data_group"。原创 2023-12-08 19:41:51 · 1292 阅读 · 0 评论 -
ARM Cortex-M安全之MPU介绍
其中第一个区域从0x00000000到0x00007FFF,权限被设置为读写,第二个区域从0x20000000到0x20001FFF,权限被设置为只读。不同型号的Cortex-M处理器可能具有不同的MPU配置选项,例如区域数量、最大区域大小和权限掩码位数等。MPU允许开发人员对不同的内存区域分配不同的权限,从而提供对系统代码和数据的保护。MPU可以将整个内存划分为多个区域,并为每个区域分配不同的权限。这样,开发人员可以将敏感的代码和数据放置在一个受保护的区域中,并为其分配只读、只执行或完全禁止访问等权限。原创 2023-12-07 21:09:18 · 1836 阅读 · 0 评论 -
gcc安全特性之变量初始化检查
在使用未初始化的变量时,无法确保它的值是有效的,这可能导致不可预测的程序行为。变量初始化检查特性通过在编译过程中静态分析源代码来检测未初始化的变量,并在发现未初始化变量时发出警告。- 提高代码可读性和可维护性:强制变量在使用之前进行初始化,可以使代码更清晰和易于理解,减少由于未初始化变量带来的混淆。- 提前发现未初始化的变量:通过静态分析,可以在编译时发现潜在的未初始化变量,避免在运行时出现未定义的行为。GCC的变量初始化检查特性旨在减少未初始化变量对程序行为和安全性的潜在影响。原创 2023-12-07 20:29:53 · 1243 阅读 · 0 评论 -
Android各版本引入的重要安全机制介绍
Restricted Access to Non-SDK Interfaces(限制对非SDK接口的访问):限制了应用访问非公开API的权限,以提高应用的安全性和稳定性。- Background Execution Limits(后台执行限制):对于不在前台运行的应用,有限制执行后台任务的能力,以提高系统资源的利用效率。- Scoped Storage(作用域存储):限制了应用直接访问共享存储空间的权限,提高了用户数据的安全性和隐私性。本文简单列举Android各个版本引入的一些主要安全机制。原创 2023-12-05 22:28:15 · 948 阅读 · 0 评论 -
ARM64安全特性之SMAP
SMAP的主要原理是通过设置特殊的访问权限位(AP位)来限制特权模式下的内存访问。SMAP通过将特权模式下的AP位设置为只读或禁止访问,可以防止特权软件访问受保护的内存区域。总的来说,ARM64 SMAP主要用于限制特权模式下的内存访问,而PAN用于防止特权模式下的空指针解引用。对于EL0级别的访问,AP位控制传统的访问权限(读、写、执行),而对于EL1级别的访问,AP位表示SMAP访问权限。- SMAP:SMAP通过设置特殊的访问权限位(AP位)来限制特权模式下的内存访问。原创 2023-12-05 21:57:50 · 1154 阅读 · 0 评论 -
ARM64安全特性之CET
IBT可以防止攻击者利用常见的控制流劫持漏洞,如ROP(Return-Oriented Programming)攻击、JOP(Jump-Oriented Programming)攻击和COP(Call-Oriented Programming)攻击等。这样,当程序执行期间发生控制流劫持时,劫持者将向不同的目标地址跳转,导致签名比特发生不匹配,从而触发异常。- 在编译器级别,可以使用CET相关的编译器选项来生成支持BTB的代码。例如,在使用GCC编译器时,可以使用"-mcet"选项来启用CET。原创 2023-12-05 21:48:47 · 1160 阅读 · 0 评论 -
ARM64安全特性之MTE
MTE使用内存标签来追踪和保护内存操作,以帮助检测和防御缓冲区溢出、使用-after-free等内存相关的安全漏洞。在代码中,开发者需要对需要进行内存标记的区域进行明确的标记。在需要使用带有标签的内存的地方,开发者需要读取和验证内存标记。在使用带有标记的内存时,需要使用相应的内存访问指令来读取和验证标签。在编写具体的程序时,开发者可以根据自己的需求和使用情况使用这些示例代码,并根据需要添加额外的错误处理和防御措施。通过使用MTE,开发者可以更有效地检测和防御内存相关的安全漏洞,提高系统的安全性和可靠性。原创 2023-12-05 21:36:49 · 1939 阅读 · 0 评论 -
Linux 5.15安全特性之ARM64 PAC
1. 硬件支持:ARM64架构中引入了一系列新的指令,如指针加密指令(PACIA、PACIB、PACDA、PACDB)和指针验证指令(AUTIA、AUTIA1716、AUTIB、AUTIB1716、AUTDA、AUTDA1716、AUTDB、AUTDB1716),用来处理指针的加密和验证。需要注意的是,AKey签名机制只是PAC机制中的一种验证方法,ARM64还有其他的签名和验证机制,如BKey签名机制和VA签名。ARM64 PAC机制的引入旨在提高系统的安全性,防止针对指针的缓冲区溢出和代码注入攻击。原创 2023-12-05 21:11:30 · 3126 阅读 · 0 评论 -
Linux 5.15安全特性之landlock
这个示例代码使用了系统调用函数`syscall`,并通过`SYS_landlock_create_ruleset`、`SYS_landlock_add_rule`和`SYS_landlock_restrict_self`指定了Landlock规则,创建了一个Landlock域,并将当前进程限制在该域中。Landlock是一个在Linux内核中实现的安全模型,它允许进程在较低的特权级别下运行,并限制其对内核和系统资源的访问。在配置Landlock后,测试和调试程序,确保权限控制正常工作,并遵循定义的规则。原创 2023-12-05 20:33:01 · 2196 阅读 · 0 评论 -
gcc CFI控制流完整性保护
GCC的CFI(Control Flow Integrity,控制流完整性)机制是一种用于防止针对函数指针和虚函数表的攻击的保护机制。- 在链接时优化(Link-Time Optimization,LTO)下使用:GCC CFI需要在链接时优化(LTO)模式下使用,以便在整个程序的编译过程中进行全局优化和分析。这些情况需要综合考虑并进行调查和解决。综上所述,开启GCC的CFI机制可以提高程序的安全性,但开发者需要仔细权衡使用CFI的风险和利益,并确保进行适当的测试和验证,以确保应用程序的稳定性和安全性。原创 2023-12-03 20:46:16 · 3290 阅读 · 0 评论 -
gcc栈帧随机化介绍
-fstack-protector-strong`选项会对具有高风险的函数启用栈帧随机化(例如`strcpy`、`sprintf`等),而`-fstack-protector-all`选项会对所有函数开启栈帧随机化。1. 使用编译选项启用栈帧随机化:在编译时,使用GCC的编译选项`-fstack-protector-strong`或`-fstack-protector-all`来开启栈帧随机化。搜索函数的汇编代码,如果看到了与栈帧随机化相关的指令,说明栈帧随机化已经开启。原创 2023-12-03 20:35:39 · 1284 阅读 · 0 评论 -
汽车电子芯片介绍之Aurix TC系列
AURIX TC芯片集成了丰富的外设接口和模块,包括多个CAN接口、Ethernet接口、SPI、I2C、UART、ADC、PWM等。AURIX TC芯片具有强大的安全功能,包括对内存和外设的保护机制,以及安全启动和文件完整性保护等。这使得AURIX TC芯片在车载应用中具有出色的可靠性和稳定性。综上所述,AURIX TC系列芯片提供了多重安全特性和保护机制,确保汽车电子系统的安全性、完整性和可靠性。AURIX TC系列芯片是一款专为汽车电子系统设计的高性能处理器,具有强大的安全特性、高度集成化和可靠性。原创 2023-12-03 20:01:25 · 969 阅读 · 0 评论 -
ARM Cortex-A、Cortex-M和Cortex-R简介
安全世界中的代码和数据受到严格的控制和保护,非安全世界是运行常规操作系统和应用程序的环境。1. TrustZone技术(仅适用于Cortex-M23和Cortex-M33):Cortex-M23和Cortex-M33处理器支持TrustZone技术,通过硬件隔离实现安全和非安全的执行环境,在安全区域中运行的代码和数据受到保护。尽管ARM Cortex-A、Cortex-M和Cortex-R系列处理器在安全机制方面有所不同,但它们都提供了一系列的安全功能,以保护处理器和系统免受未经授权的访问和攻击。原创 2023-12-03 19:53:30 · 5983 阅读 · 0 评论 -
Sec-comp机制简介及编程案例
然后,我们使用`seccomp_rule_add()`函数添加了一些允许的系统调用,例如`open()`、`read()`、`write()`和`close()`。然后,我们使用`seccomp_load()`函数加载seccomp过滤器,`prctl()`函数将本进程设置为seccomp模式,并运行了“she'll”进程(你可以将路径更改为she'll进程的正确路径)。seccomp机制的优点是可以有效地限制应用程序的权限和可执行的系统调用,减少了恶意代码的攻击面,提高了系统的安全性。原创 2023-12-03 19:22:34 · 2208 阅读 · 0 评论 -
基于eBPF检测内核模块安装行为
首先,请确保系统已安装eBPF工具链。上述代码仅提供了一个简单的示例,只比较了模块名称而不考虑其他因素。实际上,检测未知内核模块的安装可能需要更复杂的分析和判断逻辑。本文实现一个简单的示例,展示了如何编写一个eBPF程序来检测未知内核模块的安装行为。// 检测到未知模块安装,输出警告信息。// 在内核中获取模块信息。// 比对已知模块列表。// 可信任的内核模块列表。原创 2023-12-02 23:05:09 · 595 阅读 · 0 评论 -
基于eBPF检测反弹shell 的思路
本文使用C语言编写一个eBPF模块来检测反弹shell,该模块使用Linux内核提供的eBPF(extended Berkeley Packet Filter)功能来实现。下面是一个简单的示例,展示了如何编写一个eBPF程序来检测反弹shell。这只是一个简单的示例,实际上,检测和防止反弹shell可能需要更复杂的逻辑和规则。确保在进行实际的应用程序时进行更严格和全面的测试,并且只在可信的环境中使用此功能。完成后,eBPF程序就会在指定的网络接口上运行,并且会在检测到反弹shell的尝试时打印相应的消息。原创 2023-12-02 22:52:08 · 1229 阅读 · 0 评论 -
基于eBPF检测非法调试行为
2. 编写eBPF程序:使用C语言编写eBPF程序,该程序将在内核中执行。以上示例代码仅展示了如何在eBPF程序中检测TCP目标端口是否为1234,真正的非法调试检测逻辑和ARM调试寄存器的监测需要根据具体需求进行自定义。同时,编写适用于ARM架构的eBPF程序需要根据ARM的体系结构进行适配和调整。3. 构建和加载内核模块:将eBPF程序编译为字节码,并构建一个内核模块,用于加载和运行eBPF程序。5. 测试和调试:在加载内核模块后,进行相应的测试和调试,确保eBPF程序能够正确地监测ARM调试寄存器。原创 2023-12-02 21:53:47 · 791 阅读 · 0 评论 -
基于eBPF监测可能的提权行为
本文实现一个简单的eBPF模块,用于监测可能的提权行为。在此示例中,我们使用eBPF的`kprobe`功能来监视`commit_creds`和`set_cred`系统调用,以在执行提权操作时执行一些检查。// 在此添加对提权行为的检查逻辑,例如打印日志或发送警报。// 在此添加对提权行为的检查逻辑,例如打印日志或发送警报。在运行此eBPF模块之前,需要确保内核已启用了eBPF功能。原创 2023-12-02 21:17:32 · 548 阅读 · 0 评论 -
基于eBPF监测DOS攻击
上述代码中,我们在`netif_receive_skb`系统调用之前插入了一个`kprobe`,我们首先检查以太网协议类型是否为IP。然后,检查IP协议类型是否为TCP,并进一步检查TCP标志位是否为SYN,同时不是ACK。如果满足这些条件,则可能是DOS攻击,可以根据实际需求执行日志打印或其他操作。本文实现一个简单的eBPF模块代码示例,用于监测可能的DOS攻击。在此示例中,我们使用eBPF的`kprobe`功能来监视`netif_receive_skb`系统调用,以在接收网络数据包之后执行一些检查。原创 2023-12-02 21:13:12 · 985 阅读 · 0 评论 -
基于eBPF实现监控ssh登陆功能
该程序使用`bcc`库提供的Python接口来编写和加载eBPF程序。通过钩子函数`trace_auth_success`和`trace_auth_failure`来捕获SSH登录成功和失败的事件,并将相关信息存储在一个hash表中。最后,程序读取并打印出存储的SSH登录信息,包括进程ID、进程名称、登录时间和状态(成功或失败)。- 程序需要以root权限运行,因为eBPF需要进行特权操作。- 系统上安装了`bcc`库和eBPF相关工具。# 编译并加载eBPF程序。# 清理eBPF程序。原创 2023-12-02 21:04:10 · 790 阅读 · 0 评论 -
基于PAM自定义ssh登陆认证
/ 替换为约定的口令。注意:这只是一个简单的示例代码,实际项目中请根据需求进行适当的修改和完善。// 提示用户输入约定的口令。// 获取对话函数指针。// 验证约定的口令。原创 2023-12-02 21:00:26 · 1065 阅读 · 0 评论
分享