ロギングシェルセッションは暗号化されていますか?

ロギングシェルセッションは暗号化されていますか?

私はすべてのシェルアクティビティを記録するために使用しますscriptが、このログファイルにはかなり多くのパスワードやその他の秘密情報があることが心配です。

暗号化された方法でシェルセッションを記録する方法を知っている人はいますか?scriptGPGと統合された同様のユーティリティはありますか?

答え1

個々のファイルを暗号化する代わりに、ログファイルを暗号化されたリポジトリに配置できます。

あるいは、scriptfifoに書き込み、gpgでそのfifoを読み、gpgで暗号化してファイルに書き込むこともできます。

答え2

を使用している場合は、bashスクリプトを使用して~/.bash_logoutgpgなどを使用してログファイルを暗号化できます。script

.bash_logoutログのファイル名が何であるかを知る必要があります。たとえば、単にrunではなくscript filenamerunmyscriptを実行してください.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を1つのディレクトリ(たとえば/home/username/typescripts/)に保存することもできます。その後、.bash_logoutスクリプトは次のことを確認できます。

  • ファイル名はディレクトリの絶対パスで始まります。
  • ファイル名は次に終わりません。.gpg
  • ../ファイル名に s がありません。
  • ファイル名はシンボリックリンクではありません
  • ファイル名 inode 数 = 1
  • など

暗号化、破砕、削除前。

別のセキュリティ警告:

警戒してください。危険にさらされてもコード例を使用しないでください。私の例は参考用です。

一部は個別にテストされていますが、完全な機能システムではテストされていません。正解はいいえ完璧なソリューションを提供するように設計されています。自分でナビゲートして実装できるアイデアを提供するように設計されています。

関連情報