[오픈소스컨설팅 뉴스레터] 2016년 1분기

22
Open Source Consulting OPEN SOURCE CONSULTING : 2016 1Q newsletter 기술자료 1 2015년 하반기 Slideshare 공유자료 http://www.osci.kr RHEL/CentOS 7 Pacemaker 기반 High Availability 운영자 가이드 (P.75) 리눅스 pacemaker 기반의 High Availaiblity 구성방 법에 대해 설명합니다. pacemaker를 사용하는 다른 리눅스 기반도 구성이 가능합니다. OpenStack (P.126) 오픈스택이 가진 기술에 대하여 설명합니다. 1. 오픈소스기반 OpenStack 클라우드 시스템 2. OpenStack 기술 개요 및 동향 Doker on Cloud (P.54) Docker compose를 활용하여 클라우드 서비스 제 공자에 docker 서비스를 올리는 방법을 설명합니 다. 본 슬라이드에서는 Digital Ocean에서 제공하는 서비스에 웹서비스를 위한 Docker를 구성합니다. 2015년 하반기에는 총 7건의 공유자료를 slideshare에 게시하였습니다. 오픈스택, pacemaker, Docker 등과 같은 클라우드 인프라 구축 기술 정보를 만나 보세요. 1

Upload: ji-woong-choi

Post on 15-Feb-2017

697 views

Category:

Software


2 download

TRANSCRIPT

Page 1: [오픈소스컨설팅 뉴스레터] 2016년 1분기

Open

Sour

ce C

ons

ultin

g

OPEN SOURCE CONSULTING : 2016 1Q newsletter

기술자료 1

2015년 하반기 Slideshare 공유자료

http://www.osci.kr

RHEL/CentOS 7 Pacemaker 기반 High Availability 운영자 가이드 (P.75)

리눅스 pacemaker 기반의 High Availaiblity 구성방

법에 대해 설명합니다. pacemaker를 사용하는 다른

리눅스 기반도 구성이 가능합니다.

OpenStack (P.126)

오픈스택이 가진 기술에 대하여 설명합니다.

1. 오픈소스기반 OpenStack 클라우드 시스템

2. OpenStack 기술 개요 및 동향

Doker on Cloud (P.54)

Docker compose를 활용하여 클라우드 서비스 제

공자에 docker 서비스를 올리는 방법을 설명합니

다.

본 슬라이드에서는 Digital Ocean에서 제공하는

서비스에 웹서비스를 위한 Docker를 구성합니다.

2015년 하반기에는 총 7건의 공유자료를 slideshare에 게시하였습니다. 오픈스택, pacemaker, Docker 등과 같은 클라우드 인프라 구축 기술 정보를 만나 보세요.

1

Page 2: [오픈소스컨설팅 뉴스레터] 2016년 1분기

Open

Sour

ce C

ons

ultin

g

OPEN SOURCE CONSULTING : 2016 1Q newsletter

기술자료 1

2015년 하반기 Slideshare 공유자료

http://www.osci.kr

파일럿 진행예제 on AWS (P.31)

아마존 AWS상에서의 Pilot System을 만드는 과정을 담은 문서입니다. 아키텍처링 관련하여 참고할만한 사항들을 기술하였으며, 관련 코드들은 https://github.com/OpenSourceConsulting 에서 확인하실 수 있습니다.

Neutron DVR & Ceph Integration (P.50)

오픈스택 최신 버전인 Kilo를 사용하여 DVR 및

Ceph 세팅에 대한 방법과 내부 처리 프로세스에

대한 설명을 담았습니다.

오픈소스 기반 솔루션 아키텍처 (P.34)

오픈소스기반 솔루션 아키텍처에 대해 소개합니다.

오픈소스기반 솔루션 아키텍처 특징, 솔루션 사례에

대해 설명합니다.

2015년 하반기에는 총 7건의 공유자료를 slideshare에 게시하였습니다. 오픈스택, pacemaker, Docker 등과 같은 클라우드 인프라 구축 기술 정보를 만나 보세요.

2

Page 3: [오픈소스컨설팅 뉴스레터] 2016년 1분기

Open

Sour

ce C

ons

ultin

g

OPEN SOURCE CONSULTING : 2016 1Q newsletter

기술자료 1

2015년 하반기 Slideshare 공유자료

http://www.osci.kr

소프트웨어 개발 준비 과정 (P.54)

소프트웨어 솔루션 개발을 위한 준비과정에 대해 설명합니다.

2015년 하반기에는 총 7건의 공유자료를 slideshare에 게시하였습니다. 오픈스택, pacemaker, Docker 등과 같은 클라우드 인프라 구축 기술 정보를 만나 보세요.

3

Page 4: [오픈소스컨설팅 뉴스레터] 2016년 1분기

Open

Sour

ce C

ons

ultin

g

http://www.osci.kr

2015. 07 ~ 2016. 03

Critical / Important Errata 2

Red Hat Enterprise Linux 5 / 6 / 7

2016/01/15

제 품

작 성 일

OpenJDK의 CORBA, Libraries, RMI, Serialization, 2D components에서 여러 취약점 발견 - Java sandbox restriction 우회 취약점(CVE-2015-4835, CVE-2015-4881, CVE-2015-4843, CVE-2015-4883, CVE-2015-4860, CVE-2015-4805, CVE-2015-4844) OpenJDK의 Libraries, 2D, CORBA, JAXP, JGSS, and RMI 컴포넌트에서 여러 취약점 발견 - Java sandbox restriction 우회 취약점(CVE-2015-4806, CVE-2015-4840, CVE-2015-4882, CVE-2015-4842, CVE-2015-4734, CVE-2015-4903) DOS 공격 취약 - CPU 및 Memory resource 소비 발생(CVE-2015-4803, CVE-2015-4893, CVE-2015-4911) 비정상적인 인증서 확인(CVE-2015-4872) 참조 : https://access.redhat.com/security/cve/cve-2015-4835

