공유할 서비스 선택

TECH


TECH

OS RHEL7.9 RHEL8.8 커널 업데이트 후 성능 이슈가 발생했습니다.

페이지 정보

작성자 OSworker 아이디로 검색 전체게시물 댓글 0건 조회 47회 좋아요 0회 작성일 24-12-14 21:09

본문

안녕하세요. 

 

오늘은 고객에게 있던 이슈를 공유하고자 합니다. 

 

RHEL7.4를 사용하다가 RHEL7.9로 업데이트를 한후 APP의 성능 이슈가 발생하였는데, 그 원인을 알 수 없었던 것이였습니다. 

그래서 그것을 찾다가, 비슷한 사례가 있어서 아래와 같이 안내하였습니다. 

 

 

1. 문제점 

 

  RHEL7. 4를 사용하다가 최근 ELS 지원을 받기 위해 RHEL7.9로 업데이트 하였는데, APP 성능이 떨어진 것을 확인할수있었습니다. 

  커널에 어떠한 변화가 있는지 확인 부탁드립니다. 

 

  내부적으로 확인했을때는 다른 RHEL7.9와의 차이점은 grub 에 보안취약점이 비활성화를 안해놨다는 것입니다. 

  (spectre_v2=off nopti spec_store_bypass_disable=off l1tf=off mds=off nospectre_v1 tsx_async_abort=off mmio_stale_data=off retbleed=off)

 

 

2. 원인 분석

 

   저희가 찾아보니 아래와 같이 보안취약점이 적용되는 시점이 있었습니다. 

 

1)RHEL 7버전에서는 커널  "kernel-3.10.0-1160.76.1" 부터 보안취약점 완화가 적용되었고, 

   RHEL8 에서 mmio_stale_data 완화는 8.7 부터 적용되었습니다. 

 

                     Errata                                패치 커널                                         발표일자

RHEL7 : RHSA-2022:5937 /  kernel-3.10.0-1160.76.1.el7.x86_64.rpm / 2022년 8월 9일

RHEL8 : RHSA-2022:6460 /  kernel-4.18.0-372.26.1.el8_6.x86_64.rpm /  2022년 9월 13일

 

 

2) RHEL7는 커널 "kernel-3.10.0-1160.80.1" 부터 보안취약점 완화가 적용되었고, 

   RHEL8는  8.7 커널 부터 retbleed  보안취약점 완화가 적용되었습니다. 

                     Errata                                패치 커널                                         발표일자

RHEL7 : RHSA-2022:7337 /  kernel-3.10.0-1160.80.1.el7.x86_64.rpm / 2022년 11월 3일

RHEL8 : RHSA-2022:7110 /  kernel-4.18.0-372.32.1.el8_6.x86_64.rpm / 2022년 10월 25일

 

 

이말은 "mmio_stale_data"와 " retbleed " 의 보안취약점이 위 커널 부터 자동적으로 완화되어져서 커널이 나왔다는 것입니다. 

그리고 이 완화로 인해 성능에 영향을 줄수있다고 KCS에서도 있습니다. 

 

- Is there kernel parameter to control the optional mitigations for CPU vulnerabilities that is architecture independent?

  . https://access.redhat.com/solutions/4155131

 

- Performance impact observed after Red Hat Enterprise Linux upgrade due to Retbleed CVE vulnerability mitigations

 . https://access.redhat.com/solutions/7011413

 

 

3. 해결 방안

 

   그럼 이문제를 해결 하기 위해서는 고객분께서 힌트를 준것과 같이 grub에 보안취약점 을 비활성화 하는 내용을 넣어보는것입니다. 

 

  1)   spectre_v2=off nopti spec_store_bypass_disable=off l1tf=off mds=off nospectre_v1 tsx_async_abort=off mmio_stale_data=off retbleed=off

 

   or

 

  2)  mitigations=off

 

------------------------------------------------------------------

> mitigations 에 대한 설명 

 

mitigations = [X86,PPC,S390,ARM64]

