| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |
- 객체지향프로그래밍
- 일상
- node.js
- 개발
- 티스토리챌린지
- Linux
- ubuntu
- 인프라
- podman
- 템플릿
- 주유소
- 가상머신
- 잡담
- 오블완
- VM
- DART
- VMware
- 연습문제
- 리눅스
- K&R
- Flutter
- 개발기
- 에러
- C언어
- 오토바이
- Bloc
- 휘발류
- FreeBSD
- virtualmachine
- 퇴근길
- Today
- Total
그냥저냥
KISA 리눅스 보안 취약점 점검 및 적용 쉘 스크립트 (CentOS 6 / 7) 본문
문제 상황
2019년, 인프라 구축 프로젝트를 수행하던 중 보안 점검 결과에 따른 취약점 보완 요청을 받았습니다.
점검 기준은 한국인터넷진흥원(KISA)의 리눅스 보안 취약점 점검 가이드였습니다.
해당 가이드는 약 70여 개의 점검 항목으로 구성되어 있으며,
각 서버마다 항목별로 양호 / 취약 여부가 구분되어 전달됩니다.
문제는 작업량이 다음과 같이 계산된다는 점이었습니다.
작업량 = 서버 수 × 취약점 항목 수
예를 들어어 아래와 같이 요청이 있다고 가정하면 최대 1,400개 항목 확인 및 조치가 필요하다는 사실을 알 수 있습니다.
- 서버 20대
- 점검 항목 70개
이전 프로젝트에서 수작업으로 대응하다 보니 상당한 시간이 소요되었고, 이 경험이 자동화에 대한 필요성을 절실히 느끼게 만든 계기가 되었습니다.
자동화 접근 방법
당시 운영 환경은 다음과 같았습니다.
- CentOS 6.x
- CentOS 7.x
KISA 가이드 문서를 기준으로 다음을 목표로 스크립트를 작성했습니다.
구현 목표
- 점검 항목 자동 검사
- 조치 가능한 항목은 자동 설정 변경
- 위험도가 높은 항목은 자동 변경하지 않음
- 결과를 서버별 리포트 형태로 정리
쉘 스크립트 기반으로 구현하였으며, 점검 로직과 설정 변경 로직을 분리하여 작성했습니다.
자동화 범위
전체 70여 개 항목 중 대부분의 항목을 구현하였습니다.
자동화 유형
| 구분 | 설명 |
| 자동 점검 + 자동 조치 | 설정 파일 수정, 권한 변경 등 |
| 자동 점검만 수행 | 서비스 영향 가능성이 있는 항목 |
| 수동 확인 필요 | 환경 의존적인 항목 |
모든 항목을 자동으로 수정하지는 않습니다.
운영 환경 특성상 무조건적인 자동 설정 변경은 위험할 수 있기 때문에 일부 항목은 점검 및 조치하여 결과만 출력할 수 있도록 설계했습니다.
쉘 스크립트 구성 개요
쉘 스크립트 구성은 대략 다음과 같습니다.
- 환경 정보 수집
- 계정/패스워드 정책 점검
- 파일/디렉터리 권한 점검
- 서비스 설정 점검
- 네트워크 설정 점검
- 로그 설정 점검
- 결과 리포트 출력
각 항목은 개별 함수로 구성되어 있으며, 항목별로 양호/취약 결과를 명확히 구분하도록 구현했습니다.
현재 상태 및 주의사항
해당 스크립트는 2019년 기준으로 작성되었습니다. 이후 유지보수는 진행하지 않고 있습니다.
주의 사항
- CentOS 6 / 7 기준
- 이후 유지보수 진행하지 않음
- Rocky Linux에서 동작 여부 미확인
- 최신 KISA 가이드 반영 여부 검토 필요
- 운영 환경 적용 전 반드시 테스트 환경에서 검증 권장
최근 배포판(Rocky Linux 등)에서는 일부 항목이 정상 동작하지 않을 가능성이 있습니다.
공유 목적
이 스크립트는 다음과 같은 분들께 도움이 될 수 있습니다.
- KISA 보안 점검 대응을 처음 수행하는 엔지니어
- 수작업 반복 점검에 시간을 많이 소모하고 있는 분
- 리눅스 보안 자동화에 관심 있는 분
완성형 솔루션이라기보다는,
자동화 아이디어 및 참고용 코드로 활용하시면 좋겠습니다.
마치며
보안 점검 대응은 필수 작업이지만, 반복되는 수작업은 엔지니어의 시간을 빠르게 소모시킵니다.
이 경험을 통해 느낀 점은 다음과 같습니다.
반복되는 작업은 자동화의 후보 1순위다.
혹시 해당 스크립트를 개선하거나 Rocky Linux 환경에서 테스트해보신 분이 있다면 의견 공유 부탁드립니다.
문의 사항은 댓글로 남겨주세요.
'인프라 > 스크립트' 카테고리의 다른 글
| CentOS 6.x Live 마이그레이션 흉내 영상에서 사용된 스크립트 (0) | 2024.10.28 |
|---|---|
| CentOS 6.x Live 마이그레이션 흉내! (0) | 2024.10.21 |