이 슈 사 항

OpenJDK-1.7.0 취약점 (CVE-2015-4835)

Red Hat Enterprise Linux 5 / 6 / 7 영 향 환 경

Critical 위 험 성

참조 : https://access.redhat.com/security/cve/cve-2015-4835 해 결 안

OPEN SOURCE CONSULTING : 2016 1Q newsletter

4

Page 6: [오픈소스컨설팅 뉴스레터] 2016년 1분기

Open

Sour

ce C

ons

ultin

g

http://www.osci.kr

2015. 07 ~ 2016. 03

BIND 취약점 (CVE-2015-8704)

레드햇 엔터프라이즈 리눅스 5 / 6 / 7

2016/1/21

제 품

작 성 일

apl_42.c 포함하는 bind 9.9.8-p3 버전 보다 낮은 버전 / apl_42.c 포함하는 9.10.3-p3 보다 낮은 9.9.x 와 9.10.x 버전

영 향 환 경

인증된 원격 유저가 변형된 Address Prefix List(APL)를 이용하여 타겟 서버의 named 서비스를 fail 및 데몬 종료하는 서비스 거부 취약점이 발견되었습니다. 참조 : https://access.redhat.com/security/cve/cve-2015-8704

이 슈 사 항

Moderate 위 험 성

Red Hat Enterprise Linux 5 / 6 / 7은 영향을 받으므로 아래 문서를 참고

https://rhn.redhat.com/errata/RHSA-2016-0073.html https://rhn.redhat.com/errata/RHSA-2016-0073.html https://rhn.redhat.com/errata/RHSA-2016-0074.html https://rhn.redhat.com/errata/RHSA-2016-0073.html

해 결 안

추 가 정 보

취 약 점 영향도 분석

플랫폼 에라타 출시일

Red Hat Enterprise Linux Server 5 / 6 / 7 (CVE-2015-8704) Jan 19, 2016

전체적인 영향도는 6.8 (moderate) 입니다. (참고 : OpenSSL heartbleed의 경우는 5.0이었음) 자료 > 취약점 영향도 분석 (CVSS V2)

Critical / Important Errata 2

OPEN SOURCE CONSULTING : 2016 1Q newsletter

6

Page 7: [오픈소스컨설팅 뉴스레터] 2016년 1분기

Open

Sour

ce C

ons

ultin

g

http://www.osci.kr

2015. 07 ~ 2016. 03

BIND 9.10.x 취약점 (CVE-2015-8705)

레드햇 엔터프라이즈 리눅스는 해당 없음

2016/1/21

제 품

작 성 일

buffer.c를 포함하는 9.10.3-P3 보다 낮은 버전의 BIND 9.10.x 패키지 영 향 환 경

debug logging이 enable되었을 때 9.10.3-P3 이전의 ISC BIND 9.10.x의 named에 있는 buffer.c는 OPT data 또는 ECS option을 통해 원격지 공격자의 서비스 거부공격을 허용하거나(assertion failure와 daemon 종료, 또는 daemon crash 필요로 합니다) 다른 영향을 끼칠 수 있습니다. 참조 : https://access.redhat.com/security/cve/cve-2015-8705

이 슈 사 항

Low 위 험 성

Red Hat Enterprise Linux 5 / 6 / 7은 영향을 받지 않음

해 결 안

추 가 정 보 플랫폼 에라타 출시일

N/A (CVE-2015-8705) Jan 19, 2016

취 약 점 영향도 분석

전체적인 영향도는 6.6 (low) 입니다. (참고 : OpenSSL heartbleed의 경우는 5.0이었음) 자료 > 취약점 영향도 분석 (CVSS V2)

Critical / Important Errata 2

OPEN SOURCE CONSULTING : 2016 1Q newsletter

7

Page 8: [오픈소스컨설팅 뉴스레터] 2016년 1분기

Open

Sour

ce C

ons

ultin

g

http://www.osci.kr

2015. 07 ~ 2016. 03

Critical / Important Errata 2

nss, nspr 취약점 (CVE-2015-7181)

레드햇 엔터프라이즈 리눅스 4 / 5 / 6 / 7

2016/01/15

제 품

작 성 일

nss : use-after-poison 및 heap-based buffer overflow 취약점 – 공격자는 이를 통해 crash나 임의의 코드 실행 가능(CVE-2015-7181, CVE-2015-7182) nspr : heap-based buffer overflow 취약점 - – 공격자는 이를 통해 crash나 임의의 코드 실행 가능(CVE-2015-7183) 참조 : https://access.redhat.com/security/cve/cve-2015-7181

이 슈 사 항

취 약 점 영향도 분석

전체적인 영향도는 7.5 (MEDIUM) 입니다. (참고 : OpenSSL heartbleed의 경우는 5.0이었음)

변경사항에 대한 환경 영향도는 전혀 없습니다. 자료 > 취약점 영향도 분석 (CVSS V2)

Red Hat Enterprise Linux Server 4 / 5 / 6 / 7 영 향 환 경

Critical 위 험 성

참조 : https://access.redhat.com/security/cve/cve-2015-7181

해 결 안

