본문 바로가기

Personal/Cloud

클라우드 리눅스 취약점 - 계정 관리

U-01. root 계정 원격 접속 제한  /  취약도 : 상

요약 : root 권한으로 원격접속이 가능하게 리눅스를 설정한 경우 발생

 

피해 : 시스템 계정 정보 유출, 파일 및 디렉터리 변조 등의 행위 침해사고 발생

 

해결법 및 추가 설명 : 원격접속 방법에는 Telnet(Tele network의 합성어입니다. 원격에 있는 컴퓨터 등에 접속할 수 있는 것을 도와주는 서비스)과 SSH(시큐어쉘)로 하는 2가지 방법이 있다. ssh-원격지 호스트 컴퓨터에 접속하기 위해 사용되는 인터넷 프로토콜과 관련된 리눅스 파일에서 Root 로그인 설정을 No로 바꾼다. telnet - pts(pseudo-terminal 가상터미널)에 대한 설정이 etc/securetty 파일에서 grep으로 검색하여 있다면 삭제나 주석처리한다. 

 

 

U-02. 패스워드 복잡성 설정  /  취약도 : 상

요약 : 패스워드가 단순할 경우 취약하여 해킹당할 수 있다.

 

피해 : 사용자 계정 획득으로 해당 계정의 시스템에 접근 및 파일 디렉토리 변조 등 다 가능

 

해결법 및 추가 설명 : 패스워드의 복잡성(영문, 숫자, 특문 조합하는데 2종류는 10자리 이상, 3종류는 8자리 이상의 패스워드, 공공기관의 경우 9자리)을 만족해야 안전함. /etc/pam.d/common-password 파일과 /etc/security/pwquality.conf 파일 설정 내용을 확인한다. cat으로 그 후 password requisite pam_pwquality.so enforce_for_root retry=3 minlen=8 dcredit=-1 ucredit=-1 lcredit=-1 ocredit=-1 을 추가해준다. RHEL 계열의 경우 kisa 클라우드 취약점 점검 가이드 합본에 있다.

명령어 추가 설명

U-03. 계정 잠금 임계값 설정  /  취약도 : 상

요약 : 로그인 시도를 무한으로 할 수 있을 경우 언젠가는 계정 정보가 해킹된다.

 

피해 : 사용자 계정 패스워드 유출로 사용자의 권한 획득해 다양한 피해 입히기 가능.

 

해결법 및 추가 설명 : 로그인 시도를 5번 이하로 가능하게 해야 안전하다. Debian 계열 리눅스일 때 /etc/pam.d/common-auth 파일에서 임계값 설정을 확인한다. RHEL 계열일 때는 /etc/pam.d/password-auth 파일에서 required pam_tally2.so deny=5로 설정해주어야 한다. RHEL은 /etc/pam.d/password-auth 까지 설정해주어야 함. 이유는 SSH 접속 때 영향 받는 파일이기 때문이다.

pam_tally2.so = 로그인 시도 횟수를 카운트 하는 모듈로 실패시 관리해주는 역할 수행

no_magic_root 루트 사용자에게 패스워드 잠금 설정을 적용하지 않음.

 

 

U-04. 패스워드 최대 사용 기간 설정  /  취약도 : 중

요약 : 패스워드의 최대 사용기간이 없거나, 90일 초과의 경우 공격자가 장기적인 계획을 세워 패스워드를 알아낼 수 있어서 위험하다.

 

피해 : 사용자 계정 패스워드 유출로 사용자의 권한 획득해 다양한 피해 입히기 가능.

 

해결법 및 추가 설명 : 패스워드 최대 사용 기간의 설정 값을 /etc/login.defs 파일에서 바꿔준다. grep 명령어로 PASS_MAX_DAYS를 검색한다. PASS_MAX_DAYS 90 으로 바꿔 준다. user를 새로 생성할 때 부터 적용되는 설정이므로 change -M 90 <현재 계정명>으로 현재 계정에도 적용시켜준다.

chage -M : 암호변경일 이후부터 몇일간 사용할지 일수 설정, chage: 사용자의 패스워드 만기 정보를 변경 및 설정하는 명령어

 

U-05. 패스워드 파일 보호  /  취약도 : 상

요약 : 외부인에 의해 패스워드가 평문으로 저장된 파일이 유출될 수 있다.

 

피해 : 시스템 사용자 계정 패스워드가 노출될 수 있다.

 

해결법 및 추가 설명 : 쉐도우 패스워드를 사용하거나, 패스워드를 암호화하여 저장해야 한다. /etc/shadow 파일이 존재하는지 확인한다. etc/passwd 파일 내 두 번째 필드가 "x"표시 되어있는지 확인. pwconv 명령어를 치면 /etc/shadow 파일이 존재하고 두 번째 필드가 x표시가 된다고 한다. pwunconv 명령어를 치면 두 번째 필드가 암호화된 그대로 노출된다.

참고 : https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=minki0127&logNo=220796011945 

 

리눅스 pwconv / pwunconv 명령어

pwconv / pwunconv ■ pwconv / pwunconv Linux OS 에는 사용자를 관리할 경우 기본적으로 /etc/passwd,...

blog.naver.com

쉐도우 패스워드 = 실제 패스워드를 정상적인 사용자가 읽을 수 없도록 저장한 암호화 시스템

 

출처 : KISA 클라우드 취약점 점검 가이드-합본 (2020.12)

위 파일을 보고 공부하며 요약 및 정리한 글입니다. 정확하지 않은 내용이 있을 수 있으니, 위 파일을 직접 참고하시길 권장드립니다.