From da27dc12c74f496a520999123ba8f09987321a80 Mon Sep 17 00:00:00 2001 From: xujian Date: Wed, 28 Dec 2022 09:23:55 +0000 Subject: [PATCH 1/9] =?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 --- ...\250\347\274\226\350\257\221\350\247\204\350\214\203.md" | 6 +++--- 1 file changed, 3 insertions(+), 3 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 b6b9129..118a937 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" @@ -1,4 +1,4 @@ # C&C++语言安全编译规范 -| 选项 |阶段| 用法 |说明 | -|---|---|---|---| -| | | | | +| 选项 |阶段| 用法 |说明 | 强制性| +|---|---|---|---|---| +|ASLR | 系统配置 | echo 2 >/proc/sys/kernel/randomize_va_space | ASLR是一种针对缓冲区溢出的安全保护技术,通过对堆、栈、共享库映射等线性区布局的随机化,增加攻击者预测目的地址的难度,防止攻击者直接定位攻击代码位置,达到阻止溢出攻击的目的。randomize_va_space等于1时,栈、数据段、VDSO会随机化,randomize_va_space等于2时堆地址也会随机化。系统开启该随机化保护的标志是randomize_va_space等于2 |必选| -- Gitee From f3fc1552b2ecbade303bdfae34a57254f5eabfac Mon Sep 17 00:00:00 2001 From: xujian Date: Wed, 28 Dec 2022 09:27:38 +0000 Subject: [PATCH 2/9] =?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 --- ...5\250\347\274\226\350\257\221\350\247\204\350\214\203.md" | 5 +++-- 1 file changed, 3 insertions(+), 2 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 118a937..ede94ae 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" @@ -1,4 +1,5 @@ # C&C++语言安全编译规范 -| 选项 |阶段| 用法 |说明 | 强制性| +| 选项 |作用阶段| 用法 |说明 | 强制性| |---|---|---|---|---| -|ASLR | 系统配置 | echo 2 >/proc/sys/kernel/randomize_va_space | ASLR是一种针对缓冲区溢出的安全保护技术,通过对堆、栈、共享库映射等线性区布局的随机化,增加攻击者预测目的地址的难度,防止攻击者直接定位攻击代码位置,达到阻止溢出攻击的目的。randomize_va_space等于1时,栈、数据段、VDSO会随机化,randomize_va_space等于2时堆地址也会随机化。系统开启该随机化保护的标志是randomize_va_space等于2 |必选| +|ASLR | 系统配置 | echo 2 >/proc/sys/kernel/randomize_va_space | ASLR是一种针对缓冲区溢出的安全保护技术,通过对堆、栈、共享库映射等线性区布局的随机化,增加攻击者预测目的地址的难度,防止攻击者直接定位攻击代码位置,达到阻止溢出攻击的目的。randomize_va_space等于1时,栈、数据段、VDSO会随机化,randomize_va_space等于2时堆地址也会随机化。|必选| +|栈保护| 编译选项 | -fstack-protector-all / -fstack-protector-strong | 避免栈溢出被攻击者利用。在缓冲区和控制信息间插入一个canary word。当缓冲区被溢出时,在返回地址被覆盖之前canary word会首先被覆盖。通过检查canary word的值是否被修改,就可以判断是否发生了溢出攻击。|必选| -- Gitee From 045eb1f14adea74dbd5b0203ed859cab4ee305ca Mon Sep 17 00:00:00 2001 From: xujian Date: Wed, 28 Dec 2022 09:31:46 +0000 Subject: [PATCH 3/9] =?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" | 21 +++++++++++++++---- 1 file changed, 17 insertions(+), 4 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 ede94ae..0629616 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" @@ -1,5 +1,18 @@ # C&C++语言安全编译规范 -| 选项 |作用阶段| 用法 |说明 | 强制性| -|---|---|---|---|---| -|ASLR | 系统配置 | echo 2 >/proc/sys/kernel/randomize_va_space | ASLR是一种针对缓冲区溢出的安全保护技术,通过对堆、栈、共享库映射等线性区布局的随机化,增加攻击者预测目的地址的难度,防止攻击者直接定位攻击代码位置,达到阻止溢出攻击的目的。randomize_va_space等于1时,栈、数据段、VDSO会随机化,randomize_va_space等于2时堆地址也会随机化。|必选| -|栈保护| 编译选项 | -fstack-protector-all / -fstack-protector-strong | 避免栈溢出被攻击者利用。在缓冲区和控制信息间插入一个canary word。当缓冲区被溢出时,在返回地址被覆盖之前canary word会首先被覆盖。通过检查canary word的值是否被修改,就可以判断是否发生了溢出攻击。|必选| + +1. ASLR + +1.1. 作用阶段 + 系统配置 + +1.2. 使用方法 +echo 2 >/proc/sys/kernel/randomize_va_space + +1.3 说明 + +ASLR是一种针对缓冲区溢出的安全保护技术,通过对堆、栈、共享库映射等线性区布局的随机化,增加攻击者预测目的地址的难度,防止攻击者直接定位攻击代码位置,达到阻止溢出攻击的目的。randomize_va_space等于1时,栈、数据段、VDSO会随机化,randomize_va_space等于2时堆地址也会随机化。 + +1.4. 强制性 +必选 + +|栈保护| 编译选项 | -fstack-protector-all / -fstack-protector-strong | 避免栈溢出被攻击者利用。在缓冲区和控制信息间插入一个canary word。当缓冲区被溢出时,在返回地址被覆盖之前canary word会首先被覆盖。通过检查canary word的值是否被修改,就可以判断是否发生了溢出攻击。|| -- Gitee From 1521942f8f2690ad0db48f64d6a9d27d509ac3b7 Mon Sep 17 00:00:00 2001 From: xujian Date: Wed, 28 Dec 2022 09:33:09 +0000 Subject: [PATCH 4/9] =?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" | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 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 0629616..b02dfab 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" @@ -1,18 +1,23 @@ # C&C++语言安全编译规范 -1. ASLR +## 1. ASLR -1.1. 作用阶段 - 系统配置 +### 1.1. 作用阶段 + +系统配置 + +### 1.2. 使用方法 -1.2. 使用方法 echo 2 >/proc/sys/kernel/randomize_va_space -1.3 说明 +### 1.3. 强制性 + +必选 + +### 1.4 说明 ASLR是一种针对缓冲区溢出的安全保护技术,通过对堆、栈、共享库映射等线性区布局的随机化,增加攻击者预测目的地址的难度,防止攻击者直接定位攻击代码位置,达到阻止溢出攻击的目的。randomize_va_space等于1时,栈、数据段、VDSO会随机化,randomize_va_space等于2时堆地址也会随机化。 -1.4. 强制性 -必选 + |栈保护| 编译选项 | -fstack-protector-all / -fstack-protector-strong | 避免栈溢出被攻击者利用。在缓冲区和控制信息间插入一个canary word。当缓冲区被溢出时,在返回地址被覆盖之前canary word会首先被覆盖。通过检查canary word的值是否被修改,就可以判断是否发生了溢出攻击。|| -- Gitee From e53143ec780984b4824a30124fc578bc1a674796 Mon Sep 17 00:00:00 2001 From: xujian Date: Wed, 28 Dec 2022 09:36:40 +0000 Subject: [PATCH 5/9] =?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 --- ...\226\350\257\221\350\247\204\350\214\203.md" | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) 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 b02dfab..206aef1 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" @@ -19,5 +19,20 @@ echo 2 >/proc/sys/kernel/randomize_va_space ASLR是一种针对缓冲区溢出的安全保护技术,通过对堆、栈、共享库映射等线性区布局的随机化,增加攻击者预测目的地址的难度,防止攻击者直接定位攻击代码位置,达到阻止溢出攻击的目的。randomize_va_space等于1时,栈、数据段、VDSO会随机化,randomize_va_space等于2时堆地址也会随机化。 +## 2. 栈保护 -|栈保护| 编译选项 | -fstack-protector-all / -fstack-protector-strong | 避免栈溢出被攻击者利用。在缓冲区和控制信息间插入一个canary word。当缓冲区被溢出时,在返回地址被覆盖之前canary word会首先被覆盖。通过检查canary word的值是否被修改,就可以判断是否发生了溢出攻击。|| +### 2.1. 作用阶段 + +编译选项 + +### 2.2. 使用方法 + +-fstack-protector-all / -fstack-protector-strong + +### 2.3. 强制性 + +必选 + +### 2.4 说明 + +避免栈溢出被攻击者利用。在缓冲区和控制信息间插入一个canary word。当缓冲区被溢出时,在返回地址被覆盖之前canary word会首先被覆盖。通过检查canary word的值是否被修改,就可以判断是否发生了溢出攻击。 -- Gitee From 294255c3c41471242d8dbd81c8ae20d4464e73bb Mon Sep 17 00:00:00 2001 From: xujian Date: Wed, 28 Dec 2022 09:45:19 +0000 Subject: [PATCH 6/9] =?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" | 127 ++++++++++++++++++ 1 file changed, 127 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 206aef1..7d46103 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" @@ -36,3 +36,130 @@ ASLR是一种针对缓冲区溢出的安全保护技术,通过对堆、栈、 ### 2.4 说明 避免栈溢出被攻击者利用。在缓冲区和控制信息间插入一个canary word。当缓冲区被溢出时,在返回地址被覆盖之前canary word会首先被覆盖。通过检查canary word的值是否被修改,就可以判断是否发生了溢出攻击。 + +## 3. GOT表保护 + +### 3.1. 作用阶段 + +### 3.2. 使用方法 + +### 3.3. 强制性 + +### 3.4 说明 + + +## 4. 动态库搜索路径 + +### 4.1. 作用阶段 + +### 4.2. 使用方法 + +### 4.3. 强制性 + +### 4.4 说明 + + +## 5. GOT表保护 + +### 5.1. 作用阶段 + +### 5.2. 使用方法 + +### 5.3. 强制性 + +### 5.4 说明 + +## 5. GOT表保护 + +### 5.1. 作用阶段 + +### 5.2. 使用方法 + +### 5.3. 强制性 + +### 5.4 说明 + +## 5. GOT表保护 + +### 5.1. 作用阶段 + +### 5.2. 使用方法 + +### 5.3. 强制性 + +### 5.4 说明 + +## 5. GOT表保护 + +### 5.1. 作用阶段 + +### 5.2. 使用方法 + +### 5.3. 强制性 + +### 5.4 说明 + +## 5. GOT表保护 + +### 5.1. 作用阶段 + +### 5.2. 使用方法 + +### 5.3. 强制性 + +### 5.4 说明 + +## 5. GOT表保护 + +### 5.1. 作用阶段 + +### 5.2. 使用方法 + +### 5.3. 强制性 + +### 5.4 说明 + +## 5. GOT表保护 + +### 5.1. 作用阶段 + +### 5.2. 使用方法 + +### 5.3. 强制性 + +### 5.4 说明 + +## 5. GOT表保护 + +### 5.1. 作用阶段 + +### 5.2. 使用方法 + +### 5.3. 强制性 + +### 5.4 说明 + +## 5. GOT表保护 + +### 5.1. 作用阶段 + +### 5.2. 使用方法 + +### 5.3. 强制性 + +### 5.4 说明 + +## 5. GOT表保护 + +### 5.1. 作用阶段 + +### 5.2. 使用方法 + +### 5.3. 强制性 + +### 5.4 说明 + + + + + -- Gitee From dfc4c0f9f4f8fb09c31627e25d08f0fe8129360f Mon Sep 17 00:00:00 2001 From: xujian Date: Wed, 28 Dec 2022 09:50:56 +0000 Subject: [PATCH 7/9] =?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" | 92 +++++++++---------- 1 file changed, 46 insertions(+), 46 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 7d46103..39571fa 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" @@ -59,7 +59,7 @@ ASLR是一种针对缓冲区溢出的安全保护技术,通过对堆、栈、 ### 4.4 说明 -## 5. GOT表保护 +## 5. 堆栈不可执行 ### 5.1. 作用阶段 @@ -69,95 +69,95 @@ ASLR是一种针对缓冲区溢出的安全保护技术,通过对堆、栈、 ### 5.4 说明 -## 5. GOT表保护 +## 6. 地址无关 -### 5.1. 作用阶段 +### 6.1. 作用阶段 -### 5.2. 使用方法 +### 6.2. 使用方法 -### 5.3. 强制性 +### 6.3. 强制性 -### 5.4 说明 +### 6.4 说明 -## 5. GOT表保护 +## 7. 随机化 -### 5.1. 作用阶段 +### 7.1. 作用阶段 -### 5.2. 使用方法 +### 7.2. 使用方法 -### 5.3. 强制性 +### 7.3. 强制性 -### 5.4 说明 +### 7.4 说明 -## 5. GOT表保护 +## 8. FS -### 5.1. 作用阶段 +### 8.1. 作用阶段 -### 5.2. 使用方法 +### 8.2. 使用方法 -### 5.3. 强制性 +### 8.3. 强制性 -### 5.4 说明 +### 8.4 说明 -## 5. GOT表保护 +## 9. 立即绑定 -### 5.1. 作用阶段 +### 9.1. 作用阶段 -### 5.2. 使用方法 +### 9.2. 使用方法 -### 5.3. 强制性 +### 9.3. 强制性 -### 5.4 说明 +### 9.4 说明 -## 5. GOT表保护 +## 10. 动态库符号隐藏 -### 5.1. 作用阶段 +### 10.1. 作用阶段 -### 5.2. 使用方法 +### 10.2. 使用方法 -### 5.3. 强制性 +### 10.3. 强制性 -### 5.4 说明 +### 10.4 说明 -## 5. GOT表保护 +## 11. 整数溢出检查 -### 5.1. 作用阶段 +### 11.1. 作用阶段 -### 5.2. 使用方法 +### 11.2. 使用方法 -### 5.3. 强制性 +### 11.3. 强制性 -### 5.4 说明 +### 11.4 说明 -## 5. GOT表保护 +## 12. 栈检查 -### 5.1. 作用阶段 +### 12.1. 作用阶段 -### 5.2. 使用方法 +### 12.2. 使用方法 -### 5.3. 强制性 +### 12.3. 强制性 -### 5.4 说明 +### 12.4 说明 -## 5. GOT表保护 +## 13. 删除符号表 -### 5.1. 作用阶段 +### 13.1. 作用阶段 -### 5.2. 使用方法 +### 13.2. 使用方法 -### 5.3. 强制性 +### 13.3. 强制性 -### 5.4 说明 +### 13.4 说明 -## 5. GOT表保护 +## 14. 告警选项 -### 5.1. 作用阶段 +### 14.1. 作用阶段 -### 5.2. 使用方法 +### 14.2. 使用方法 -### 5.3. 强制性 +### 14.3. 强制性 -### 5.4 说明 +### 14.4 说明 -- Gitee From 7e96090382f8a13b07f75418bc5b8a18297eff3b Mon Sep 17 00:00:00 2001 From: xujian Date: Wed, 28 Dec 2022 09:51:39 +0000 Subject: [PATCH 8/9] =?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 --- ...50\347\274\226\350\257\221\350\247\204\350\214\203.md" | 8 ++++---- 1 file changed, 4 insertions(+), 4 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 39571fa..2e26019 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,19 +2,19 @@ ## 1. ASLR -### 1.1. 作用阶段 +1.1. 作用阶段 系统配置 -### 1.2. 使用方法 +1.2. 使用方法 echo 2 >/proc/sys/kernel/randomize_va_space -### 1.3. 强制性 +1.3. 强制性 必选 -### 1.4 说明 +1.4 说明 ASLR是一种针对缓冲区溢出的安全保护技术,通过对堆、栈、共享库映射等线性区布局的随机化,增加攻击者预测目的地址的难度,防止攻击者直接定位攻击代码位置,达到阻止溢出攻击的目的。randomize_va_space等于1时,栈、数据段、VDSO会随机化,randomize_va_space等于2时堆地址也会随机化。 -- Gitee From db4f24ea4288bac27653fc3d654ebe93bdb220f6 Mon Sep 17 00:00:00 2001 From: xujian Date: Wed, 28 Dec 2022 09:53:57 +0000 Subject: [PATCH 9/9] =?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" | 104 +++++++++--------- 1 file changed, 52 insertions(+), 52 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 2e26019..7b99a38 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" @@ -21,143 +21,143 @@ ASLR是一种针对缓冲区溢出的安全保护技术,通过对堆、栈、 ## 2. 栈保护 -### 2.1. 作用阶段 +2.1. 作用阶段 编译选项 -### 2.2. 使用方法 +2.2. 使用方法 -fstack-protector-all / -fstack-protector-strong -### 2.3. 强制性 +2.3. 强制性 必选 -### 2.4 说明 +2.4 说明 避免栈溢出被攻击者利用。在缓冲区和控制信息间插入一个canary word。当缓冲区被溢出时,在返回地址被覆盖之前canary word会首先被覆盖。通过检查canary word的值是否被修改,就可以判断是否发生了溢出攻击。 ## 3. GOT表保护 -### 3.1. 作用阶段 +3.1. 作用阶段 -### 3.2. 使用方法 +3.2. 使用方法 -### 3.3. 强制性 +3.3. 强制性 -### 3.4 说明 +3.4 说明 ## 4. 动态库搜索路径 -### 4.1. 作用阶段 +4.1. 作用阶段 -### 4.2. 使用方法 +4.2. 使用方法 -### 4.3. 强制性 +4.3. 强制性 -### 4.4 说明 +4.4 说明 ## 5. 堆栈不可执行 -### 5.1. 作用阶段 +5.1. 作用阶段 -### 5.2. 使用方法 +5.2. 使用方法 -### 5.3. 强制性 +5.3. 强制性 -### 5.4 说明 +5.4 说明 ## 6. 地址无关 -### 6.1. 作用阶段 +6.1. 作用阶段 -### 6.2. 使用方法 +6.2. 使用方法 -### 6.3. 强制性 +6.3. 强制性 -### 6.4 说明 +6.4 说明 ## 7. 随机化 -### 7.1. 作用阶段 +7.1. 作用阶段 -### 7.2. 使用方法 +7.2. 使用方法 -### 7.3. 强制性 +7.3. 强制性 -### 7.4 说明 +7.4 说明 ## 8. FS -### 8.1. 作用阶段 +8.1. 作用阶段 -### 8.2. 使用方法 +8.2. 使用方法 -### 8.3. 强制性 +8.3. 强制性 -### 8.4 说明 +8.4 说明 ## 9. 立即绑定 -### 9.1. 作用阶段 +9.1. 作用阶段 -### 9.2. 使用方法 +9.2. 使用方法 -### 9.3. 强制性 +9.3. 强制性 -### 9.4 说明 +9.4 说明 ## 10. 动态库符号隐藏 -### 10.1. 作用阶段 +10.1. 作用阶段 -### 10.2. 使用方法 +10.2. 使用方法 -### 10.3. 强制性 +10.3. 强制性 -### 10.4 说明 +10.4 说明 ## 11. 整数溢出检查 -### 11.1. 作用阶段 +11.1. 作用阶段 -### 11.2. 使用方法 +11.2. 使用方法 -### 11.3. 强制性 +11.3. 强制性 -### 11.4 说明 +11.4 说明 ## 12. 栈检查 -### 12.1. 作用阶段 +12.1. 作用阶段 -### 12.2. 使用方法 +12.2. 使用方法 -### 12.3. 强制性 +12.3. 强制性 -### 12.4 说明 +12.4 说明 ## 13. 删除符号表 -### 13.1. 作用阶段 +13.1. 作用阶段 -### 13.2. 使用方法 +13.2. 使用方法 -### 13.3. 强制性 +13.3. 强制性 -### 13.4 说明 +13.4 说明 ## 14. 告警选项 -### 14.1. 作用阶段 +14.1. 作用阶段 -### 14.2. 使用方法 +14.2. 使用方法 -### 14.3. 强制性 +14.3. 强制性 -### 14.4 说明 +14.4 说明 -- Gitee