추 가 정 보 플랫폼 에라타 출시일

Red Hat Enterprise Linux Server 4 / 5 / 6 /7 (CVE-2015-7181) Critical

OPEN SOURCE CONSULTING : 2016 1Q newsletter

8

Page 9: [오픈소스컨설팅 뉴스레터] 2016년 1분기

Open

Sour

ce C

ons

ultin

g

OPEN SOURCE CONSULTING : 2016 1Q newsletter

Red Hat Enterprise Linux Server 4/5/6/7

2016/03/04

DROWN 공격의 영향을 받는 설정 개요 SSLv3 또는 TLSv1.x 를 제외한 SSLv2 프로토콜을 사용하는 서버 및 RSA 키 교환 암호화 스위트 (RSA key exchange cipher suite)를 사용하는 서버는 DROWN 공격에 취약합니다. SSLv2를 사용하지 않는 서버도 SSLv2를 사용하고 있는 다른 서버 또는 서비스와 RSA 개인키를 공유하는 경우 취약해질 수 있습니다. 예를 들어, SSLv2를 사용하는 web 서버가 SSLv2를 사용하고 동일한 호스트에서 실행되고 있을 가능성이 있는 IMAP 서버와 RSA 키를 공유하는 경우 HTTPS 세션을 그 web 서버에 해독하기 위해 DROWN 공격이 이용될 수 있습니다. 이 공격을 효율적으로 수행하려면 SSLv2의 취약한 사용이나 노출이 필요합니다. SSLv2를 지원하는 SSL 및 TLS 라이브러리 Red Hat 제품은 SSLv2 프로토콜의 지원을 구현하는 다음 구성 요소가 포함됩니다. 이 지원은 응용프로그램 SSL/TLS 라이브러리의 사용 방법에 따라 사용됩니다. OpenSSL을 사용하는 응용프로그램은 사용하는 SSL/TLS 프로토콜 버전을 라이브러리에 알리기 위해 연결 방법을 선택해야 합니다. OpenSSL 연결 메소드가 단일 프로토콜 버전을 사용하거나 특수한 메소드의 SSLv23을 사용하여 라이브러리가 지원하는 모든 프로토콜 버전을 활성화할 수 있으며, 이것은 가장 일반적으로 사용되는 연결 방법입니다. SSLv2 프로토콜은 메소드가 선택되면 자동으로 활성화됩니다. 응용프로그램이 SSLv2를 비활성화하려면 관련 SSL_CTX 또는 SSL 객체 SSL_OP_NO_SSLv2 옵션을 명시적으로 설정해야 합니다.

보안 관련 조사 그룹은 SSLv2 (Secure Sockets Layer 프로토콜 버전 2.0)가 Bleichenbacher RSA 패딩 오라클 공격에 취약하다는 것을 발견했습니다.이 취약점은 일치하는 RSA 개인키를 몰라도 RSA 암호문을 해독할 수 있도록 이용될 수 있습니다. 이것은 공격자가 개인키를 가진 서버의 응답을 관찰하고 그 키를 사용하여 자신의 암호문을 해독하여 실행됩니다. 또한 이 조사 그룹이 SSLv2의 약점을 이용하여 SSLv3 또는 최신 TLS (Transport Layer Security) 버전 (1.0 - 1.2) 등의 신규 버전의 프로토콜을 사용하여 SSL / TLS 세션의 해독도 가능한 새로운 크로스 프로토콜 공격에 대해서도 설명하고 있습니다. 본 취약점은 SSLv2 프로토콜의 문제이며, 이 프로토콜의 모든 구현에 영향을 줍니다. 조사 그룹이 공격을 일반적인 DROWN으로 언급하고 있습니다.

Important (CVSS V2 평가 기준)

제 품

작 성 일

영 향 환 경

이 슈 사 항

위 험 성

http://www.osci.kr

2015. 07 ~ 2016. 03

Critical / Important Errata 2

CVE-2016-0800 SSL/TLS: Cross-protocol attack on TLS using SSLv2 (DROWN)

9

Page 10: [오픈소스컨설팅 뉴스레터] 2016년 1분기

Open

Sour

ce C

ons

ultin

g

OPEN SOURCE CONSULTING : 2016 1Q newsletter

영향을 받지 않는 설정 SSLv2를 지원하지 않는 SSL과 TLS 라이브러리

Red Hat 제품은 TLS 또는 SSL 프로토콜의 특정 버전을 구현하지만, SSLv2의 지원은 구현하지 않는 아래의 구성 요소들을 포함하고 있습니다. 이러한 구성 요소는 이 취약점의 영향을 받지 않습니다. - GnuTLS - OpenJDK (패키지 java-1.6.0-openjdk , java-1.7.0-openjdk , java-1.8.0-openjdk ) - Oracle JDK (패키지 java-1.6.0-sun , java-1.7.0-oracle , java-1.8.0-oracle ) - IBM JDK (패키지 java-1.6.0-ibm , java-1.7.0-ibm , java-1.7.1-ibm , java-1.8.0-ibm ) 그러나 이러한 영향을 받지 않는 라이브러리를 사용하는 응용프로그램에서 그들이 SSLv2를 지원하는 SSL/TLS 라이브러리를 사용하는 다른 응용프로그램과 그 개인 RSA 키를 공유하는 경우에는 DROWN 공격에 의한 영향을 여전히 받을 수 있습니다. 결론적으로 SSL v2를 사용하지 않도록 응용프로그램이 설정되어 있으며, 오직 레드햇 제품군들끼리만 통신하는 인프라 환경에서는 이번 취약점의 피해 가능성이 낫다고 볼 수 있습니다.

