본문 바로가기
인프라 진단/전자금융기반시설(서버) - Linux

SRV-109 시스템 주요 이벤트 로그 설정 미흡

by 49 BLOCK 2024. 1. 3.

notice

SRV-109 시스템 주요 이벤트 로그 설정 미흡

【 상세설명 】
시스템 문제 발생 시 원활한 원인 파악/문제 해결 등을 위해서 각종 보안 로그가 저장 및 관리되어야 하며, 특히 인증 관련이나 중요 이벤트 로그가 남도록 설정되었는지 점검

【 판단기준 】
  [Linux]
    - 양호
      1. syslog 로그 기록 정책이 내부 정책에 부합하게 설정되어 있는 경우
      2. syslog 설정에서 auth 또는 authpriv 가 활성화된 경우 (su 명령 로그)
    - 취약
      1. syslog 로그 기록 정책이 내부 정책에 부합하게 설정되지 않은 경우
      2. syslog 설정에서 auth 또는 authpriv 가 활성화되지 않은 경우(su 명령 로그)

  [AIX]
    - 양호 : syslog 로그 기록 정책이 내부 정책에 부합하게 설정되어 있는 경우
    - 취약 : syslog 로그 기록 정책이 내부 정책에 부합하게 설정되지 않은 경우

  [HP-UX]
    - 양호 : syslog 로그 기록 정책이 내부 정책에 부합하게 설정되어 있는 경우
    - 취약 : syslog 로그 기록 정책이 내부 정책에 부합하게 설정되지 않은 경우

  [SOLARIS]
    - 양호
      1. syslog 로그 기록 정책이 내부 정책에 부합하게 설정되어 있는 경우
      2. syslog 설정에서 auth.info 설정이 활성화된 경우 (로그인 관련 로그)
      3. /etc/default/su 파일 내 SULOG=[로그 경로] 와 SYSLOG=YES가 설정된 경우
    - 취약
      1. syslog 로그 기록 정책이 내부 정책에 부합하게 설정되지 않은 경우
      2. syslog 설정에서 auth.info 설정이 활성화되지 않은 경우 (로그인 관련 로그)
      3. /etc/default/su 파일 내 SULOG=[로그 경로] 와 SYSLOG=YES로 설정되지 않은 경우

【 판단방법 】
  1. 로그 기록 정책이 내부 정책에 부합하게 설정되어 있는지 확인

  ■ Linux
      # cat /etc/syslog.conf
      # cat /etc/rsyslog.conf
      # cat /etc/rsyslog.d/50-default.conf 
          #kern.*                                   /dev/console
          *.info;mail.none;authpriv.none;cron.none  /var/log/messages
          authpriv.*                                /var/log/secure
          mail.*                                    -/var/log/maillog
          cron.*                                    /var/log/cron
          *.emerg                                   :omusrmsg:*
          uucp,news.crit                            /var/log/spooler
          local7.*                                  /var/log/boot.log

  ■ RHEL 6, 7, 8, 9
      # cat /etc/rsyslog.conf
          #kern.*                                   /dev/console
          *.info;mail.none;authpriv.none;cron.none  /var/log/messages
          authpriv.*                                /var/log/secure
          mail.*                                    -/var/log/maillog
          cron.*                                    /var/log/cron
          *.emerg                                   :omusrmsg:*
          uucp,news.crit                            /var/log/spooler
          local7.*                                  /var/log/boot.log
      # cat /etc/pam.d/su
          ...
          auth            sufficient      pam_rootok.so
          #auth           sufficient      pam_wheel.so trust use_uid
          #auth           required        pam_wheel.so use_uid
          ...

  ■ AIX
      # cat /etc/syslog.conf
          *.emerg * 
          *.alert /dev/console 
          *.alert /var/adm/alert.log 
          *.err /var/adm/error.log 
          mail.info /var/adm/mail.log 
          auth.info /var/adm/auth.log 
          daemon.info /var/adm/daemon.log 
          *.emerg;*.alert;*.crit;*.err;*.warning;*.notice;*.info /var/adm/messages 
      # ls -al /var/adm/sulog

    ※ AIX 는 su 명령이 실행될 때마다 /var/adm/sulog 경로에 로그 기록

  ■ HP-UX
      # cat /etc/syslog.conf
          mail.debug              /var/adm/syslog/mail.log
          *.alert                 /dev/console
          *.emerg                 *
          *.notice                /var/adm/syslog/syslog.log
      # ls -al /var/adm/sulog
      # ls -al /var/adm/cron/log

    ※ HP-UX su 명령이 실행될 때마다 /var/adm/sulog 경로에 로그 기록

  ■ SOLARIS 9
      # cat /etc/syslog.conf
          mail.debug /var/log/mail.log
          *.info /var/log/syslog.log
          *.alert /var/log/syslog.log
          *.alert /dev/console
          *.alert root
          *.emerg * 
      # cat /etc/default/su | egrep "SULOG|SYSLOG"
          #SULOG =/usr/adm/sulog
          #SYSLOG=YES
      # cat /etc/default/login | grep SYSLOG
          #SYSLOG=YES
      # ls -al /usr/adm/loginlog

    ※ Solaris 는 /usr/adm/loginlog 파일이 존재 하지 않으면 login 로그 미기록

  ■ SOLARIS 10, 11
      # cat /etc/syslog.conf
          mail.debug /var/log/mail.log
          *.info /var/log/syslog.log
          *.alert /var/log/syslog.log
          *.alert /dev/console
          *.alert root
          *.emerg * 
      # cat /etc/default/su | egrep "SULOG|SYSLOG"
          #SULOG =/var/adm/sulog
          #SYSLOG=YES
      # ls -al /var/adm/loginlog
      # cat /etc/default/login | grep SYSLOG
          #SYSLOG=YES

    ※ Solaris 는 /var/adm/loginlog 파일이 존재 하지 않으면 login 로그 미기록

