Posted by oda on 2014年9月25日 – 4:54 PM
【概要】
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 の関連リンクをまとめてみた
【検証イメージ】

【検証ターゲットシステム】
– 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に実行コードを埋め込んていることを示しています。赤色で囲まれた部分は実行結果を示しています。これにより、ターゲット上で任意のコードを実行することに成功しました。

【2014/09/28 oda 追記】
なお、上記のUbuntu上で実行しているテスト用のCGIは「#!/bin/bash」としてbashを明示的にbashを呼び出して実行しています。Ubuntu上のCGIで「#!/bin/sh」としてshを呼び出している場合は、通常dashへlinkされているため本脆弱性の影響を受けません。
【2014/09/28 ntsuji 追記】
以下のようにhttp経由で細工を施したブラウザでアクセスすることでWebサーバの権限を奪取することに成功しました。
これによりリモートから特定の権限で任意のコマンドが実行可能な状態になったと言えます。

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

reported by oda, ntsuji
Posted by ntsuji on 2014年9月24日 – 9:28 AM
JPCERT/CCとIPAが「STOP!! パスワード使い回し!!」というキャンペーンを開始しました。
JPCERT/CCのプレス
IPAのプレス
JPCERT/CCが
「STOP!パスワード使い回し!」キャンペーンにご賛同頂ける企業の募集
を出しているところを見るとJPCERT/CC主導のキャンペーンなのでしょうか。
複数のサイトでパスワードの使い回しがあり、その現状に狙いを定めてリスト型攻撃が多く発生し、不正ログインの被害に遭っている方が増えていることを考えるとこのようなキャンペーンを行うことはとてもいいことだと思います。しかし、一方でボクはこのキャンペーンに薄らと違和感を覚えていました。その違和感というのはこの不正ログインを防止する上でどのような対策を誰が行うのかということとこのキャンペーンを照らし合わせたときに不十分に感じたからです。
「不正ログインを防止する」ということをボクは交通安全を実現し人命を救うことに例えることがよくあります。
サービス提供側は車の製造メーカー。ユーザはドライバーです。
エアバッグや衝突被害軽減ブレーキなど安全に配慮した機能を実装するのは車の製造メーカーです。
その車を適正に利用し、危険な運転を行わないようにするのはドライバーです。
この両方が満たされることが交通安全、人命を救うことに繋がると考えています。つまり、どちらか一方が欠けてもいけないということです。この例えからすると、サービス提供側は、強固なパスワードを設定することが可能となる実装するなどといったユーザを最大限に保護する機能を提供し、ユーザは強固なパスワードを設定し、使い回しをしない。ということで「不正ログインを防止する」ということが実現できると考えています。もちろん、それぞれは義務ではありませんので強制することはできず、一定の自由があるとも考えています。いずれにせよ、「不正ログインを防止する」にはサービス提供側とそのユーザそれぞれが努力する必要があると思います。
今回のキャンペーンを見てみるとユーザにしか努力しようがない「パスワードの使い回し」にフォーカスされています。不正ログインに対抗するためには「パスワードの使い回し」だけではなく、推測可能な「弱いパスワード」もSTOPさせる必要があると考えています。今回のキャンペーン対してはいくつかの賛同企業があり、それによって多くの方に「パスワードの使い回し」をやめてもらうための情報発信をすることはとても価値のあることだと思いますが、不正ログインそのものに対抗するためには、その賛同企業にも努力の余地があるのではないだろうか。と考えました。そこで賛同企業の提供サービスの一部ではありますがどのようなユーザを保護する機能を実装しているのかということを調査してみました。調査の結果は以下の通りです。(ボク自身が登録していなかったサービスが多数あったため今回登録して調査をしてみたのですが誤りやお気づきの点があればこっそり教えていただければ幸いです。修正いたします。)
社名 |
サービス名 |
長さ |
文字種 |
二要素 |
ユーザ名 |
[passw0rd]を設定 |
Gunho |
ガンホーID |
8~16 *1 |
半角英数 |
有 |
独自ID |
可 |
Hoikuu |
保育のひろば |
WordPress *2 |
WordPress *2 |
無 |
WordPress *2 |
WordPress *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 |
半角英数 |
無 |
メールアドレス |
可 |
DeNA |
DeNA ID |
8~20 |
半角英数記号 |
無 |
メールアドレス |
可 |
GMOグループ |
GMOとくとくID |
6~16 |
半角英数 |
無 |
メールアドレス |
可 |
*1 同じ文字が4文字以上連続、数字のみ、英字のみ不可
*2 WordPress利用と考えられるため不明
*3 数字のみIDに含まれる文字列は使用不可
*4 33文字でも設定できた
*5 シークレットID利用可
*6 33文字でも設定できた
*7 ユーザIDと同一は不可
記号が使えないサービスや設定できる文字数が長くないもの、辞書攻撃に耐性が弱そうなパスワードを設定可能なサービスが見受けられます。だから、ダメだとはならないと思うのですが、今回の「STOP!! パスワード使い回し!!」を継続しつつ。今後は「STOP!! 弱いパスワード!!」キャンペーンといったサービス提供側とそのユーザが一丸となって不正ログインに立ち向かうようなキャンペーンが実施されればいいな。と思いました。
度々、穴となる「秘密の質問」もSTOPしてくれると嬉しいですね。
Posted by ntsuji on 2014年9月5日 – 6:38 PM
久しぶりにひっかかってみました。
ということで本物と偽物の比較。
【本物】