위의 사항들을 모두 고려해도 Drown 공격 가능성이 의심되며, openssl 패키지가 아래의 버전보다 낮다면 아래의 버전으로 업데이트 하십시오. Red Hat Enterprise Linux Server 5

x86_64 openssl-0.9.8e-39.el5_11.i686.rpm openssl-0.9.8e-39.el5_11.x86_64.rpm openssl-debuginfo-0.9.8e-39.el5_11.i386.rpm openssl-debuginfo-0.9.8e-39.el5_11.i686.rpm openssl-debuginfo-0.9.8e-39.el5_11.x86_64.rpm openssl-devel-0.9.8e-39.el5_11.i386.rpm openssl-devel-0.9.8e-39.el5_11.x86_64.rpm openssl-perl-0.9.8e-39.el5_11.x86_64.rpm i386 openssl-0.9.8e-39.el5_11.i386.rpm openssl-0.9.8e-39.el5_11.i686.rpm

영 향 환 경

http://www.osci.kr

2015. 07 ~ 2016. 03

Critical / Important Errata 2

CVE-2016-0800 SSL/TLS: Cross-protocol attack on TLS using SSLv2 (DROWN)

10

Page 11: [오픈소스컨설팅 뉴스레터] 2016년 1분기

Open

Sour

ce C

ons

ultin

g

OPEN SOURCE CONSULTING : 2016 1Q newsletter

openssl-debuginfo-0.9.8e-39.el5_11.i386.rpm openssl-debuginfo-0.9.8e-39.el5_11.i686.rpm openssl-devel-0.9.8e-39.el5_11.i386.rpm openssl-perl-0.9.8e-39.el5_11.i386.rpm Red Hat Enterprise Linux 6 x86_64 openssl-1.0.1e-42.el6_7.4.i686.rpm openssl-1.0.1e-42.el6_7.4.x86_64.rpm openssl-debuginfo-1.0.1e-42.el6_7.4.i686.rpm openssl-debuginfo-1.0.1e-42.el6_7.4.x86_64.rpm openssl-debuginfo-1.0.1e-42.el6_7.4.x86_64.rpm openssl-devel-1.0.1e-42.el6_7.4.i686.rpm openssl-devel-1.0.1e-42.el6_7.4.x86_64.rpm openssl-perl-1.0.1e-42.el6_7.4.x86_64.rpm openssl-static-1.0.1e-42.el6_7.4.x86_64.rpm i386 openssl-1.0.1e-42.el6_7.4.i686.rpm openssl-debuginfo-1.0.1e-42.el6_7.4.i686.rpm openssl-debuginfo-1.0.1e-42.el6_7.4.i686.rpm openssl-devel-1.0.1e-42.el6_7.4.i686.rpm openssl-perl-1.0.1e-42.el6_7.4.i686.rpm openssl-static-1.0.1e-42.el6_7.4.i686.rpm Red Hat Enterprise Linux 7 openssl-1.0.1e-51.el7_2.4.x86_64.rpm openssl-debuginfo-1.0.1e-51.el7_2.4.i686.rpm openssl-debuginfo-1.0.1e-51.el7_2.4.i686.rpm openssl-debuginfo-1.0.1e-51.el7_2.4.x86_64.rpm openssl-debuginfo-1.0.1e-51.el7_2.4.x86_64.rpm openssl-devel-1.0.1e-51.el7_2.4.i686.rpm openssl-devel-1.0.1e-51.el7_2.4.x86_64.rpm openssl-libs-1.0.1e-51.el7_2.4.i686.rpm openssl-libs-1.0.1e-51.el7_2.4.x86_64.rpm openssl-perl-1.0.1e-51.el7_2.4.x86_64.rpm openssl-static-1.0.1e-51.el7_2.4.i686.rpm openssl-static-1.0.1e-51.el7_2.4.x86_64.rpm 참고: https://access.redhat.com/articles/2176731

영 향 환 경

2015. 07 ~ 2016. 03

Critical / Important Errata 2

CVE-2016-0800 SSL/TLS: Cross-protocol attack on TLS using SSLv2 (DROWN)

http://www.osci.kr 11

Page 12: [오픈소스컨설팅 뉴스레터] 2016년 1분기

Open

Sour

ce C

ons

ultin

g

OPEN SOURCE CONSULTING : 2016 1Q newsletter

추 가 정 보

취 약 점 영향도 분석

플랫폼 에라타 출시일

Red Hat Enterprise Linux Server 4/5/6/7 CVE-2016-0800 March 1, 2016

전체적인 영향도는 important 입니다. (참고 : OpenSSL heartbleed의 경우는 5.0) 자료 > 취약점 영향도 분석 (CVSS V2)

1. 영향 환경에서 제시한 버전까지 업데이트 합니다. # yum localinstall * (업데이트 패키지가 있는 경로에서 입력)

2. 시스템을 리부팅합니다.

이슈 해결을 위한 방법으로 전담 지원사인 ㈜오픈소스컨설팅 기술지원팀([email protected])으로 연락 주십시오.

해 결 안

openssl 패키지의 버전을 확인합니다. # rpm –qa openssl

※ 취약점이 발견된 경우의 예 (업데이트 필요) [root@localhost ~]# cat /etc/redhat-release Red Hat Enterprise Linux Server release 6.7 (Santiago) [root@localhost ~]# rpm -qa openssl openssl-1.0.1e-42.el6.x86_64 (openssl-1.0.1e-42.el6_7.4.x86_64보다 낮음) 응용프로그램이 SSLv2를 사용하는 설정을 갖고 있는지 확인

