検索
連載

IoT用途で増加?――LibSSHを「サーバとして」用いた場合にのみ発生する脆弱性OSS脆弱性ウォッチ(10)(2/2 ページ)

連載「OSS脆弱性ウォッチ」では、さまざまなオープンソースソフトウェアの脆弱性に関する情報を取り上げ、解説する。今回は、LibSSHを「サーバとして」用いた場合にのみ発生する脆弱性について。

PC用表示 関連情報
Share
Tweet
LINE
Hatena
前のページへ |       

PoC

 今回の脆弱性では、PoCが早い段階から出てきているので、そちらを基にして解説します。

検証環境

SSHDサーバ(LibSSH 0.7.5):CentOS 7.4(IP:172.16.148.130)

外部攻撃元:Debian(Stretch):172.16.148.1


 PoCのサンプルコードは「exploit-db」からダウンロードできるものを使用します。細工したSSHのパケットを送るため、PythonとParamikoで記述されています。

 図5はPoC用のサンプルコードの抜粋ですが、ログイン時にMSG_USERAUTH_SUCCESSを送っています。この「SSH_MSG_USERAUTH_SUCCESS」は、「RFC4252」にあるように、認証が完了したときに送られるメッセージです。


図5

 今回の脆弱性では、このSSH_MSG_USERAUTH_SUCCESSがクライアントから来た際に、それ以降の認証を行わずに処理を続けてしまうことが問題になっています。

 まずは、通常の動作と併せて、PoCの内容を確認してみましょう。

通常のsshで正しいログインのとき

 最初に、通常のsshでユーザー認証を行ってみましょう。samplesshd-cbのソースコードに直接書いてありますが、ユーザー名は「myuser」、パスワードは「mypassword」です。このときのログは図6です。


図6 通常の挙動(sshでusername/passwordを使ってログイン)

 図6では、不要なログを省略していますが、最初にユーザー名「myuser」、パスワード「mypassword」でログインしています。これがうまくいったことで「Session channel」がAllocateされていることが分かります。

通常のsshでログイン失敗のとき

 次に、同じようにsshでユーザー認証を行ってみたが、パスワードを間違えた場合を見てみます。この際のログは図7のようになります。


図7 通常の挙動(sshでパスワードを間違えてログインに失敗)

 図7でも不要なログを省略していますが、ユーザー名「myuser」でパスワード「machigai」でログインを試み、それが失敗したため「auth failure」を送って再度パスワードを要求してきます。数回パスワードを間違えると、ソケットが切断されます。

今回の脆弱性を利用したとき

 今度は、PoCのexploitコードを用いたときを見てみます。このときのログが図8です。


図8 PoC結果

 図8でも不要なログを省略しています。ユーザー名などを検証する前に、いきなりクライアントから「SSH_MSG_USERAUTH_SUCCESS」が送られてきたため、「Authentication Successfull」ということで処理され、認証を試みずに「session channel」をAllocateしてしまっていることが分かります。

今回の脆弱性

 今回の問題は、認証に関する箇所で、「SSH2_MSG_USERAUTH_SUCCESS」を“クライアントから”受け取った際の処理が漏れていたことが原因です。本来は、SSH2_MSG_USERAUTH_SUCCESSはサーバからクライアントに対して送ります。

 そのため、今回の修正では、サーバに対して“SSH2_MSG_USERAUTH_SUCCESS”が送られてきた際には無視するようになっています(図9)。


図9 修正箇所

脆弱性の修正と緩和方法

 今回の脆弱性の修正は、ソースコード自体に修正が加わったバージョン(ディストリビューションを用いているのであれば、ディストリビューションからの提供)を待つのが正しい形になります。

 一方で、今回の問題はLibSSHを「サーバとして」用いた場合にのみ発生するため、OpenSSHは対象には入っておらず、クライアントとして使用している際にも問題になりません。そのため、被害は限定的といえます。

 しかし、今回の脆弱性はあちこちで話題になりました。これは、LibSSHを用いて自前のサーバを、特にIoTなどで使っているユーザーが一定数いたからのようです。

 現在、IoTは当たり前のように身の回りで活用されてきていますが、今回のような脆弱性も潜んでいることを考慮しなくてはなりません。ユーザー側のキャッチアップも重要ですが、IoT周りではセキュリティパッチを当てにくいため、提供側も攻撃を限定的に抑える仕組みや有効なアップデート方法などを考慮しなくてはならない時代になっているといえます。

筆者紹介

面和毅

略歴:OSSのセキュリティ専門家として20年近くの経験があり、主にOS系のセキュリティに関しての執筆や講演を行う。大手ベンダーや外資系、ユーザー企業などでさまざまな立場を経験。2015年からサイオステクノロジーのOSS/セキュリティエバンジェリストとして活躍し、同社でSIOSセキュリティブログを連載中。

CISSP:#366942

近著:『Linuxセキュリティ標準教科書』(LPI-Japan)」


Copyright © ITmedia, Inc. All Rights Reserved.

前のページへ |       

Security & Trust 記事ランキング

  1. 3割程度のSaaS事業者が標準的なセキュリティ対策をしていない アシュアードがSaaS事業者を調査
  2. 中小企業の20%の経営層は「自社はサイバー攻撃に遭わない」と信じている バラクーダネットワークス調査
  3. 「このままゼロトラストへ進んでいいの?」と迷う企業やこれから入門する企業も必見、ゼロトラストの本質、始め方/進め方が分かる無料の電子書籍
  4. AWS、組織のセキュリティインシデント対応を支援する「AWS Security Incident Response」を発表 アラートに圧倒されるセキュリティチームをどう支援?
  5. 「生成AIのサイバー攻撃への悪用」は増加する? 徳丸浩氏が予測する2025年のセキュリティ
  6. ChatGPTやClaudeのAPIアクセスをかたってマルウェアを配布するPython用パッケージ確認 Kasperskyが注意喚起
  7. 商用国家安全保障アルゴリズム(CNSA)の期限となる2030年までに暗号化/キー管理サービス市場が60億ドルに達するとABI Researchが予測 急成長の要因とは?
  8. 高度なAIでAIをテスト OpenAIが実践するAIモデルのレッドチーム演習とは
  9. 約9割の経営層が「ランサムウェアは危ない」と認識、だが約4割は「問題解決は自分の役割ではない」と考えている Vade調査
  10. 従業員は「最新のサイバー脅威との戦い」を強いられている セキュリティ教育に不満を持つ理由の1位は?
ページトップに戻る