컴퓨터 보안은 누구에게나 중요한 문제입니다.
하지만 보안 점검을 꾸준히 수행하는 것은 쉽지 않죠.
오늘 Python 스크립트를 활용해 간단하게나마 컴퓨터 보안을 자동으로 점검하는 방법과,
이를 Windows, macOS, Linux에서 매달 자동으로 실행되도록 설정하는 과정을 자세히 설명해보겠습니다.
먼저 체크리스트를 만들어야합니다.
전문적으로 모든 컴퓨터 내부를 살펴보고 보안관리를 하는것이 아니라
우선 가볍게 간단하게 매달 돌려볼 수 있는 보안 점검 리스트를 만들어 봅시다.
자동으로 스캔할 수 있는 항목
- 운영 체제 및 소프트웨어 업데이트
- 운영 체제가 최신 상태인지 확인 (Windows Update 상태 등).
- 설치된 소프트웨어의 버전 확인.
- 바이러스 및 악성코드 방지
- 안티바이러스 소프트웨어의 실시간 보호 상태 확인 (Windows Defender 등).
- 마지막으로 시스템이 스캔된 날짜 확인.
- 네트워크 보안
- 현재 연결된 네트워크의 암호화 상태 확인 (WPA2/WPA3 여부).
- 활성 네트워크 어댑터 확인.
- 파일 및 데이터 관리
- 백업 디렉토리 또는 외장 하드 드라이브 상태 확인.
- 다운로드 폴더의 최근 파일 검토(예: 잠재적으로 위험한 파일 확장자 탐지).
- 브라우저 및 인터넷 사용
- 브라우저 플러그인 설치 상태(Ad-blocker 확인).
- 저장된 비밀번호 사용 여부.
- 기타
- 사용하지 않는 네트워크 어댑터(Wi-Fi, Bluetooth)가 비활성화되었는지 확인.
1. Python으로 보안 점검 스크립트 작성하기
먼저, 컴퓨터 보안을 점검할 수 있는 Python 스크립트를 작성합니다. 이 스크립트는 운영 체제의 상태를 확인하고, 네트워크 보안, 다운로드 폴더의 위험 파일 등을 간단히 분석합니다.
import os
import subprocess
import platform
# 운영 체제 확인 및 업데이트 상태 확인
def check_os_updates():
os_name = platform.system()
if os_name == "Windows":
print("Windows 업데이트 상태 확인 중...")
subprocess.run("powershell -Command Get-WindowsUpdate", shell=True)
elif os_name == "Linux":
print("Linux 패키지 업데이트 상태 확인 중...")
os.system("sudo apt list --upgradable")
elif os_name == "Darwin":
print("MacOS 업데이트 상태 확인 중...")
os.system("softwareupdate -l")
else:
print(f"운영 체제 {os_name}는 지원되지 않습니다.")
# 바이러스 및 실시간 보호 상태 확인 (Windows 전용)
def check_antivirus_status():
os_name = platform.system()
if os_name == "Windows":
print("Windows Defender 상태 확인 중...")
subprocess.run("powershell -Command Get-MpComputerStatus | Select-Object AMServiceEnabled, RealTimeProtectionEnabled", shell=True)
else:
print("현재 OS에서는 이 기능을 지원하지 않습니다.")
# 네트워크 어댑터 상태 확인
def check_network_security():
print("네트워크 어댑터 상태 확인 중...")
os_name = platform.system()
if os_name == "Windows":
subprocess.run("netsh wlan show interfaces", shell=True)
elif os_name in ["Linux", "Darwin"]:
os.system("nmcli device status")
else:
print(f"운영 체제 {os_name}는 네트워크 확인을 지원하지 않습니다.")
# 다운로드 폴더에서 위험 파일 탐지
def scan_download_folder():
print("다운로드 폴더 내 파일 검사 중...")
download_folder = os.path.expanduser("~/Downloads")
if os.path.exists(download_folder):
for file in os.listdir(download_folder):
if file.endswith((".exe", ".bat", ".cmd", ".vbs")):
print(f"주의: 위험 가능성이 있는 파일 발견 - {file}")
else:
print("다운로드 폴더를 찾을 수 없습니다.")
# 메인 실행
if __name__ == "__main__":
print("컴퓨터 보안 스캔 시작...")
check_os_updates()
check_antivirus_status()
check_network_security()
scan_download_folder()
print("보안 스캔 완료.")
코드 기능 설명
|
2. 운영 체제별 스케줄링 설정
Python 스크립트를 매달 실행하려면 각 운영 체제에 맞는 스케줄링 도구를 사용해야 합니다.
2.1 Windows에서 작업 스케줄러(Task Scheduler) 설정
- Python 스크립트 파일 저장
위 코드를 C:\Scripts\security_scan.py로 저장합니다. - 작업 스케줄러 열기
- Windows 검색창에 "작업 스케줄러(Task Scheduler)"를 입력하고 실행합니다.
- 새 작업 만들기
- **작업 만들기(Create Task)**를 클릭.
- 이름: "Monthly Security Scan".
- 설명: "매월 자동으로 Python 보안 스크립트를 실행".
- 트리거 설정
- 트리거 탭에서 **새로 만들기(New)**를 클릭.
- 매월 실행되도록 설정(예: 매월 1일 오전 9시).
- 동작 설정
- 동작 탭에서 **새로 만들기(New)**를 클릭.
- 프로그램/스크립트에 python을 입력.
- 인수 추가에 스크립트 경로를 입력:
makefile
C:\Scripts\security_scan.py
저장 후 테스트
- 작업 저장 후 "실행" 버튼으로 정상 실행 여부를 확인합니다.
2.2 macOS에서 launchd 사용
- Python 스크립트 파일 저장
- 위 코드를 예를 들어 /Users/사용자/Scripts/security_scan.py로 저장.
- 플리스트(PLIST) 파일 생성
- 플리스트 파일을 생성합니다
nano ~/Library/LaunchAgents/com.security.scan.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.security.scan</string>
<key>ProgramArguments</key>
<array>
<string>/usr/bin/python3</string>
<string>/Users/사용자/Scripts/security_scan.py</string>
</array>
<key>StartCalendarInterval</key>
<dict>
<key>Day</key>
<integer>1</integer>
<key>Hour</key>
<integer>9</integer>
</dict>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
3. 플리스트 로드 및 테스트
launchctl load ~/Library/LaunchAgents/com.security.scan.plist
launchctl start com.security.scan
2.3 Linux에서 cron 사용
- Python 스크립트 파일 저장
- 위 코드를 /home/사용자/Scripts/security_scan.py로 저장.
- 크론 편집
- 크론 편집기를 엽니다:
crontab -e
0 9 1 * * /usr/bin/python3 /home/사용자/Scripts/security_scan.py
테스트
python3 /home/사용자/Scripts/security_scan.py
3. 실행 결과 로그 저장
결과를 파일로 저장하려면 스크립트 또는 스케줄 설정에 로그를 추가하면 됩니다.
스크립트에 로그 추가
import logging
# 로그 설정
logging.basicConfig(
filename="security_scan.log",
level=logging.INFO,
format="%(asctime)s - %(message)s"
)
logging.info("보안 스캔 시작...")
# 기존 점검 함수 호출
logging.info("보안 스캔 완료.")
스케줄 설정에서 로그 추가
- Windows: >> C:\Scripts\security_scan.log 2>&1
- macOS/Linux: >> /path/to/security_scan.log 2>&1
오늘 우리는 위 과정을 통해 Python 스크립트를 작성하고,
매달 자동으로 실행되도록 설정하는 방법을 배웠습니다.
이러한 자동화를 통해 보안을 효율적으로 관리하고, 중요한 문제를 미리 예방할 수 있습니다.
문의사항은 댓글로 남겨주세요!
궁금하신 사항은 댓글에 남겨주세요
댓글에 남겨주신 내용은
추후 정리해서 올려드리겠습니다
이웃 신청하시면 업로드 시 알려드릴게요!
-
조금이라도 도움이 되셨다면
공감&댓글 부탁드리겠습니다
감사합니다!
'보안 > 실습' 카테고리의 다른 글
안전한 로그인 구현을 위한 필수 보안 설정 방법 (1) | 2024.06.03 |
---|---|
ACL 트래픽 필터링 실습 #3 위험 사이트 차단 (예제, 연습, 네트워크, 보안, 패킷 트레이서) (0) | 2024.03.28 |
VLAN 설정 (패킷 트레이서로 시작하는 네트워크 분리 실습 가이드) (1) | 2024.03.26 |
ACL 트래픽 필터링 실습 #2 (예제, 연습, 네트워크, 보안, 패킷 트레이서) (0) | 2024.01.05 |
ACL 트래픽 필터링 실습 #1 (예제, 연습, 네트워크, 보안, 패킷 트레이서) (1) | 2023.12.12 |