
サイバーセキュリティの領域では、バックドアという用語は隠された悪意のあるコード、秘密のネットワークトンネル、検出不可能な攻撃経路などのイメージを連想させます。ソフトウェアのバックドアはよく知られていますが、ファームウェアとハードウェアのバックドアはより狡猾な脅威をもたらします。これらのバックドアは攻撃者に永続的で検出が難しいアクセスを与え、最も包括的なセキュリティコントロールでさえも覆すことができる。
このブログでは、ファームウェアのバックドア、またはハードウェアのバックドアについて詳述し、それがどのように機能するか、どのように発見されるか、実際の攻撃例、そして最も重要なことに、インフラを防御するための実践的な技術について説明します。
ファームウェアバックドアとは、ハードウェアデバイス上で動作する低層のコード(ファームウェア)における意図的または偶発的な脆弱性です。これらは時にメンテナンスのために製造業者によってインストールされますが、多くの場合、持続的で特権的なデバイスアクセスを目的として脅威アクターによって悪用(あるいは植え付け)されます。
ハードウェアのバックドアはさらに進んでいます:ハードウェアそのもの(マザーボード上のチップなど)への物理的または論理的な変更・追加であり、攻撃者に基本的な制御を与えるものです。BlackFogによる定義:
ファームウェアバックドア:ハードウェアコンポーネントに見られるこれらのバックドアは、攻撃者にデバイスを基本的レベルで制御することを可能にします。
ファームウェアとハードウェアのバックドアは、しばしば以下のようなファームウェアイメージに埋め込まれ、デバイスの最も深い層に存在します:
デバイスがファームウェア/ハードウェアレイヤーで妥協されると、攻撃者は次のことができます:
例: 妥協されたネットワークカードは、OSやそのログツールに不可視な指令・制御トラフィックを送受信できる。
最も有名な例の一つにBadUSBがあります。研究者たちは、USBファームウェアを再プログラムして悪意のあるデバイスとして機能させ、キーボードを偽装したり、ホストに接続されるたびにマルウェアを注入したりすることができる方法を示しました。
スノーデン漏洩は、情報機関がハードウェアを傍受し、高級ターゲット用に秘密のチップやファームウェアを実装していることを明らかにしました—ハードウェアレベルでのスパイ行為。
2018年にBloombergが報じたように、サブコントラクターによって埋め込まれた小さなチップは、アメリカの企業に供給されるハードウェアにバックドアを作成するために使用されました。(この話は業界内で論争が続いていることに注意)
2015年に、ジュニパーネットワークはファイアウォールファームウェアにおける未承認のコードを公表し、それが暗号化VPNトラフィックを攻撃者によって解読され、リモートアクセスが得られるファームウェアバックドアを提供していた。
2018年には、LoJaxマルウェアが野生で検出され、UEFIファームウェアを感染させ、ハードディスクの交換やOSの再インストール後も攻撃者に持続性を与えました。
多くの従来のセキュリティソリューションは、ハードウェアとファームウェアが信頼されていると仮定しています。検出が難しい理由は以下の通りです:
ファームウェアとハードウェアにおけるバックドアの検出は、手動と自動の両方の技術を用いてチャレンジングですが可能です。
重要: プロダクションや重要なデバイス上でのハードウェアフォレンジックやファームウェア変更は、あなたが何をしているのか確信がある場合を除き、決して試みないでください!ミスはデバイスを壊す可能性があります。
ファームウェアのバックドアはしばしば「ホームに電話」をかけたり、C2(指令・制御)チャネルを確立したりします。Wiresharkやtcpdumpを使用して異常なネットワークパターンをスニフする。
sudo tcpdump -i eth0 port not 22 and port not 80 and port not 443
from scapy.all import rdpcap
suspicious_ports = [1337, 12345, 54321] # 例のバックドアポート
packets = rdpcap('capture.pcap')
for pkt in packets:
if pkt.haslayer('TCP') and pkt[TCP].dport in suspicious_ports:
print(f"Suspicious packet: {pkt.summary()}")
デバイスのファームウェアイメージを取得し、その暗号ハッシュを既知の良好なサンプルと比較する。
Bashの例:
dd if=/dev/mtd0 of=firmware-dump.bin # フラッシュストレージからダンプ
sha256sum firmware-dump.bin
結果をデバイス製造業者が提供する既知の良好なハッシュと一致させる。
Chipsec)Chipsecは、ファームウェア感染を検出できるプラットフォームセキュリティ評価フレームワークです。
sudo chipsec_main -m tools.uefi.whitelist
高度なアンチバックドアチームは、次のような技術を利用するかもしれません:
UEFIファームウェアの場合:
FWUPDを使用してベンダーがサポートするデバイスで使用:fwupdmgr get-devices
fwupdmgr get-history
組み込みLinuxデバイスの場合:
dd if=/dev/mtd0 of=firmware.bin
strings firmware.bin | grep -i password
binwalkはファームウェアイメージのコンポーネントを分析および抽出できます。
binwalk -e firmware.bin
しばしば、ハードコードされたバックドアのユーザー名やパスワードがファームウェアにリークされています。grepを使用:
strings firmware.bin | grep -Ei 'admin|root|backdoor|debug|test'
ハードコードされた認証情報を検索するBashスクリプトの例:
#!/bin/bash
for img in *.bin; do
echo "Analyzing $img..."
strings "$img" | grep -E "admin|backdoor|debug"
done
Binwalkと文字列を利用するPythonの例:
import os
for fwfile in os.listdir('.'):
if fwfile.endswith('.bin'):
with open(fwfile, 'rb') as f:
contents = f.read().decode(errors='ignore')
if 'backdoor' in contents or 'debug' in contents:
print(f"Potential backdoor keyword in {fwfile}")
FruityWiFiまたはFirmware Analysis Toolkit (FAT)を使用。サプライチェーン攻撃の高度化に伴い、業界は次の対応をしています:
しかし戦いは続いています。攻撃者は常により低いレベルで、監視されにくい攻撃面を探しています。
ファームウェアとハードウェアのバックドアは、現代のサイバーセキュリティの中でも最もステルス性があり、持続性のある脅威の一部です。それらは隠され続け、消去に耐え、特権レベルで動作する能力を持っているため、個人や組織はソフトウェアだけでなく、ファームウェアやハードウェアの基盤も注意深く監視し続ける必要があります。
この分野のセキュリティには、デバイスの深い理解、強力な内部検出体制、信頼できるサプライチェーン、最新の研究や新たに発生しうる脅威への常なる注視が必要です。
脅威検出やハードウェアセキュリティに関するディープダイブに興味がありますか?ぜひサブスクライブするか、下に質問を残してください!
このコンテンツが価値あるものだと感じたなら、私たちの包括的な47週間のエリートトレーニングプログラムで何が達成できるか想像してみてください。ユニット8200の技術でキャリアを transformed した1,200人以上の学生に参加しましょう。