これまでに発見された最も重大なNGINX脆弱性トップ5|ウェブサーバーを守る対策を徹底解説
Airbnb、Box、Instagram、Netflix、Pinterest、SoundCloud、Zapposなど、インターネット上で最もアクセスの多いウェブサイトの半数以上がNGINXに依存しています。サイバー犯罪者はウェブサーバーを標的にすることが多く、わずかな脆弱性をも悪用して機密情報を盗もうと常に狙っています。NGINXも例外ではなく、度重なるサイバー攻撃や脆弱性の暴露に見舞われてきました。
本記事では、これまでに発見された最も重大なNGINXの脆弱性トップ5と、ウェブサーバーを安全に保つための対策について解説します。ただし、ウェブサイトを完全に保護するためには、サーバー上で動作するアプリケーションのセキュリティ対策も不可欠である点にご注意ください。
1. NGINX SPDYヒープバッファオーバーフロー(2014年)
NGINX 1.3.15(1.4.7未満)および1.5.x(1.5.12未満)のSPDY実装には、ヒープベースのバッファオーバーフローの脆弱性が存在しました。この脆弱性により、攻撃者は細工されたリクエストを通じて任意のコードを実行できる可能性があります。この問題は、ngx_http_spdy_moduleモジュール(デフォルトではコンパイルされません)を組み込んでビルドされ、--with-debug構成オプションなしで、設定ファイル内の「listen」ディレクティブに「spdy」オプションが指定されている場合に影響を受けます。
攻撃者は、特別に細工したリクエストによってヒープメモリのバッファオーバーフローを引き起こし、任意のコードを実行することが可能です。これにより、ウェブサーバー全体が深刻な被害を受ける恐れがあります。
この脆弱性への推奨される対策は、最新バージョンへアップグレードすることです。加えて、ベンダーから提供されている必要なパッチも必ず適用してください。
2. NGINXルート権限昇格脆弱性(2016年)
NGINXルート権限昇格脆弱性は、高深刻度と評価されています。この脆弱性により、安全でない権限でログディレクトリが作成される可能性があります。その結果、悪意のあるローカル攻撃者がこれを悪用し、NGINX/Webユーザー(www-data)からrootへと権限を昇格させ、NGINXサーバー上でホストされているあらゆるウェブアプリケーションを危険にさらす可能性があります。この脆弱性は、DebianやUbuntuなどのDebian系ディストリビューション向けのウェブサーバーパッケージに影響を及ぼします。
この脆弱性は以下の手順に起因します。Debian系システムでデフォルトのリポジトリからNGINXをインストールすると、次の場所に次の権限でNGINXのログディレクトリが作成されます。
admin@wsxdn.com:~# ls -ld /var/log/nginx/
drwxr-x--- 2 www-data adm 4096 Nov 12 22:32 /var/log/nginx/
admin@wsxdn.com:~# ls -ld /var/log/nginx/*
-rw-r----- 1 www-data adm 0 Nov 12 22:31 /var/log/nginx/access.log
-rw-r--r-- 1 root root 0 Nov 12 22:47 /var/log/nginx/error.log
/var/log/nginxディレクトリの所有者はwww-dataであるため、攻撃者はシステムへのアクセスを獲得すると、ログファイルをシステム上の任意のファイルへのシンボリックリンクに置き換えることができます。サーバーが再起動されると、ログはシンボリックリンクが指すファイルに書き込まれるため、攻撃者はrootへの権限昇格が可能になります。
この脆弱性は、DebianではNGINX 1.6.2-5+deb8u3パッケージ、Ubuntu(16.04 LTS)ではNGINX 1.10.0-0ubuntu0.16.04.3で修正されました。
3. リモート整数オーバーフロー脆弱性(2017年)
NGINXリモート整数オーバーフロー脆弱性は、境界条件エラー(Boundary Condition Error)タイプの脆弱性です。この脆弱性は、ユーザーから提供されたデータに対する適切な境界チェックをNGINXが実施できないことに起因します。これを悪用することで、攻撃者は機密情報へのアクセスを得たり、アプリケーションをクラッシュさせてサービス拒否(DoS)状態を引き起こしたりする可能性があります。
0.5.6から1.13.2まで(1.13.2を含む)のNGINXバージョンは、この整数オーバーフロー脆弱性の影響を受けます。この問題を緩和するには、最新のNGINXバージョンへアップデートし、詳細については各ベンダーのセキュリティアドバイザリーを確認してください。
4. NGINX Controller脆弱性(2020年)
NGINX Controller 3.2.0より前のバージョンでは、Controller APIにネットワークアクセスできる攻撃者が、非特権のユーザーアカウントを作成できてしまいます。作成されたユーザーは新しいライセンスをシステムにアップロードできますが、システムの他のコンポーネントを表示または変更することはできません。つまり、攻撃者はこの脆弱性を悪用して複数のユーザーアカウントを作成し、NGINX Controller上でサービス拒否(DoS)状態を引き起こすことが可能です。
この脆弱性を緩和するには、新しいバージョンへアップデートするか、NGINX Controllerのホスト側ファイアウォールソフトウェアまたは外部のパケットフィルタリング装置を構成して、信頼できるネットワークのみがNGINX Controller API(TCP 443番ポート)にアクセスできるよう制限してください。
5. PHPリモートコード実行脆弱性(2020年)
比較的最近明らかになったNGINX関連の脆弱性として、php-fpmを有効にしてNGINX上で稼働している特定のバージョンのPHP 7が、リモートコード実行に対して脆弱であるというものがあります。この脆弱性が放置されると、機密情報の漏洩、データの追加・改ざん、あるいはサービス拒否(DoS)攻撃につながる恐れがあります。
この脆弱性を緩和するには、脆弱性のないバージョンのPHPへ直ちにアップデートしてください。
NGINXをお使いでない場合は、Apacheの重大な脆弱性に関するブログ記事や動画もぜひご確認ください。
Astra Pentestについて
Astra Pentestは、ハッカーによる脆弱性の悪用を防ぎ、ハッキング被害を未然に回避するための、ネットワークおよびアプリケーションセキュリティスイートです。自動脆弱性スキャナー、脆弱性管理機能、ペネトレーションテストサービスがひとつのソリューションにまとめられています。
本記事が、ウェブサーバーにおけるさまざまな脆弱性やセキュリティ問題の緩和の一助となれば幸いです。ただし、ウェブサイトやウェブアプリを完全に保護するためには、サーバーにインストールされているアプリケーションや使用中のCMSのセキュリティ対策も必要です。これらに脆弱性があると、ウェブサーバー自体の侵害にもつながりかねません。WordPress、Magento、Joomla、PrestaShop、OpenCartのセキュリティ強化に関する記事も併せてご覧ください。
-
Nagios Log Server 2.1.6に保存型XSSの脆弱性が発見 ― 今すぐアップデートを
人気のログ監視・管理アプリケーション「Nagios Log Server」のバージョン2.1.6(テスト時点での最新版)について検証を行ったところ、保存型XSS(Stored XSS)攻撃に対して脆弱であることが判明しました。 CVE ID: CVE-2020-16157 概要 Nagios Log Serverは、組織がログの閲覧、並べ替え、設定などを一元的に行えるようにする、広く利用されているログ管理・監視・分析ソフトウェアです。今回、バージョン2.1.6において保存型XSSの脆弱性が確認されました。保存型XSS(Cross-Site Scripting)攻撃とは、攻撃者が悪意のあるス
-
Adobe、Magentoの重大な脆弱性9件を修正 ― 数十万規模のECサイトに影響の可能性
Adobeは今週、Magentoプラットフォームにおける複数の高危険度の脆弱性を修正しました。これらの脆弱性により、数十万に及ぶWebサイトが任意のコード実行や顧客リスト改ざん攻撃の危険にさらされる可能性がありました。 Magentoは、WordPressに次いで2番目に人気のあるCMS(コンテンツ管理システム)であり、25万以上のアクティブなECサイトで利用されています。これは全オンラインストアの約12%に相当します。また、Magento.comによると、Magentoベースのサイトでは年間1,550億ドル以上の取引が処理されているとのことです。 発見されたMagentoの脆弱性と影響を受け