이 매개변수를 사용하면 CPU 취약점에 대한 선택적 완화 기능을 제어할 수 있습니다. 이는 각각 기존 아키텍처별 옵션 집계입니다.

 

off: 모든 선택적 CPU 완화를 비활성화합니다. 이로 인해 시스템 성능이 향상되지만 사용자를 여러 CPU 취약점에 노출할 수도 있습니다.

 

다음과 같습니다. nopti [X86,PPC], kpti=0 [ARM64], nospectre_v1 [X86,PPC], nobp=0 [S390], nospectre_v2 [X86,PPC,S390,ARM64],, spectre_v2_user=off [X86], spec_store_bypass_disable=off [X86,PPC], ssbd=force-off [ARM64], l1tf=off [X86], mds=off [X86], tsx_async_abort=off [X86], kvm.nx_huge_pages=off [X86], no_entry_flush [PPC], no_uaccess_flush [PPC], mmio_stale_data=off [X86].

예외: kvm.nx_huge_pages =force 옵션이 지정된 경우 kvm.nx_huge_pages에는 적용되지 않습니다.

------------------------------------------------------------------

 

 

4. 테스트 및 확인 

 

 - 위에서 설명한대로  mitigations=off  할경우 대부분의 보안취약점이 노출. 즉 비활성화 되어 보안취약점에 약해지게 표현이됩니다. 

 

> mitigations=off 할경우 

 

# cat /sys/devices/system/cpu/vulnerabilities/*

Not affected

KVM: Vulnerable

Mitigation: PTE Inversion; VMX: vulnerable, SMT disabled

Vulnerable; SMT disabled

Vulnerable

Vulnerable

Not affected

Vulnerable

Vulnerable: Load fences, __user pointer sanitization and usercopy barriers only; no swapgs barriers

Vulnerable

Not affected

Vulnerable

 

 

5. 결과 

 

고객분은 서버가 폐쇄망이라, 보안취약점 적용도 중요하지만, 성능에 이슈가 있어 mitigations=off 을 적용하였고, 커널업데이트후에

생겼던 성능이슈는 해결 되었다고 합니다. 

 

만약 커널 업데이트 후에 성능 이슈가 있었다면 위 사례를 적용해보시는것을 추천드립니다. 

 

 

감사합니다. 

 

 

 

>>>>>>>   추가 설명 글 

 

1. mmio_stale_data = [X86,INTEL]

이 매개변수를 사용하여 Processor Memory-mapped I/O (MMIO)usrle Data 취약점의 완화 조치를 제어할 수 있습니다.

 

프로세서 MMIOusrle Data는 MMIO 작업 후에 데이터를 노출할 수 있는 취약점의 클래스입니다. 노출된 데이터는 메타데이터 서버(MDS) 및 TAM(Transactional Asynchronous Abort)의 영향을 받는 것과 동일한 CPU 버퍼에서 시작되거나 종료될 수 있습니다. 따라서 MDS 및 TAA와 유사하게 완화 조치는 영향을 받는 CPU 버퍼를 지우는 것입니다.

 

사용 가능한 옵션은 다음과 같습니다.

 

full: 취약한 CPU에서 완화 기능을 활성화

full,nosmt: 완화 기능을 활성화하고 취약한 CPU에서 SMT를 비활성화합니다.

off: 무조건 완화를 비활성화합니다.

MDS 또는 TAA 영향을 받는 시스템에서 mmio_stale_data=off 는 동일한 메커니즘으로 이러한 취약점이 완화되므로 활성 MDS 또는 TAA 완화 방법으로 방지할 수 있습니다. 따라서 이 완화 기능을 비활성화하려면 mds=off 및 tsx_async_abort=off 를 지정해야 합니다.

이 옵션을 지정하지 않으면 mmio_stale_data=full 과 동일합니다

 

 

2. retbleed = [X86]

이 매개변수를 사용하면 반환 지침(RETBleed) 취약점을 사용하여 Arbitrary Speculative Code Execution의 완화 기능을 제어할 수 있습니다. 사용 가능한 옵션은 다음과 같습니다.

 

Off: no mitigation

