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