SSH について
SSH について
The vulnerability, which is a signal handler race condition in OpenSSH’s server (sshd), allows unauthenticated remote code execution (RCE) as root on glibc-based Linux systems; that presents a significant security risk. This race condition affects sshd in its default configuration.
セキュアシェル(SSH)はネットワーク経由で安全にシェルアクセスするプロトコルです。
SSH 実装として OpenSSHプロジェクトによるクライアント向けの ssh とサーバー向けの sshd が多くの環境で利用されています。
Windows環境で利用される putty は SSH プロトコルを実装した SSH クライアントプログラムの一つです(putty はSSH以外にもtelnetなど様々なプロトコルに対応しています)。

SSHの認証方式として以下があります。
- パスワード認証
    - 無効化されていることが多いです
 
- 公開鍵/秘密鍵ペアの公開鍵認証
- クライアント認証
GitHub.com のレポジトリでもSSHの公開鍵認証が利用されています。
SSH認証と regreSSHion の関係
OpenSSHのsshdは、クライアントが接続を試み、LoginGraceTime で指定した時間内に認証が成功しないと、 SIGALRM というアラーム式のシグナルが非同期に呼び出されます。
今回の regreSSHionでは、glibcを利用したLinuxにおいて、このシグナルハンドラー内の処理に脆弱性がありました。
回避策の一つとして紹介されている LoginGraceTime=0 は、このログイン試行のタイムアウト機能を無効化し、SIGALRM が呼び出さないようにするというものです。
コンテナへのシェルアクセス
SSHはサーバーの運用やトラブルシュートなどのために古くから利用されています。
コンテナでは、コンテナランタイムがDockerの場合は docker exec、Container Runtime Interface (CRI)互換なランタイムの場合は crictl exec でシェルアクセス可能です。
$ docker exec -it mycontainer /bin/sh
bin   dev   etc   home  proc  root  sys   tmp   usr   var
AWSが提供するコンテナオーケストレーターのECSの場合、ECS Exec という同等の機能が提供されています。
$ aws ecs execute-command --cluster cluster-name \
    --task task-id \
    --container container-name \
    --interactive \
    --command "/bin/sh"