로깅 셸 세션이 암호화되어 있나요?

로깅 셸 세션이 암호화되어 있나요?

나는 모든 쉘 활동을 기록하는데 사용 script하지만 이 로그 파일에 꽤 많은 비밀번호와 기타 비밀 정보가 있다는 점이 걱정됩니다.

암호화된 방식으로 쉘 세션을 기록하는 방법을 아는 사람이 있습니까? scriptGPG와 통합된 유사한 유틸리티가 있습니까 ?

답변1

개별 파일을 암호화하는 대신 로그 파일을 암호화된 저장소에 넣을 수 있습니다.

아니면 scriptfifo에 쓰고 gpg로 해당 fifo를 읽은 다음 gpg에서 암호화하여 파일에 쓰도록 할 수도 있습니다.

답변2

를 사용하는 경우 bash스크립트를 사용하여 ~/.bash_logoutgpg 등을 사용하여 로그 파일을 암호화할 수 있습니다.script

.bash_logout로그의 파일 이름이 무엇인지 알아야 합니다. 예를 들어, 단지 run 이 아니라 script filenamerun myscript을 실행 하십시오 .bashrc.

function myscript() {

  # Very primitive option handling. This really needs to pass any script
  # command-line options on to script.
  # Left as an exercise for the reader and the getopts documentation :)
  if [ -n "$1" ] ; then
    SCRIPT_FILENAME="$1"
  else
    SCRIPT_FILENAME="$USER-$(tty)-$(date +%s)"
  fi
  readonly SCRIPT_FILENAME
  export SCRIPT_FILENAME

  script "$SCRIPT_FILENAME"
}

그런 다음 .bash_logout 파일에서:

  if [ -n "$SCRIPT_FILENAME" ] && [ -e "$SCRIPT_FILENAME" ] ; then
      gpg --batch --yes  -r 'YOUR-EMAIL-OR-ID' -e "$SCRIPT_FILENAME"
      shred "$SCRIPT_FILENAME" # or any other file secure-erase tool.
      rm -f ""$SCRIPT_FILENAME"
  fi

안전 경고: 이로 인해 시스템이 쉘 환경(예: 소스 스크립트)에서 SCRIPT_FILENAME 변수를 설정할 수 있는 모든 것에 취약해집니다. 공격자는 이를 귀하의 사용자 ID에 쓰기 액세스 권한이 있는 모든 파일로 설정할 수 있습니다. (물론 공격자가 가능한 모든 것을 실행할 수 있다면 파일 자체를 덮어쓸 수 있습니다)

it 대신 함수에서 읽기 전용으로 설정하면 $SCRIPT_FILENAME이를 방지 할 수 있습니다. 이렇게 하면 myscript 함수가 다른 파일 이름을 사용하는 것을 방지할 수 있습니다.~/.bashrcmyscript

또는 모든 TypeScript를 하나의 디렉터리(예 /home/username/typescripts/: )에 저장할 수 있습니다. 그러면 .bash_logout 스크립트는 다음을 확인할 수 있습니다.

  • 파일 이름은 디렉터리의 절대 경로로 시작됩니다.
  • 파일 이름이 다음으로 끝나지 않습니다..gpg
  • ../파일 이름에 s가 없습니다.
  • 파일 이름은 심볼릭 링크가 아닙니다
  • 파일 이름 inode 수 = 1

암호화, 파쇄, 삭제 전.

또 다른 보안 경고:

경계하십시오. 위험을 감수하더라도 코드 예제를 사용하지 마십시오. 내 예는 참고용일 뿐입니다.

일부는 개별적으로 테스트되었지만 완전한 기능 시스템으로 테스트되지는 않았습니다. 정답은아니요완벽한 솔루션을 제공하도록 설계되었습니다. 스스로 탐색하고 구현할 수 있는 아이디어를 제공하도록 설계되었습니다.

관련 정보