IaC 미니 프로젝트

신민창·2021년 4월 25일
0

프로젝트

목록 보기
4/5

주요정보통신기반시설기술적취약점분석평가방법상세가이드 중 UNIX/LINUX 항목에 대한 취약점 점검 도구

주요정보통신기반시설기술적취약점분석평가방법상세가이드 문서 내 UNIX 서버 항목 중 중요도 '상'에 해당하는 항목 중 10개 선정

방식

  1. 중요도 '상' 항목 총 43개 중 10개를 임의 선정
  2. 각 취약점 진단항목 별 스크립트 작성
  3. 스크립트는 ansible을 통해 점검대상 호스트에 배포하여 실행하고 결과 취합 또한 ansible을 통해 이루어지도록 작성
  4. 스크립트 실행 시 결과는 양호 or 취약으로 판단하도록 작성
  5. 스크립트 실행 결과는 각 호스트의 /tmp/경로에 취합

스크립트 구성

u00.sh : report.txt 구성 스크립트
u01.sh : root 계정 원격 접속 제한 스크립트
u03.sh : 계정 잠금 임계값 설정 스크립트
u04.sh : 패스워드 파일 보호 스크립트
u05.sh : root 홈, 패스 디렉터리 권한 및 패스 설정 스크립트
u19.sh : finger 서비스 비활성화 스크립트
u20.sh : Anonymous FTP 비활성화 스크립트
u21.sh : r 계열 서비스 비활성화 스크립트
u24.sh : NFS 서비스 비활성화 스크립트
u26.sh : automountd 제거 스크립트
u33.sh : DNS 보안 버전 패치 스크립트

inventory 파일 구성

[webservers]
managed1.example.local

[dbservers]
managed2.example.local

[allservers:children]
webservers
dbservers

ansible.cfg 파일 구성

[defaults]
inventory = ./inventory
remote_user = user
ask_pass = false

[privilege_escalation]
become = true
become_method = sudo
become_user = root
become_ask_pass =true

yaml 파일 구성

---
- name: execute a script
  hosts: allservers
  tasks:
    - name: with_list # 스크립트 파일 호스트에 복사
      copy: src={{ item }} dest=/home/user mode=0777
      with_list:
        - u00.sh
        - u01.sh
        - u03.sh
        - u04.sh
        - u05.sh
        - u19.sh
        - u20.sh
        - u21.sh
        - u24.sh
        - u26.sh
        - u33.sh

    - name: with_list # 복사된 스크립트 파일 실행
      command: sh /home/user/{{ item }}
      with_list:
        - u00.sh
        - u01.sh
        - u03.sh
        - u04.sh
        - u05.sh
        - u19.sh
        - u20.sh
        - u21.sh
        - u24.sh
        - u26.sh
        - u33.sh

    - name: with_list # 실행 후 복사한 스크립트 호스트에서 삭제
      command: rm -f /home/user/{{ item }}
      with_list:
        - u00.sh
        - u01.sh
        - u03.sh
        - u04.sh
        - u05.sh
        - u19.sh
        - u20.sh
        - u21.sh
        - u24.sh
        - u26.sh
        - u33.sh

yaml 파일 실행 화면

스크립트 복사
스크립트 실행
스크립트 삭제

실행 후 호스트 별 /tmp/report.txt 내용


결론

KISA 기술적 취약점 분석 평가 상세 가이드 문서를 참고하여 CentOS7 환경에서 스크립트와 ansible을 기반으로 취약점 진단을 정해진 호스트에 배포하고 실행하는 일련의 작업들을 수행하였습니다.
앞으로 더 발전할 방향으로는 상세 가이드 문서에 나온 모든 부분을 점검할 수 있도록 스크립트를 제작하며 실행 결과가 취약으로 나온 부분에 대해서 자동으로 해당 부분 조치를 취할 수 있도록 구성하는 것이 필요해 보입니다.

0개의 댓글