진 단 방 법

2015. 07 ~ 2016. 03

Critical / Important Errata 2

CVE-2016-0800 SSL/TLS: Cross-protocol attack on TLS using SSLv2 (DROWN)

http://www.osci.kr 12

Page 13: [오픈소스컨설팅 뉴스레터] 2016년 1분기

Open

Sour

ce C

ons

ultin

g

OPEN SOURCE CONSULTING : 2016 1Q newsletter

2015. 07 ~ 2016. 03

Critical / Important Errata 2

CVE-2015-7547 - stack-based buffer overflow

http://www.osci.kr

레드햇 엔터프라이즈 리눅스 6 / 7 제 품

Red Hat Enterprise Linux 6 glibc-2.12-1.166.el6_7.7.i686.rpm glibc-2.12-1.166.el6_7.7.x86_64.rpm glibc-common-2.12-1.166.el6_7.7.x86_64.rpm glibc-debuginfo-2.12-1.166.el6_7.7.i686.rpm glibc-debuginfo-2.12-1.166.el6_7.7.x86_64.rpm glibc-debuginfo-common-2.12-1.166.el6_7.7.i686.rpm glibc-debuginfo-common-2.12-1.166.el6_7.7.x86_64.rpm glibc-devel-2.12-1.166.el6_7.7.i686.rpm glibc-devel-2.12-1.166.el6_7.7.x86_64.rpm glibc-headers-2.12-1.166.el6_7.7.x86_64.rpm glibc-static-2.12-1.166.el6_7.7.i686.rpm glibc-static-2.12-1.166.el6_7.7.x86_64.rpm glibc-utils-2.12-1.166.el6_7.7.x86_64.rpm nscd-2.12-1.166.el6_7.7.x86_64.rpm Red Hat Enterprise Linux 7 glibc-2.17-106.el7_2.4.i686.rpm glibc-2.17-106.el7_2.4.x86_64.rpm glibc-common-2.17-106.el7_2.4.x86_64.rpm glibc-debuginfo-2.17-106.el7_2.4.i686.rpm glibc-debuginfo-2.17-106.el7_2.4.x86_64.rpm glibc-debuginfo-common-2.17-106.el7_2.4.i686.rpm glibc-debuginfo-common-2.17-106.el7_2.4.x86_64.rpm glibc-devel-2.17-106.el7_2.4.i686.rpm glibc-devel-2.17-106.el7_2.4.x86_64.rpm glibc-headers-2.17-106.el7_2.4.x86_64.rpm glibc-static-2.17-106.el7_2.4.i686.rpm glibc-static-2.17-106.el7_2.4.x86_64.rpm glibc-utils-2.17-106.el7_2.4.x86_64.rpm nscd-2.17-106.el7_2.4.x86_64.rpm

영 향 환 경

stack-based buffer overflow가 libresolv의 dual A/AAAA의 DNS 쿼리를 수행했던 방식에서 발견되었습니다. 원격지의 공격자가 libresolv를 crash 또는 라이브러리를 실행하는 사용자의 권한을 갖는 잠재적인 코드를 실행하기 위해 특수하게 생성된 DNS 응답을 생성할 수 있습니다. Note: 이 이슈는 libresolv가 nss_dns NSS service module로부터 호출될 때에만 노출됩니다.

이 슈 사 항

Critical 위 험 성

13

Page 14: [오픈소스컨설팅 뉴스레터] 2016년 1분기

Open

Sour

ce C

ons

ultin

g

OPEN SOURCE CONSULTING : 2016 1Q newsletter

2015. 07 ~ 2016. 03

Critical / Important Errata 2

CVE-2015-7547 - stack-based buffer overflow

http://www.osci.kr

추 가 정 보

취 약 점 영향도 분석

플랫폼 에라타 출시일

Red Hat Enterprise Linux Server 6/7 glibc vulnerability (CVE-2015-7547)

February 16, 2016

전체적인 영향도는 6.1 입니다.

CVE

Base Score

영향도

1. 영향 환경에서 제시한 버전까지 업데이트 합니다. # yum localinstall * (업데이트 패키지가 있는 경로에서 입력)

2. 시스템을 리부팅 또는 영향이 있는 어플리케이션을 재시작하면 되지만 glibc같은 경우 많은 어플리케이션에 영향을 줄수 있으므로 가급적 시스템 리부팅을 권고합니다.

이슈 해결을 위한 방법으로 전담 지원사인 ㈜오픈소스컨설팅 기술지원팀([email protected])으로 연락 주십시오. 3. 사용중인 어플리케이션을 확인하는 커맨드는 아래와 같습니다.

해 결 안

glibc 패키지의 버전을 확인합니다. # rpm –qa glibc-*

취약점이 발견된 경우 (업데이트 필요) [root@localhost ~]# cat /etc/redhat-release Red Hat Enterprise Linux Server release 7.1 (Maipo) [root@localhost ~]# rpm -qa glibc-* glibc-headers-2.17-78.el7.x86_64 glibc-common-2.17-78.el7.x86_64 glibc-devel-2.17-78.el7.x86_64 [root@localhost~]#

진 단 방 법

CVE Base Score 영향도

CVE-2015-7547 6.1 Critical

lsof +c0 -d DEL | awk 'NR==1 || /libc-/ {print $2,$1,$4,$NF}' | column -t

14

Page 15: [오픈소스컨설팅 뉴스레터] 2016년 1분기