【偽物】

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

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

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

【偽物】

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

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

入力させて、何事もなかったのように別のページにリダイレクトするというのは割と常套手段なのですが今回が多くのフィッシングサイトと違うところはIDとパスワードを入力させて盗むタイプのものではないということでしょうか。
今回、盗もうとしている情報は
・ご契約回線名義
・設置場所の郵便番号
・回線ID
の3つです。
気になったので「club NTT-West」の会員ログインのページを確認したところ下図のように会員IDとパスワードに加えて「お客様ID」もしくは「回線ID」が必要だということが分かりました。
したがって、攻撃者が欲しい情報は「回線ID」なのではないかと思います。
もしかすると、攻撃者はすでに何かしらの形で攻撃を行うためのリスト(IDとパスワードがセットのもの)は持っているものの3つめに必要な「お客様ID」もしくは「回線ID」を持っていないため、このようなフィッシングサイトを設置したのかもしれませんね。
以上です。
【同日追記】
Twitterでフィッシングサイトにログインページも存在するということを教えていただきました。

Posted by ntsuji on 2014年8月31日 – 11:03 PM
本記事に掲載した行為を自身の管理下にないネットワーク・コンピュータに行った場合は、攻撃行為と判断される場合があり、最悪の場合、法的措置を取られる可能性もあります。このような調査を行う場合は、くれぐれも許可を取ったうえで、自身の管理下にあるネットワークやサーバに対してのみ行ってください。また、本記事を利用した行為による問題に関しましては、一切責任を負いかねます。ご了承ください。
ひょんなきっかけで接続されているパスワードが設定されており、暗号化された無線LANを流れる自分以外の通信を復号できるかどうかということの再確認を「Wireshark」を用いて行ったのでそちらの手順のメモです。前提条件として、その無線LANに接続しているユーザはWPA2 Personalで共通のパスワードで接続しているというものです。
また、今回、Wiresharkを動作させているコンピュータはMacOSです。
まず、「Wireshark」を起動してメニューバーの
[Capture]→[Options]
を選択し、[Capture Options]ウインドウを表示します。

表示されたウインドウ内に表示されている中からパケットを収集するネットワークカードを選択して、ダブルクリックをします。すると下図のように[Edit Interface Settings]ウインドウが表示されますので

[Capture packets in promiscuous mode]
[Capture packets in monitor mode]
のそれぞれにチェックをします。
[Edit InterfaceSettings]ウインドウを[OK]で閉じ、[Capture Options]ウインドウを[Close]で閉じます。
次にメニューバーから
「Edit」 → 「Preferences…」
を選択し、[Preferences]ウインドウを開き、左ペインの[Protocols]を開き[IEEE 802.11]を選択します。
そうすると右ペインの表示が変化するので
[Enable decryption]にチェックを付けて
[Decryption Keys:]の[Edit...]ボタンをクリックします。

すると[WEP and WPA Decryption Keys]ウインドウが開きます。

