피드로 돌아가기
Node.js 10.15.2 (LTS)
Node.js BlogNode.js Blog
Security

Node.js 10.15.2가 HTTP keep-alive 연결에 headersTimeout을 일관되게 적용하여 Slowloris 공격 방지

Node.js 10.15.2 (LTS)

2019년 2월 28일5intermediate

Context

Slowloris 공격은 HTTP keep-alive 연결을 유지한 채 의도적으로 천천히 요청을 전송하여 서버 리소스를 고갈시키는 Denial of Service 공격이다. Node.js의 기존 구현에서는 keep-alive 모드의 연결에 headersTimeout이 일관되게 적용되지 않아 이 취약점에 노출되어 있었다.

Technical Solution

  • HTTP 및 HTTPS 연결의 keep-alive 모드에서 server.headersTimeout 설정값을 일관되게 적용하는 로직 추가
  • Slowloris 공격으로부터의 방어 강화: 설정된 타임아웃 시간 내에 헤더 수신이 완료되지 않으면 연결 종료
  • CVE-2019-5737 취약점 패치 적용

Impact

아티클에 정량적 수치가 제시되지 않음.

Key Takeaway

HTTP 타임아웃 설정은 모든 연결 상태(초기 요청, keep-alive 재사용)에 동일하게 적용되어야 공격자의 느린 전송 전략에 대비할 수 있다.


Node.js 기반 HTTP 서버를 운영하는 팀은

1

0.

1

5.2 이상으로 즉시 업그레이드하고, server.headersTimeout 값을 명시적으로 설정(기본값 40초)하여 Slowloris 공격에 대한 기본 방어선을 구축할 수 있다.

원문 읽기