10점짜리 CVSS가 나왔다. 세상에나, 최근에 CVE Scrapper를 만든 필자로는 흥분되는 일이 아닐 수 없다. 우선 취약점에 대한 개요부터 이야기를 해보자
- CVE ID : CVE-2021-44228
- 통제 : Version update ( 2.15이상으로)
- 타겟 : Apache Log 4j 2(Verison : 2.2.0 ~ 2.14.1)
CVSS가 무엇이냐 하는 사람이 있을 것이다. 이게 무엇인지 알아보자
CVSS(Common Vulnerability Scoring System)
자... 취약점은 무엇인가, 취약점은 "정보시스템 내에서 손실 / 손상을 줄 수 있는 보안상의 구성적 약점"을 의미한다. 시스템을 개발하는 사람은 완벽하지 않고, 컴퓨터또한 완벽한 존재가 아니다. 따라서 무엇인가의 허점이 존재할 수 밖에 없고, 그것이 취약점(Vulerability)이다. CVSS는 그 접근성이나 위험도에 따라 0~10점까지 점수를 매긴것으로 다음과 같은 산정방법이 있다.
https://nvd.nist.gov/vuln-metrics/cvss/v3-calculator
그러니까 저 계산기에서 안좋은 쪽으로만 모든것을 선택하면, 10점이 나오고 하나라도 좋은쪽으로 스크롤을 1mm움직여도 10점은 안나온다.
그런데!!! 이번에 그 10점짜리가 또 나왔다.
Log 4j
전세계를 점령하고 있는 컴퓨터언어하면 무엇이 떠오는가 분야별로 다르겠지만, 여러분야에서 거대한 파이를 가진 언어가 있으니 바로 JAVA이다. JAVA라는 언어계통은 웹계발 / 어플리케이션 / 클라이언트 / 클라우드 / 네트워크등 호환이 안되는 분야를 찾기가 더 어려운 범용성의 끝판왕 언어이다. 웹서버 최강자인 APACHE재단에서 JAVA개발회사인 SUN을 인수이후 많은 JAVA개발자의 손끝에서 JAVA API(Application Programming interface) 가 탄생하였다.
프로그래밍개발에서 빼놓을 수 없는 기능하면 개발자의 영원한 친구 디버깅과 런타임의 영원한 친구 "로그"를 들 수 있겠다. 로그는 프로그램의 생명모든것을 기록하는 중요한 기능으로 고장탐구(Trouble Shooting) / 공격과 방어(Exploitation / defense) 등 무수한 정보를 제공하는 프로그램동작기록의 모든 것 이다. 어떠한 개발자는 로컬파일에 로그를 남길거고, 누군가는 프로그램콘솔에 로그를 남길것이지만, JAVA언어를 사용하는 곳에서 가장 간단하고 안전하게(ㅋ) 기능을 이용하는 방법은 제공하는 검증된 API를 사용하는 것이다. 이제 이번문제가 되는 API가 나오니 바로 JAVA의 로깅 API, Log4J이다.
따라서 이 Log4J를 자동으로 사용하는 다음과 같은 JAVA의 프레임워크 / 프로그램등은 자연스럽게 이번 취약점의 타겟이 된다.
- Apache Struts
- Apache Solr
- Apache Druid
- Apache Flink
- ElasticSearch
- Flume
- Apache Dubbo
- Logstash
- Kafka
- Spring-Boot-starter-log4j2
물론 영향을 받는 버전을 update 하는 것으로 우선적인 통제를 할 수 있다. mavon 설정 바까두장.
* 참고자료
Github CVE-2021-44228 Poc : https://github.com/tangxiaofeng7/CVE-2021-44228-Apache-Log4j-Rce
Apahce log4j overview : https://logging.apache.org/log4j/2.x/
Armory CVE-2021-44228 Analyze : https://www.armory.io/blog/cve-2021-44228-log4j-log4shell-an-analysis/
'정보보안-이론' 카테고리의 다른 글
[보안렉카] Apache Log4j 2.15, 2.16 업데이트에 따른 DOS? CVE-2021-45046, 45105 (0) | 2021.12.19 |
---|