[python] Fabric으로 원격 서버 악성 행위 탐지하기

안녕하세요! 오늘은 Fabric을 사용하여 원격 서버에서 악성 행위를 탐지하는 방법을 알아보겠습니다.

개요

Fabric은 파이썬 기반의 SSH 클라이언트 라이브러리로, 명령 줄 인터페이스를 통해 원격 서버에 명령을 실행할 수 있습니다. 이를 활용하여 원격 서버에서 악성 행위를 탐지하는 스크립트를 작성할 수 있습니다.

구현

먼저 Fabric을 설치해야 합니다. 터미널에서 다음 명령어를 실행하세요:

pip install fabric

다음은 Fabric을 사용하여 원격 서버에서 악성 행위를 탐지하는 예시 코드입니다.

from fabric import Connection

def detect_malicious_activity(host, username, password):
    with Connection(host=host, user=username, connect_kwargs={"password": password}) as conn:
        # 1. 원격 서버에서 악성 파일 검색
        result = conn.run("grep -rl 'malicious' /")
        
        if result.stdout:
            print("악성 파일이 발견되었습니다!")
            print(result.stdout)
        else:
            print("악성 파일을 찾지 못했습니다!")

        # 2. 악성 프로세스 확인
        result = conn.run("ps aux | grep 'malicious_process'")
        
        if result.stdout:
            print("악성 프로세스가 실행 중입니다!")
            print(result.stdout)
        else:
            print("악성 프로세스를 찾지 못했습니다!")

# 원격 서버 정보 설정
host = "1.2.3.4"
username = "remote_user"
password = "remote_password"

# 악성 행위 탐지 실행
detect_malicious_activity(host, username, password)

위 코드에서는 detect_malicious_activity 함수를 정의하여 악성 행위를 탐지하는 로직을 구현하였습니다. 해당 함수는 원격 서버에 접속하여 먼저 악성 파일을 검색하고, 다음으로 악성 프로세스를 확인합니다.

코드를 실행하기 전에 host, username, password 값을 원격 서버에 맞게 설정해야 합니다.

실행 결과 예시

만약 원격 서버에서 악성 파일이나 악성 프로세스를 발견한다면, 아래와 같은 결과를 얻을 수 있습니다:

악성 파일이 발견되었습니다!
/etc/malicious_file

악성 프로세스가 실행 중입니다!
root      1234  0.0  0.0    45678   7890 ?        S    09:00   0:00 malicious_process

결론

위 예시 코드를 통해 Fabric을 사용하여 원격 서버에서 악성 행위를 탐지하는 방법을 알아보았습니다. 이를 토대로 보다 복잡한 탐지 로직을 구현하거나, 탐지된 결과를 처리하는 로직을 추가로 작성할 수 있습니다. Fabric은 실제 운영 환경에서 서버 모니터링이나 보안 감시 등 다양한 용도로 활용될 수 있으니, 유용하게 활용하시기 바랍니다.

참고 자료