9月 25

GNU Bashの環境変数処理の不備により任意のコードが実行される脆弱性(CVE-2014-6271,CVE-2014-7169)に関する検証レポート

【概要】
GNU Bash(以下、単にBash)にリモートより任意のコードが実行される脆弱性が発見されました。一連の脆弱性の愛称?は「Bashbug」または「Shellshock」のようです。

本脆弱性は、Bashの環境変数に関数を設定し同一の環境変数内に任意のコードを設定することで発生します。
攻撃者は、細工した環境変数を設定することにより、Bashを経由した環境で任意のコードが実行可能となります。

Bashを経由した環境での脆弱性の利用方法は、以下のような場合があります。
– ApacheなどWebサーバ上でCGIをBashから実行している場合にWebサーバの実行権限で任意のコードを実行
– DHCPサーバで環境変数に任意のコードを埋め込みDHCPクライアントに対してBashを経由して任意のコードを実行
– sshのForceCommand設定なでで使用可能なコマンドを制限している環境でログインユーザー権限で任意のコマンドを実行

このほかの例として、以下のURLでRedhat社の製品で影響を受ける環境の例が掲載されています。
Bash Code Injection Vulnerability via Specially Crafted Environment Variables (CVE-2014-6271, CVE-2014-7169)

今回、この脆弱性(CVE-2014-6271,CVE-2014-7169)について検証を行いました。

【影響を受ける可能性があるシステム】
CVE-2014-7169
– Bash 4.3 Patch 25 およびそれ以前
– Bash 4.2 Patch 48 およびそれ以前
– Bash 4.1 Patch 12 およびそれ以前
– Bash 4.0 Patch 39 およびそれ以前
– Bash 3.2 Patch 52 およびそれ以前
– Bash 3.1 Patch 18 およびそれ以前
– Bash 3.0 Patch 17 およびそれ以前

CVE-2014-6271
– Bash 4.3 Patch 25 以前
– Bash 4.2 Patch 48 以前
– Bash 4.1 Patch 12 以前
– Bash 4.0 Patch 39 以前
– Bash 3.2 Patch 52 以前
– Bash 3.1 Patch 18 以前
– Bash 3.0 Patch 17 以前

なお、ディストリビュータごとに影響を受けるバージョンが異なります。詳細は各ディストリビュータの脆弱性情報を参照ください。また、LinuxなどのOSをベースとしたネットワーク機器を含めた専用機器においても関連する脆弱性情報が発表されています。使用されている各機器のセキュリティ情報を収集されることを推奨いたします。

すでに、CiscoやF5のような利用者が多いと考えられる機器について各ベンダーから情報が公開されています。
GNU Bash Environmental Variable Command Injection Vulnerability
SOL15629: GNU Bash vulnerabilities CVE-2014-6271 and CVE-2014-7169

【対策案】
CVE-2014-6271については以下のバージョンで修正されています。
– Bash 4.3 Patch 25
– Bash 4.2 Patch 48
– Bash 4.1 Patch 12
– Bash 4.0 Patch 39
– Bash 3.2 Patch 52
– Bash 3.1 Patch 18
– Bash 3.0 Patch 17

CVE-2014-7169については、本レポート作成時点(2014年9月26日)において修正されておりません。各ディストリビュータによって独自のパッチを提供しています。詳細は@piyokangoさんのブログがまとめてくださっておりますので参照いただくことを推奨いたします。

回避策については、【概要】で紹介したRedhat社のページのように
– mod_securityによる回避
– iptablesによる回避
などの方法が考えられます。

【参考サイト】
CVE-2014-6271
CVE-2014-7169
JPCERT/CC Alert 2014-09-25 GNU bash の脆弱性に関する注意喚起
bash の脆弱性対策について(CVE-2014-6271 等)
bashの脆弱性(CVE-2014-6271) #ShellShock の関連リンクをまとめてみた

【検証イメージ】
shellshock

【検証ターゲットシステム】
– Cent0S 7 + Apache 2.4.61 + GNU bash, バージョン 4.2.45(1)-release-(x86_64-redhat-linux-gnu)
– Ubuntu Server 14.04.1 LTS
– Bash 4.3-7ubuntu1
– Apache 2.4.7-1ubuntu4.1

【検証概要】
脆弱性の存在するターゲットシステムに、攻撃者が実行したいコードを含めたHTTPリクエストを送ります。ターゲットシステム上ではコードが実行され、攻撃者に応答を返します。
これにより、リモートからターゲットPCの操作が可能となります。

【検証結果】
下図は実際にCGIを経由してコードを実行した画面です。黄色で囲まれた部分はUser-Agentに実行コードを埋め込んていることを示しています。赤色で囲まれた部分は実行結果を示しています。これにより、ターゲット上で任意のコードを実行することに成功しました。
CVE-2014-6271

