web-dev-qa-db-ja.com

aws ec2インスタンスのSSHブルートフォースエントリ

データベースに接続するEC2インスタンスでflaskアプリケーションをホストします。データベースの資格情報はサーバーのフォルダー内にあります。

EC2ログインは、ssh秘密鍵を介してのみ実行できます。 flask API自体はnot sslで保護されていますが、データベースと通信するときは、安全な接続を介してデータベースと通信します。

Sshブルートフォースまたはその他の方法でEC2にログインし、データベースの資格情報を取得することは可能ですか?ユーザー名とパスワードによるec2へのログインを有効にしていません。ログインは秘密鍵を介してのみ行います。

1

SSHを介したパスワードベースのログインを無効にした場合、秘密鍵を使用してSSHログインをブルートフォースで強制することは非常に困難です(特に、その秘密鍵が現在のアルゴリズムのベストプラクティスに従っている場合)。

ただし、EC2がログインから保護されるようにするための追加の手順がいくつかあります。

  • セキュリティグループがSSH +すべてのポートのみを許可していることを確認してくださいflaskが入力トラフィック用に公開している
  • セキュリティグループで、データベースサーバーのセキュリティグループのみを出力トラフィックとして許可する
  • flaskアプリを保護する(これは実行するのが難しい)であり、上記の回答が示唆するように、攻撃者にとって最も可能性の高いエントリポイントです。

SSHアクセスに焦点を当てている場合-私の提案は、AWS System Manager Session Managerではなく、SSHアクセスを完全に無効にすることです。 EC2にエージェントをインストールし、コンソールを介してサーバーに接続できるようにします。すべてのコンソールベースのログインは、監査目的で記録されます。したがって、EC2にアクセスするには、攻撃者はまずAWSアカウント全体を危険にさらす必要があります。

1
keithRozario

SSHパスワード認証が無効になっている場合、攻撃者は正しい秘密鍵を所有していなければSSH経由でログインできません。

SSHのほかに、他の公開されたサービス(例:Flask app))に脆弱性がある場合、それらが悪用されてサーバーにアクセスする可能性があります。

1
multithr3at3d