우분투에서 Node.js 취약점 해결하기
Node.js는 Chrome의 강력한 V8 엔진을 기반으로 구축된 오픈소스 크로스 플랫폼 자바스크립트 런타임 환경입니다. 웹 브라우저 외부에서 자바스크립트 코드를 실행할 수 있어 실시간 애플리케이션과 데이터 스트리밍 서비스를 구축하는 데 널리 사용됩니다. 하지만 다른 소프트웨어와 마찬가지로 보안 취약점으로부터 자유롭지 않습니다. 최근에는 정책 메커니즘을 우회하거나 권한 상승으로 이어질 수 있는 여러 가지 취약점이 Node.js에서 발견되었습니다. 다행히도 이러한 취약점은 최근 우분투 보안 업데이트에서 해결되었습니다.
최근 업데이트에서 수정된 Node.js 취약점
CVE-2023-32002
The Module._load()
함수는 정책 메커니즘을 우회하여 특정 모듈에 대해 policy.json 파일에 제공된 정의 외부의 모듈을 요구할 수 있는 것으로 밝혀졌습니다. 이 취약점은 모든 활성 Node.js 릴리스 라인에서 정책 메커니즘을 사용하는 모든 사용자에게 영향을 미칩니다: 공격자는 사용자 또는 자동화된 시스템을 속여 특수하게 조작된 입력 파일을 열도록 유도하여 정책 메커니즘을 우회함으로써 이 취약점을 악용할 수 있습니다.
CVE-2023-32006
CVE-2023-32002와 유사하게, CVE-2023-32002는 module.constructor.createRequire()
함수는 정책 메커니즘을 우회하여 policy.json 정의 외부의 모듈 요구 사항을 허용할 수도 있습니다. 사용자 또는 자동화된 시스템이 특수하게 조작된 입력 파일을 열면 원격 공격자가 이 문제를 악용하여 정책 메커니즘을 우회할 수 있는 취약점이 Node.js 릴리스 16.x, 18.x 및 20.x에서 정책 메커니즘을 사용하는 모든 사용자에게 영향을 줍니다.
CVE-2023-32559
모든 활성 릴리스 라인(16.x, 18.x, 20.x)에 영향을 미치는 권한 상승 취약점이 Node.js에 존재합니다. 더 이상 사용되지 않는 API process.binding()
내부 모듈을 요구하여 정책 메커니즘을 우회하는 데 사용할 수 있으며, 궁극적으로 다음을 악용할 수 있습니다. process.binding('spawn_sync')
를 사용하여 policy.json 파일에 정의된 제한을 벗어난 임의의 코드를 실행할 수 있습니다.
CVE-2023-30590
Node.js 문서에서 생성키() 함수를 잘못 설명하여 이러한 API를 사용하는 애플리케이션에서 잠재적인 보안 문제를 일으킬 수 있습니다. 이 취약점은 다른 취약점처럼 직접 악용할 수 있는 것은 아니지만 개발자가 잘못된 설명서를 기반으로 안전하지 않은 솔루션을 구현하게 만들 수 있습니다.
CVE-2023-23920
Node.js가 특정 입력을 잘못 처리하여 신뢰할 수 없는 검색 경로 취약성을 초래하는 것으로 밝혀졌습니다. 이 결함으로 인해 공격자는 상승된 권한으로 실행하는 동안 ICU 데이터를 검색하고 잠재적으로 로드할 수 있습니다.
위험 완화
우분투 보안팀은 23.10, 22.04 LTS, 20.04 LTS, 18.04 ESM 등 다양한 버전의 우분투에서 Node.js 취약점을 해결하기 위한 업데이트를 발표했습니다. Node.js 환경을 보호하려면 Node.js 설치를 사용 가능한 최신 버전으로 업데이트하는 것이 중요합니다. Node.js 설치를 최신 버전으로 유지하면 이러한 특정 취약점뿐만 아니라 향후 발견되는 모든 보안 문제로부터도 보호할 수 있습니다.
결론
Node.js는 개발자를 위한 강력한 도구이지만 다른 기술과 마찬가지로 보안을 유지하려면 정기적인 유지 관리와 업데이트가 필요합니다. 최근 Ubuntu 보안팀에서 발견하여 패치한 취약점은 소프트웨어 관리에서 경계를 늦추지 않고 선제적으로 대응하는 것이 중요하다는 점을 강조합니다. Node.js 설치를 즉시 업데이트하면 애플리케이션과 시스템을 잠재적인 악용으로부터 보호하고 안전하고 탄력적인 시스템을 유지할 수 있습니다.
또한 라이브 패치를 사용하여 다운타임 없이 Ubuntu 시스템을 보호하는 것도 고려해 보세요. 기존 패치 방식과 달리 라이브 패치를 사용하면 재부팅 없이도 실행 중인 커널에 중요한 보안 패치를 적용할 수 있습니다. 이 접근 방식은 시스템의 다운타임을 최소화하여 시스템의 지속적인 운영을 보장하는 동시에 보안 태세를 개선합니다.
TuxCare의 KernelCare Enterprise는 우분투, 데비안, RHEL, CentOS, 알마리눅스, 록키 리눅스, 오라클 리눅스, 아마존 리눅스 등 모든 주요 리눅스 배포판에 대한 자동 라이브 패칭을 제공합니다.
패치 관련 질문을 TuxCare 보안 전문가에게 보내 Linux 패치 접근 방식을 현대화하는 방법에 대해 알아보세요.
출처 USN-6822-1, USN-6735-1