[정보 보안] 실기 문제 풀이 - 7

Cookie·2024년 10월 1일
0

정보보안

목록 보기
9/40
post-thumbnail

시스템

실무형


146

다음 유닉스/리눅스 시스템의 보안 체크리스트 점검 항목 중 일부이다. 각 명령이 어떤 보안 조치를 위한 것인지 서술하시오.

(1) chmod -s <파일명>
(2) find / -user root -type f \( -perm -4000 -o -perm -2000 \) -xdev -exec ls -al {} \;
  • 정답 및 해설
    1. 지정한 파일의 SUID와 SGID 권한을 제거한다.
      • chmod 명령 시 대상을 지정하지 않으면 all을 의미

    2. 최상위 루트 디렉터리 / 이하 모든 일반 파일f 에 대하여 소유자가 root 이고 SUID 또는 SGID가 설정된 실행 파일은 실행 시에 root 권한 상승을 통해 공격에 악용될 수 있는 위협이 존재한다.
      • -xdev : 검색할 디렉터리와 다른 파일시스템은 검색하지 않는 옵션

148 ⭐️

리눅스 시스템 담당자는 서버 취약점 점검을 위해 다음 명령어를 수행하고자 한다. 각각의 질문에 답하시오.

  1. 최근 7일 이내에 변경된 파일을 찾는 find 명령어를 작성하시오.
  2. 사용자(소유자)가 root 이고 SUID(setuid)가 설정된 파일을 찾는 find 명령어를 작성하시오.
  • 정답 및 해설
    1. find / -mtime -7
    2. find / -user root -perm -4000

149

다음 리눅스 시스템 관리자가 사용하는 중요 디렉터리에 대한 백업용 쉘 스크립트 파일과 백업 결과 파일에 관한 내용이다. 각각의 질문에 답하시오.

