AppleScript->Echo to Terminal - ログに表示できますか? [閉鎖]

AppleScript->Echo to Terminal - ログに表示できますか? [閉鎖]

この質問がここでより良いのか、Apple / Macの世界でより良いのかわかりませんが…まともな答えが必要です。

私はApplescriptを使用してスプレッドシートまたはデータベースのフィールドからデータを抽出し、それを端末に直接プッシュします。

echo "thisismydatastring and my saltbits" | openssl aes-256-cbc -k thisismypassword -base64 

私の質問:ログファイルをフィルタリングしてパスワードのプレーンテキストインスタンスをキャプチャする方法はありますか?

ハッカーを防ぐためのより良い方法はありますか?

PS:Peteが大好きです。あなたが十分にスマートまたは卑劣な人なら、私の投稿を喜んで編集し、少なくともこの質問に対する正しい答えを提供したいと思うでしょう。

答え1

パスワードがシェル履歴に表示されたくない場合や、シェル履歴から簡単に取得できないようにするには、ps次の手順を実行します。コマンドラインにパスワードを入力しないでください

代替方法は、パスワードをファイルに入れ、権限を600に設定してから、コマンドラインchmodでパスワードの代わりに使用することです。$(cat passwordfile)

システムのルートを信頼していない場合、またはシステムの他のユーザーがroot権限を取得できると考える場合、これは安全ではありません。

例えば

  • /.mysecretpasswordパスワードを編集して追加してください。
  • chmod 600 ~/.mysecretpassword
  • ランニング:

    echo "thisismydatastring and my saltbits" | 
      openssl aes-256-cbc -k "$(cat ~/.mysecretpassword)" -base64
    

同様"thisismydatastring and my saltbits"に機密性の高いものであれば、コマンドラインに入力しないでください。ファイルに入れてopenssl

opensslオプションで、ファイル記述子からパスワードを読み取ることができます。これは、 openssl を実行するためのラッパースクリプトを作成する場合に便利です。

#!/bin/bash

# use file descriptor 99 for no particular reason. a completely arbitrary choice,
# as long as it's not already in use (probably isn't).
exec 99< ~/.mysecretpassword

openssl aes-256-cbc -base64 -k fd:99 

$ PATHのどこかに保存して実行可能にしchmod(スヌーパーが気になる場合は700が最適です)、データをここにパイプまたはリダイレクトできます。コマンドラインに名前が付け$(cat ...)られていないため、この方法より少し優れている可能性があります~/.mysecretpassword(したがって、履歴に保存されたり表示されないps)。

このファイル記述子の方法は依然としてあいまいさによってのみ安全であるため、信頼できないルートアカウントまたはルートを取得できるユーザーからは安全ではありません。

必要に応じて手動でマウントし(手動でパスワードを入力して...キー入力を記録する人がいないことを願います)、作業が完了すると、アンマウントできる暗号化ファイルシステムを使用してセキュリティをわずかに向上させることができます。 Applescriptは、ユーザーがMacを使用していることを示唆しています。 OS Xでこれを行う方法はわかりませんが、Linuxではシステムへのrootアクセス権がない場合はFUSEを使用できます。

完全に制御できないユーザーや他の(おそらく敵対的な)ユーザーがいるシステムで暗号化操作を実行することは、通常悪い考えと見なされます。 (より安全な暗号化のために、ネットワークに接続されたマシンで実行しないでください。より良い方法は、深さ100フィートの床にある鉛が並ぶ部屋のファラデー私たちのネットワークに接続されていないマシンを使用することです。代わりに)を介してコンクリートバンカーを使用するか、QRコードを介してBase64暗号化データを送信します。画面にQRを印刷または表示し、携帯電話でスキャンします。

簡単に言えば、現在使用中のコンピュータを完全に信頼できず、データの機密性が重要であると疑われる理由がある場合は、暗号化に使用しないでください。間違いをするにはいくつかの方法がありますが、完全に妥協するには1つだけです。


ところで、 を使用している場合は、bash次から始めることができます。~/.bash_history 今後削除したい行が表示されるまで上矢印を押してからCtrl-U再入力し、上矢印を押してこのシェルを終了できます。

または、次を実行して、そのシェルセッションの完全な履歴を消去することもできます。history -c 今後そのシェルを終了します。 .bash_historyファイルに保存されている内容は消去されません。

パスワードやその他の機密データが.bash_historyに保存されている場合、唯一のオプションは、再ログイン時に履歴ファイルを削除または編集することです。注:バックアップされたか、スナップショットが作成された可能性があります。つまり、回復するには遅すぎます。

関連情報