--
    --.--

    スポンサーサイト

    上記の広告は1ヶ月以上更新のないブログに表示されています。
    新しい記事を書く事で広告が消せます。

    このエントリーをはてなブックマークに追加
    2014
    10.05

    Bash脆弱性・Snow Leopardのログインシェルを対策版のBashに変更

    Bashの脆弱性が見つかったと話題になっています。
    ShellshockバグまたはBashバグと呼ばれ、深刻な脆弱性として扱われています。
    Bashは最近のMacのログインシェルにも使われている基本ソフトなので心配です
    (OS X 10.3以降=bash、それ以前はtcsh)。

    今回はMacにおけるShellshockバグの現状と対策を簡単にまとめてみました。

    Macの対応はどうなってる?


    Appleは「ほとんどのOS Xユーザーに影響はない」というコメントを出しています。
    Bashの脆弱性、「Mac」ユーザーの圧倒的大多数に影響なし--アップルがコメント - CNET Japan

    ほとんどって、実際はどんな人が危ないの?
    特に、Open SSH、WebサーバのCGI、DHCPなど、外部からの通信を処理するサービスが動いている場合、攻撃を受ける可能性が高いと言えます。

    bashに存在する「Shellshock」脆弱性についての注意喚起 | トレンドマイクロ

    これ、サーバとして使ってたら結構当てはまりそう^-^;;

    OS X 10.7 (Lion)以降にはアップデートを配布

    OS X 10.7以上では暫定版のアップデート(OS X bash Update 1.0)が公開されてました(2014/9/30の記事)。
    アップル、「OS X」のアップデートを公開--「Bash」脆弱性に対応 - CNET Japan

    ただし、Appleの暫定版は完全な対策版では無いようです(2014/10/2の記事)。
    「bash」脆弱性対応の「OS X」アップデートは不完全:セキュリティ研究者が指摘 - CNET Japan


    どちらにしても
    OS X 10.6.8 (Snow Leopard)用のアップデートは
    リリースされていません


    そこで、自力でログインシェルを変更してみることにしました。

    対策版のバージョンを確認

    GNUでは対策版のBashも公開されているようです。
    どのバージョンが危険なのか、といった情報をチェック。
    GNU bash の脆弱性に関する注意喚起
    これによると、version 3.2のPatch 55以降
    最新のBashでしたらversion 4.3のPatch 28以降が対策版ということになります。
    それ以前のものは脆弱性あり

    OS X 10.6 Snow Leopardの現状

    2014.10.5時点でのOS X 10.6のBashはversion 3.2, Patch 48(1)。やっぱりアウトです。
    $ /bin/bash --version
    GNU bash, version 3.2.48(1)-release (x86_64-apple-darwin10.0)
    Copyright (C) 2007 Free Software Foundation, Inc.


    Homebrewで最新版のbashをインストール


    Homebrewの導入から説明すると長くなるので、そこからの人はググって頂きたい。

    HomebrewでどんなBashが入手できるのか検索してみると…
    $ brew search bash
    bash bash-completion2 bashdb calabash
    bash-completion bash-git-prompt bashish checkbashisms


    あんまり選択肢なさそう。オーソドックスにbashをインストールしてみる。
    brew install bash

    バージョンチェックしてみると、対策版であるBash 4.3のPatch 29(1)でした(2014.10.5時点)。
    $ /usr/local/bin/bash --version
    GNU bash, バージョン 4.3.29(1)-release (x86_64-apple-darwin10.8.0)
    Copyright (C) 2013 Free Software Foundation, Inc.
    ライセンス GPLv3+: GNU GPL バージョン 3 またはそれ以降 <http://gnu.org/licenses/gpl.html>

    This is free software; you are free to change and redistribute it.
    There is NO WARRANTY, to the extent permitted by law.

    今回はこれをログインシェルにしてみます。

    ログインシェルの設定


    (1) /etc/shellsファイルの末尾にログインシェルにしたいシェルのパスを記載(今回は/usr/local/bin/bash
    このファイルに記載されたシェルは標準シェルと認識され、一般ユーザ(スーパーユーザ以外のユーザ)でもその中から選んで使えるようになります。
    ファイルの中身はこんな感じです。

    # List of acceptable shells for chpass(1).
    # Ftpd will not allow users to connect who are not using
    # one of these shells.

    /bin/bash
    /bin/csh
    /bin/ksh
    /bin/sh
    /bin/tcsh
    /bin/zsh
    /usr/local/bin/bash


    (2) chpassコマンドでログインシェルを設定
    chpassコマンドの-sオプションでログインシェルを設定します。
    これにより、環境変数$SHELLにログインシェルのパスが登録されます。
    $ chpass -s /usr/local/bin/bash


    参考:
    chpass(1) manページ
    MacのログインシェルをHomebrew等で入れたzshやbashに変更する方法 | Macとかの雑記帳Beginning OS X Mavericks/運用編 - Beginning OS X


    これで設定完了!
    システム再起動後、再びターミナルを起動してみましょう。
    $ # $SHELLの確認
    $ echo $SHELL
    /usr/local/bin/bash

    $ # バージョン
    $ /usr/local/bin/bash --version
    GNU bash, バージョン 4.3.29(1)-release (x86_64-apple-darwin10.8.0)
    以下略

    大丈夫そうです!

    ターミナルで起動するシェルの変更


    ターミナルの環境設定の起動タブをチェック。
    ここでターミナルで起動するシェルを指定することができます。
    Picture pop-up on Click!

    開くシェル:デフォルトのログインシェル(usr/bin/login)になっていれば
    ログインシェルと同じもの、すなわち今回設定したusr/local/bin/bashが使われます。
    関連記事

    このエントリーをはてなブックマークに追加
    トラックバックURL
    http://w6o6n.blog.fc2.com/tb.php/131-f8eb835c
    トラックバック
    コメント
    管理者にだけ表示を許可する
     
    上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。