そして、[New]ボタンをクリックし、復号したい通信が流れる無線LANアクセスポイントの暗号化方式[Key Type]とパスフレーズとSSIDを入力をします。今回は[WPA-PWD]の通信を復号するため[Key]の部分は
Passphrase:ssid
という形式で入力します。

上記ウインドウ、[WEP and WPA Decryption Keys]ウインドウ、[Preferences]ウインドウを[OK]で閉じます。
これで準備は整いました。後は通信をキャプチャするだけで、条件に合致した通信は復号されて読むことができるようになります。

下図は、復号を行った状態と行っていない状態での通信の内容を表示したものです。
復号後のものはアクセスしたサイトのアドレスが表示されています。
【復号前】

【復号後】

Posted by ntsuji on 2014年8月25日 – 1:47 AM
各所から「模倣サイト」に関する注意喚起が出されています。多くの注意喚起は
「コンピュータウィルスに感染するなどの恐れがあり」といったような文言を添えて注意喚起をしています。模倣サイトとされているサイトのドメインは伏せられていることが殆どですが一部の発表によると「3s3s.org」というドメインのようです。
このあたりについてはpiyokangoさんがまとめを作られているので参照いただければと思います。
さて、この「3s3s」は一体どのようなサイトなのか?ということなのですが、それについてはトップページに書かれています。

Your favorite site someone has blocked? You do not like censorship?
Enter the site address in the text box below and click “Unblock”.
「あなたのお気に入りのサイト誰が誰かにブロックされましたか?あなたは検閲を好みませんか?
以下のテキストボックスにサイトのアドレスを入力し、「ブロックを解除する」をクリックしてください。」
といったところでしょうか。
この言葉通りであれば、何かしらの理由でユーe="float:left;margin-right:10px;">
各所から「模倣サイト」に関する注意喚起が出されています。多くの注意喚起は
「コンピュータウィルスに感染するなどの恐れがあり」といったような文言を添えて注意喚起をしています。模倣サイトとされているサイトのドメインは伏せられていることが殆どですが一部の発表によると「3s3s.org」というドメインのようです。
このあたりについてはpiyokangoさんがまとめを作られているので参照いただければと思います。
さて、この「3s3s」は一体どのようなサイトなのか?ということなのですが、それについてはトップページに書かれています。

Your favorite site someone has blocked? You do not like censorship?
Enter the site address in the text box below and click “Unblock”.
「あなたのお気に入りのサイト誰が誰かにブロックされましたか?あなたは検閲を好みませんか?
以下のテキストボックスにサイトのアドレスを入力し、「ブロックを解除する」をクリックしてください。」
といったところでしょうか。
この言葉通りであれば、何かしらの理由でユーe="width:55px;height:22px;background:transparent url('http://n.pentest.ninja/wp-content/plugins/wp-tweet-button/tweetn.png') no-repeat 0 0;text-align:left;text-indent:-9999px;display:block;">Tweet
各所から「模倣サイト」に関する注意喚起が出されています。多くの注意喚起は
「コンピュータウィルスに感染するなどの恐れがあり」といったような文言を添えて注意喚起をしています。模倣サイトとされているサイトのドメインは伏せられていることが殆どですが一部の発表によると「3s3s.org」というドメインのようです。
このあたりについてはpiyokangoさんがまとめを作られているので参照いただければと思います。
さて、この「3s3s」は一体どのようなサイトなのか?ということなのですが、それについてはトップページに書かれています。

