728x90
반응형
주요정보통신기반 취약점 점검 상세가이드
점검내용
시스템에서 최신 패치가 적용되어 있는지 점검
점검목적
주기적인 패치 적용을 통하여 보안성 및 시스템 안정성을 확보함
보안위협
최신 보안패치가 적용되지 않을 경우, 이미 알려진 취약점을 통하여 공격자
에 의해 시스템 침해사고 발생 가능성이 존재함
코드
#!/usr/bin/python3
#-*- coding: utf-8 -*-
import subprocess
# 색깔 변수
red = '\033[91m'
blue = '\033[94m'
reset = '\033[0m'
# 최신 보안 패치 및 벤더 권고사항 적용 확인 시작 메시지 출력
print("U-42 START")
print("[U-42.최신보안패치및벤더권고사항적용]")
# 시스템 정보 출력
print("검사 진행")
cmd = "uname -a"
output = subprocess.check_output(cmd, shell=True)
print(output.decode('utf-8'))
# 참고 패키지 리스트 출력
print("\n참고패키지리스트")
with open('/tmp/patch_list_tmp', 'w') as f:
subprocess.run(['rpm', '-qa'], stdout=f, universal_newlines=True)
vulnerable_packages = []
with open('/tmp/patch_list_tmp', 'r') as f:
for package in f:
if any(x in package.lower() for x in ["ssh", "telnet", "ftp", "nfs", "sendmail", "bind", "apache", "httpd", "samba", "ypserv", "ntpd", "syslog"]):
print(red + package.strip() + reset)
vulnerable_packages.append(package.strip())
else:
print(package.strip())
# 업데이트 가능한 패키지 목록 가져오기
print("\n패치 적용 확인")
cmd = "yum check-update"
output = subprocess.check_output(cmd, shell=True)
updates = output.decode('utf-8').splitlines()
# 패치 적용 정책 검사 및 결과 출력
patch_applied = False
for update in updates:
if "security" in update: # 보안 업데이트가 있을 경우
if any(x in update.lower() for x in vulnerable_packages): # 취약 패키지가 보안 업데이트 대상일 경우
patch_applied = True
print(blue + update.strip() + reset) # 출력
if len(vulnerable_packages) > 0:
print(f"{red}취약{reset}: 최신 패치 및 벤더 권고사항 적용 필요")
print(f"{red}취약 패키지 수:{reset} {len(vulnerable_packages)}")
elif patch_applied:
print(f"{blue}양호{reset}: 최신 패치 및 벤더 권고사항 적용 완료")
else:
print(f"{blue}양호{reset}: 최신 패치 및 벤더 권고사항 적용 완료")
print("U-42 END")
- 코드 파일 정보
- 색깔 변수
- 최신 보안 패치 및 벤더 권고사항 적용 확인 시작 메시지 출력
- 시스템 정보 출력
- 참고 패키지 리스트 출력
- 업데이트 가능한 패키지 목록 가져오기
- 패치 적용 정책 검사 및 결과 출력
실제 테스트
패치 적용 정책을 수립하여 주기적으로 패치관리를 하고 있으며, 패치관련 내용을 확인하고 적용했을 경우


패치 적용 정책을 수립하지 않고 주기적으로 패치관리를 하지 않거나 패치 관련 내용을 확인하지 않고 적용하지 않았을 경우



728x90
반응형
'개발' 카테고리의 다른 글
플라스크(Flask) 예제로 정리 (1) | 2023.09.14 |
---|---|
깃허브 명령어 (2) | 2023.09.14 |
U-34 서비스 관리 > DNS Zone Transfer 설정 자동화 파이썬 코드 (0) | 2023.03.17 |
U-33 서비스 관리 > DNS 보안 버전 패치 자동화 파이썬 코드 (0) | 2023.03.17 |