728x90
반응형

Linux Coredump Core Pattern 활용 + 스크립트 암호화

리눅스에서 코어 덤프 파일을 생성할 때 바로 암호화하는 방법은 기본적으로 지원되지 않지만, 몇 가지 방법으로 이를 구현할 수 있습니다.

그 중 하나로, Core Pattern 활용 + 스크립트 암호화 방법이 있습니다.

/proc/sys/kernel/core_pattern 파일에 설정할 예제와, 이를 처리할 스크립트 예제를 아래와 같이 보여드리겠습니다.


1. /proc/sys/kernel/core_pattern 설정

먼저 /proc/sys/kernel/core_pattern에 코어 덤프를 암호화하는 스크립트를 지정합니다.

bash

echo "|/path/to/encrypt_and_save.sh %p %u %g %s %t %h" | sudo tee /proc/sys/kernel/core_pattern

위에서 %로 시작하는 부분들은 다음과 같은 정보를 나타냅니다:

  • %p: 프로세스 ID
  • %u: 유저 ID
  • %g: 그룹 ID
  • %s: 시그널 번호
  • %t: 코어 덤프 발생 시간 (Unix timestamp)
  • %h: 호스트 이름

이 정보들은 스크립트가 실행될 때 인자로 전달됩니다.


2. encrypt_and_save.sh 스크립트 예제

/path/to/encrypt_and_save.sh 파일을 작성하여 코어 덤프 파일을 특정 경로에 암호화하여 저장합니다. 이 스크립트는 gpg를 사용하여 덤프 파일을 암호화할 수 있습니다.

bash

#!/bin/bash

# 전달받은 인자
PID=$1      # 프로세스 ID
USER_ID=$2  # 유저 ID
GROUP_ID=$3 # 그룹 ID
SIGNAL=$4   # 시그널 번호
TIME=$5     # 발생 시간 (Unix timestamp)
HOST=$6     # 호스트 이름

# 코어 덤프 파일을 임시 경로에 저장
DUMP_FILE="/tmp/core_dump_${PID}_${TIME}.core"

# 표준 입력을 통해 코어 덤프 파일을 받아서 임시 파일에 저장
cat - > "$DUMP_FILE"

# 덤프 파일을 GPG로 암호화하여 저장
ENCRYPTED_DUMP_FILE="/var/coredumps/core_dump_${PID}_${TIME}.core.gpg"
gpg --symmetric --cipher-algo AES256 --passphrase 'your_password' -o "$ENCRYPTED_DUMP_FILE" "$DUMP_FILE"

# 원본 덤프 파일 삭제
rm "$DUMP_FILE"

# 로그 출력 (선택 사항)
echo "Core dump saved and encrypted to $ENCRYPTED_DUMP_FILE"

주의: gpg--passphrase 옵션에 암호 your_password를 직접 파일에 입력하지 않고 환경 변수를 사용하거나 키 파일을 사용하는 방식으로 보안을 강화하는 것이 좋습니다.


3. 스크립트에 실행 권한 부여

bash

sudo chmod +x /path/to/encrypt_and_save.sh

이제 코어 덤프가 발생하면 /proc/sys/kernel/core_pattern 설정에 따라 encrypt_and_save.sh가 실행되어, 코어 덤프 파일이 암호화되어 저장됩니다.

728x90
반응형

+ Recent posts