AvoidUsingConvertToSecureStringWithPlainText

重大度レベル: エラー

デフォルト状態:常に有効

説明

このルールはAsPlainTextコマンドでConvertTo-SecureStringパラメータの使用を検出し、暗号化を回避し、機密情報をメモリ上にプレーンテキストとして公開するため、SecureStringの目的を損なっています。

代わりに、暗号化チャネルを通じて安全な認証情報を取得するか、 Read-Host -AsSecureString のような安全な入力方式を用いて、機密データのライフサイクル全体を通じて暗号化を保つようにしましょう。

推奨事項

ユーザーの操作なしにプログラム的にパスワードを取得する必要がある場合は、PowerShell ギャラリーのSecretStoreモジュールの利用を検討してください。これは暗号化された認証情報の保存と取得を提供します。

例

非準拠

$UserInput = Read-Host 'Please enter your secure code'
$EncryptedInput = ConvertTo-SecureString -String $UserInput -AsPlainText -Force

対応

$SecureUserInput = Read-Host 'Please enter your secure code' -AsSecureString

ルールの設定

このルールは常に有効で、設定はできません。 このルールを避けるために、以下のいずれかの方法を用いてください。

  • 欲しいルールだけを含めるか、不要なルールを除外するカスタムルール設定ファイルを作成しましょう。
  • 特定のコードブロックに対してルール抑制を抑制するために、適切なルール抑制属性をコードに追加してください。 詳細については、PSScriptAnalyzerの使用に関する「抑制ルール」セクションをご覧ください。