点击标题下「蓝色微信名」可快速关注 本篇继续安全系列之介绍,继续学习linux安全!,上期学习了android系统构建介绍,下期将会了解用户空间之安全。 作为最广为人知的开源项目之一,Linux 已经被证明是一个安全,可信和稳定的软件,全世界数千人对它进行研究,攻击和打补丁。 不出所料,Linux 内核是 Android 操作系统的基础[3]。 Android 不仅依赖于 Linux 的进程,内存和文件系统管理,它也是 Android 安全架构中最重要的组件之一。 在 Android 中,Linux 内核负责配置应用沙盒,以及规范一些权限。 此图显示了 Android 安全体系结构的更详细的概述。我们将在本文中参考它来解释这个操作系统的特性。 在 Linux 内核层配置应用沙箱的过程如下。 幸运的是,因为沙盒在 Linux 内核层上执行,本地代码和操作系统应用也受到本章[3]中所描述的这些约束的约束。
Windows内核开发-3-内核编程基础 这里会深入讲解kernel内核的API、结构体、和一些定义。考察代码在内核驱动中运行的机制。最后把所有知识合在一起写一个有用的驱动。 本章学习要点: 1:通用内核编程指南 2:debug和release版本的区别 3:内核API 4:函数和错误代码 5:字符串 6:动态内存分配 7:内核驱动对象 8:设备对象 1 内核编程注意事项 B:只把指针作为全局变量,利用指针来动态创建 3:C++中的异常长处理不支持(try,catch,throw),因为Kernel只支持SEH 4:不支持C++标准库 驱动用纯C来写没有任何问题,但是也可以采用 3 The Kernel API 内核API 写的内核驱动程序可以使用已经存在的一些内核组件中提供的API,这个函数被称为内核API。 FsRtlGetFileSize Flt 文件系统过滤库 FltCreateFile Ob 对象管理的操作函数 ObReferenceObject Io I/O设备的管理 IoCompleteRequest Se 安全函数
目标: 通过分析makefile,明白make uImage如何编译内核 把整个内核的makefile分成三类(makefile资料文档在linux-2.6.22.6/Documentation/build /makefiles.txt) <1>各级子目录makefile(每个子目录都有makefile) <2>/arch/arm/Makefile(架构相关的makefile) <3>顶层目录makefile obj-m += s3c24xx_buttons.o obj-m += ker_rw.o obj-$(CONFIG_LEGACY_PTYS) += pty.o obj-$(CONFIG_UNIX98 /arch/arm/Makefile中的uImage 3 分析顶层目录Makefile 3.1 顶层vmlinux生成过程 在顶层目录makefile中第484行得出: 484 all: vmlinux 其中,all就是直接 make 指令编译内核,显然make uImage和make都依赖于vmlinux(内核) 然后在746得到出vmlinux生成步骤: 746 vmlinux: $(vmlinux-lds
目标: 通过分析makefile,明白make uImage如何编译内核 把整个内核的makefile分成三类(makefile资料文档在linux-2.6.22.6/Documentation/build /makefiles.txt) <1>各级子目录makefile(每个子目录都有makefile) <2>/arch/arm/Makefile(架构相关的makefile) <3>顶层目录makefile obj-m += s3c24xx_buttons.o obj-m += ker_rw.o obj-$(CONFIG_LEGACY_PTYS) += pty.o obj-$(CONFIG_UNIX98 /arch/arm/Makefile中的uImage 3 分析顶层目录Makefile 3.1 顶层vmlinux生成过程 在顶层目录makefile中第484行得出: 484 all: vmlinux 其中,all就是直接 make 指令编译内核,显然make uImage和make都依赖于vmlinux(内核) 然后在746得到出vmlinux生成步骤: 746 vmlinux: $(vmlinux-lds
一、安全机制研究概述在当今网络安全形势日益严峻的背景下,操作系统内核的安全性直接关系到整个IT基础设施的安全防线。 二、openEuler内核安全架构解析2.1安全机制概览openEuler内核的安全机制可以分为以下几个层次:安全层次核心技术防护能力性能影响内存安全KASLR/KPTI防地址泄露<5%访问控制SELinux /AppArmor强制访问控制5-10%漏洞防护StackCanary/CFI防栈溢出/控制流劫持<3%安全审计Audit子系统完整审计日志2-5%加密保护dm-crypt/fscrypt数据加密10- /stack_test$(python3-c"print('A'*100)")五、SELinux强制访问控制测试5.1SELinux策略配置SELinux是openEuler内核的核心安全机制,它提供强制访问控制 /SMAP防内核代码执行<1%所有场景StackCanary防栈溢出2-3%所有场景SELinux强制访问控制5-8%高安全需求Audit安全审计2-5%合规要求dm-crypt磁盘加密10-15%数据保护性能影响评估
这也导致了Android内核在安全侧有部分不同于Linux内核,侧重点也存在不同。 在操作系统级别,Android平台不仅提供Linux内核的安全功能,而且还提供安全的进程间通信 (IPC)机制,以便在不同进程中运行的应用之间安全通信。 要为内核启用ShadowCallStack,请将下面这行代码添加到内核配置文件: CONFIG_SHADOW_CALL_STACK=y 九、总结 除以上内核安全特性外,Android提供了一些关键的安全功能 ,其中包括: 基于用户的权限模式 进程隔离 实现安全IPC的可扩展机制 移除内核中不必要的和可能不安全的部分 我们也可以看到,上述很多功能都是基于LLVM编译器来实现,在现实工作中,LLVM也不只是作为一个 内核在集成Linux内核主线版本的优势下,再发展适合自身生态的内核安全方案,在庞大数量设备的基础上,既是挑战,也是机遇,期待Android能给出完美的答案。
PHP 内核之旅系列 PHP内核之旅-1.生命周期 PHP内核之旅-2.SAPI中的Cli PHP内核之旅-3.变量 一、弱类型语言 php是弱类型语言。一个变量可以表示任意数据类型。 ) 布尔型boolean 全部类型如下: 1 /* regular data types */ 2 #define IS_UNDEF 0 3 Zend\zend_types.h 1 struct _zval_struct { 2 zend_value value; //用来保存具体的变量值 3 2. union u1 = 结构体v + type_info 3. 参考资料: http://www.php-internals.com/ 《PHP7内核剖析》 作 者: Jackson0714 出 处:http://www.cnblogs.com
) 布尔型boolean 全部类型如下: 1 /* regular data types */ 2 #define IS_UNDEF 0 3 Zend\zend_types.h 1 struct _zval_struct { 2 zend_value value; //用来保存具体的变量值 3 2. union u1 = 结构体v + type_info 3. 9 zend_reference *ref; //引用类型 10 zend_ast_ref *ast; //内核使用的 参考资料: http://www.php-internals.com/ 《PHP7内核剖析》 作 者: Jackson0714 出 处:http://www.cnblogs.com
目标: 1.给内核打补丁 2.配置 3.编译 4.重启 1 内核打补丁 1.1 通过FTP将Windows里system目录下linux-2.6.22.6.tar.bz2和linux-2.6.22.6 这是内核配置的过程。 (2) 我们的是arm架构,所以 cd arch/arm/configs 进入configs目录,如下图所示,发现与2440相像的就只有s3c2410_deconfig。 ? (3)返回到linux-2.6.22.6顶层目录下,通过make s3c2410_defconfig 命令来配置,如下图所示 配置完后可以看出最后出现“configuration written to :表示这选项能被模块化(按下M键有响应) 3 编译(2种配置方法) 3.1 输入 make 命令直接编译 3.2 输入 make uImage 命令生成uImage内核文件(头部uImage+真正的内核
2009年3月安全公告日本安全团队 / 2009年3月10日 / 6分钟阅读本月安全公告未作变更,按计划发布3项更新(紧急1项,重要2项),同时重新提供部分环境的MS08-052更新程序。 新增安全公告完整摘要、部署指南及漏洞利用指数详见:http://www.microsoft.com/japan/technet/security/bulletin/ms09-mar.mspxMS09-006 (Windows内核) 通过特制图像文件可能导致远程代码执行或权限提升。 更新公告MS08-052(GDI+) 针对已安装SP更新的特定系统重新发布补丁:Windows XP SP3(从SP2升级后)Windows Server 2003 SP2(从SP1升级后)恶意软件删除工具
声明:本人坚决反对利用文章内容进行恶意攻击行为,一切错误行为必将受到惩罚,绿色网络需要靠我们共同维护,推荐大家在了解技术原理的前提下,更好的维护个人信息安全、企业安全、国家安全。 ? ? 具体操作如下: 01 查询系统补丁更新情况 在经过常规手法web渗透或者钓鱼等操作获得基本权限(用户权限,或者服务权限)之后,最常用的方法就是windows系统的内核提权。
Windows内核安全:从架构根基到攻防博弈的全景透视内核是操作系统的心脏,也是攻击者与防御者的终极战场。 当恶意代码获得内核态执行权限,它便不再受任何用户层安全策略的约束——防火墙形同虚设,杀毒软件无能为力。理解Windows内核安全,不是选修课,而是每个安全从业者的必修课。 它驻留在内核中,负责执行对象的安全访问检查、管理用户特权、生成安全审计消息。 此后每隔约2分钟(±30秒随机偏移),PG通过DPC在系统线程间"接力传递"这个Context,解密后随机抽取3-5个关键区域进行比对。一旦发现篡改,立即触发蓝屏(错误码0x109)。 调试时使用硬件断点而非软件断点(INT3),避免在检测路径上单步执行。
为什么要裁剪内核? 因为mtd的kernel分区只有2M大,而实际内核有2.37MB,所以需要裁剪到小于2M(或者修改mtd分区值) 首先裁剪内核里无关的CPU/单板文件 通过vi .config,然后搜索2440,如下图所示 然后参考上图,make menuconfig 进入System Type —> SAMSUNG S3C24XX SoCs Support: ? ,去掉: < > Second extended fs support //ext2 < > Ext3 journalling file system support < 如下图所示,内核启动时,看到初始化了PS2鼠标驱动 ?
Linux内核v4.12的安全特性发布日期:2017年7月10日 分类:Chrome OS, Debian, 内核, 安全, Ubuntu, Ubuntu-Server 作者:kees @ 凌晨1: 24上一篇:v4.11以下是Linux内核上周发布的v4.12版本中一些有趣安全特性的快速总结:x86只读与固定位置GDT通过内核内存基地址随机化,攻击者仍可通过"sgdt"指令获取每CPU基地址,因为该指令会暴露每 LSM结构只读化James Morris利用__ro_after_init使LSM(Linux安全模块)结构在启动后变为只读。这消除了它们作为攻击者理想目标的风险。 由于内核各处都会调用这些钩子,这曾是攻击者劫持内核执行的首选方法。(类似目标过去是系统调用表,但早已设为只读。) 分类:博客(152)、Chrome OS(49)、Debian(117)、嵌入式(8)、通用(33)、健康(3)、Inkscape(8)、内核(37)、kernel.org(6)、多媒体(33)、网络(
关于kconfig-hardened-check kconfig-hardened-check是一款功能强大的安全检测工具,可以帮助广大研究人员检测Linux内核中的安全增强选项。 Linux内核中提供了很多安全增强选项,其中有很多选项在主要的Linux发行版系统中都默认不会开启。因此,我们如果想要让自己的系统变得更加安全的话,我们则需要手动开启这些安全增强选项。 但是,谁都不想手动去检查这些配置选项,因此kconfig-hardened-check便应运而生,它可以自动帮我们检查自己Linux系统内核中的相关安全增强选项。 在检查的过程中,kconfig-hardened-check.py 将根据下列参考配置来进行检查: 1、KSPP推荐设置; 2、CLIP操作系统内核配置; 3、最新公开的grsecurity修复方案; 4、SECURITY_LOCKDOWN_LSM修复方案; 5、Linux内核维护团队的直接反馈; 除此之外,我们还创建了一份Linux内核防御图,它是安全强化特性和相应漏洞类或攻击技术之间关系的图形表示
SELinux:安全增强型Linux内核模块介绍========================SELinux,全称Security-Enhanced Linux,是一种在Linux内核中实现的安全策略 什么是SELinux--------SELinux是一种基于安全策略(Security Policy)的访问控制机制,通过在Linux内核中添加安全模块,实现更为严格的资源访问控制。 SELinux的核心思想是将系统资源(如文件、目录、网络端口等)与用户(或其他安全实体)关联起来,根据预先定义的安全策略,限制用户对系统资源的访问。 MLS(Multi-Level Security):SELinux支持多级安全(MLS)策略,这种策略允许多个安全级别不同的用户共享相同的系统资源。 总结--SELinux作为一款安全增强型Linux内核模块,为Linux系统的安全性提供了强有力的保障。
目标: 分析make menuconfig内核配置过程 在上1小结中(内核编译试验)讲到了3种不同的配置: (1)通过make menuconfig 直接从头到尾配置.config文件 (2) 通过make s3c2410_deconfig 命令在默认的配置上进行自动修改.config文件 (3)使用厂家提供的配置config_ok文件覆盖.config文件 所以,所有的配置结果都是配置.config文件 1 在linux下通过vi指令查看.config内核配置文件 ? (CONFIG_DM9000_MODULE) arch/arm/plat-s3c24xx/common-smdk.c:162:#if defined(CONFIG_DM9000) || defined( _MODULE) (3)在include/config/auto.conf中设置COMFIG_DM9000=y,供.
目标: 分析make menuconfig内核配置过程 在上1小结中(内核编译试验)讲到了3种不同的配置: (1)通过make menuconfig 直接从头到尾配置.config文件 (2) 通过make s3c2410_deconfig 命令在默认的配置上进行自动修改.config文件 (3)使用厂家提供的配置config_ok文件覆盖.config文件 所以,所有的配置结果都是配置.config文件 1 在linux下通过vi指令查看.config内核配置文件 ? (CONFIG_DM9000_MODULE) arch/arm/plat-s3c24xx/common-smdk.c:162:#if defined(CONFIG_DM9000) || defined( _MODULE) (3)在include/config/auto.conf中设置COMFIG_DM9000=y,供.
《Linux内核设计与实现》第3版,英文版已经出版,中文版即将出版。 本书基于linux 2.6介绍了linux内核的设计与实现,涵盖了从核心内核系统的应用到内核设计与实现等各方面内容,主要内容包括:进程管理、调度、时间管理和定时器、系统调用接口、内存寻址、内存管理、页缓存 能够带领读者快速走进linux内核世界,真正开发内核代码。 如果你是一名linux内核爱好者,本书的内容可以帮助你大显身手。如果你是一名普通程序员,本书的内容将会拓宽你的编程思路。 如果你初次接触linux内核,本书则可以帮助你对内核各个核心子系统有一个整体把握。 本版新增内容: ·增加一章专门描述内核数据结构 ·详细描述中断处理程序 ·扩充虚拟内存和内存分配的内容 ·调试linux内核的技巧 ·内核同步和锁机制的深度描述 ·提交内核补丁以及参与linux
内核其他TCP参数说明: net.ipv4.tcp_max_syn_backlog = 65536 #记录的那些尚未收到客户端确认信息的连接请求的最大值。 net.core.netdev_max_backlog = 32768 #每个网络接口接收数据包的速率比内核处理这些包的速率快时,允许送到队列的数据包的最大数目。 时间戳能够让内核接受这种“异常”的数据包。这里需要将其关掉。 这个设置决定了内核放弃连接之前发送SYN+ACK包的数量。 net.ipv4.tcp_syn_retries = 2 #在内核放弃建立连接之前发送SYN包的数量。 873200 # TCP读buffer,可参考的优化值: 32768 436600 873200 net.ipv4.tcp_mem = 94500000 91500000 92700000 # 同样有3个值