【 조치방법 】
  1. 로그 기록 정책을 내부 정책에 부합하게 설정(수정 또는, 신규 삽입)
  2. syslog 서비스 재시작

  2024-01-13 : (조치과정 삭제)

■ 참고 : syslog 설정
    - kern.* : kern 관련 로그는 모두 기록(시스템 커널 관련 로그)
    - *.info;mail.none;authpriv.none;cron.none : mail, authpriv, cron 관련 로그를 제외한 info 수준 로그 기록(Information 로그)
    - authpriv.* : authpriv 관련 로그는 모두 기록(su 명령어 사용, 로그인 성공 및 실패 여부 등 로그)
    - mail.* : mail 관련 로그는 모두 기록(SMTP 서비스 등 로그)
    - cron.* : cron 관련 로그는 모두 기록(cron 서비스 등 로그)
    - *.emerg : 모든 emerg 수준 로그 기록
    - *.alert : 모든 alert 수준 로그 기록
    - uucp,news.crit : uucp, news 관련 로그 crit 수준 로그 기록(외부 백업장치, 유즈넷 뉴스 프로그램 등 로그)
    - local[0-7].* : local use 관련 시스템 부팅 로그 모두 기록(시스템에 설정한 특정 데몬, 네트워크 장비 등 관련 로그)
    - /var/log/~ : 해당 로그를 파일로 저장 설정
    - dev/console : 해당 로그를 Console 출력 설정
    - :omusrmsg:* : 로그인 되어 있는 모든 사용자에게 로그 출력 설정("*" 대신 특정 account, host 지정 가능)
    - "-/var/log/maillog" 의 "-" 은 메모리와 실시간 동기화 중지 옵션으로 syslog의 Global Directives 설정에서 메시지 큐 사이즈 등 제한 설정을 하지 않는 일반 사용자 환경에서는 "/var/log/maillog"와 동일하게 동작

■ 참고 : 서비스 데몬 종류
    - auth : 로그인 등의 인증 프로그램 유형이 발생한 메시지
    - authpriv : 개인 인증을 요구하는 프로그램 유형이 발생한 메시지
    - cron : cron, at 데몬에서 발생한 메시지
    - daemon : telnet, ftpd 등과 같은 데몬이 발생한 메시지
    - kern : 커널이 발생한 메시지
    - lpr : 프린터 유형의 프로그램이 발생한 메시지
    - mail : 메일 시스템에서 발생한 메시지
    - news : 유즈넷 뉴스 프로그램 유형이 발생한 메시지
    - syslog : syslog 프로그램 유형이 발생한 메시지
    - user : 사용자 프로세스 관련 메시지
    - uucp : 시스템이 발생한 메시지
    - local0 : 여분으로 남겨둔 유형

■ 참고 : 메시지 우선순위
     4 (높음)  : Emergency [emerg] // 매우 위험한 상황
     3         : Alert [alert] // 즉각적으로 조치를 취해야 할 상황
     2         : Critical [crit] // 하드웨어 등의 심각한 오류가 발생화 상황
     1         : Error [err] // 에러 발생 시
     0         : Warnnig [warning] // 주의를 요하는 메시지
    -1         : Notice [notice] // 에러가 아닌 알림에 관한 메시지
    -2         : Information [info] // 단순한 프로그램에 대한 정보 메시지
    -3 (낮음)   : Debug [debug] // 프로그램 실행 오류 발생 시