23년 2회 필기 PBT 시험을 66점으로 합격했습니다. 7월29일 실기 시험을 준비하며, 어려웠던 문제와 틀린 문제를 정리해보겠습니다. 다른 문제들은 https://it-freelancer.tistory.com/1210 에서 확인 가능합니다.
문제
5. 리눅스 바이너리 섹션(.ctors, .dtors, .dynamic, .got)의 메모리 변조를 막기 위해 사용되는 메모리 보호기법은?
① RELRO
② PIE
③ ASLR
④ POE
시험 후기
메모리 변조라는 단어를 보자 마자 ③ ASLR 선택
정답
1
실제 시험 문제와 제출 답안
문제번호의 X 표시는 99프로 찍었다는 표시이며 / 표시는 자신이 없다는 표시임
공부하면서
Relro 는 뭐다. 그런데 ... 는 더이상 유효하지 않은 옵션이다.
<<7.18 공부>>
https://news.ycombinator.com/item?id=23659118
I know how ASLR/ROP/PLT/GOT/RELRO work, but I'm still not understanding what's going on here.
ASLR이나 RELRO 가 어떻게 동작하는지 아는데 더 상세한 내용을 궁금해하는 글인 것 같다. ② PIE 에 있는 PIE 라는 용어도 나온다.
https://hackyboiz.github.io/2021/10/27/y00n_nms/linux-mitigation/
RELRO에는 Partial RELRO , FULL RELRO 설정이 있으며 ELF 바이너리 / 프로세스의 데이터 영역에 Read-Only 권한을 설정해 Write 할 수 없게 하여 메모리가 변경되는 것을 막는 보호 기법입니다.
https://bbolmin.tistory.com/81
# sysctl -w kernel.randomize_va_space=0 (해제)
# sysctl -w kernel.randomize_va_space=1 (랜덤 스택 & 라이브러리)
# sysctl -w kernel.randomize_va_space=2 (랜럼 스택 & 라이브러리 & 힙)
# sysctl -w kernel.exec-shield=0 (스택 실행권한 해제) - stack에 'X'줄 때
# sysctl -w kernel.exec-shield=1 (스택 실행권한 설정)
<<8.05 공부>>
/proc/sys/kernel/randomize_va_space 또는 exec-shield 관련 내용을 실제로 찾아보았다.
centOS 와 kali 에서 모두 확인해보았다.
kali 에서 찾지 못함
┌──(root㉿kali)-[~]
└─# sysctl -a | grep exec
kernel.kexec_load_disabled = 0
centos 에서도 확인하지 못함
[root@centos ~]# sysctl -a | grep exec
kernel.core_pattern = |/usr/libexec/abrt-hook-ccpp %s %c %p %u %g %t e %P %I %h
kernel.kexec_load_disabled = 0
kernel.sched_domain.cpu0.domain0.forkexec_idx = 0
kernel.sched_domain.cpu1.domain0.forkexec_idx = 0
sysctl: reading key "net.ipv6.conf.all.stable_secret"
sysctl: reading key "net.ipv6.conf.default.stable_secret"
sysctl: reading key "net.ipv6.conf.enp0s3.stable_secret"
sysctl: reading key "net.ipv6.conf.enp0s8.stable_secret"
sysctl: reading key "net.ipv6.conf.lo.stable_secret"
sysctl: reading key "net.ipv6.conf.virbr0.stable_secret"
sysctl: reading key "net.ipv6.conf.virbr0-nic.stable_secret"
[root@centos ~]# sysctl -w kernel.randomize_va_space=0
kernel.randomize_va_space = 0
[root@centos ~]# ls /proc/sys/kernel/exec-shield
ls: cannot access /proc/sys/kernel/exec-shield: 그런 파일이나 디렉터리가 없습니다
[root@centos ~]# echo 0 > /proc/sys/kernel/exec-shield
-bash: /proc/sys/kernel/exec-shield: 그런 파일이나 디렉터리가 없습니다
[root@centos ~]# ls /proc/sys/kernel/exec-shield-randomize
ls: cannot access /proc/sys/kernel/exec-shield-randomize: 그런 파일이나 디렉터리가 없습니다
exec-shield 가 기본으로 활성화되며 더이상 선택 가능한 옵션이 아니라는 뜻인듯 하다.
https://github.com/dev-sec/chef-os-hardening/issues/166
In RHEL7+ exec-shield is enabled by default and the /proc entry has been removed.
Exec-shield is no longer an option in sysctl for kernel tuning.
This is a security measure, as documented in the RHEL 7 Security Guide.
'정보보안기사 > 필기2023년2회PBT리뷰' 카테고리의 다른 글
정보기 필기 2023년 2회 PBT 문제 13번 Malicious Code (0) | 2023.06.30 |
---|---|
정보기 필기 2023년 2회 PBT 문제 09번 (0) | 2023.06.30 |
정보기 필기 2023년 2회 PBT 문제 07번 SAM (0) | 2023.06.30 |
정보기 필기 2023년 2회 PBT 문제 06번 POF (0) | 2023.06.30 |
정보기 필기 2023년 2회 PBT 문제 03번 (0) | 2023.06.30 |