RHELのEOLがCentOSに及ぼす影響
-
Upload
kazuki-omo -
Category
Internet
-
view
81 -
download
0
Transcript of RHELのEOLがCentOSに及ぼす影響
RHEL の EOL が CentOS に及ぼす影響
Kazuki Omo( 面 和毅 ): [email protected]
OSS/Security Evangelist
SIOS Technology, Inc.
2
Who am I ?
- Security Researcher/Engineer (17 years)
- SELinux/MAC Evangelist (12 years)
- Antivirus Engineer (3 years)
- SIEM Engineer (3 years)
- Linux Engineer (17 years)
3
アジェンダ
1. RHEL の EOL が CentOS に及ぼす影響
2. 実例で見てみる
2.1 CentOS 4 系の時
2.2 CentOS 5 系と最新の脆弱性情報
3. まとめ
1. RHEL の EOL が CentOS に及ぼす影響
5
RHEL の EOL ですよね。
RHEL の EOL か。。。うちは CentOS だし大丈夫だろう
工工エエエエ (´Д`) エエエエ工工
6
思い出してみましょう
じゃあ EOL になったらパッケージ更新はどうなるの?
7
CentOS のパッケージ更新情報
脆弱性情報開示
RHEL
CentOS
8
CentOS のパッケージ更新情報
9
結局 CentOS は
● CentOS は良くも悪くも RHEL の「クローン」
● パッケージ更新も RHEL に従う
● RHEL のパッケージ更新がなくなれば CentOS も パッケージ更新が無くなる
脆弱性が出たり、バグがあっても更新されない!!
10
2. 過去の事例から学ぶ
11
2.1 CentOS4 の事例
12
覚えていますか?
SHELL SHOCK!!!2014 年 9 月 24 日 GNU bash の脆弱性情報が公開
幅広い bash のバージョンが対象
環境変数を利用してプログラムを実行できる。リモートからも。
● JVNVU#97219505 GNU Bash に OS コマンドインジェクションの脆弱性● JPCERT/CC GNU bash の脆弱性に関する注意喚起● JPCERT/CC TCP 10000 番ポートへのスキャンの増加に関する注意喚起● IPA bash の脆弱性対策について (CVE-2014-6271 等 )
13
この ShellShock は影響大きくて。。。
デモを見ましょう
ls -ltotal 8-rwxr-xr-x 1 root root 94 Jan 22 06:36 test.cgicat /etc/passwdroot:x:0:0:root:/root:/bin/bashbin:x:1:1:bin:/bin:/sbin/nologindaemon:x:2:2:daemon:/sbin:/sbin/nologinadm:x:3:4:adm:/var/adm:/sbin/nologin
リモートから!!
14
その頃、 RHEL 4 系は
ShellShock は 2014 年
15
RHEL4 (ELS 期間中 ) の場合には
ELS 中で緊急だからパッチ出しました
16
一方 CentOS4 は
[sios@localhost ~]$ cat /etc/redhat-release CentOS release 4.9 (Final)
[sios@localhost ~]$ env 'x=() { :;}; echo vulnerable' 'BASH_FUNC_x()=() { :;}; echo vulnerable' bash -c "echo test"
vulnerable
え?でも誰が更新パッケージ出してくれるの???
17
一方 CentOS4 は(続き)
誰が更新パッケージ出してくれるの???
簡単に言うと「 CentOS Project ではパッチを出さないから早急に OS バージョン上げて」
18
と言うことで世の中の CentOS 4 系の人は
自前でソース見て作る OracleLinux から持ってくる
まだ「互換品」があったから少しは楽(でも大変。。。。)
19
でも CentOS 3.x 以前の人は。。。
自前でソース見て作る
・「互換品」も無い・ ELS 無いので情報もほぼ出ない
のでとっても大変。。。。
20
2.2 CentOS 5 系と最新の脆弱性情報
21
最近の RHEL/CentOS 系で大きい脆弱性
デモしてみましょう
22
影響するバージョンを考える
問題:これは RHEL5/CentOS5 に影響するでしょうか?
ヒント: RHEL5/CentOS5 系は kernel-2.6.18
23
答え: RHEL 5/CentOS 5 系も該当
24
なんでこんなことが起こるの?
RHEL のカーネルと素の (Vanilla) カーネルは異なる
RHEL のカーネルは Vanilla カーネルに色々手を加えたもの ( 上位バージョンからのバックポートを含む )
[root@localhost SOURCES]# ls -lh *patch-rw-r--r-- 1 root root 96M Sep 6 2013 kernel-2.6.18-redhat.patch-rw-r--r-- 1 root root 0 Sep 6 2013 linux-kernel-test.patch-rw-r--r-- 1 root root 1.4M Sep 6 2013 xen-2.6.18-redhat.patch-rw-r--r-- 1 root root 507 Sep 6 2013 xen-config-2.6.18-redhat.patch
[root@localhost SOURCES]# wc -l kernel-2.6.18-redhat.patch 2912382 kernel-2.6.18-redhat.patch
25
DirtyCow 対応 (RHEL5/CentOS5 系 )
struct page *follow_page(struct vm_area_struct *vma, unsigned long address, unsigned int flags){--snip-- if ((flags & FOLL_WRITE) && !pte_write(pte)) goto unlock; page = vm_normal_page(vma, address, pte); if (unlikely(!page)) goto unlock;
struct page *follow_page(struct vm_area_struct *vma, unsigned long address, unsigned int flags){--snip-- page = vm_normal_page(vma, address, pte); if ((flags & FOLL_WRITE) && !can_follow_write_pte(pte, page, flags)) { pte_unmap_unlock(ptep, ptl); return NULL; }
元の Kernel ソース 新規に can_follow_write_pte()を定義してチェック
Kernel ソースコードを読める人じゃないとパッチは書けないよね。。。。
26
最近の RHEL5/CentOS5 系で大きい脆弱性 (II)
27
最近の RHEL5/CentOS5 系の脆弱性( 問い合わせがあったもの )
RHEL5 の bind-9.3.6 は?
28
最近の RHEL5/CentOS5 系の脆弱性( 答 ) 影響します
コレだけが該当
(CVE-2016-9147)
(CVE-2016-9131/9444/9778)は影響なし
29
最近の RHEL5/CentOS5 系の脆弱性( 答 ) 影響します
RHEL: bind-9.3.6-XX ( メジャーバージョン固定のため)本家 (ISC): bind-9.9.9/9.10.0
パッチ(本家)は当然 9.9.9 以降しか出さない
30
RHEL 系と本家ではメジャーバージョンが違うぞではどうしたか ?
+++ bind-9.9.9-P5/lib/dns/message.c return (ISC_FALSE); }
+/*+ * Check to confirm that all DNSSEC records + * (DS, NSEC, NSEC3) have covering RRSIGs.+ */+static isc_boolean_t+auth_signed(dns_namelist_t *section) {+ dns_name_t *name;--snip--+ !auth_signed(section))+ DO_FORMERR;+
本家 (ISC)
messages.c に auth_signed()
を追加+++ bind-9.3.6-P1/lib/dns/resolver.c.CVE-2016-9147--snip--+ * LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF + * CONTRACT, NEGLIGENCE+ * PERFORMANCE OF THIS SOFTWARE.+ */++/* $Id: resolver.c,v 1.218.2.18.4.85 + 2008/10/17 22:03:37 jinmei Exp $ */++#include <config.h>++#include <isc/print.h>+#include <isc/string.h>
RHEL は下位互換性を保ちながらなので修正多すぎ。分かりやすいように個別ファイルにまとめた模様
31
結局 RHEL5/CentOS5 系の製品に自前でパッチ当てるには
・自前でパッケージのソースを解析して
・脆弱性とかバグ情報が出た時に修正を自分で確認して
・ソースを( RHEL の今までのソースと本家のソースを参考に)
書き直し/書き足しして
・パッケージを自分で作ってバージョン管理
これらを「自前のエンジニア」で出来る体制が必要
(場合によっては外部のサービスを使用)
32
じゃあどのバージョンに上げるの?
システムリプレースを考えると CentOS6 にしたらオリンピック対応中に変更が来る
→ CentOS 7 にしましょう。今からなら (変更点多いけど)間に合います。
33
3. まとめ
34
まとめ
1. RHEL の ELS終了は CentOS にとっても無関係ではない(命取り)
2. RHEL4/5 互換の CentOS を使い続けると
・自前で脆弱性情報とか出るたびに調べて
・自前でソース見て比較してパッチ書いて
・それを当てるQA をやって管理して
・しかもそれを下手すると週2−3回個別に進める
そんなことって可能ですか?
バージョン上げましょうよ (RHEL/CentOS 7 系に )
→ (工数ベースで上司に出して提案しましょう)!!
35
Thank You!!!