auto: 완화 기능을 자동으로 선택합니다.

auto,nosmt: 전체 완화 (STIBP없이 1 이상 만)에 필요한 경우 완화 기능을 자동으로 선택합니다.

ibpb: 기본 블록 경계에 대한 짧은 추측 창도 완화합니다. 안전성, 가장 높은 성능 영향

unret: 강제로 교육되지 않은 반환 thunks를 활성화하며 AMD f15h-f17h 기반 시스템에서만 유효합니다.

unret,nosmt:ret 옵션과 마찬가지로 STIBP를 사용할 수 없을 때 SMT를 비활성화합니다.

 

auto 옵션을 선택하면 런타임에 CPU에 따라 완화 방법이 선택됩니다.

 

이 옵션을 지정하지 않으면 retbleed=auto 와 동일합니다.

 

참고링크: https://docs.redhat.com/ko/documentation/red_hat_enterprise_linux/9/html/9.1_release_notes/kernel_parameters_changes#kernel_parameters_changes

 

 

 

 

 

 

 

 

 

 

댓글목록

등록된 댓글이 없습니다.

TECH 목록
번호 제목 작성자 작성일 조회수
열람중 OS OSworker 아이디로 검색 전체게시물 12-14 48
열람중
RHEL7.9 RHEL8.8 커널 업데이트 후 성능 이슈가 발생했습니다.

카테고리 : OS

48 0
작성자 : OSworker 24/12/14
233 OS OSworker 아이디로 검색 전체게시물 11-27 178
Red Hat Enterprise Linux 9에서 root 사용자로 SSH 로그인 활성화 하는 방법

카테고리 : OS

178 0
작성자 : OSworker 24/11/27
232 OS OSworker 아이디로 검색 전체게시물 11-17 221
RHEL 9.5 가 11월 12일에 릴리즈 되었습니다. 간략하게 살펴보시죠~

카테고리 : OS

221 0
작성자 : OSworker 24/11/17
231 OS OSworker 아이디로 검색 전체게시물 11-10 212
어떤 프로세스 어떤 이유로 인해 성능에 문제가 생겼을때 perf로 그 문제를 찾아보세요.

카테고리 : OS

212 0
작성자 : OSworker 24/11/10
230 OS OSworker 아이디로 검색 전체게시물 10-31 243
AI에 대한 관심이 많습니다. 혹시 RHEL AI에 대해 들어보셨나요?

카테고리 : OS

243 0
작성자 : OSworker 24/10/31
229 OS OSworker 아이디로 검색 전체게시물 10-24 259
Fedora와 Red Hat Enterprise Linux의 차이점

카테고리 : OS

259 0
작성자 : OSworker 24/10/24
228 OS OSworker 아이디로 검색 전체게시물 10-11 299
audit 로그에 저장된 time 을 날짜/시간 으로 변경하여 보는법

카테고리 : OS

299 0
작성자 : OSworker 24/10/11
227 OS OSworker 아이디로 검색 전체게시물 09-29 413
[보안취약점]"RHSB-2024-002 - OpenPrinting cups-filters"에 대해 설명드리고자합니다.

카테고리 : OS

413 0
작성자 : OSworker 24/09/29
226 OS OSworker 아이디로 검색 전체게시물 09-25 560
누가 설정파일을 수정했는지 알고싶어요? 그럼 audit를 사용해보세요~!

카테고리 : OS

560 0
작성자 : OSworker 24/09/25
225 OS OSworker 아이디로 검색 전체게시물 09-15 397
RHEL6.10 앞으로 어떻게 되나요? 아직도 RHEL6버전을 사용하신다구요?

카테고리 : OS

397 0
작성자 : OSworker 24/09/15
Total 234건
게시물 검색

주식회사 클럭스| 대표 : 이찬호| 사업자등록번호 : 107-87-27655
주소 : 서울특별시 영등포구 국회대로 800, 여의도파라곤
E-mail : sales@chlux.co.kr
Copyright © 클럭스 chlux.co.kr All rights reserved.
상단으로Top