secure-execution mode
secure-execution mode
어떤 바이너리를 실행하면, dynamic linker(ld.so)는 getauxval()를 이용해 auxiliary vector인 `` AT_SECURE`` 값을 가져와 ``c 0``인지 확인하고 ``c 0``이 아니면 secure-execution mode로 실행한다.
다음과 같은 경우, ``c AT_SECURE != 0``이 된다.
- ``c eUID != rUID`` 또는 ``c eGID != rGID`` 인 경우 ( => setUID나 setGID가 걸려있는 경우 )
- non-root UID process가 capability를 가진 바이너리를 실행하면서 capability를 얻는 경우 ( capabilities )
- Linux Security Module이 set하는 경우
secure-execution mode 일 경우 ld.so는 특정 환경변수의 동작을 제한하거나 비활성화 한다.
`` LD_PRELOAD``에는 다음과 같은 제약이 생긴다.
- preload pathnames containing slashes are ignored
- only shared objects in the standard search directories that have the set-user-ID mode bit enabled are loaded.
'OS > LINUX & UNIX' 카테고리의 다른 글
[procfs_search.h] 메모리에서 특정 값의 주소 찾기 (0) | 2017.03.08 |
---|---|
생성자, 소멸자 low-level (0) | 2017.01.13 |
ltrace & strace (0) | 2017.01.07 |
/proc/<pid>/maps (2) | 2017.01.04 |
[Ubuntu] 초기 설정 / 업데이트 (0) | 2016.12.25 |