From 2771d66a8af2ee2acd55cd96647307bb691b1eb1 Mon Sep 17 00:00:00 2001 From: xujian Date: Wed, 28 Dec 2022 10:01:52 +0000 Subject: [PATCH 1/2] =?UTF-8?q?update=20=E5=AE=89=E5=85=A8=E7=BC=96?= =?UTF-8?q?=E7=A0=81=E8=A7=84=E8=8C=83/openKylin-C&C++=E8=AF=AD=E8=A8=80?= =?UTF-8?q?=E5=AE=89=E5=85=A8=E7=BC=96=E8=AF=91=E8=A7=84=E8=8C=83.md.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: xujian --- ...26\350\257\221\350\247\204\350\214\203.md" | 34 +++++++++---------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git "a/\345\256\211\345\205\250\347\274\226\347\240\201\350\247\204\350\214\203/openKylin-C&C++\350\257\255\350\250\200\345\256\211\345\205\250\347\274\226\350\257\221\350\247\204\350\214\203.md" "b/\345\256\211\345\205\250\347\274\226\347\240\201\350\247\204\350\214\203/openKylin-C&C++\350\257\255\350\250\200\345\256\211\345\205\250\347\274\226\350\257\221\350\247\204\350\214\203.md" index 7b99a38..dab7b6c 100644 --- "a/\345\256\211\345\205\250\347\274\226\347\240\201\350\247\204\350\214\203/openKylin-C&C++\350\257\255\350\250\200\345\256\211\345\205\250\347\274\226\350\257\221\350\247\204\350\214\203.md" +++ "b/\345\256\211\345\205\250\347\274\226\347\240\201\350\247\204\350\214\203/openKylin-C&C++\350\257\255\350\250\200\345\256\211\345\205\250\347\274\226\350\257\221\350\247\204\350\214\203.md" @@ -2,9 +2,9 @@ ## 1. ASLR -1.1. 作用阶段 +1.1. 作用范围 -系统配置 +系统配置,堆、栈、内存映射区(mmap基址、shared libraries、vdso页) 1.2. 使用方法 @@ -21,9 +21,9 @@ ASLR是一种针对缓冲区溢出的安全保护技术,通过对堆、栈、 ## 2. 栈保护 -2.1. 作用阶段 +2.1. 作用范围 -编译选项 +编译选项,可重定位文件(.o)、动态库、ELF格式可执行程序 2.2. 使用方法 @@ -39,8 +39,8 @@ ASLR是一种针对缓冲区溢出的安全保护技术,通过对堆、栈、 ## 3. GOT表保护 -3.1. 作用阶段 - +3.1. 作用范围 +链接选项,动态库、ELF格式可执行程序 3.2. 使用方法 3.3. 强制性 @@ -50,7 +50,7 @@ ASLR是一种针对缓冲区溢出的安全保护技术,通过对堆、栈、 ## 4. 动态库搜索路径 -4.1. 作用阶段 +4.1. 作用范围 4.2. 使用方法 @@ -61,7 +61,7 @@ ASLR是一种针对缓冲区溢出的安全保护技术,通过对堆、栈、 ## 5. 堆栈不可执行 -5.1. 作用阶段 +5.1. 作用范围 5.2. 使用方法 @@ -71,7 +71,7 @@ ASLR是一种针对缓冲区溢出的安全保护技术,通过对堆、栈、 ## 6. 地址无关 -6.1. 作用阶段 +6.1. 作用范围 6.2. 使用方法 @@ -81,7 +81,7 @@ ASLR是一种针对缓冲区溢出的安全保护技术,通过对堆、栈、 ## 7. 随机化 -7.1. 作用阶段 +7.1. 作用范围 7.2. 使用方法 @@ -91,7 +91,7 @@ ASLR是一种针对缓冲区溢出的安全保护技术,通过对堆、栈、 ## 8. FS -8.1. 作用阶段 +8.1. 作用范围 8.2. 使用方法 @@ -101,7 +101,7 @@ ASLR是一种针对缓冲区溢出的安全保护技术,通过对堆、栈、 ## 9. 立即绑定 -9.1. 作用阶段 +9.1. 作用范围 9.2. 使用方法 @@ -111,7 +111,7 @@ ASLR是一种针对缓冲区溢出的安全保护技术,通过对堆、栈、 ## 10. 动态库符号隐藏 -10.1. 作用阶段 +10.1. 作用范围 10.2. 使用方法 @@ -121,7 +121,7 @@ ASLR是一种针对缓冲区溢出的安全保护技术,通过对堆、栈、 ## 11. 整数溢出检查 -11.1. 作用阶段 +11.1. 作用范围 11.2. 使用方法 @@ -131,7 +131,7 @@ ASLR是一种针对缓冲区溢出的安全保护技术,通过对堆、栈、 ## 12. 栈检查 -12.1. 作用阶段 +12.1. 作用范围 12.2. 使用方法 @@ -141,7 +141,7 @@ ASLR是一种针对缓冲区溢出的安全保护技术,通过对堆、栈、 ## 13. 删除符号表 -13.1. 作用阶段 +13.1. 作用范围 13.2. 使用方法 @@ -151,7 +151,7 @@ ASLR是一种针对缓冲区溢出的安全保护技术,通过对堆、栈、 ## 14. 告警选项 -14.1. 作用阶段 +14.1. 作用范围 14.2. 使用方法 -- Gitee From 3c98187eb3b03fc660cdb0aa9654395aff63e8b0 Mon Sep 17 00:00:00 2001 From: xujian Date: Wed, 28 Dec 2022 10:06:15 +0000 Subject: [PATCH 2/2] =?UTF-8?q?update=20=E5=AE=89=E5=85=A8=E7=BC=96?= =?UTF-8?q?=E7=A0=81=E8=A7=84=E8=8C=83/openKylin-C&C++=E8=AF=AD=E8=A8=80?= =?UTF-8?q?=E5=AE=89=E5=85=A8=E7=BC=96=E8=AF=91=E8=A7=84=E8=8C=83.md.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: xujian --- ...4\226\350\257\221\350\247\204\350\214\203.md" | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git "a/\345\256\211\345\205\250\347\274\226\347\240\201\350\247\204\350\214\203/openKylin-C&C++\350\257\255\350\250\200\345\256\211\345\205\250\347\274\226\350\257\221\350\247\204\350\214\203.md" "b/\345\256\211\345\205\250\347\274\226\347\240\201\350\247\204\350\214\203/openKylin-C&C++\350\257\255\350\250\200\345\256\211\345\205\250\347\274\226\350\257\221\350\247\204\350\214\203.md" index dab7b6c..0cac527 100644 --- "a/\345\256\211\345\205\250\347\274\226\347\240\201\350\247\204\350\214\203/openKylin-C&C++\350\257\255\350\250\200\345\256\211\345\205\250\347\274\226\350\257\221\350\247\204\350\214\203.md" +++ "b/\345\256\211\345\205\250\347\274\226\347\240\201\350\247\204\350\214\203/openKylin-C&C++\350\257\255\350\250\200\345\256\211\345\205\250\347\274\226\350\257\221\350\247\204\350\214\203.md" @@ -40,24 +40,40 @@ ASLR是一种针对缓冲区溢出的安全保护技术,通过对堆、栈、 ## 3. GOT表保护 3.1. 作用范围 + 链接选项,动态库、ELF格式可执行程序 + 3.2. 使用方法 +(1)部分重定向只读:-Wl,-z,relro + +(2)全部重定向只读:-Wl,-z,relro,-z,now + 3.3. 强制性 +必选 + 3.4 说明 +动态链接的ELF二进制程序使用称为全局偏移表(GOT)的查找表去动态解析位于共享库中的函数。攻击者通过缓冲区溢出修改GOT表项的函数地址值来达到攻击的目的。通过增加RELRO选项,可以防止GOT表被恶意重写。 ## 4. 动态库搜索路径 4.1. 作用范围 +链接选项,动态库、ELF格式可执行程序 + 4.2. 使用方法 +-Wl,--disable-new-dtags,--rpath,/libpath1:/libpath2;-Wl,--enable-new-dtags,--rpath,/libpath1:/libpath2 + 4.3. 强制性 +禁选 + 4.4 说明 +主要用于防护LD_LIBRARY_PATH替换同名动态库的攻击。通过加入此选项可以指定一个运行时动态库搜索的路径,该路径的搜索优先级高于LD_LIBRARY_PATH指定的路径。可执行文件在运行阶段进行动态库搜索时会首先在--rpath指定的路径查找动态库,然后才会到LD_LIBRARY_PATH指定的路径搜索。因此可以有效防御LD_LIBRARY_PATH =[attackpath]来替换同名动态库的攻击。但是该选项有也很多局限性,如指向的路径不安全,若普通用户可以在这些目录中使用恶意程序替换正常程序,造成权限提升,引发不安全路径漏洞。 ## 5. 堆栈不可执行 -- Gitee