[백업용 쉘 스크립트 파일(back.sh)]
#!/bin/sh
today = $(date + %Y%m%d%H%M%S)
tar -cvzf /data/backup/etc_$dat.tgz /etc/*
tar -cvzf /data/backup/home_$dat.tgz /home/*

[백업 결과 파일 목록]
-rw-r--r-- 1 root root 101853308 2021-03-10 13:39 etc_202103101339.tgz
-rw-r--r-- 1 root root     40736 2021-03-10 13:39 etc_202103101339.tgz
  1. 백업 결과 파일의 접근권한을 검토하여 어떤 보안상 문제가 있는지 설명하시오.
  2. 1.의 문제점을 개선하기 위해 백업용 쉘 스크립트 파일을 umask 변경 후 백업 파일을 생성하고 umask를 원래대로 재설정하도록 수정하시오.
  3. operator 사용자만 백업용 쉘 스크립트 파일(/usr/local/bin/backup.sh)을 사용하도록 만드는 명령어를 작성하고 해당 명령어에 대해 간단히 설명하시오.
  • 정답 및 해설
    1. 백업 파일의 접근권한이 644 접근권한으로 생성되어 일반 사용자가 백업 파일에 접근할 수 있는 보안상의 문제점이 존재함
    2. 수정한 쉘 스크립트
      #!/bin/sh
      today = $(date + %Y%m%d%H%M%S)
      umask 066
      tar -cvzf /data/backup/etc_$dat.tgz /etc/*
      tar -cvzf /data/backup/home_$dat.tgz /home/*
      umask 022
      • 백업 파일을 생성하기전 umask를 066으로 설정하여 소유자만이 접근이 가능하도록 함, 백업 파일을 생성후 umask는 원래의 권장값인 022로 다시 설정
    3. 명령어
      • chown operator /usr/local/bin/backup.sh
        : 백업용 쉘 스크립트 파일의 소유자를 operator로 변경
      • chmod 700 /usr/local/bin/backup.sh
        : 백업용 쉘 스크립트 파일의 접근권한을 소유자만 접근 할 수 있도록 700으로 설정

150

루트(root) 계정은 리눅스 시스템에서 가장 강력한 권한을 가지고 있는 계정이다. 만약 루트
사용자가 터미널 접속 후 로그아웃하는 것을 잊고 접속한 상태로 방치한다면 비인가자에 악의
적인 시스템 접근으로 인해 불필요한 내부정보의 노출 위험이 존재한다.
  1. 위와 같은 상황을 방지하기 위해 일정 시간 동안 사용하지 않는 루트 계정이 자동 로그아웃되도록 설정할 수 있는 환경변수는 무엇인가?
  2. 이 환경변수를 모든 사용자가 로그인할 때마다 자동으로 적용하고자 한다. 적절한 설정 파일과 설정 방법(권장 시간 600초)을 쓰시오.
  • 정답 및 해설
    1. TMOUT 환경 변수
    2. /etc/profile에 설정
      # vi /etc/profile
      TMOUT = 600
      export TMOUT
      또는
      TMOUT = 600; export TMOUT
      또는
      export TMOUT = 600
      • export를 통해 환경변수로 만들면 현재 쉘뿐만아니라 자식 쉘까지 모두 적용됨

151

리눅스 시스템 관리자(root)는 cron 프로그램을 이용하여 다음과 같은 작업을 수행하려고 한다. 다음 질문에 각각 답하시오.

  1. 자신의 crontab 파일(cron 테이블)에 예약된 작업을 확인하기 위한 crontab 명령어를 쓰시오.
  2. test01 사용자의 crontab 파일(cron 테이블)을 생성(편집)하기 위한 crontab 명령어를 쓰시오.
  3. 자신의 crontab 파일(cron 테이블)에 /bin/re -rf 명령어를 사용하여 /tmp 디렉터리 밑에 있는 모든 파일과 디렉터리를 삭제하는 작업 등록을 위한 명령을 작성하시오. 단, 매주 일요일 오전 03:00 동작하며 표준 출력은 /dev/null로 보내어 출력되지 않게 하고 표준 에러는 표준 출력으로 재입력하도록 작성하시오.

  • 정답
    1. crontab -l
    2. crontab -u test01 -e
    3. 0 3 * * 0 /bin/rm -rf /tmp/* >/dev/null 2>&1

  • 해설(crontab 명령어)
    계정명을 명시하지 않으면 현재 로그인한 계정을 의미
    • 리눅스 시스템
      crontab 파일 출력 : crontab -u <계정명> -l
      crontab 파일 편집 : crontab -u <계정명> -e
      crontab 파일 삭제 : crontab -u <계정명> -r
    • 유닉스 시스템
      crontab 파일 출력 : crontab -l <계정명>
      crontab 파일 편집 : crontab -e <계정명>
      crontab 파일 삭제 : crontab -r <계정명>

152 ⭐️

사이트 관리자는 원격 로그 서버를 구축하여 관리 대상 장비의 syslog를 로컬 및 원격 로그 서버에 모두 남기려고 한다. 아래 보기를 참조하여 관리 대항 장비 및 원격 로그 서버에 설정할 것은 무엇인지 기술하시오.

[관리 대상 장비 - /etc/slog.conf 내용 일부]
authpriv.*                  /var/log/secure
(                  A                 )
A : 원격 로그 서버(IP : 192.168.133.20)로 인증 관련 로그를 전송하도록 설정

[원격 로그 서버 - 방화벽(iptables) 설정]
#iptables -A INPUT -p ( B ) --dport ( C ) -j ACCEPT
B, C : 원격 로그 서버에 관리 대상 장비의 로그를 전송받을 수 있도록
       방화벽(iptables) 설정
  • 정답
    A : authpriv.*                    @192.168.133.20
    B : udp
    C : 514

  • 해설
    # syslog.conf 설정 형식
    facility.priority, facility.priority, • • •              action(logfile-location)
           A.B                A.B                                        C
    • A : 로그를 남길 요소/서비스
    • B : 로그 수준으로 지정한 수준 이상의 상황 발생시 로그를 남김
    • C : 로그 위치를 지정하는 필드(로그 파일명이나 콘솔을 지정 또는 원격로그서버를 지정할수 있음 @원격로그서버 IP)

    • syslog 데몬 프로세스를 원격 로그 서버로 설정 시 514/udp(syslog 기본 포트)를 사용함
profile
나만의 공부 일지... [임시 休]

0개의 댓글