【2014/09/28 oda 追記】
なお、上記のUbuntu上で実行しているテスト用のCGIは「#!/bin/bash」としてbashを明示的にbashを呼び出して実行しています。Ubuntu上のCGIで「#!/bin/sh」としてshを呼び出している場合は、通常dashへlinkされているため本脆弱性の影響を受けません。

【2014/09/28 ntsuji 追記】
以下のようにhttp経由で細工を施したブラウザでアクセスすることでWebサーバの権限を奪取することに成功しました。
これによりリモートから特定の権限で任意のコマンドが実行可能な状態になったと言えます。
gotshell_http

また、細工したDHCPサーバを設置し、そのサーバにDHCPリクエストを行ってきたCentOSの制御を奪うことにも成功しました。奪取できる権限はDHCPリクエストを行った際の権限に依存します。
gotshell_dhcp_full_edited

reported by oda, ntsuji

Category: exploit | GNU Bashの環境変数処理の不備により任意のコードが実行される脆弱性(CVE-2014-6271,CVE-2014-7169)に関する検証レポート はコメントを受け付けていません。
9月 24

「STOP!! パスワード使い回し!!」について考えました。

JPCERT/CCとIPAが「STOP!! パスワード使い回し!!」というキャンペーンを開始しました。

JPCERT/CCのプレス
IPAのプレス

JPCERT/CCが
「STOP!パスワード使い回し!」キャンペーンにご賛同頂ける企業の募集
を出しているところを見るとJPCERT/CC主導のキャンペーンなのでしょうか。

複数のサイトでパスワードの使い回しがあり、その現状に狙いを定めてリスト型攻撃が多く発生し、不正ログインの被害に遭っている方が増えていることを考えるとこのようなキャンペーンを行うことはとてもいいことだと思います。しかし、一方でボクはこのキャンペーンに薄らと違和感を覚えていました。その違和感というのはこの不正ログインを防止する上でどのような対策を誰が行うのかということとこのキャンペーンを照らし合わせたときに不十分に感じたからです。

「不正ログインを防止する」ということをボクは交通安全を実現し人命を救うことに例えることがよくあります。
サービス提供側は車の製造メーカー。ユーザはドライバーです。
エアバッグや衝突被害軽減ブレーキなど安全に配慮した機能を実装するのは車の製造メーカーです。
その車を適正に利用し、危険な運転を行わないようにするのはドライバーです。
この両方が満たされることが交通安全、人命を救うことに繋がると考えています。つまり、どちらか一方が欠けてもいけないということです。この例えからすると、サービス提供側は、強固なパスワードを設定することが可能となる実装するなどといったユーザを最大限に保護する機能を提供し、ユーザは強固なパスワードを設定し、使い回しをしない。ということで「不正ログインを防止する」ということが実現できると考えています。もちろん、それぞれは義務ではありませんので強制することはできず、一定の自由があるとも考えています。いずれにせよ、「不正ログインを防止する」にはサービス提供側とそのユーザそれぞれが努力する必要があると思います。

今回のキャンペーンを見てみるとユーザにしか努力しようがない「パスワードの使い回し」にフォーカスされています。不正ログインに対抗するためには「パスワードの使い回し」だけではなく、推測可能な「弱いパスワード」もSTOPさせる必要があると考えています。今回のキャンペーン対してはいくつかの賛同企業があり、それによって多くの方に「パスワードの使い回し」をやめてもらうための情報発信をすることはとても価値のあることだと思いますが、不正ログインそのものに対抗するためには、その賛同企業にも努力の余地があるのではないだろうか。と考えました。そこで賛同企業の提供サービスの一部ではありますがどのようなユーザを保護する機能を実装しているのかということを調査してみました。調査の結果は以下の通りです。(ボク自身が登録していなかったサービスが多数あったため今回登録して調査をしてみたのですが誤りやお気づきの点があればこっそり教えていただければ幸いです。修正いたします。)

社名 サービス名 長さ 文字種 二要素 ユーザ名 [pasw0rd]を設定
Gunho ガンホーID 8~16 *1 半角英数 独自ID  可
Hoikuu 保育のひろば WordPre *2 WordPre *2 WordPre *2  WordPre *2
CyberAgent アメーバID 6~12 半角英数 *3 独自ID  可
dowango niconico 6~32 半角英数 メールアドレス
電話番号
 可
ナナロク 個人向けなし?
mixi mixi 6~ *4 半角英数記号 メールアドレス  不可
Yahoo!JAPAN Yahoo!JAPAN ID 6~32 半角英数記号 ユーザID *5  不可
楽天 楽天会員 6~ *6 *7 半角英数 メールアドレス *12  可
DeNA DeNA ID 8~20 半角英数記号 メールアドレス  可
GMOグループ GMOとくとくID 6~16 半角英数 メールアドレス  可
DMM.com
DMM.comラボ
DMM.com 4~16 半角英数 メールアドレス
独自ID
どちらも可
 可
