Tag Archives: back door

?????????????? Linux ?????

      No Comments on ?????????????? Linux ?????

 

今年 5 月、攻撃者が巧妙な手口を使って、大手のインターネットホスティングプロバイダに侵入し、内部の管理システムへのアクセスに成功しました。この攻撃者は、ユーザー名、電子メールアドレス、パスワードなどの顧客情報を狙っていたようです。内部の管理システムから顧客情報にアクセスしていましたが、攻撃が露見し、一定のセキュリティも実装していたため、侵害の範囲は抑えられました。顧客のパスワードはアクセス可能でしたが、ハッシュ化と salt 処理が行われていたため大量クラッキングは困難な状態でした。また顧客の財務情報にもアクセス可能でしたが、暗号化されていました。残念ながら、暗号化キーへのアクセスを防ぐことはできません。企業に対するデータ侵害と顧客データの大量ダンプがほぼ毎日のように報告されていますが、今回の攻撃はこれまでよりはるかに巧妙です。

攻撃者は、標的の環境が通常は十分に保護されていることを把握していました。特に、疑わしいネットワークトラフィックやファイルのインストールがあるとセキュリティ確認のきっかけになることがあるため、そのようなトラフィックやインストールを回避する方法が必要でした。その巧妙さを示すように、攻撃者はステルス性を備えた独自の Linux バックドアを考案し、セキュアシェル(SSH)や他のサーバープロセス内に自身を忍ばせていました。

攻撃者は、このバックドアを利用して(リモートコマンドの実行など)通常の機能を実行できますが、ここではネットワークソケットを開いたり、コマンド & コントロール(C&C)サーバーへの接続を試みたりすることはありません。代わりに、バックドアコードを SSH プロセスにインジェクトし、ネットワークトラフィックを監視してコロン、感嘆符、セミコロン、ピリオド(:!;.)という文字のシーケンスを探します。

このパターンが見つかると、バックドアは残りのトラフィックを解析し、Blowfish で暗号化され Base64 エンコードされたコマンドを抽出します。

3357137-fig.png

図. インジェクトされるコマンドの例

こうすると、攻撃者は SSH やその他のプロトコルを介して通常の接続要求を行い、正規のトラフィック内に秘密のシーケンスを埋め込んで検出を回避できるようになります。コマンドが実行されると、結果が攻撃者に送り返されます。このバックドアコードは、セキュリティレスポンスがこれまでに解析してきた他の Linux バックドアと類似性はありません。

断片化されたファイルがライブラリを共有し、多くの関数をフックしているようです(read、EVP_CipherInit、fork、ioctl など)。コードが実行されると、以下の操作が実行されます。

  • 以下の形式で、攻撃者が発行した任意のコマンドを実行する。
    exec sh -c ‘[攻撃者のコマンド]’ >/dev/null 2>/dev/null
  • 事前に設定されたコマンドのいずれかを実行し、そのコマンドから出力を取得する。
  • 個々の SSH 接続から以下のデータを取得する。
    • 接続しているホスト名、IP アドレス、ポート
    • ユーザー名とパスワードまたは SSH キー
  • 盗み出したデータまたはコマンドの応答を blowfish で暗号化し、攻撃者に送信する。

このバックドアがネットワークに存在するかどうかを特定するには、”:!;.” という文字列(引用符を除く)が含まれるトラフィックを探してください。この文字列を含むトラフィックは、SSH ログには記録されません。SSHD プロセスをダンプし、その中から以下の文字列を検索する方法もあります([値] はさまざまな値を示します)。

key=[値]
dhost=[値]
hbt=3600
sp=[値]
sk=[値]
dip=[値]

シマンテックは、このバックドアを Linux.Fokirtor として検出し、お客様を保護します。

 

* 日本語版セキュリティレスポンスブログの RSS フィードを購読するには、http://www.symantec.com/connect/ja/item-feeds/blog/2261/feed/all/ja にアクセスしてください。

Linux Back Door Uses Covert Communication Protocol

 

In May of this year, sophisticated attackers breached a large Internet hosting provider and gained access to internal administrative systems. The attackers appear to have been after customer record information such as usernames, emails, and passwords. While these internal administrative systems had access to customer records, discovery of the attack and certain security implementations mitigated the scope of the breach. Customer passwords were accessible, but these passwords were hashed and salted making mass password cracking difficult. Customer financial information was also accessible, but encrypted. Unfortunately, access to the encryption key cannot be ruled out. While breaches of organizations and mass customer record dumps are posted almost daily, this particular attack was more sophisticated than we have seen in the past.

The attackers understood the target environment was generally well protected. In particular, the attackers needed a means to avoid suspicious network traffic or installed files, which may have triggered a security review. Demonstrating sophistication, the attackers devised their own stealthy Linux back door to camouflage itself within the Secure Shell (SSH) and other server processes.

This back door allowed an attacker to perform the usual functionality—such as executing remote commands—however, the back door did not open a network socket or attempt to connect to a command-and-control server (C&C). Rather, the back door code was injected into the SSH process to monitor network traffic and look for the following sequence of characters: colon, exclamation mark, semi-colon, period (“:!;.”).

After seeing this pattern, the back door would parse the rest of the traffic and then extract commands which had been encrypted with Blowfish and Base64 encoded.

3357137-fig.png

Figure. Example of injected command

The attacker could then make normal connection requests through SSH or other protocols and simply embed this secret sequence within some otherwise legitimate traffic to avoid detection. The commands would be executed and the result sent back to the attacker. This back door code is not similar to any other Linux back door that Security Response has previously analysed.

The fragmented file is a shared library and appears to hook a number of functions (read, EVP_CipherInit, fork, ioctl, etc.). Once the code is activated, it can perform the following actions:

  • Execute any command the attacker submits through;
    exec sh -c ‘[ATTACKER_COMMAND]’ >/dev/null 2>/dev/null
  • Execute one of several preconfigured commands and retrieve output from those commands
  • Retrieve the following data from individual SSH connections:
    • Connecting hostname, IP address, and port
    • Username and password or SSH key
  • Encrypt stolen data or command responses using blowfish, and then send to attacker

To identify the presence of this back door on your network, look for traffic that contains the “:!;.” string (excluding quotes). Traffic which contains this string will not appear in SSH logs. Another identification method is to dump the SSHD process and search for the following strings within the dump (where [VALUE] can be various values):

key=[VALUE]
dhost=[VALUE]
hbt=3600
sp=[VALUE]
sk=[VALUE]
dip=[VALUE]

Symantec protects customers by detecting this back door as Linux.Fokirtor.