728x90
반응형
취약점

점검내용
BIND 최신버전 사용 유무 및 주기적 보안 패치 여부 점검
점검목적
취약점이 발표되지 않은 BIND 버전의 사용을 목적으로 함
보안위협
최신버전(2016.01 기준 9.10.3-P2) 이하의 버전에서는 서비스거부 공격, 버퍼오버플로우(Buffer Overflow) 및 DNS 서버 원격 침입 등의 취약성이 존재함
참고
※ BIND(Berkeley Internet Name Domain): BIND는 BSD 기반의 유닉스 시스템을 위해 설
계된 DNS로 서버와 resolver 라이브러리로 구성되어 있음. 네임서버는 클라이언트들이
이름 자원들이나 객체들에 접근하여, 네트워크 내의 다른 객체들과 함께 정보를 공유
할 수 있게 해주는 네트워크 서비스로 사실상 컴퓨터 네트워크 내의 객체들을 위한 분
산 데이터베이스 시스템임
코드
#!/usr/bin/python3
#-*- coding: utf-8 -*-
# 파일명: U-33.py
import os
import re
import subprocess
# 색깔변수
red = '\033[91m'
blue = '\033[94m'
reset = '\033[0m'
# DNS 실행중인지 ps -ef로 확인
output = subprocess.check_output(['ps', '-ef'])
output_str = output.decode('utf-8')
if not re.search('named', output_str):
# 실행중이 아니면 서비스종료
subprocess.run(['systemctl', 'stop', 'named'])
print(f"{red}취약{reset} - 서비스를 종료합니다.")
else:
# 실행중이면 버전체크
version_output = subprocess.check_output(['named', '-v'])
version_str = version_output.decode('utf-8')
version_match = re.search(r'BIND \d+\.\d+\.\d+', version_str)
if not version_match:
print(f"{red}취약{reset} - 알 수 없는 BIND 버전")
else:
# 버전이 최신인가 확인
latest_version = "9.16.21"
current_version = version_match.group().split()[-1]
if current_version != latest_version:
print(f"{blue}양호{reset} - 최신 BIND 버전")
else:
# 보안패치여부 확인
patches_dir = "/usr/local/bind-patches"
if os.path.isdir(patches_dir):
patches = os.listdir(patches_dir)
if patches:
latest_patch = max(patches)
print(f"{blue}양호{reset} - {current_version} 사용 중, 최신 패치 적용됨: {latest_patch}")
else:
print(f"{red}취약{reset} - {current_version}에 적용된 주기적인 보안 패치 없음")
else:
print(f"{red}취약{reset} - {current_version}에 대한 정기 보안 패치 디렉토리를 찾을 수 없음")
-
- DNS 서비스 실행 여부 확인
- DNS 서비스가 실행 중이지 않으면 서비스 종료
- DNS 서비스가 실행 중이면 BIND 버전 확인
- BIND 버전이 알 수 없으면 취약
- BIND 버전이 최신이 아니면 보안 패치 여부 확인
- 보안 패치가 있으면 양호, 없으면 취약
- 정기 보안 패치 디렉토리를 찾을 수 없으면 취약
- 색깔 변수(red, blue, reset) 사용하여 출력문의 색상 설정
- 실제 테스트
DNS 서비스를 사용하지 않거나 주기적으로 패치를 관리하고 있는 경우

DNS 서비스를 사용하며 주기적으로 패치를 관리하고 있지 않는 경우

서비스를 사용하지 않을 때 서비스 종료

728x90
반응형
'개발' 카테고리의 다른 글
U-42. 패치 관리 > 최신 보안패치 및 벤더 권고사항 적용 자동화 파이썬 코드 (0) | 2023.03.17 |
---|---|
U-34 서비스 관리 > DNS Zone Transfer 설정 자동화 파이썬 코드 (0) | 2023.03.17 |
U-28 NIS서버 취약점 점검 자동화 파이썬 코드 (2) | 2023.03.16 |
U-13 파일 및 디렉토리 관리 > SUID, SGID, 설정 파일점검 (0) | 2023.03.16 |