[和訳] Chef Analytics 1.1.1 セキュリティリリース #getchef
この記事は1年以上前に投稿されました。情報が古い可能性がありますので、ご注意ください。
本稿は Chef Analytics 1.1.1 security release (2015/01/26) の和訳です。
概要
Chef Analytics 1.1.0を、ルールと通知エイリアスの作成と変更を行うエンドポイントの認証を無効にするという開発用の設定のままリリースしてしまいました。これは、有効なChefユーザでログインしなくてもルールの作成や変更が行えることを意味しています。
この問題を解決する Chef Analytics 1.1.1をリリースしました。ダウンロードページより取得できます。
私のインストールはこの脆弱性の影響を受けますか?
この脆弱性はChef Analytics 1.1.0のみに存在します。Chef Analytics 1.0.xは影響を受けません。
/opt/opscode-analytics/embedded/service/notifier_config/sys.configファイルが次の不正なエントリを含んでいたら、脆弱性があります。
{accept_insecure, true}
完全性の検証
Chef Analyticsデータベース(PostgreSQL)のすべてのルールとエイリアスを手動で確認するには、次のようにします。
$ su - chef-pgsql
$ psql notifier_config
psql (9.2.9)
Type "help" for help.
notifier_config=# \x
notifier_config=# select * from rules;
-- 各ルールの内容を確認します。不正なエントリは「modified_by」列が空になっているはずです。
notifier_config=# select * from aliases;
-- 不正なエントリは異なるホストに通知先が設定されているはずです。
-- 不正なエントリは「modified_by」列が空になっているはずです。
-- 各行の値が正しいことを確認します。
もし不正と思われるエントリを発見したら、データベースから直接そのエントリを削除します。データベース中のルールやエイリアスのテーブルと行のIDの値に注意してください。次はルールを削除する例です。
notifier_config=# select * from rules;
-[ RECORD 1 ]-------------------------------------
id | 3393ee14-8c66-4ed9-ac19-d1cbedf89fcb
name | New Rule Group 1
org_name | ponyville
modified_by | applejack
modified_at | 2015-01-26 23:23:17+00
rule | rules 'New Rule Group 1'
| rule on action
| when
| true
| then
| noop()
| end
| end
priority | 0
active | t
notifier_config=# delete from rules where id = '3393ee14-8c66-4ed9-ac19-d1cbedf89fcb';
DELETE 1
解決方法
もっとも単純な解決方法は1.1.1にアップグレードすることです。変更点はこの問題の修正のみです。
もしアップグレードできないなら、/etc/opscode-analytics/opscode-analytics.rbファイルを修正し、accept_insecureの値をtrueからfalseに変更することで解決できます。
notifier_config['accept_insecure'] = false
ファイルを変更したら、Chef Analyticsは次のコマンドで再設定が必要です。
opscode-analytics-ctl reconfigure
もし疑問点や作業の助けが必要であれば、Chefサポートチームに連絡してください。