잡에 대한 프로세스 제약사항 설정 방법 중

- JobObjectExtendedLimitInformation

- JobObjectBasicUIRestrictions

- JobObjectSecurityLimitInformation

에 대해 알아보도록 하겠습니다.


JobObjectExtendedLimitInformation


 멤버

기능 

 BasicLimitInformation

BasicLimitInformation 구조체

- 이전 포스팅 참고

 IoInfo

사용하지 않음 

 ProcessMemoryLimit

잡 내의 한 프로세스가 사용할 수 있는 최대 메모리 사용량을 결정

- BasicLimitInformation 구조체의 LimitFlag에 JOB_OBJECT_LIMIT_PROCESS_MEMORY 플래그가 세팅되어 있어야 함

 JobMemoryLimit

잡 전체에서 커밋될 수 있는 최대 메모리 사용량을 결정 

- BasicLimitInformation 구조체의 LimitFlag에 JOB_OBJECT_LIMIT_JOB_MEMORY 플래그가 세팅되어 있어야 함

 PeakProcessMemoryUsed

 현재 잡 내의 한 프로세스가 사용할 수 있는 최대 메모리 사용량을 리턴

 PeakJobMemoryUsed

 현재 잡 전체가 사용할 수 있는 최대 메모리 사용량을 리턴



JobObjectBasicUIRestrictions


 멤버

기능 

 UIRestrictionClass

 비트 플래그의 조합으로 아래 표 참고 


 플래그

기능 

 JOB_OBJECT_UILIMIT_EXITWINDOWS

 잡 내의 프로세스가 ExitWindowsEx 함수를 이용해 로그오프, 셧다운, 리부팅, 시스템 전원 끄기를 할 수 없도록 설정

 JOB_OBJECT_UILIMIT_READCLIPBOARD

 잡 내의 프로세스가 클립보드의 내용을 읽을 수 없도록 설정

 JOB_OBJECT_UILIMIT_WRITECLIPBOARD

 잡 내의 프로세스가 클립보드의 내용을 삭제할 수 없도록 설정 

 JOB_OBJECT_UILIMIT_SYSTEMPARAMTERS

 잡 내의 프로세스가 SystemParametersInfo 함수를 이용해 시스템 매개변수들을 변경하지 못하도록 함

 JOB_OBJECT_UILIMIT_DISPLAYSETTINGS

 잡 내의 프로세스가 ChangeDisplaySettings 함수를 이용해 디스플레이 설정을 변경하지 못하도록 함

 JOB_OBJECT_UILIMIT_GLOBALATOMS

 잡이 자신만의 Global Atom Table 을 가질 수 있도록 하고, 잡 내의 프로세스들이 이 Global Atom Table에 접근할 수 있도록 한다.

 JOB_OBJECT_UILIMIT_DESKTOP

 잡 내의 프로세스가 CreateDesktop이나 SwitchDesktop 함수를 이용해 새로운 데스크탑을 생성하거나 다른 데스크탑으로 변경하지 못하도록 함

 JOB_OBJECT_UILIMIT_HANDLES

 잡 내의 프로세스가 잡 외부의 프로세스에 의해 생성된 유저 오브젝트를 사용할 수 없도록 설정



JobObjectSecurityLimitInformation

- PTOKEN_GROUPS, PTOKEN_PRIVILEGES, PTOKEN_GROUPS 구조체 정보는 아래 MSDN을 참조

- https://msdn.microsoft.com/ko-kr/library/windows/desktop/ms684159(v=vs.85).aspx

멤버 

기능 

 SecurityLimiFlags

관리자 권한으로 실행되는 것을 거부하거나, 필터되지 않은 토큰의 접근 거부, 특정 액세스 토큰을 강제로 요구하거나 특정 SID나 권한을 사용하지 못하도록 설정하는 플래그 

 JobToken

 잡 내의 모든 프로세스가 사용할 수 있는 액세스 토큰 지정

 SidsToDisable

 액세스 확인을 수행하지 못하도록 하는 Security ID

 PrivilegesToDelete

 액세스 토큰으로 부터 어떤 권한을 제거할지 나타냄
 RestrictedSids 액세스 토큰에 추가할 접근 거부 SID 목록을 지정


SecurityLimitFlags

플래그 

기능 

JOB_OBJECT_SECURITY_FILTER_TOKENS

 필터되지 않은 토큰의 접근을 거부, 

- SidsToDisable, PrivilegesToDelete, RestrictSids 셋 중 하나는 세팅되어있어야 함

- 위 항목들에 명시된 Sid를 갖지 않으면 실행이 제한됨

JOB_OBJECT_SECURITY_NO_ADMIN 

 잡 내의 프로세스가 관리자 권한으로 실행되는 것을 막음 

JOB_OBJECT_SECURITY_ONLY_TOKEN

 잡 내의 프로세스들이 특정 액세스 토큰을 갖고 실행되도록 설정

- 그 특정 액세스 토큰은 JobToken 멤버를 의미

JOB_OBJECT_SECURITY_RESTRICTED_TOKEN

 잡 내의 프로세스들이 CreateRestrictedToken 함수로 생성되지 않은 액세스 토큰을 가지고 실행되지 못하도록 함


'Windows > Windows Programming' 카테고리의 다른 글

잡 (Job) - 프로세스 제약사항 설정 1  (0) 2016.05.21
잡 (Job)  (0) 2016.05.07
프로세스 권한 상승 - ShellExecuteEx()  (0) 2016.04.16
자식 프로세스  (0) 2016.04.09
프로세스의 종료  (0) 2016.04.02
Posted by 긍정왕오킹