Wins blog

글로벌 정보보안 파트너! Global Security  No.1 윈스는 국가대표 정보보안 기업에서 글로벌 강소기업으로 도약합니다.

보안 정보

앞 내용 보기 다음 내용 보기
취약점 정보[CVE-2020-13921] Apache SkyWalking SQL Injection
작성일 2020-10-15 조회 147

 

Apache SkyWalking에 Command SQL Injection 취약점이 존재합니다.

 

Apache SkyWalking은 마이크로 서비스, 클라우드 네이티브 및 컨테이너화된 애플리케이션을 위한 자동화된 고성능 모니터링 솔루션을 제공하는 애플리케이션 성능 모니터링(APM) 도구입니다.

 

해당 취약점은 GraphQL 프로토콜을 통한 Wildcard Alarm Search 쿼리에서 사용자 제공 입력값의 유효성 검사가 충분하지 못해 발생합니다. 

 

공격 성공 시, 공격자는 임의의 SQL 문을 실행할 수 있습니다.

 

 


취약점 설명

 

NVD - CVE-2020-13921

CVSS v2.0 Severity and Metrics:

Base Score: 7.5 HIGH

 

 

[그림1. NVD 내역]

 

 

 


취약점 분석

 

취약한 버전과 패치 버전을 비교하여 취약점 수정 내역에 대해 확인이 가능합니다.

 

Apache SkyWalking 8.0.1 이후 버전부터는 AlarmQueryDAO 클래스에서 keyword를 변수로 따로 저장함으로써 취약점을 해결하였습니다. 

 

[그림2. H2AlarmQueryDAO.java 패치 내역]

 

[그림3. MySQLAlarmQueryDAO.java 패치 내역]

 

 

 

공격 분석

 

취약점은 2020년 8월 5일에 공개되었습니다.

 

SkyWalking에서 Alarm Search 쿼리를 처리할 때 AlarmQueryDAO 클래스가 호출되고, 클래스 내의 getAlarm() 메소드가 사용자 입력 keyword를 기반으로 Alarm Search를 수행합니다.

 

이때 getAlarm() 메소드의 keyword 입력 값으로 (')을 포함한 SQL 문을 입력할 수 있어 취약점이 발생합니다.

 

영향을 받는 버전은 Apache SkyWalking 6.5.0 - 8.0.1로, 공격자는 악의적인 SQL 문을 전송하여 임의의 코드를 실행시킬 수 있습니다.

 

[그림4. 공격 패킷]

 

 

취약점 대응 방안

 

1. 최신 버전 사용

 

해당 벤더사에서 발표한 보안 권고문을 참고하여 패치를 적용합니다.


https://lists.apache.org/thread.html/ r6f3a934ebc54585d8468151a494c1919dc1ee2cccaf237ec434dbbd6@%3Cdev.skywalking.apache.org%3E

 

 

2. WINS Sniper 제품 군 대응 방안

 

*Sniper IPS

Apache SkyWalking getAlarm Command SQL Injection

 

*Sniper UTM

Apache SkyWalking getAlarm Command SQL Injection

 

*Sniper APTX

Apache SkyWalking getAlarm Command SQL Injection

 

첨부파일 첨부파일이 없습니다.
태그 CVE-2020-13921  Apache SkyWalking