상세 컨텐츠

본문 제목

[주요정보통신기반시설 취약점 분석 평가] 윈도우즈(Windows) 서버 - 계정관리 <1.5~1.8>

[Tech] 정보보안/취약점 분석평가

by tech-dailylife 2021. 1. 19. 16:53

본문

반응형

개인적으로 교육 교안으로 활용하기 위해 작성하였습니다.

 

------------------------------------------------------------------------------------------------------------------------

 

 

1.5 해독 가능한 암호화를 사용하여 암호 저장 해제

[점검 방법]

secedit /EXPORT /CFG xxx.txt 명령을 활용하면 xxx.txt 파일에 로컬 보안 정책들의 설정값이 저장됩니다.

아래 보시면 명령 사용 후에 dir로 확인했을 때, 텍스트 파일이 생성된 것을 볼 수 있습니다.

해당 텍스트 파일을 열어보면 설정 값들이 출력되고

그 중에 ClearTextPassword 라는 속성이 해독 가능한 암호화 사용하여 암호 저장 해제에 대한 설정 값입니다. 

 

[분석 평가]

해독 가능한 암호화를 사용하여 암호 저장에 대해 ClearTextPassword 값이 1(사용함)인 경우로 취약입니다.

사용자 계정 정보(PW 등)를 해독 가능한 방식으로 저장하게 되면 공격자가 쉽게 복호화하여 PW를 획득하고 이를 이용해 내부로 침투할 수 있는 위험을 가지게 됩니다.

 

 

[조치 방법]

"제어판 > 관리도구 > 로컬 보안 정책 > 계정 정책 > 암호 정책 > 해독 가능한 암호화를 사용하여 암호 저장"을 통해 조치를 진행합니다. (SECPOL.MSC => 로컬 보안 정책)

기존에 "사용"이던 설정값을 "사용 안 함"으로 변경합니다.

 

[이행 점검]

ClearTextPassword가 0으로 나타나며 조치가 완료되었습니다.

 

 

------------------------------------------------------------------------------------------------------------------------

 

1.6 관리자 그룹에 최소한의 사용자 포함

 

[점검 방법]

아래의 net localgroup Administrator 명령을 기반으로 스크립트를 작성하여 점검합니다.

관리자 그룹인 Administartors 그룹에 존재하는 계정들을 출력하는 명령어입니다.

 

 

[분석 평가]

관리자 그룹에 Administrator 이외에 다른 그룹이 포함되어 있어, 원칙적으로는 취약으로 판단하며,

인터뷰를 수행하고 불필요한 관리자가 아닌 경우에는 허용 가능 여지가 있습니다.

* 시스템 관리자는 원칙적으로 1명 이하로 유지하고, 부득이하게 2명 이상의 관리 권한자를 유지하여야 하는 경우에는 관리자 그룹에는 최소한의 사용자만 포함하도록 하여야 함

관리자 그룹에 다수가 포함될 경우 비인가 사용자에 대한 과도한 관리 권한 부여로 보안 위협이 존재합니다. 관리 권한 오남용으로 인한 시스템 피해를 줄이기 위해서 관리/일반 계정을 분리하여 사용하며 최소한의 사용자만 관리 권한을 부여 해야 합니다.

 

[조치 방법]

"실행 > LUSRMGR.MSC > 그룹> Administrator" 를 통해 조치를 진행합니다.

 

[이행 점검]

Administrator 이외 계정들이 관리자 그룹 계정에서 삭제되어 조치가 완료되었습니다.

 

 

------------------------------------------------------------------------------------------------------------------------

 

1.7 Everyone 사용 권한을 익명 사용자에 적용 해제

 

[점검 방법]

secedit /EXPORT /CFG xxx.txt 명령을 활용하면 xxx.txt 파일에 로컬 보안 정책들의 설정값이 저장됩니다.

아래 보시면 명령 사용 후에 dir로 확인했을 때, 텍스트 파일이 생성된 것을 볼 수 있습니다.

해당 텍스트 파일을 열어보면 설정 값들이 출력되고

그 중에 EveryoneIncludesAnonymous 라는 속성이 Everyone 사용 권한을 익명 사용자에 적용 해제에 대한 설정 값입니다. 

 

[분석 평가]

Everyone 사용 권한을 익명 사용자에 적용 항목이 1(사용)로 되어 있어 취약입니다.

해당 정책이 사용으로 되어 있을 경우에는 권한이 없는 사용자가 익명으로 계정 이름 및 공유 리소스를 나열하고 이 정보로 암호를 추측하거나 DDoS 공격을 할 위험성이 있습니다.

 

[조치 방법]

"제어판 > 관리도구 > 로컬 보안 정책 > 로컬 정책 > 보안 옵션 > Everyone 사용 권한을 익명 사용자에게 적용"을 통해 조치를 진행합니다. (SECPOL.MSC => 로컬 보안 정책)

기존에 "사용"이던 설정값을 "사용 안 함"으로 변경합니다.

 

[이행 점검]

0(사용 안 함)으로 변경되어 조치가 완료 되었습니다.

 

 

------------------------------------------------------------------------------------------------------------------------

 

1.8 계정 잠금 기간 설정

 

[점검 방법]

net accounts 명령은 계정 정책에 관한 정보를 나타냅니다. 이 중 잠금 기간(Lockout duration)과 잠금 관찰 창(Lockout observation window)을 확인하여 점검합니다.

 

[분석 평가]

계정 잠금 기간과 계정 잠금 기간 원래대로 설정 값이 각각 30분으로 설정되어 있어 취약합니다.

로그인 실패 시에 계정 잠금을 하는 기간이 없거나 짧으면, 공격자가 자동화된 브루트 포스(무작위 대입) 공격을 성공할 가능성이 높아 사용자 계정 유출의 위험성이 존재합니다.

따라서 60분 이상의 값으로 설정하기를 권고합니다.

 

[조치 방법]

계정 잠금 임계값은 1.4 항목에 의해 6번 이상으로 설정하는 것이 안전합니다.

0번으로 되어 있는 경우는 1.4 항목이 취약한 것입니다.

따라서 6으로 설정을 바꾸게 되면 기본 Default로 설정되는 계정 잠금 기간과 다음 시간 후 계정 잠금 수를 원래대로 설정 값이 30분입니다. 

30분은 주요정보통신시설 기준 1.8 항목이 취약합니다.

따라서 두 설정 값을 각각 60분 이상으로 변경합니다.

"제어판 > 관리도구 > 로컬 보안 정책 > 계정 정책 > 계정 잠금 정책 > 계정 잠금 기간"을 통해 조치를 진행합니다.

"제어판 > 관리도구 > 로컬 보안 정책 > 계정 정책 > 계정 잠금 정책 > 다음 시간 후 계정 잠금 수를 원래대로 설정"을 통해 조치를 진행합니다.

 

[이행 점검]

Lockout duration (계정 잠금 기간)이 60으로 변경되었고,

Lockout observation window (다음 시간 후 계정 잠금 수를 원래대로 설정)이 60으로 변경되었습니다.

조치 완료되었습니다.

 

반응형

관련글 더보기

댓글 영역