패스워드 복잡성 취약점 진단

2020. 4. 6. 15:45정보보안과정/인프라 취약점 진단

#!/bin/bash

function.sh 
function.sh를 포함
TMP1=`SCRIPTNAME`.log
> $TMP1
# 없으면 생성

BAR
CODE [U-02] 패스워드 복잡성 검사
cat << EOF >> $RESULT
[양호]: 영문 숫자 특수문자가 혼합된 8 글자 이상의 패스워드가 설정된 경우.
[취약]: 영문 숫자 특수문자 혼합되지 않은 8 글자 미만의 패스워드가 설정된 경우.
EOF
BAR

INFO $TMP1 패스워드 복잡성 검사는 고객과 상의해야 합니다.
INFO $TMP1 파일을 점검한다.

cat << EOF >> $TMP1
1. 컨설팅시 참고하세요.

=======================================================================
* 암호의 최소 길이는 8글자 이상이어야 합니다.
* 패스워드 복잡성은 다음과 같습니다.
1) 암호는 최소 클래스 3가지 이상 포함되어야 합니다.(대문자,소문자,숫자,특수기호)
2) 이전에 암호화 3글자 이상 틀려야 합니다.
3) 사용자 이름과 암호는 동일할 수 없다.
=======================================================================
2. 현재 점검 사항입니다.

EOF

PWQUALITYFILE=/etc/security/pwquality.conf
echo "1) $PWQUALITYFILE 점검 내용입니다." >> $TMP1
egrep -v '^$|^#' $PWQUALITYFILE | grep '=' >> $TMP1
echo "" >> $TMP1

cat << EOF >> $TMP1
# 다음 사항은 설정 참고 사항입니다.
minlen : 패스워드 최소 길이(크레딧과 상관 있음)
minclass : 패스워드 클래스 포함 개수
lcredit : 소문자 크래딧 포함 개수
ucredit : 대문자 크래딧 포함 개수
dcredit : 숫자 크래딧 포함 개수
ocredit : 특수문자 크래딧 포함 개수

EOF

LOGINDEFSFILE=/etc/login.defs
echo "2) $LOGINDEFSFILE 점검 내용입니다." >> $TMP1
egrep -v '^$|^#' $LOGINDEFSFILE | grep 'PASS_MIN_LEN' >> $TMP1

cat << EOF >> $TMP1

# 다음 사항은 설정 참고 사항입니다.
PASS_MIN_LEN : 패스워드 최소 길이(지정된 값 + 1)
=======================================================================
EOF

cat $RESULT
echo ; echo