Tiny Bunny

Study/AWS 취약점 진단

취약점 점검 (1)

bento 2023. 12. 30. 22:46

DBMS

1. 

  취약 여부 항목 중요도 항목 코드
기본 계정의 패스워드, 권한 등을 변경하여 사용 취약 D-01

 

조치

- 계정 패스워드 변경 시

mysql> ALTER USER 'username'@'host' IDENTIFIED BY 'new_password';
mysql> FLUSH PRIVILEGES;

 

2.

  취약 여부 항목 중요도 항목 코드
데이터베이스의 불필요 계정을 제거하거나, 잠금설정 후 사용 양호 D-02

 

점검

- 사용자 목록 조회

mysql> USE mysql;
mysql> SELECT host, user from user;

 

조치

- 불필요한 계정 발견 시 제거

mysql> DROP USER 'username'@'hostname';

- 불필요한 계정 발견 시 잠금

mysql> ALTER USER 'username'@'hostname' ACCOUNT LOCK;

 

3.

  취약 여부 항목 중요도 항목 코드
패스워드의 사용기간 및 복잡도를 기관 정책에 맞도록 설정 취약 D-03

 

조치

- Step 1) validate_password 값 설정

ON: 비활성화된 플러그인을 활성화

FORCE: 비활성화된 플러그인을 활성화하고, 모든 비밀번호 변경 시 해당 정책을 강제로 적용

 

- Step 2)

1. 사용기간 설정

default_password_lifetime 파라미터 변경

기존 파라미터 그룹에서 default_password_lifetime 값을 변경

default_password_lifetime = n(일)

90일로 설정

 

2.복잡도 설정

기존 파라미터 그룹에서 validate_password 변경

 

비밀번호 정책 설정

validate_password_policy = 'MEDIUM';

비밀번호의 최소 길이를 설정

validate_password_length = n

대문자와 소문자를 혼합하여 사용해야 하는 최소 문자 수를 설정

validate_password_mixed_case_count = n

비밀번호에 포함되어야 하는 최소 숫자 개수

validate_password_number_count = n

비밀번호에 포함되어야 하는 특수 문자 개수

validate_password_special_char_count = n

 

4.

  취약 여부 항목 중요도 항목 코드
데이터베이스의 불필요 계정을 제거하거나, 잠금설정 후 사용 양호 D-04

 

점검

- 모든 권한을 가진 사용자 조회

SELECT user, host FROM user WHERE 
    Select_priv = 'Y'
    AND Insert_priv = 'Y'
    AND Update_priv = 'Y'
    AND Delete_priv = 'Y'
    AND Create_priv = 'Y'
    AND Drop_priv = 'Y'
    AND Reload_priv = 'Y'
    AND Shutdown_priv = 'Y'
    AND Process_priv = 'Y'
    AND File_priv = 'Y'
    AND Grant_priv = 'Y'
    AND References_priv = 'Y'
    AND Index_priv = 'Y'
    AND Alter_priv = 'Y'
    AND Show_db_priv = 'Y'
    AND Super_priv = 'Y'
    AND Create_tmp_table_priv = 'Y'
    AND Lock_tables_priv = 'Y'
    AND Execute_priv = 'Y'
    AND Repl_slave_priv = 'Y'
    AND Repl_client_priv = 'Y'
    AND Create_view_priv = 'Y'
    AND Show_view_priv = 'Y'
    AND Create_routine_priv = 'Y'
    AND Alter_routine_priv = 'Y'
    AND Create_user_priv = 'Y'
    AND Event_priv = 'Y'
    AND Trigger_priv = 'Y'
    AND Create_tablespace_priv= 'Y';

 

조치

- 관리자 권한이 필요한 계정 및 그룹에만 관리자 권한 부여

Step 1) 필요한 계정 생성 또는 그룹 지정

CREATE USER 'user'@'%' IDENTIFIED BY 'password'; -- 계정
CREATE ROLE 'group'; -- 그룹

 

Step 2) 권한 부여

GRANT priv1, priv2 ON 데이터베이스명.테이블명 TO 'user'@'%'; -- 계정 권한 부여
GRANT priv1, priv2 ON 데이터베이스명.테이블명 TO 'group'; -- 그룹 권한 부여
GRANT ALL PRIVILEGES ON 데이터베이스명.테이블명 TO 'user'@'%'; -- 계정 모든 권한 부여
GRANT ALL PRIVILEGES ON 데이터베이스명.테이블명 TO 'group'; -- 그룹 모든 권한 부여

 

 

5. 

  취약 여부 항목 중요도 항목 코드
패스워드 재사용에 대한 제약 설정 취약 D-12

 

조치

- 재사용 제약 설정

기존 파라미터 그룹에서 password_history 변경

password_history = n(번째까지 기억)

728x90

'Study > AWS 취약점 진단' 카테고리의 다른 글

취약점 점검 (3)  (0) 2023.12.30
취약점 점검 (2)  (0) 2023.12.30
환경 구축 (10)  (0) 2023.12.30
환경 구축 (9)  (0) 2023.12.30
환경 구축 (8)  (0) 2023.12.30