数時間ごとに、サーバーログにそれらのいくつかが記録されます。
sshd[...]: Disconnecting: Change of username or service not allowed: (httpd,ssh-connection) -> (http,ssh-connection) [preauth]
sshd[...]: Disconnecting: Change of username or service not allowed: (identd,ssh-connection) -> (ident,ssh-connection) [preauth]
sshd[...]: Disconnecting: Change of username or service not allowed: (administrator,ssh-connection) -> (admin,ssh-connection) [preauth]
sshd[...]: Disconnecting: Change of username or service not allowed: (admins,ssh-connection) -> (admin,ssh-connection) [preauth]
sshd[...]: Disconnecting: Change of username or service not allowed: (admissions,ssh-connection) -> (adm,ssh-connection) [preauth]
...other attempts of the same kind: tony -> to, users -> user, wwwrun -> www, ...
どうやら、誰かが最初にfoo
として識別し、次にsomePrefixOfFoo
として識別して、私のsshデーモンを混乱させようとしているようです(明らかに、成功しませんでした)。
SSHに、このような攻撃を成功させる特定の脆弱性はありますか?
少なくともopenssh
には、この脆弱性はありませんでした。このエラーの原因となったコードは this commit に追加され、ietf-drafts
からの推奨を参照しています。たぶん RFC4252 、今日はこう述べています:
「ユーザー名」と「サービス名」は、新しい認証を試行するたびに繰り返され、変更される場合があります。サーバー実装は、すべてのメッセージでそれらを注意深くチェックしなければならず、それらが変更された場合、蓄積された認証状態をすべてフラッシュしなければなりません。 認証状態をフラッシュできない場合は、「ユーザー名」または「サービス名」が変更されたときに切断する必要があります。
だから私はそれが強調されたケースだと思います。