지난 주에 저희는 블로그 업계 전반의 보안 취약성에 대응하여 Couchbase 데이터 플랫폼 보안에 대한 권장 사항을 제공합니다. 저희는 패치된 OS 바이너리로 인한 잠재적인 성능 영향을 계속 분석했으며, 이 블로그 게시물에 자세한 평가 내용이 담겨 있습니다.
이전 블로그에서 언급했듯이 이러한 공격이 가능하려면 공격자가 피해 프로세스와 동일한 호스트 및 프로세서에서 악성 프로세스를 실행할 수 있어야 합니다. 제어된 프로덕션 환경에서는 실행 중인 애플리케이션에 대한 제한이 있기 때문에 이 공격이 발생할 위험은 낮습니다.
머신에 대한 액세스를 제어할 수 있는 경우 필요하지 않을 수 있습니다(해당되는 경우)를 사용하여 완화 기능을 활성화하고 성능 저하가 발생하지 않도록 커널 매개변수를 설정할 수 있습니다.
영향 분석
이러한 공격을 완화하기 위해 현재 사용 가능한 바이너리로 OS를 패치하면 CPU 사용률이 증가할 수 있습니다. 예를 들어, 테스트 중 한 번은 CPU 사용량이 약 20% 증가했습니다. (버킷 통계를 확인하려면 웹 콘솔 모니터링 페이지에서 확인하세요.)
성능에 미치는 영향을 평가하기 위해 다음 테스트를 실행했습니다.
- 시나리오 'A' - 카우치베이스 클러스터는 프로덕션 배포를 위한 추가 용량으로 충분한 크기입니다.
- 시나리오 'B' - 카우치베이스 클러스터는 기존 부하를 처리할 수 있는 적절한 크기이지만 추가 용량을 사용할 수 없습니다.
워크로드
혼합 워크로드(읽기/쓰기 50/50)의 YCSB 워크로드 A.
시나리오 A
4노드, 버킷 2개, 인텔 프로세서 E5-2630 v4(하이퍼스레드 코어 20개, 64GB RAM), Couchbase 클러스터에서 YCSB 워크로드 A 실행.
패치를 적용하지 않은 'CentOS 7 커널'과 적용했을 때의 성능을 비교했습니다. 3.10.0-514.2.2' 및 'CentOS 7 커널 3.10.0.693.11.6' 버전으로 패치했습니다.
결과 - 아래 그래프는 다음을 보여줍니다. CPU 사용률 는 패치된 머신에서 약 30% 증가했습니다. 그러나 성능에 미치는 영향은 처리량 그리고 지연 시간 는 5% 미만이었습니다. 이 머신들은 추가 CPU 용량을 늘릴 수 있었기 때문입니다.
|
패치되지 않음 - CentOS 7 커널 3.10.0-514.2.2 (in μs) | 패치 - CentOS 7 커널 3.10.0-693.11.6 (in μs) | |
읽기 지연 시간 | 평균 | 187 | 196 |
95위 | 213 | 228 | |
99위 | 1,497 | 1,525 | |
쓰기 지연 시간 | 평균 | 209 | 219 |
95위 | 236 | 254 | |
99위 | 1,583 | 1,606 |
시나리오 B
카우치베이스 클러스터에서 YCSB 워크로드 A 실행 - 3노드, 버킷 1개, 인텔 프로세서 E5-2680 v3(12코어, 64GB RAM).
결과: 아래 그래프는 다음을 보여줍니다. 처리량 그리고 지연 시간 이 영향을 받는 이유는 패치된 컴퓨터에서 CPU가 최대 사용률에 가깝게 실행되고 있기 때문입니다.
|
패치되지 않음 - CentOS 7 커널 3.10.0-514.2.2 (in μs) | 패치 - CentOS 7 커널 3.10.0-693.11.6 (μs 단위) | |
읽기 지연 시간 | 평균 | 847 | 1,318 |
95위 | 2,627 | 4,093 | |
99위 | 7,207 | 9,167 | |
쓰기 지연 시간 | 평균 | 879 | 1,352 |
95위 | 2,703 | 4,163 | |
99위 | 7,315 | 9,271 |
결론
처리량 및 지연 시간에 미치는 영향을 최소화하기 위해 OS 패치를 적용하기 전에 카우치베이스 클러스터의 크기를 다시 평가하여 추가 CPU 용량을 확보하는 것이 좋습니다.