Node.js를 사용하는 시스템, 특히 보안 소켓에 오류 핸들러가 없는 경우
잘못된 HTTP/2 HEADERS 프레임을 보내어 시스템 충돌을 유발하는 원격 서비스 거부 공격
Node.js 버전을 최신으로 업데이트하고, 보안 소켓에 명시적인 오류 핸들러를 추가합니다.
로컬에서 Node.js 서버를 실행하고, Python 스크립트를 사용하여 HTTP 요청을 보내서 응답 코드를 확인합니다. 정상적으로 동작한다면 양호한 결과를 출력하고, 그렇지 않다면 취약한 결과를 출력합니다. 이 스크립트를 실행하기 위해서는 requests와 json 라이브러리가 필요합니다.
import requests
import json
try:
response = requests.get('http://localhost:3000', headers={'User-Agent': 'Mozilla/5.0'})
if response.status_code == 200:
print(json.dumps({"result": "양호", "reason": "Node.js 서비스가 정상적으로 동작합니다."}))
else:
print(json.dumps({"result": "취약", "reason": "Node.js 서비스가 예상과 다르게 동작합니다."}))
except Exception as e:
print(json.dumps({"result": "취약", "reason": str(e)}))
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H