http://www.osci.kr

1. RHEL7 커널 파라미터를 설정하는 파일이 RHEL6와 다른 점 Red Hat Enterprise Linux 6 까지는 커널 파라미터 변경을 위해 /etc/sysctl.conf 에 변경을 원하는 파라미터를 입력하여 관리하였으나, Red Hat Enterprise Linux 7부터는 /etc/sysctl.conf 외에 다른 파일들이 더 존재하므로 유의할 필요가 있습니다.

2. RHEL7 커널 파라미터 설정 파일은? 아래 3개 파일들입니다. /etc/sysctl.conf /usr/lib/sysctl.d/00-system.conf /usr/lib/sysctl.d/50-default.conf RHEL7부터는 시스템 초기화 데몬이었던 init이 사라지고 systemd가 자리를 대체하였습니다. /usr/lib/sysctl.d/00-system.conf와 /usr/lib/sysctl.d/50-default.conf는 systemd의 구성 파일입니다.

3. RHEL 7.2 커널 파라미터 설정 파일에 정의된 기본값

알아두면 유용한 팁 3 3.1. Red Hat Enterprise Linux 7의 커널 파라미터 설정 파일

Open

Sour

ce C

ons

ultin

g

[root@localhost ~]# cat /etc/sysctl.conf # System default settings live in /usr/lib/sysctl.d/00-system.conf. # To override those settings, enter new settings here, or in an /etc/sysctl.d/<name>.conf file # # For more information, see sysctl.conf(5) and sysctl.d(5). [root@localhost ~]#

[root@localhost ~]# cat /usr/lib/sysctl.d/00-system.conf # Kernel sysctl configuration file # # For binary values, 0 is disabled, 1 is enabled. See sysctl(8) and # sysctl.conf(5) for more details. # Disable netfilter on bridges. net.bridge.bridge-nf-call-ip6tables = 0 net.bridge.bridge-nf-call-iptables = 0 net.bridge.bridge-nf-call-arptables = 0 [root@localhost ~]#

OPEN SOURCE CONSULTING : 2016 1Q newsletter

15

Page 16: [오픈소스컨설팅 뉴스레터] 2016년 1분기

http://www.osci.kr

