이전 항목: 커널 모듈 로드 시 파일 경로 검사 활성화 및 비활성화

다음 항목: 로그인 명령 제어


kill 명령으로부터 이진 파일 보호

데이터베이스 서버나 응용 프로그램 데몬처럼 업무 수행에 중요한 프로세스를 서비스 거부 공격으로부터 보호해야 합니다. 기본 UNIX 보안 시스템은 프로세스 사용자 ID를 해당 프로세스를 기준으로 보호합니다. 이것은 기본 UNIX에서 루트가 모든 프로세스에 모든 작업을 수행할 수 있음을 의미합니다. CA ControlMinder은 프로세스에서 실행 중인 실행 파일을 기준으로 규칙을 정의하여 UNIX에 프로세스 보호를 강화합니다. CA ControlMinder 프로세스 보호는 프로세스의 사용자 ID와 관련이 없습니다. PROCESS 클래스의 레코드는 CA ControlMinder이 보호하는 모든 프로세스를 정의해야 합니다.

예를 들어 ASCII 뷰어 /bin/more가 강제 중단되지 않도록 하려면 다음 프로시저를 수행합니다.

  1. selang을 시작합니다.
  2. 다음 selang 명령을 입력합니다.
    newres PROCESS /bin/more defaccess(N) owner(nobody)
    

    이 명령은 /bin/more를 강제 중단 시도로부터 보호할 프로세스로 정의합니다. 따라서 기본 액세스는 NONE(N)입니다. owner(nobody) 설정은 이 규칙을 정의한 사용자조차도 /bin/more 프로세스를 강제 중단시킬 수 없도록 합니다.

  3. selang을 종료합니다.
  4. 2단계에서 정의한 규칙을 테스트합니다.
    1. 다음 명령을 입력합니다.
      /bin/more /tmp/seosd.trace
      
    2. /bin/more가 즉시 종료되지 않을 만큼 /tmp/seosd.trace 파일이 충분히 크다고 가정하고 Ctrl+Z를 눌러 /bin/more 프로세스를 일시 중단합니다.
    3. 다음 명령을 입력하여 일시 중단된 작업의 강제 중단을 시도해 봅니다.
      kill %1
      

      사용자 시도가 실패하고 CA ControlMinder에서 "사용 권한이 거부되었습니다"라는 메시지를 표시합니다.

특정 사용자가 /bin/more 프로세스를 종료할 수 있도록 하는 예외를 만들려면 다음 selang 명령을 입력합니다.

authorize PROCESS /bin/more uid(username)

참고: 동일한 프로시저를 사용하여 시스템에서 다른 바이너리 실행 파일이 종료되지 않도록 보호합니다.

CA ControlMinder은 일반 중지 신호(SIGTERM) 및 응용 프로그램이 마스크할 수 없는 중지 신호(SIGKILL 및 SIGSTOP)를 보호합니다. SIGHUP 또는 SIGUSR1과 같은 다른 신호는 그 프로세스가 kill 신호를 무시할지 또는 반응할지 여부를 결정하도록 통과시킵니다.