외로운 Nova의 작업실

정보보안기사 필기 - 15(리눅스 및 유닉스/리눅스 취약점 분석, 평가) 본문

Certification/정보보안기사

정보보안기사 필기 - 15(리눅스 및 유닉스/리눅스 취약점 분석, 평가)

Nova_ 2022. 11. 22. 14:14

- 리눅스(linux)

리눅스는 유닉스 타입의 운영체제로서 유닉스를 PC버전으로 개발하려 노력한 산물입니다. 리누즈 토발즈가 멀티태스킹을 구현하기위한 운영체제로서 최초의 리눅스 0.01버전을 개발했습니다. 이후 많은 전문 프로그래머들이 지원을 통해 리눅스는 완전한 운영체제로서 자리매김할 수 있게 되었습니다. 리눅스는 FSF의 GNU project로서 진행되고 있습니다.

 

- 리눅스 파일시스템의 종류 및 특징

리눅스의 중요파일 시스템들은 ext, ext2, ext3, minix, nfs등이 있습니다.

  • minix : 과거 미닉스에서 사용되었던 파일시스템으로 가장 오래되고 기본이 되는 파일시스템으로 30문자로 제한되고 파일시스템마다 최대 64mb성능 제한이 있습니다.
  • ext2(second extended file system, 2차 확장 파일 시스템) : ex3가 나오기까지 대부분의 리눅스에서 사용했으며 캐시에 저장되어있는 데이터를 디스크로 저장하는 도중에 문제가 발생하여 파일시스템이 손상될경우 fsck라는 파일시스템 복구가능을 제공합니다. 하지만 fsck는 시간이 많이 소요되며 복구시간동안 시스템 사용이 불가능하다는 단점이 있습니다.
  • ext3(extended file system 3, 확장된 파일시스템 3) : 버퍼에서 디스크로 옮기기전에 로그를 남겨 셧다운 발생시 로그를 사용해 빠르고 안정적인 복구기능인 저널링(journaling)이라는 기술로 ext2의 단점을 보완한 파일 시스템입니다. ext2와 호환됩니다.

- 유닉스 리눅스 서버 취약점 분석 평가

<계정 관리>

root 계정은 매우 중요한 계정으로 침입자의 목표가 됩니다. 따라서 root 계정의 원격 접속은 금지해야합니다.

#cat /etc/pam.d/login
auth required /lib/security/parm_security.so
#cat /etc/security
pts/0 ~ pts/x 관련 설정이 없어야함

 

<패스워드 복잡성 설정>

여러 문자를 혼합한 8자리 이상의 영문, 숫자, 특수문자의 조합으로 암호를 사용하게 하여 패스워드 복잡성을 높여서 침입 공격 발생률을 낮춰야합니다.

/etc/shadow 파일 내 설정된 패스워드 점검

 

<계정 잠금 임계값 설정>

무작위 대입 공격이나 패스워드 추측공격을 막기위해 실패횟수를 적정하게 제한함으로써 패스워드 유출 위험을 줄여야합니다. 보통 임계값을 5이하로 설정합니다.

#cat /etc/parm.d/system-auth
auth require /;ib/security/parm_tally.so deny=5 unlock_time=120 no_magic_root
account required /lib/security/pam_tally.so no_magic_root reset

 

<패스워드 파일 보호>

패스워드가 있는 etc.shadow 파일에 암호화된 패스워드가 저장되도록 하고 특별한 관한이 있는 사용자들만 읽을 수 있도록 제한합니다.

#ls /etc/password
root:X:0:0/ro ot:/bin/bash
2번째 필드가 X 표시인지 확인합니다.

 

<root 이외의 UID 0금지>

root(UID=0)와 동일한 UID를 가진 계정 존재시 root 권한으로 시스템 접근이 가능하므로 root의 UID를 가진 계정이 존재하지 않도록 확인하여야합니다. 또한 중복 계정이 없게 확인하고 만약 있다면 다른 UID로 변경 및 삭제해야합니다.

#cat etc/passwd
	root:x:0:0:/root:/bin/bash
    bin:x:1:1:bin:/bin:/sbin/nologin
세번째 필드값이 root이외에 0인지 확인 및 중복이 있는지 검사합니다.

 

<패스워드 최소길이 설정>

무작위 대입공격을 막기위해 패스워드 최소길이를 8자이상으로 제한합니다.

#cat /etc/login.defs
PASS_MIN_LEN 8

 

<패스워드 최대 사용기간 설정>

최대 사용기간을 90일(12주)로 설정하여 주기적으로 변경할 수 있게합니다.

#cat /etc/login.defs
PASS_MAX_DAYS 90

 

<패스워드 최소 사용기간 설정>

최소사용기간을 1일(1주)로 설정하고 최근 암호기억 설정을 함께 적용해 이전 암호를 사용하지 못하게하여 패스워드를 보호합니다.

#cat etc/login.defs
PASS_MIN_DAYS 1(단위:일)

 

<root 홈, 패스 디렉터리 권한 및 패스 설정>

root 계정의 PATH 환경변수에 "."(현재 디렉터리 지칭)이 포함되어있으면 root 계정의 인가자로인해 비의도적으로 현재 디렉터리에 위치하고 있는 명령어가 root 계정으로 실행될 수 있습니다. 따라서 root 계정의 환경변수 설정파일(/.profile, /.cshrc) 등과 /etc/profile 등에서 "."이 있는지 확인하고 만약 있다면 마지막으로 이동하거나 삭제합니다.

#echo $PATH
/usr/local/sbin:/ur/.....
위와 같이 출력되는 PAT?H 변수내에 . 또는 "" 포함 여부 확인

 

<파일 디렉터리 소유자 설정>

소유자가 존재하지 않는 파일 및 디렉터리가 중요 파일일 경우에는 문제가 발생할 수 있으니 살제 또는 소유자를 변경해야합니다.

#find / -nouser -print
#find / -nogroup -print

 

<HOME/.rhosts, hosts.equive 사용금지>

'r'command 사용을 통한 원격접속은 보안상 매우 취약하여 침해사고의 원인이 됩니다. 따라서 /etc/hosts.equiv 파일 및 .rhost 파일 사용자를 root로 설정하고 권한을 600이하로 변경하고 '+'설정을 제거하고 반드시 필요한 호스트 및 계정만 등록합니다.

Comments