4. RHEL 7.x 커널 파라미터 변경 작업 시 유의사항 RHEL6에서는 커널 파라미터 변경 시 /proc filesystem와 /etc/sysctl.conf, /etc/sysctl.d/* 를 조작하는 방법이 지원되었으며, RHEL7부터는 기존 방법에 덧붙여 /usr/lib/sysctl.d/*을 조작하는 방법이 추가되었습니다. /etc/sysctl.conf에 명시된 파라미터가 /usr/lib/sysctl.d/* 에 명시되어 있는 파라미터 값을 override합니다. 다시 말하자면 아래와 같이 두 파일에 한 가지 파라미터가 서로 다른 값으로 명시되어 있을 경우... /etc/sysctl.conf의 값이 우선적으로 적용되어 /usr/lib/sysctl.d/50-default.conf 의 해당 파라미터만 선택적으로 설정이 override됩니다. /etc/sysctl.conf의 주석문에서도 해당 사항 확인하실 수 있습니다.

알아두면 유용한 팁 3

Red Hat Enterprise Linux 7의 커널 파라미터 설정 파일

Open

Sour

ce C

ons

ultin

g

[root@localhost ~]# egrep -v '^#|^$' /usr/lib/sysctl.d/50-default.conf kernel.sysrq = 16 kernel.core_uses_pid = 1 net.ipv4.conf.default.rp_filter = 1 net.ipv4.conf.all.rp_filter = 1 net.ipv4.conf.default.accept_source_route = 0 net.ipv4.conf.all.accept_source_route = 0 net.ipv4.conf.default.promote_secondaries = 1 net.ipv4.conf.all.promote_secondaries = 1 fs.protected_hardlinks = 1 fs.protected_symlinks = 1 [root@localhost ~]#

3.1. Red Hat Enterprise Linux 7의 커널 파라미터 설정 파일

/usr/lib/sysctl.d/50-default.conf net.ipv4.conf.all.rp_filter = 1 // net.ipv4.conf.all.rp_filter는 기본 명시되어 있음

/etc/sysctl.conf net.ipv4.conf.all.rp_filter = 0 // 원래 /etc/sysctl.conf에는 없던 설정을 추가

OPEN SOURCE CONSULTING : 2016 1Q newsletter

16

Page 17: [오픈소스컨설팅 뉴스레터] 2016년 1분기

5. 실제사례 - RHEL 7.1 -> 7.2 커널 업그레이드 후 커널 파라미터 기본값 변경으로 인한 이슈 RHEL7부터는 kernel 패키지에 의존성을 갖는 패키지들이 RHEL6에 비해 많아졌습니다. 아래는 RHEL 7.1 -> 7.2 커널 업그레이드 시 필요한 패키지들입니다. kernel-3.10.0-327.el7.x86_64.rpm kernel-devel-3.10.0-327.el7.x86_64.rpm kernel-headers-3.10.0-327.el7.x86_64.rpm kmod-20-5.el7.x86_64.rpm libgudev1-219-19.el7.x86_64.rpm libgudev1-devel-219-19.el7.x86_64.rpm linux-firmware-20150904-43.git6ebf5d5.el7.noarch.rpm systemd-219-19.el7.x86_64.rpm systemd-devel-219-19.el7.x86_64.rpm systemd-libs-219-19.el7.x86_64.rpm systemd-python-219-19.el7.x86_64.rpm systemd-sysv-219-19.el7.x86_64.rpm dracut-033-359.el7.x86_64.rpm dracut-config-rescue-033-359.el7.x86_64.rpm dracut-network-033-359.el7.x86_64.rpm initscripts-9.49.30-1.el7.x86_64.rpm RHEL7.1까지는 net.ipv4.conf.all.rp_filter 파라미터가 “0”이었으나 RHEL7.2에서 “1”로 변경되었습니다. RHEL7.1의 /etc/sysctl.conf, /usr/lib/sysctl.d/00-system.conf, /usr/lib/sysctl.d/50-default.conf 중 어느 파일에도 net.ipv4.conf.all.rp_filter 파라미터가 명시되어 있지 않았으나 RHEL7.2의 systemd-219-19.el7.x86_64 패키지의 /usr/lib/sysctl.d/50-default.conf 파일에 “1”값으로 명시되는 변경사항이 적용되었습니다.

http://www.osci.kr

알아두면 유용한 팁 3

Open

Sour

ce C

ons

ultin

g

3.1. Red Hat Enterprise Linux 7의 커널 파라미터 설정 파일

[root@localhost ~]# cat /etc/redhat-release Red Hat Enterprise Linux Server release 7.1 (Maipo) [root@localhost ~]# grep ‘net.ipv4.conf.all.rp_filter’ /usr/lib/sysctl.d/50-default.conf [root@localhost ~]#

[root@localhost ~]# cat /etc/redhat-release Red Hat Enterprise Linux Server release 7.2 (Maipo) [root@localhost ~]# grep ‘net.ipv4.conf.all.rp_filter’ /usr/lib/sysctl.d/50-default.conf net.ipv4.conf.all.rp_filter = 1 [root@localhost ~]#

OPEN SOURCE CONSULTING : 2016 1Q newsletter

17

Page 18: [오픈소스컨설팅 뉴스레터] 2016년 1분기

http://www.osci.kr

net.ipv4.conf.all.rp_filter = 1 파라미터 적용된 커널은 네트워크 outbound 트래픽 경로가 inbound 트래픽 경로와 다를 시 패킷을 무효화/폐기합니다. L3 네트워크 구간을 통해 멀티캐스트 통신을 하는 어플리케이션을 운영할 경우 net.ipv4.conf.all.rp_filter = 0 옵션을 이용하는 경우가 있습니다. /etc/sysctl.conf에 아래 값을 명시하지 않고 운영 중인 RHEL 7.1을 7.2로 커널 업그레이드하면 net.ipv4.conf.all.rp_filter = 0 net.ipv4.conf.all.rp_filter = 1가 적용되어 버려 0 값을 요구하는 어플리케이션 동작에 문제가 될 수 있습니다. RHEL7.1 -> 7.2 커널 업그레이드를 계획하신다면 systemd-219-19.el7.x86_64 패키지의 이 변경사항을 반드시 염두에 두시기 바랍니다. ※ 비대칭 라우팅 또는 다른 복잡한 라우팅을 사용한다면 net.ipv4.conf.all.rp_filter는 0보다는 2값이 권장사항입니다. 2이면 각 수신 패킷의 출발지 주소는 FIB와 비교하여 테스트되고 출발지 주소가 어떤 인터페이스를 통한 도달을 못한다면 그 패킷은 실패합니다. RFC3704에서 현재 권장하는 방법은 DDos 공격으로부터 IP spoofing을 방지하기 위해 strict mode(1)를 활성화하는 것입니다. 비대칭 라우팅 또는 다른 복잡한 라우팅을 사용한다면 loose mode(2)를 권장합니다.

알아두면 유용한 팁 3

Open

Sour

ce C

ons

ultin

g

3.1. Red Hat Enterprise Linux 7의 커널 파라미터 설정 파일

OPEN SOURCE CONSULTING : 2016 1Q newsletter

18

Page 19: [오픈소스컨설팅 뉴스레터] 2016년 1분기

http://www.osci.kr

1. 증상 tboot 패키지 설치된 RHEL 6.5가 부팅 실패

2. 원인 RHEL 6.3 ~ 6.6 에서 아래 두 조건이 동시 만족될 경우 부팅 실패가 일어납니다. ① 서버가 Intel TXT(Trusted Execution Technology)를 지원하지 않거나, TXT 기능이 EFI BIOS에서 disabled ② tboot(Intel TXT를 사용하는 pre-kernel/VMM module) 패키지를 포함하도록 RHEL 6.3 ~ 6.6 설치(RHEL 6.0 ~ 6.2에는 tboot가 패키징되어 있지 않음)

3. 해결 아래 두 가지 중 하나를 선택 조치하십시오. ① tboot 패키지를 포함시키지 않고 RHEL 6.3 ~ 6.6 설치 - RHEL 6.5 설치 단계에서 "Base" 패키지그룹에 속한 tboot 패키지가 선택되지 않도록 하면 됩니다. ② 이미 tboot 패키지를 포함시켜 RHEL 6.3 ~ 6.6 설치하여 부팅 실패 상태라면, rescue mode로 부팅 후 /boot/grub/grub/conf를 아래와 같이 수정합니다. - 변경 전 grub.conf - 변경 후 grub.conf

알아두면 유용한 팁 3 3.2. tboot 패키지 설치된 RHEL 6.5가 부팅 실패

Open

Sour

ce C

ons

ultin

g

title Red Hat Enterprise Linux (2.6.32-431.el6.x86_64) root (hd0,0) kernel /tboot.gz logging=vga,serial,memory module /vmlinuz-2.6.32-431.el6.x86_64 ro root=/dev/mapper/vg_hrdb-lv_root intel_iommu=on rd_NO_LUKS LANG=en_US.UTF-8 rd_LVM_LV=vg_hrdb/lv_swap rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=128M rd_LVM_LV=vg_hrdb/lv_root KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet module /initramfs-2.6.32-431.el6.x86_64.img

title Red Hat Enterprise Linux (2.6.32-431.el6.x86_64) root (hd0,0) kernel /vmlinuz-2.6.32-431.el6.x86_64 ro root=/dev/mapper/vg_hrdb-lv_root intel_iommu=off rd_NO_LUKS LANG=en_US.UTF-8 rd_LVM_LV=vg_hrdb/lv_swap rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=128M rd_LVM_LV=vg_hrdb/lv_root KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet initrd /initramfs-2.6.32-431.el6.x86_64.img

OPEN SOURCE CONSULTING : 2016 1Q newsletter

19

Page 20: [오픈소스컨설팅 뉴스레터] 2016년 1분기

http://www.osci.kr

수정하여 부팅에 성공했다면, tboot 패키지를 삭제합니다. # rpm -e $(rpm -qa tboot) 참고문서 http://en.wikipedia.org/wiki/Trusted_Execution_Technology https://www.kernel.org/doc/Documentation/intel_txt.txt https://access.redhat.com/solutions/421093

알아두면 유용한 팁 3 3.2. tboot 패키지 설치된 RHEL 6.5가 부팅 실패

Open

Sour

ce C

ons

ultin

g

OPEN SOURCE CONSULTING : 2016 1Q newsletter

20

Page 21: [오픈소스컨설팅 뉴스레터] 2016년 1분기

http://www.osci.kr

1. 증상 Unix to Linux(RHEL 6.5 x86_64) 마이그레이션 후 리눅스에서 어플리케이션 간헐적 crash 증상이 나타남. 유닉스 운영 시절과 동일한 어플리케이션 코드가 리눅스에서 실행되어 free() 함수(메모리 해제)가 작동할 시 abort()가 발생하여 어플리케이션이 crash ▼ gdb로 debug한 결과

2. 원인 free() 함수 작동 시 MALLOC_CHECK_ 에 의해 메모리 무결성 체크(sanity check)가 이루어집니다. sanity check는 비정상적인 메모리를 free하는 과정에서 메모리 손상 가능성을 검사하는 기능입니다. MALLOC_CHECK_ 값에 따른 sanity check가 이루어집니다. MALLOC_CHECK_는 glibc 2.3.3.까지 default 1이었고 glibc 2.3.4부터(RHEL 6.5는 glibc-2.12-1.132) default 3으로 변경되었습니다. MALLOC_CHECK_ 는 0~3 값을 설정할 수 있으며 각 값의 기능은 아래와 같습니다. 0: 아무것도 수행하지 않고, 프로그램 동작(프로그램 코드 수정을 권장) 1: 에러 메시지 출력 2: 에러 메시지 없이 프로그램 종료 3: 에러 메시지 출력하고 프로그램 종료

알아두면 유용한 팁 3 3.3. Unix to Linux(RHEL 6.5 x86_64) 마이그레이션 후 리눅스에서 어플리케이션 free() 함수 호출 시 간헐적 어플리케이션 crash 증상

Open

Sour

ce C

ons

ultin

g

*** glibc detected *** mxiv_uc_052xa10: double free or corruption (!prev): 0x0000000002404990 *** ======= Backtrace: ========= /lib64/libc.so.6[0x35c4c75e76] /lib64/libc.so.6[0x35c4c789b3] /proadm/tmax/lib64/libsvrucs.so(_request_from_clh_ucs+0x247)[0x7ff24043c3e6] /proadm/tmax/lib64/libsvrucs.so(+0x6929e)[0x7ff24048a29e] /proadm/tmax/lib64/libsvrucs.so(tpschedule+0x10)[0x7ff24048a351] mxiv_uc_052xa10(usermain+0xc9)[0x4042b6] /proadm/tmax/lib64/libsvrucs.so(_tmax_main+0xbd)[0x7ff24043b3bd] mxiv_uc_052xa10[0x415e1d] /lib64/libc.so.6(__libc_start_main+0xfd)[0x35c4c1ed5d] mxiv_uc_052xa10[0x402999] ======= Memory map: ========

OPEN SOURCE CONSULTING : 2016 1Q newsletter

21

Page 22: [오픈소스컨설팅 뉴스레터] 2016년 1분기

http://www.osci.kr

3. 해결 MALLOC_CHECK_ 은 환경변수 조정을 통해 변경 가능합니다. 아래와 같이 설정하여 sanity check에 따른 메모리 손상 탐지를 회피할 수 있습니다. 변경 후 어플리케이션을 재시작해야 합니다. ① Bourne 쉘의 경우 MALLOC_CHECK_=0; export MALLOC_CHECK_ ② Bash, ksh 쉘의 경우 export MALLOC_CHECK_=0 ③ csh, tcsh 쉘의 경우 setenv MALLOC_CHECK_ 0

알아두면 유용한 팁 3 3.3. Unix to Linux(RHEL 6.5 x86_64) 마이그레이션 후 리눅스에서 어플리케이션 free() 함수 호출 시 간헐적 어플리케이션 crash 증상

Open

Sour

ce C

ons

ultin

g

OPEN SOURCE CONSULTING : 2016 1Q newsletter

22