이전 항목: SEOS 클래스다음 항목: SUDO 클래스


SPECIALPGM 클래스

SPECIALPGM 클래스는 지정된 프로그램에 특수 보안 권한을 부여합니다.

SPECIALPGM 클래스의 각 레코드는 다음과 같은 두 가지 기능 중 하나를 가집니다.

참고: SPECIALPGM 클래스에서 프로그램을 정의할 때 FILE 클래스에서도 같은 프로그램을 정의하는 것이 좋습니다. FILE 리소스는 누군가가 권한 없이 실행 파일을 수정(바꾸기 또는 손상시키기)하는 행위를 방지함으로써 실행 파일을 보호하며, PROGRAM 리소스는 CA ControlMinder이 실행되고 있지 않을 때 프로그램이 수정된 경우 이 프로그램이 실행되지 않도록 합니다.

참고: 들어오는 네트워크 차단 이벤트에 대해 SPECIALPGM 클래스의 레코드를 정의할 수 없습니다. 이 컨텍스트에서는 들어오는 네트워크 차단 이벤트에 프로세스 이름이 없기 때문입니다. 차단 이벤트에 대한 감사 레코드 기록을 바이패스하려면 TCP 클래스에서 해당 레코드의 AUDIT 속성을 NONE으로 설정하십시오.

시스템 서비스, 데몬 또는 다른 특수 프로그램을 등록하려면 PGMTYPE 속성을 사용하십시오.

논리적 사용자를 프로그램에 할당하려면 SEOSUID 및 NATIVEUID 속성을 사용하십시오.

SPECIALPGM 클래스 레코드의 키는 특수 프로그램 또는 특수 프로그램의 범위나 패턴에 대한 경로입니다.

참고: specialpgm 클래스 테이블에 넣을 수 있는 최대 규칙 수는 512개입니다.

다음 정의는 이 클래스 레코드에 포함된 속성을 설명합니다. 대부분의 속성은 수정 가능하며 selang 또는 관리 인터페이스를 사용하여 조작할 수 있습니다. 수정할 수 없는 속성은 정보로 표시되어 있습니다.

COMMENT

레코드에 포함할 추가 정보를 정의합니다. CA ControlMinder은 권한 부여를 위해 이 정보를 사용하지 않습니다.

제한: 255자

CREATE_TIME

(정보) 레코드가 작성된 날짜 및 시간을 표시합니다.

NATIVEUID

프로그램 또는 프로세스를 호출하는 사용자를 나타냅니다. 모든 CA ControlMinder 사용자를 지정하려면 *를 사용하십시오.

이 속성을 수정하려면 nativeuid 매개 변수를 chres, editres 또는 newres 명령과 함께 사용하십시오.

참고: CA ControlMinder 이전 버전과의 호환성을 유지하기 위해 NATIVUID 속성 대신 UNIXUID 속성을 사용할 수 있습니다.

OWNER

레코드를 소유하는 사용자 또는 그룹을 정의합니다.

PGMTYPE

액세스 허용 시 CA ControlMinder이 바이패스하는 액세스 검사 유형을 결정합니다.

backup

READ, CHDIR 및 UTIME 액세스를 바이패스합니다.

참고: 성공적인 백업을 실행하는 방법에는 두 가지가 있습니다. 백업 프로그램이 루트가 아닌 사용자에 의해 실행된 경우 이 사용자를 OPERATOR로 정의해야 합니다. 백업 프로그램이 루트에 의해 실행된 경우 SPECIALPGM 클래스에 백업 프로그램을 pgmtype(backup)으로 등록할 수 있습니다.

changeid

(UNIX에만 해당) PAM 활성화된 대리 ID 변경 도구(예: su)를 바이패스합니다.

예: er specialpgm /bin/su pgmtype(changeid)

dcm

(Windows) STOP 이벤트를 제외한 모든 이벤트에 대한 모든 보안 검사를 바이패스합니다.

(UNIX) READ 및 EXEC 이벤트에 대한 보안 검사를 바이패스합니다.

fullbypass

모든 CA ControlMinder 권한 부여 및 데이터베이스 검사를 완전히 건너뜁니다. CA ControlMinder은 이 속성을 가진 프로세스를 무시하며, 어떠한 프로세스 이벤트의 기록도 CA ControlMinder 감사, 추적, 디버그 로그에 나타나지 않습니다.

종료

(Windows에만 해당) 프로세스에 대해 프로그램 종료를 바이패스합니다.

예를 들어 다음 규칙은 이 프로세스에서 액세스 마스크 KILL을 사용하여 CA ControlMinder 서비스(프로세스)에 대한 핸들을 여는 경우 services.exe를 바이패스합니다.

nr specialpgm c:\Windows\system32\services.exe pgmtype(kill)

Windows Server 2008에서 서비스 중지 및 시작을 관리하는 services.exe 프로세스는 액세스 유형 KILL을 사용하여 CA ControlMinder 서비스에 대한 핸들을 열고 프로세스 종료 및 시작을 관리합니다. Windows Server 2008에 설치하는 동안 CA ControlMinder은 검색 프로세스를 실행하여 services.exe를 찾고 해당 바이패스 규칙을 만듭니다. 이 바이패스가 없으면 services.exe에서 CA ControlMinder 서비스의 핸들을 열 때 "거부됨" CA ControlMinder 감사 이벤트가 수신됩니다.

메일

(UNIX에만 해당) setuid 및 setgid 이벤트에 대한 데이터베이스 검사를 바이패스합니다. 메일 바이패스를 통해 메일 액세스 시도를 추적할 수 있습니다.

