보안정보

[CVE-2021-28925] Nagios NA SQL Injection

침해사고분석팀 2021.04.23

 

 

 

 

Nagios Network Analyzer에 SQL Injection 취약점이 존재합니다.

 

Nagios Network Analyzer는 조직에 IT 인프라 및 네트워크 트래픽에 대한 확장된 통찰려글 제공하는 상용 등급의 netflow, sflow 데이터 분석 소프트웨어입니다.

 

해당 취약점은 /api/checks/read 경로의 o[col] 파라미터를 제대로 검증하지 않아 발생합니다. 원격의 공격자는 악의적으로 조작된 HTTP 요청을 전송하여 공격할 수 있습니다.

 

공격 성공 시, 정보 유출이 발생될 수 있습니다.

 

 

 

취약점 설명

 

NVD - CVE-2021-28925

CVSS v2.0 Severity and Metrics:

Base Score: 7.5 HIGH

 

 

[그림1. NVD 내역]

 

 

 

취약점 분석

 

해당 취약점은 /api/checks/read 경로의 o[col] 파라미터를 제대로 검증하지 않아 발생합니다.

 

 

 

[그림2. application/view/dashboard.php 코드]

 

 

application/view/dashboard.php에서 o[col] 파라미터가 /api/checks/read 로 GET,POST 요청을 전송할 때 사용되는 것을 확인할 수 있는데 해당 파라미터를 사용하는 구조를 확인하면 아래 사진과 같습니다.

 

 

 

[그림3. application/helpers/database_helper.php 코드]

 

 

코드에서 확인할 수 있듯이 col 파라미터를 사용할 때 검증을 거치지 않고 사용하는 것을 확인할 수 있습니다.

 

 

 

[그림4. application/helpers/database_helper.php 코드]

 

 

패치된 버전의 Nagios Network Analyzer를 확인하면 col 파라미터를 사용할 때 정규표현식 '[^ w]+| '을 preg_replace 함수와 함께 사용하여 검증합니다. 알파벳 대소문자/숫자/_(언더바)에 해당하지 않는 글자가 1개 이상 존재하거나 공백이 존재할 경우, 이를 탐지해 없애는 것을(''으로 교체) 확인할 수 있습니다.

 

취약한 버전은 Nagios Network Analyzer 2.4.3 아래의 버전들로 2.4.3 버전 이상 부터는 패치가 완료되었습니다.

 

 

 

공격 분석 및 테스트

 

CVE-2021-28925의 공격 패킷은 다음과 같습니다.

 

 

 

[그림5. 취약한 패킷]

 

 

 

취약점 대응 방안

 

1. 최신 버전 사용

 

해당 벤더사에서 발표한 최신의 버전으로 업데이트한다.

https://www.nagios.com/downloads/nagios-network-analyzer/change-log/

 

 

2. WINS Sniper 제품군 대응 방안

 

[5411] Nagios Network Analyzer read col SQL Injection