파이프된 명령으로 인한 메모리 누수 방지

파이프된 명령으로 인한 메모리 누수 방지

파일을 다시 암호화(트랜스코딩? 재암호화?)하기 위한 일괄 작업을 설정하고 있는데 메모리 누수로 인해 일반 텍스트가 누출될 가능성이 걱정됩니다. 결함에는 다른 이름이 있을 수 있지만 기본적으로 우려되는 점은 재암호화 프로세스의 중간 단계에서 일반 텍스트가 다른 프로세스에 의해 디스크에 기록될 수 있다는 것입니다. 이는 일반 텍스트가 있는 메모리가 해제되었지만 지워지지 않은 경우, 일부 다른 프로세스가 메모리를 획득하고 해당 메모리를 디스크에 쓰는 경우(필요한 것보다 더 큰 블록을 교환하거나 쓰는 등의 방법으로) 발생할 수 있습니다. 임베디드 프로그래머로서 저는 민감한 메모리를 공개하기 전에 이를 지우는 데 익숙합니다. 그러나 명령줄에서 암호화하면 어떤 일이 발생하는지 잘 모르겠습니다. 내 배치 프로세스가 다음과 같다고 가정합니다.

openssl enc -aes-256-cbc -in input.enc -K $(get key command) -iv $(get iv command) \
| gpg –encrypt -r user@email -o output.gpg

여기에는 민감한 정보의 출처가 여러 개 있습니다. 두 가지 핵심 명령과 IV 명령이 있지만 가장 민감한 명령은 와 사이의 파이프라인이며 openssl, gpg여기에는 해독된 일반 텍스트 데이터가 포함됩니다.

openssl파이프로 연결된 일반 텍스트 출력을 보관하는 데 사용된 메모리가 gpg다른 프로세스에 제공되기 전에 운영 체제에서 지워지는지 확인할 수 있습니까 ? 그렇지 않다면 강제로 이런 일이 발생하도록 할 수 있는 방법이 있나요? 나는 다른 프로세스가 일반 텍스트 데이터를 포함할 수 있는 메모리 블록을 가져오는 것을 원하지 않습니다. bashbash 관련 솔루션이 있으면 일반적으로 이를 사용합니다.

관련 정보