없음

이전에 설정된 PGMTYPE을 모두 제거합니다.

pbf

파일 처리 이벤트에 대한 데이터베이스 검사를 바이패스합니다.

pbn

네트워크 관련 이벤트에 대한 데이터베이스 검사를 바이패스합니다.

propagate

이 PGMTYPE을 사용하여 프로그램에서 호출된 모든 프로그램에 고유한 보안 권한을 전파합니다. 지정하지 않으면 SPECIALPGM 권한은 상위 프로그램에만 영향을 줍니다. 전파를 포함한 SPGM 배치 파일은 실행 파일에 대해서만 지원됩니다.

참고: 보안 권한은 PBF, PBN, DCM, FULLBYPASS, SURROGATE 권한을 사용할 때만 전파할 수 있습니다.

registry

(Windows에만 해당) Windows 레지스트리를 수정하는 프로그램에 대한 데이터베이스 검사를 바이패스합니다.

stop

STOP 기능에 대한 데이터베이스 검사를 바이패스합니다.

surrogate

커널에서 이벤트를 변경 중인 ID에 대한 데이터베이스 검사를 바이패스합니다. surrogate 바이패스를 사용할 경우 추적할 수 없습니다.

xdm

(UNIX에만 해당) 제한된 네트워크 범위(6000-6010)에 대한 네트워크 이벤트(TCP, HOST, CONNECT 클래스 등)를 바이패스합니다.

이 속성을 수정하려면 pgmtype 매개 변수를 chres, editres 또는 newres 명령과 함께 사용하십시오.

SEOSUID

이러한 특수 프로그램을 실행할 권한을 부여 받은 대리 논리적 사용자를 정의합니다. 논리적 사용자는 USER 레코드와 함께 데이터베이스에 정의되어야 합니다.

이 속성을 수정하려면 seosuid 매개 변수를 chres, editres 또는 newres 명령과 함께 사용하십시오.

UPDATE_TIME

(정보) 레코드를 마지막으로 수정한 날짜와 시간을 표시합니다.

UPDATE_WHO

(정보) 업데이트를 수행한 관리자를 표시합니다.

예: UNIX 파일 보호

/DATABASE/data/*에 있는 파일을 보호하기 위해 데이터베이스 관리자는 firmdb_filemgr이라는 파일 서버 데몬을 사용합니다. 이 파일 서버는 /opt/dbfirm/bin/firmdb_filemgr에 위치합니다. 일반적으로 이 데몬은 루트 아래에서 실행되어 루트‑쉘 핵에서 데이터에 액세스할 수 있도록 합니다.

다음 예제에서 논리적 사용자는 이러한 파일의 접근자로만 정의되고 다른 사용자에 의한 액세스는 제한됩니다.

  1. 다음 명령을 사용하여 "중요한" 파일을 CA ControlMinder에 정의합니다.
    newres file /DATABASE/data/* defaccess(NONE)owner(nobody)
    
  2. 파일을 액세스하는 논리적 사용자를 정의합니다.
    newusr firmDB_mgr
    
  3. 논리적 사용자 firmDB_mgr에게만 파일 액세스를 허용합니다.
    authorize file /DATABASE/data/* uid(firmDB_mgr) access(ALL)
    
  4. 마지막으로, firmdb_filemgr이 논리적 사용자 firmDB_mgr과 함께 실행되게 합니다.
    newres SPECIALPGM /opt/dbfirm/bin/firmdb_filemgr unixuid(root) \
    seosuid(firmDB_mgr)
    

따라서 데몬이 파일에 액세스할 때 CA ControlMinder은 논리적 사용자를 루트가 아닌 파일의 접근자로 인식합니다. 루트로 파일에 액세스를 시도하는 해커는 실패합니다.

예: Windows 파일 보호

C:\DATABASE\data에 있는 파일을 보호하기 위해 데이터베이스 관리자는 firmdb_filemgr.exe라는 파일 서버 서비스를 사용합니다. 이 파일 서버 서비스는 C:\Program Files\dbfirm\bin\firmdb_filemgr.exe에 있습니다. 이 서비스는 대개 시스템 계정으로 실행되므로, 시스템 해커가 데이터에 액세스할 수 있습니다.

다음 예제에서 논리적 사용자는 이러한 파일의 접근자로만 정의되고 다른 사용자에 의한 액세스는 제한됩니다.

  1. 다음 명령을 사용하여 CA ControlMinder에 "중요한" 파일을 정의합니다.
    newres file C:\DATABASE\data\* defaccess(NONE)owner(nobody)
    
  2. 파일을 액세스하는 논리적 사용자를 정의합니다.
    newusr firmDB_mgr
    
  3. 논리적 사용자 firmDB_mgr에게만 파일 액세스를 허용합니다.
    authorize file C:\DATABASE\data\* uid(firmDB_mgr) access(ALL)
    
  4. 마지막으로, firmdb_filemgr이 논리적 사용자 firmDB_mgr과 함께 실행되게 합니다.
    newres SPECIALPGM ("C:\Program Files\dbfirm\bin\firmdb_filemgr.exe") \
    nativeuid(system) seosuid(firmDB_mgr)
    

따라서 서비스가 파일에 액세스할 때 CA ControlMinder은 논리적 사용자를 시스템 계정이 아닌 파일의 접근자로 인식합니다. 시스템 계정으로 파일에 액세스를 시도하는 해커는 실패합니다.