セブン&アイ・ネットメディア セブンネット 6~12 半角英数記号 メールアドレス
独自ID *8
 可
グリー GREE 6~20 半角英数記号 メールアドレス  可
ジャックス インターコム
クラブ
6~8 半角英数 非会員の為
確認できず
検索した限り「無」?
独自ID 非会員の為
確認できず
ソースネクスト マイページ 6~16 半角英数記号 メールアドレス
自動で割振
12桁の独自ID
どちらも可
 可
ネット・コミュニケーションズ フレーバー
ネット
4~10 半角英数 メールアドレス  可
ビッグローブ マイページ 8~16 半角英数記号
(一部使えない記号有)
メールアドレス
独自ID
(自動割振)
どちらでも可
 不可
ポケットカード 会員専用
ネットサービス
5~10 *9 半角英数
及び「-」「_」 *10
非会員の為
確認できず
検索した限り「無」? *11
独自ID(自動割振) 非会員の為
確認できず
リクルートホールディングス リクルートID 6~20 半角英数記号 メールアドレス  可

*1 同じ文字が4文字以上連続、数字のみ、英字のみ不可
*2 WordPre利用と考えられるため不明
*3 数字のみIDに含まれる文字列は使用不可
*4 33文字でも設定できた
*5 シークレットID利用可
*6 33文字でも設定できた
*7 ユーザIDと同一は不可
*8 独自IDを登録した場合、独自IDでのみログイン可能
*9 少なくともアルファベット1文字以上を含ませる必要あり
*10 大文字小文字の区別なし
*11 ログイン時にはCAPTCHA有
*12 任意の独自IDに変更可能

記号が使えないサービスや設定できる文字数が長くないもの、辞書攻撃に耐性が弱そうなパスワードを設定可能なサービスが見受けられます。だから、ダメだとはならないと思うのですが、今回の「STOP!! パスワード使い回し!!」を継続しつつ。今後は「STOP!! 弱いパスワード!!」キャンペーンといったサービス提供側とそのユーザが一丸となって不正ログインに立ち向かうようなキャンペーンが実施されればいいな。と思いました。

度々、穴となる「秘密の質問」もSTOPしてくれると嬉しいですね。

2015年08月24日
楽天で利用できるユーザ名について注釈を追記しました。

2015年08月23日
「DMM.com、 DMM.comラボ」「セブン&アイ・ネットメディア」
「グリー」「ジャックス」「ソースネクスト」
「ネット・コミュニケーションズ」「ビッグローブ」
「ポケットカード」「リクルートホールディングス」
のサービスについて追記しました。

Category: memo | 「STOP!! パスワード使い回し!!」について考えました。 はコメントを受け付けていません。
9月 5

Club NTT-Westをかたるフィッシングにひっかかってみました。



久しぶりにひっかかってみました。

ということで本物と偽物の比較。

【本物】
true

【偽物】
01

相変わらず見た目そっくりですね。
入力のエラーチェックまで同じ挙動。
02

スクロールした際にでてくるメッセージが出てくるというのも同じ。
part

ただ、本物と偽物ではWebサーバの構成が違うようでブラウザのプラグインの反応が以下のように異なりました。

【本物】
t

【偽物】
f

偽物はIISで以下がNot Foundの画面です。
error

実際に情報を適当なものを入力してページ下部にある「次へ進む」を押したところ以下のページにリダイレクトされました。
03

入力させて、何事もなかったのように別のページにリダイレクトするというのは割と常套手段なのですが今回が多くのフィッシングサイトと違うところはIDとパスワードを入力させて盗むタイプのものではないということでしょうか。
今回、盗もうとしている情報は

・ご契約回線名義
・設置場所の郵便番号
・回線ID

の3つです。
気になったので「club NTT-West」の会員ログインのページを確認したところ下図のように会員IDとパスワードに加えて「お客様ID」もしくは「回線ID」が必要だということが分かりました。
したがって、攻撃者が欲しい情報は「回線ID」なのではないかと思います。

もしかすると、攻撃者はすでに何かしらの形で攻撃を行うためのリスト(IDとパスワードがセットのもの)は持っているものの3つめに必要な「お客様ID」もしくは「回線ID」を持っていないため、このようなフィッシングサイトを設置したのかもしれませんね。

以上です。

【同日追記】
Twitterでフィッシングサイトにログインページも存在するということを教えていただきました。
auth


Category: phishing | Club NTT-Westをかたるフィッシングにひっかかってみました。 はコメントを受け付けていません。