検索:
ホーム   »   脆弱性   »   Linux PC に対する DoS 攻撃が可能な「systemd」の脆弱性について解説

Linux PC に対する DoS 攻撃が可能な「systemd」の脆弱性について解説

  • 投稿日:2017年12月7日
  • 脅威カテゴリ:脆弱性
  • 執筆:Vulnerability Researcher - William Gamazo Sanchez
0

トレンドマイクロが 2017 年 7 月に発見および報告した Linux のシステム管理機構である「systemd」の DNS リゾルバ機能における脆弱性「CVE-2017-15908」は、影響を受ける多くの Linux ディストリビューションに対して「Denial of Service(DoS、サービス拒否)攻撃」を可能とします。攻撃者が管理する DNS サーバに systemd が DNS 問合せを送信すると、サーバは特別に細工したパケットを返信します。このパケットを受信すると、systemd が無限ループに陥り、CPU 使用率が 100% になります。

攻撃者の管理下にあるDNSサーバに問い合わせを送信させる方法はいくつか考えられますが、もっとも簡単な方法は、マルウェアやソーシャルエンジニアリングを利用するなどして、攻撃者が管理するドメインにアクセスさせることです。

この脆弱性に対するもっとも効果的な対策は、systemd に更新プログラムを適用することです。トレンドマイクロは 2017 年 7 月にこの脆弱性を発見し、同月中に弊社が運営する脆弱性発見・研究コミュニティ「Zero-DayInitiative(ZDI)」を通して然るべき製造業者に報告しました。2017 年 8 月
には、別のリサーチャによって同じ脆弱性が発見され、Ubuntu をサポートする企業「Canonical」に報告されています。8月下旬に更新プログラムが公開された Ubuntu 以外にも、さまざまな Linux ディストリビューションに対して更新プログラムが提供されています。幸いにも、この脆弱性を狙った攻撃は確認されていません。

■脆弱性の解析

新しい機能の追加や安全性のために、DNS には時間とともに新しい関数が追加されてきました。「DNS Security Extensions(DNSセキュリティ拡張、DNSSEC)」に追加された新しいリソースレコード「NSEC(Next Secure)」もその 1 つです。NSEC は「RFC 4034」で定義されています。

脆弱性「CVE-2017-15908」は、NSEC のタイプビットマップフィールドで指定されたリソースレコードのタイプが擬似リソースレコードである際の処理に起因します。図 1は、問題のコードとスタックフレームです。ハイライトされている行の continue 文によって while 文内のコードが無限に繰り返されます。この関数「dns_packet_read_type_window()」は、ファイル “resolved-dns-packet.c” に実装されています。

図1
図 1:無限ループを発生させるコードとスタックフレーム

上述の関数「dns_packet_read_type_window()」は、レコードタイプが「DNS_TYPE_NSEC」である場合に「dns_packet_read_rr()」から呼び出されることに留意してください。図2は “resolved-dns-packet.c” に実装された関数「dns_packet_read_rr()」のコードの一部です。

図2
図 2:DNS パケットを読んでタイプを判別するコード

■Proof-of-concept(概念実証、PoC)

トレンドマイクロは、この脆弱性を実証するために細工したパケットを送り返す DNSサーバを構築しました。図3のように、このサーバの応答には問題の脆弱性を利用して無限ループを引き起こす NSEC レコードが含まれています。

図3
図 3:細工した DNS パケット

名前解決のために systemd を実行する PC がこの DNS サーバが返信する細工された DNS パケットを受信すると、図 4 のように CPU 使用率が 100% になることが確認されました。

図2
図 4:systemd の CPU 使用率が 100 %に

■被害に遭わないためには

本記事で解説したように、この脆弱性には更新プログラムが公開されています。影響を受ける PC に速やかに適用してください。

細工された可能性のあるパケットを手動でブロックしたい場合、システム管理者は RFC 4034 のセクション 4 を参照し、受信したDNSレスポンスに問題を引き起こすリソースレコードが含まれていないかチェックしてください。もし、DNS パケットの NSEC リソースレコードのタイプが擬似リソースレコードであった場合はブロックする必要があります。

参考記事:

  • 「systemd Vulnerability Leads to Denial of Service on Linux」
    by William Gamazo Sanchez (Vulnerability Research)

翻訳:澤山 高士(Core Technology Marketing, TrendLabs)

Related posts:

  1. DNS ソフトウェア「Dnsmasq」に複数の脆弱性、攻撃可能な条件と対策を解説
  2. bashに存在する脆弱性「Shellshock」を利用したボットネットによる攻撃を確認
  3. Linux GNU Cライブラリの脆弱性:その概要と対応方法
  4. 脆弱性「SambaCry」を利用するLinuxマルウェアを新たに確認。Linux 利用者は至急更新を
Tags: DNSLinuxsystemd


  • 個人のお客さま向けオンラインショップ
  • |
  • 法人のお客さま向け直営ストア
  • |
  • 販売パートナー検索
  • Asia Pacific Region (APAC): Australia / New Zealand, 中国, 日本, 대한민국, 台灣
  • Latin America Region (LAR): Brasil, México
  • North America Region (NABU): United States, Canada
  • Europe, Middle East, & Africa Region (EMEA): France, Deutschland / Österreich / Schweiz, Italia, Россия, España, United Kingdom / Ireland
  • 電子公告
  • ご利用条件
  • プライバシーポリシー
  • Copyright © 2021 Trend Micro Incorporated. All rights reserved.