狠狠撸

狠狠撸Share a Scribd company logo
RHEL の EOL が CentOS に及ぼす影響
Kazuki Omo( 面 和毅 ): ka-omo@sios.com
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 -l
total 8
-rwxr-xr-x 1 root root 94 Jan 22 06:36 test.cgi
cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm: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!!!

More Related Content

搁贬贰尝の贰翱尝が颁别苍迟翱厂に及ぼす影响