Your favorite site someone has blocked? You do not like censorship?
Enter the site address in the text box below and click “Unblock”.
「あなたのお気に入りのサイト誰が誰かにブロックされましたか?あなたは検閲を好みませんか?
以下のテキストボックスにサイトのアドレスを入力し、「ブロックを解除する」をクリックしてください。」
といったところでしょうか。
この言葉通りであれば、何かしらの理由でユーザが見たいサイトがブロックされている場合、この「3s3s」を経由することで目的のサイトを見られるようにするというものだと考えられます。
「http://n.pentest.ninja/」というアドレスがブロックされているとすると「3s3s」を経由することで「http://n.pentest.ninja.3s3s.org/」というアドレスになり、閲覧できるようものだということです。つまり、誰かが意図的に作成したサイトではなく、元のサイトのまま表示させているため注意喚起のようにコンピュータウイルスの感染は考えられないということになります。もし、「3s3s」のほうにコンピュータウイルスに感染する危険性があるのであれば、元のサイトにもコンピュータウイルスに感染する危険性があるということになりますので本末転倒です。
また、この「3s3s」を経由すると「3s3s」が指定したサイトにアクセスを行ってきますので「3s3s.org」からのアクセスを「.htaccess」やファイアウォールなどでブロックすれば、各サイトで呼ばれているような「模倣サイト」の作成は防ぐことができるようになりますので、どうしても防ぎたいという場合は注意喚起をする前にそちらを実施すればいいのだと思います。
「.htaccess」によるブロックの方法は、Yuta Hayakawaさんがブログに書いてくださっています。
さて、「模倣サイト」という言葉なのですが、こちらはこの言葉でいいのでしょうか。
ボクははじめ注意喚起していたことにTwitterで以下のようにつぶやきました。
これは「模倣サイト」という言葉に対して「コピー」という表現を使ったのですがこれに対してご指摘をいただきました。
※ また、北河拓士さんはTogetterにもこの件についてのまとめを作成してくださっています。
おっしゃる通りで、このとき完全にコピーするよりも、プロクシのような仕組みのほうが「3s3s」自身の負荷も減らすこともできるのでこちらの可能性が高いかもしれないと思いました。
その後、piyokangoさんが「3s3s」の管理者に質問をしてくださったようでProxyであると明言されていますね。
何れにしてもこの「3s3s」は現在のところ仕組み上コンピュータウイルスに感染するようなものではないということが言えます。
もちろん、このサイトの管理者やこのサイトを乗っ取った攻撃者がある日「3s3s」を経由してのアクセスしたユーザに不正なスクリプトを埋め込むということをすれば、その瞬間からコンピュータウイルスに感染するというようなものに変更できなくはありませんが現在、各所で注意喚起されているものと
現在の「3s3s」の挙動は合致しない説明であると言えると思います。
ここまで書いてふと思い出したのですが過去にも似たようなことがありました。
昨年の4月11日にボクは以下のようなツイートをしています。
このつぶやきは、中国のドメインでフィッシングサイトらしきものが作成されているという注意喚起がされたときのものです。しかし、こちらも今回と似ているもので携帯電話でアクセスするためにサイトを携帯用に変換して表示してくれるサービスだったのでした。
また、このサイトを「3s3s」経由でアクセスしてみてソースコードを確認したのですが気になる表記がありました。下図の「blacklist.3s3s.org」の部分です。
このアドレスにアクセスするといくつかのドメイン名とその管理者らしき方のメールアドレスが列挙されていました。試しにblacklistに記載されているドメインを入力してみたところ下図のようなポップアップが表示されました。

おそらく、「3s3s」にコンタクトを取りブラックリストに入れてもらうことでこのように対処してもらうことが可能なのでしょう。しかし、ポップアップにもある通り、OKを押すとすぐに「http://anonymouse.org/」にリダイレクトされました。

この「anonymous.org」も「3s3s」と似たサイトでここを経由して目的のサイトを閲覧するというものです。
だらだらと書いてきましたが簡単にいうと現在の「3s3s」は有害ではないと言えます。
どれくらい有害ではないかというと翻訳サイトで閲覧したいサイトのURLを打ち込むのと同様と考えていただければいいかもしれません。
参考までに下図はエキサイト翻訳のウェブページ翻訳で「http://n.pentest.ninja」を入力した結果です。

日本に住んでいると検閲を受けてサイトをブロックされたりする機会はかなり少ないのであまりピンとくる方は多くはないのかもしれませんが、そのようなことが行われることが当たり前の国は世界中にあります。「3s3s」はそのような方のために作られたサービスなのかもしれません。
もちろん、普段から模倣サイトには気をつける必要があり、それと疑わしきものについては注意喚起すべきであるということにはボクも賛成ではありますが今回の件は「模倣サイトが作成されており、コンピュータウイルスに感染する恐れがある」といったような注意喚起そのものが不適切な表現であると言えます。とは言うものの「3s3s」側でも元のサイトと見た目に全く同じというわけではなく、元のサイトを表示するにはこちら。といったようなリンクなどをページ上部にでも表示してくれると親切設計で誤解を招きにくいのかもとも思いました。
今回の件で、正しく理解し、正しく伝え、正しく怖がるということの大切さを改めて考える事ができました。