1. Ingress NGINX Controller

- Ingress란 클러스터 외부에서 내부로 접근하는 요청들을 어떻게 처리할지 정의해둔 규칙들의 모음 [1][2][3][4]
- Ingress Controller란 Ingress 리소스에 정의된 규칙을 읽고, 해당 규칙에 따라 트래픽을 라우팅 [1][2][3][4]
Ingress NGINX Controller란 NGINX를 역방향 프록시 및 로드 밸런서로 사용하는 Kubernetes용 Ingress Controller [5][6]

2. 주요내용 [7]

- Ingress NGINX Controller의 구조적 설계 문제로 공격자가 악의적인 Ingress 객체를 전송하여 임의의 NGINX 설정을 주입할 수 있음

> 취약점 악용에 성공 시 클러스터 내 모든 시크릿 노출, 원격 코드 실행 등이 가능

 

- Admission Controller는 사용자의 요청을 변조(Mutate)검증(Validation)을 통해 요청의 승인 여부를 결정

> 기본적으로 인증 없이 누구나 접근 가능한 상태로 배포되어 네트워크를 통해 액세스 가능

※ 변조(Mutate) : 사용자의 요청을 사전 정의된 변형 규칙에 따라 요청을 변경

검증(Validation) : 요청이 기준에 맞는지 확인하여 해당 요청을 승인 또는 거절

 

- Admission Controller는 Admission Webhook Endpoint를 통해 Kubernetes API 서버와 통신

> AdmissionReview 구조로 통신

> 일반 적으로 Kubernetes API 서버만 AdmissionReview 요청을 보내야 하지만, Admission Controller는 누구나 접근 가능하기 때문에 임의의 AdmissionReview 요청을 전송할 수 있음

[사진 1] Admission Controller

 

- Ingress NGINX Controller는 AdmissionReview 요청을 처리할 때 템플릿 파일과 제공된 Ingress 객체를 기반으로 임시 NGINX 구성 파일을 생성

> 임시 파일 생성 후 nginx -t 명령을 사용해 임시 구성 파일의 유효성을 테스트

> 이때, 적절한 검증이 없어 조작된 Ingress 객체를 전송해 임의의 NGINX 구성을 삽입할 수 있음

[사진 2] nginx -t

2.1 취약점

2.1.1 CVE-2025-24514 [9]

- authreq 파서는 인증 관련 주석을 처리하는 역할을 수행

> 주석에는 URL을 포함하는 auth-url 필드를 설정해야 하며, 해당 값을 적절한 검증 없이 $externalAuth.URL에 포함

> ngnix -t 명령을 실행할 때 명령에 포함되어 실행

2.1.2 CVE-2025-24513 [10]

- 부적절한 입력 값 검증으로 Directory Traversal 공격이 가능

> 이를 통해 DoS 또는 제한된 비밀 객체 노출 발생 가능

2.1.3 CVE-2025-1097 [11]

- authtls 파서는 auth-tls-match-cn 주석을 CommonNameAnnotationValidator를 사용하여 필드 값을 검증

> auth-tls-match-cn 주석은 CN=으로 시작

> 이를 통해 임의의 코드 실행이 가능

2.1.4 CVE-2025-1098 [12]

- mirror-targetmirror-host Ingress 주석을 사용하여 nginx에 임의의 구성을 삽입할 수 있음

> 이를 통해 임의의 코드 실행이 가능

2.1.5 CVE-2025-1974 [13]

- 특정 조건 하에서 Pod Network에 액세스할 수 있는 인증되지 않은 공격자가 임의 코드 실행이 가능

3. 대응방안

- 벤더사 제공 보안 업데이트 적용 [14][15][16][17]

제품명 영향받는 버전 해결 버전
Ingress NGINX Controller 1.11.0 미만 1.11.5
1.11.0 이상 ~ 1.11.4 이하
1.12.0 1.12.1

 

- 추가 모니터링 및 필터 적용

> Admission Controller가 Kubernetes API 서버에서만 접근 가능하도록 접근 제한

> Admission Webhook Endpoint가 외부에 노출되지 않도록 설정

> Admission Controller 컴포넌트가 불필요할 경우 비활성화

> Helm을 사용하여 ingress-nginx를 설치한 경우 controller.admissionWebhooks.enabled=false로 설정하여 재설치
> 수동으로 ingress-nginx를 설치한 경우

① ValidatingWebhookConfiguration에서 ingress-nginx-admission 삭제

② ingress-ngin-controller 컨테이너의 Deployment 또는 Daemonset에서 '--validating-webhook' 인수 삭제

4. 참고

[1] https://kubernetes.io/ko/docs/concepts/services-networking/ingress/
[2] https://kubernetes.io/ko/docs/concepts/services-networking/ingress-controllers/
[3] https://somaz.tistory.com/120
[4] https://somaz.tistory.com/324
[5] https://github.com/kubernetes/ingress-nginx
[6] https://kubernetes.github.io/ingress-nginx/
[7] https://www.wiz.io/blog/ingress-nginx-kubernetes-vulnerabilities
[8] https://velog.io/@utcloud/k8s-Admission-Controller
[9] https://github.com/kubernetes/kubernetes/issues/131006
[10] https://github.com/kubernetes/kubernetes/issues/131005
[11] https://github.com/kubernetes/kubernetes/issues/131007
[12] https://github.com/kubernetes/kubernetes/issues/131008
[13] https://github.com/kubernetes/kubernetes/issues/131009
[14] https://kubernetes.github.io/ingress-nginx/deploy/upgrade/
[15] https://github.com/kubernetes/ingress-nginx/releases/tag/controller-v1.11.5
[16] https://github.com/kubernetes/ingress-nginx/releases/tag/controller-v1.12.1
[17] https://www.boho.or.kr/kr/bbs/view.do?bbsId=B0000133&pageIndex=1&nttId=71698&menuNo=205020

1. 개요

- 스마트폰을 통한 비대면 금융 서비스의 특성상, 금융 서비스를 이용하는 주체가 실제 권한을 가진 주체인지 확인하는 것이 매우 중요

- 인증 수단 자체에 대한 보안성은 확보했더라도, 인증 절차의 검증이나 절차 간의 연계에 대한 보안성 확보 등은 강구해나가야 할 과제

- 최근 이러한 인증 수단 및 절차의 허점을 이용한 금융 서비스의 명의 도용 및 인증 우회 피해 사례가 증가해 인증 서비의 보안이 더욱 중요

- 금보원은 간편 비밀번호·생체인증 등 다양한 금융 인증 체계를 해커의 관점에서 심층 분석한 ‘레드아이리스 인사이트 리포트 : Campaign Poltergeist’를 발간 [1]

※ 내용의 민감성을 고려하여 요약본 게시

2. 주요 내용

- 인증 수단 자체의 보안성이 강화되었더라도, 인증 절차의 설계와 구현 과정의 미흡함은 공격자에게 취약점을 노출하는 원인이 됨

2.1 인증 수단 및 절차 분석

- 서비스 이용 주체의 명의를 확인하는 데 사용되는 인증 수단의 분류

분류 인증 수단 및 설명
지식 기반 - 인증 요청자의 지식으로써 알고 있는 정보를 통해 인증을 수행
- 별도 절차 없이 지식과 기억에 의존하여 인증하므로 간편하게 인증 절차를 수행 가능
- 인증 정보를 잊어버린 경우를 대비한 재발급 절차 마련 및 안전한 인증 절차를 거치도록 해야 함
> ID/PW, 거래비밀번호, 계좌비밀번호, 문답식, 패턴 등
소지 기반 - 인증 요청자가 보유하고 있는 매체나 기기를 황용하여 인증을 수행
- 지식 기반 인증 비밀번호가 유출되어도 소지 기반 인증을 2-Factor 인증 수단으로 활용해 보다 안전한 설계 가능
- 단말이나 매체를 분실할 수 있으므로 안전한 재발급 및 재등록 절차를 마련해야 함
> SMS/ARS, 이메일, OTP(One-Time-Password)/M-OTP(Mobile-OTP), 비대면 실명인증(신분증 인증), 타행/타사 계좌 인증(1원 인증), 앱 기반 인증, 생체인증 등
지식 기반 + 소지 기반 - 보유한 지식과 매체 모두를 동시에 활용하여 인증하는 방식
- 둘 중 하나만 유출되었을 때 공격자가 인증 과정을 우회할 수 없도록 더 안전한 인증 과정 설계 가능
- 망각이나 분실에 대비하여 안전한 재발급/재등록 절차를 마련해야 함
> 공동인증서, 민간인증서, 기기 종속 인증(간편인증서), 신용카드 인증

 

- 인증 절차 분석

> 인증 수단 자체가 가지는 안정성도 중요하나, 이를 어떻게 절차적으로 설계하고 구현하는지가 취약점을 결정짓는 핵심 요소

[사진 1] 인증 절차 요약

인증 절차 단계 설명
인증 정보 획득 - 사용자가 인증을 위해 필요한 정보를 획득하는 단계
인증 정보 요청 - 사용자가 획득한 인증 정보를 인증 기관이나 인증 요청 기관에 전달하는 단계
- 인증 정보의 성격에 따라 네트워크 구간 암호화와 함께 종단간 암호화(E2E Enctyption)을 적용해 전달
외부 기관 인증 - "인증 정보 요청 단계 이전"이나 "인증 정보 검증 단계"에서 클라이언트나 서버가 외부 기관을 통해 인증을 수행하는 단계
- 인증 정보를 외부 기관에 전달하여 응답으로 받은 값을 가져오고, 해당 값을 통해 인증 절차의 정상 수행 여부를 판단
> 외부 기관을 통해 인증을 수행할 때는 금융 기관이 직접 구현하지 않고 외부 기관이 제공하는 코드, 모듈, API 등을 활용
> 인증 절차를 구현해야 하는 플랫폼별 언어가 다양해 외부 기관 인증의 구현체 코드를 각 언어에 맞춰 구현해야 하는 부담
인증 정보 검증 - 사용자가 전달한 인증 정보에 해당하는 주체와 서비스를 요청한 주체의 일치 여부를 검증
인증 결과 응답
및 서비스 요청
- 서버에서 처리한 인증 결과를 사용자에게 전달하는 단계
> 인증 결과값을 받아 다음 인증 단계 또는 서비스 이용을 위한 요청을 전송
> 인증 결과값은 프록시 도구로 변조가 가능하므로 인증 결과의 클라이언트단 검증은 신뢰해선 안됨

 

2.2 인증 우회 취약점 분석

- 인증 절차는 일반적으로 인증 정보 획득, 요청, 검증, 응답 및 서비스 요청 단계로 구성

> 인증 요청자는 클라이언트, 인증 검증자는 서버로써 인증 정보를 주고 받으며 전체적인 인증 절차를 수행

> 외부 기관과 연계하여 인증을 수행하는 경우, 인증 정보 획득, 검증 단계에서 클라이언트 혹은 서버가 외부 기관과 통신하여 인증 절차를 진행

인증 절차 단계 취약점 명 설명
인증 정보 획득 공격자 명의 인증 수단으로 인증 수행
(인증 정보 획득 시)
- 인증 절차 수행을 위한 서비스가 완전히 모듈화되어 있고, 인증 절차 진행을 위해 사용자 정보를 웹 요청(Request) 파라미터를 통해 받는 경우
> 인증 절차 진행을 위한 사용자 정보를 공격자 명의로 변조하여 인증 절차를 진행할 수 있음
> 인증 절차가 정상적으로 진행됐는지 유효성만 판단하는 경우 사용자 명의가 다르더라도 인증 절차를 통과되었다고 간주하여 인증 결과가 정상으로 반환되는 것을 악용 가능
타 사용자 인증 정보 획득 - OSINT 활용, 기유출된 인증 정보 등을 통해 타 사용자의 인증 정보를 획득할 수 있는 공격
> 인증에 사용되는 여러 인증 정보는 여러 인증 수단에서 공통적으로 사용되는 경우가 많음
> 또한, 그 값이 변하지 않는 경우가 많기 때문에 인증 정보를 획득함으로써 다른 모든 인증 우회 공격 시나리오의 시작이 되는 경우가 많음
피해자 명의 인증 수단 임의 발급/등록/변경 - 인증에 필요한 지식 정보, 인증 매체 등을 피해자의 의사와 관계없이 공격자가 임의로 발급/등록/변경할 수 있는 공격
> 다른 취약점이나 공격으로 획득한 피해자 정보를 통해 정상적인 절차를 밟아 인증 수단을 발급/등록/변경
> 인증 수단 외에도 회원 정보에 등록된 이메일, 휴대전화 등을 공격자 명의로 변경하여 해당 수단을 이용하는 인증 절차 우회 가능
인증 정보 획득시 응답값에 인증 정보 노출 - 서버로부터 인증 정보 획득을 위한 요청 응답값에 인증 정보가 노출되어 공격에 악용
> 구현상의 실수로 인증 정보 그 자체를 응답으로 넘겨주는 경우가 있음
인증 정보 요청 공격자 명의 인증 수단으로 인증 수행
(인증 정보 요청 시)
- 처음 인증 정보 요청은 피해자 명의로 했으나, 실제 인증 정보를 서버에 전달할 때 공격자 명의 인증 수단으로 진행하는 공격 방식
> 인증 정보를 보낼 때 인증 수단에 대한 정보를 함께 보낸다면 그 정보를 공격자 명의로 변조하거나 공격자 명의의 인증 정보를 보냄
> 모듈화 된 인증 서비스로 인해 본 서비스 요청 처리 전 인증 수행 및 명의 검증 절차가 정확히 지켜지지 않아 발생하는 취약점
인증 정보 변조 및 생성 - 인증 수단을 통해 획득한 인증 정보를 공격자가 유추할 수 있거나 생성해낼 수 있는 경우, 인증의 정상 수행 여부와 상관 없이 인증 정보를 요청할 때 정보를 변조 또는 생성하여 서버를 속일 수 있음
> 인증 결과를 서버에서 검증/처리하지 않고, 클라이언트 단에서 인증 정보 검증 결과를 받아 그 결과를 다시 서버에 요청하고 인증의 정상 수행 여부를 처리하는 경우 발생 가능
테스트 페이지/테스트 파라미터를 통한 인증 - 테스트 용도로 만들어 둔 페이지나, 특수한 파라미터를 받았을 때 어떤 인증 요청이 와도 항상 정상적으로 인증된 것처럼 인식하는것을 악용
> 개발/테스트 시 복잡한 인증 절차를 모두 수행하기 어려워 항상 인증 절차를 통과하도록 만들어 둔 테스트 인증 절차가 배포 과정에서 운영 코드에 들어가 발생
외부 기관 인증 클라이언트 단에서 외부 기관 인증 정보 검증 - 외부 기관 인증 요청 및 결과에 대한 검증을 서버에서 수행하지 않고 클라이언트 단에서 수행할 때 발생
> 공격자는 앱 변조, 응답값 변조, 결과 변도 증을 통해 인증 절차를 우회할 수 있음
> 서버단에서의 인증 절차 수행 여부 검증이 없기 때문에, 단순히 최종 서비스 요청 패킷을 변조하여 전송하는 것만으로도 목적을 이룰 수 있음
외부 기관 접근 권한 획득 - 인증 절차에 사용되는 외부 기관의 접근 권한이 탈취되었을 때 발생하는 취약점
> 슈퍼앱(여러 금융 계열사의 서비스를 하나의 앱으로 서비스)을 운영하는 금융기관이 늘어남에 따라, 앱 내 법인이 다른 동일 그룹 계열사 기관을 지정하여 타행/타사 계좌 인증을 우회할 수 있음
취약한 인증 결과 응답값 오용 - 외부 기관으로 부터 인증을 수행하고 전달 받은 결과값이 단순히 인증 결과만을 반환하거나 변조/생성될 수 있는 값일 경우 인증 우회에 사용할 수 있음
> CI 값의 경우 DI 값과 달리 사용자별로 변하지 않는 고유한 값이기 때문에 다른 기관에서 CI 값이 유출되었을 시 이를 이용해 인증 절차를 우회할 수 있음
※ CI(Connecting Information, 연결 정보) : 특정 개인을 고유하게 식별할 수 있도록 연결하는 정보
※ DI(Duplicated Information, 중복 정보) : 특정 서비스 또는 기관에서 동일한 사용자가 중복 가입하는 것을 방지하기 위해 활용하는 정보
인증 정보 검증 인증 절차 정상 수행 여부 미검증 - 하나 혹은 여러 인증 수단의 각 절차가 정상적으로 진행되지 않았을 때 서버에서 인증 절차의 정상 수행 여부를 검증하지 않는다면 인증 절차와 관계 없이 공격자가 요청한 서비스가 정상 처리 될 수 있음
> 여러 인증 수단을 복합적으로 사용하는 경우 각 인증 수단에 따른 인증 절차가 정상적으로 진행되었는지, 각 절차별로 결과에 대해 서버에서 상태(State)를 관리하여야 함
인증 정보 검증의 잘못된 예외 처리 - 인증 정보 검증 시 발생한 에러에 대한 예외 처리 구현이 잘못되었을 경우 오류가 발생했음에도 서비스는 정상 처리되는 등의 문제가 발생할 수 있음
> 타 사용자로 로그인 되는 등 인증 관련 보안 사고가 발생할 수 있으므로, 인증 관련 구문의 예외 처리 구현을 견고히하여야 함
인증 정보 검증 오류 횟수 미제한 - 오류횟수 제한을 두지 않았을 경우, 무작위 대입 공격을 통해 공격자가 비밀번호를 추측해 알아낼 수 있음
> 계좌 비밀번호, 거래 비밀번호, 카드 유효기간, 카드 비밀번호, 카드 CVC 번호 등은 금융 거래에 핵심이 되는 지식 정보이지만 복잡성이 낮은 정보들이 많기 때문에 오류횟수 미제한은 심각한 결과를 초래할 수 있음
인증 결과 응답 공격자 명의 인증 수단으로 인증 수행
(인증 결과 응답 이후)
- 인증 절차를 공격자 명의의 인증 수단으로 진행하고 인증 결과 응답에 포함된 공격자 명의의 정보를 피해자 명의의 인증 정보로 변조
> 클라이언트에서 변조된 정보가 자동으로 서명 및 암호화 과정에 사용되어 인증 우회가 용이함
> 서버는 정상적인 인증 응답으로 인식하기 때문에 보안 검증을 우회할 수 있음
인증 결과 응답값을 정상 응답값으로 변조 - 인증 결과 응답값을 정상 응답값으로 변조하여 클라이언트에선 마치 인증이 완료된 것처럼 인식되게 하고 인증 절차의 다음 단계로 넘어갈 수 있음
> 응답값을 변조한 것이기에 서버단에서의 검증에는 영향 없음
> 공격자가 요청시마다 일일히 공격자 명의 인증 정보를 피해자 명의 인증 정보로 변조하지 않아도 되기 때문에 공격 난이도와 복잡성을 낮출 수 있는 방법

 

2.3 Campaign Poltergeist

- 인증 우회 취약점의 연계를 통해 타 사용자의 계정 권한을 탈취, 추가 공격을 감행

> 마치 다른사람이 된 것처럼 인증 수단들을 발급하고 금융 서비스를 이용

구분 설명
Simple Path - 간편함이 핵심인 모바일 뱅킹 환경에서 사용자 편의성과 접근성을 위해 인증 수단들은 간편화되기 시작
> 6자리 간편 비밀번호, 생체기반 인증, 간편인증서 등이 도입
> 간편 인증정보들이 탈취되었을 경우 그 위험성 또한 몇 배로 증가
Shadow Twin - M-OTP, 공동인증서, API를 사용해 계좌 이체, 대출 등을 수행할 수 있음
> 간편 인증서 탈취 후 여러 인증 수단과 절차를 우회하거나 발급받아 금전적 피해가 발생할 수 있음
> 피해자의 모든 인증 수단과 권한을 공격자가 얻게 됨
Spectral Vault - 비대면 금융 서비스의 등장으로 명의 도용 등으로 대포통장과 사기계좌로 이용될 수 있음
> 계좌 개설 프로세스는 사기 등의 범죄 조직들의 악용을 막기위해 강력한 인증 절차를 갖춤
> 인증 우회 취약점의 연계를 통해 계좌 개설 프로세스에 사용되는 인증 절차를 모두 우회해 계좌 개설이 가능

 

[사진 2] Campaign Poltergeist 요약

2.4 근본 원인

여러 인증 수단의 복합적 사용

- 각 인증 수단 결과를 서버에 기록 및 검증하는 절차 역시 복잡해져 구현 실수 발생

- 하나의 인증 수단이 우회되거나 공격자가 임의로 발급받을 수 있다면 다른 인증 수단의 발급/등록 과정을 연쇄적으로 우회될 수 있음

복잡한 외부 인증 기관과의 연계

- 여러 인증 수단의 구현을 위해 금융사 자체적으로 모든 인증 서비스를 구현 및 운영할 수 없어 외부 인증 기관과 연계

- 클라이언트가 서버로 전달한 외부 인증기관 인증 결과의 정상 여부, 명의 일치 여부 등의 확인 과정이 복잡해짐

인증 서비스 코드 통합 및 유지보수의 어려움

- 외부에서 개발한 코드를 통합하였기 때문에 코드에 대한 이해도가 떨어지고, 복잡한 인증 절차가 맞물려 연계 및 검증에 허점이 발생

-  또한 수정 또는 변경사항이 있을 시 유지보수를 위해 코드를 수정하는 과정에 문제가 발생 가능

 

2.5 대응방안

견고한 인증 프로세스 설계

- 여러 인증 수단의 복잡한 사용과 외부 인증기관과의 복잡한 연계로 견고한 인증 프로세스 설계가 필요

- 모든 발생 가능한 공격 유형에 대비하고, 그 결과를 서비스 최종 요청 처리 시 확인할 수 있도록 설계해야 함

- 인증 과정과 관련된 로그를 남기고 이상 행위를 탐지할 수 있도록 설계

인증 절차 구현 시 보안 요구사항 적용

- 인증 수단별로 발생 가능한 모든 취약점 유형을 고려하여 보안 요구사항을 적용

- 다양한 인증 서비스 코드를 통합하고 유지보수하는 과정에서도 이러한 요구사항이 적용될 수 있도록 해야 함

- 하나의 인증 수단 뿐만 아니라 전체 인증 절차를 연계하는 과정에서도 요구사항을 충족하는지 검증 및 보완

인증 우회 취약점 분석 및 대응

- 불가피한 사유로 인증 우회 취약점이 남아있거나 기능 수정 등을 통해 새롭게 발생 가능

- 주기적인 취약점 분석과 모의해킹을 통해 잠재 위협을 제거

- 대목적을 두고 공격 방식의 제한없이 수행하는 모의해킹을 통해 위협을 식별

[사진 3] 대응방안 요약

2.6 결론

- 모바일 앱을 통한 금융 서비스 이용이 보편화되면서 비대면 신원 확인의 중요성이 증가

- 하나의 인증 수단이 우회되어도, 다른 인증 수단으로 신원을 확인하여 부정 행위를 차단할 수 있도록 복합적인 인증 절차가 정확히, 제대로 구현되어야 함

3.참고

[1] https://www.fsec.or.kr/bbs/detail?menuNo=1011&bbsNo=11640
[2] https://www.dailysecu.com/news/articleView.html?idxno=164205

1. 개요

- 스타링크(Starlink)를 탑재한 스바루 차량들에서 심각한 보안 취약점 발견 [1]
- 공격에 성공하면 미국, 캐나다, 일본에 있는 모든 스바루 차량과 고객 계정에 무제한 접근이 가능
- 이메일 주소, 전화번호, 차량번호판 중 하나만 알아도 최소 네 가지 공격을 진행할 수 있음

※ 현재는 보안 패치가 적용된 상태

2. 주요 내용

- 사용자가 차량에 명령을 보낼 수 있는 MySubaru 모바일 앱을 분석
> 프록시 처리한 후 명령을 가로채고 승인 없이 차량의 잠금을 해제할 수 있는지 찾기 위함
> 그러나, 앱의 보안 상태와 인증 시스템 모두 보안이 정상적으로 작동

 

2.1 portal.prod.subarucs.com

- 일반적으로 자동차 제조사들은 고객용 앱보다 더 광범위한 권한을 가진 직원용 앱이 있으며, subarucs.com이 이에 해당함
- 도메인에 대한 스캔을 실행한 결과 하위 도메인 hxxps://portal.prod.subarucs.com/login.html을 발견
> 해당 도메인에는 ‘스타링크 관리자 포털’(STARLINK Admin Portal)'이라는 이름이 붙어 있었음
> 구글링 결과 STARLINK는 스바루 차량 내 인포테인먼트 시스템의 이름으로 차량의 모든 원격 제어 기능을 담당

※ 인포테인먼트 (Infotainment) : 정보(Information)와 오락(Entertainment)의 합성어로, 정보 전달에 오락성을 가미한 소프트웨어를 지칭하는 용어

[사진 1] portal.prod.subarucs.com

2.2 /assets/_js/

- 해당 페이지의 소스를 확인해 아래 부분을 확인

> "/assets/_js/" 폴더 아래에 몇 가지 흥미로운 JavaScript 파일이 있었기 때문에, 다른 JavaScript 파일을 찾기 위해 디렉토리를 무차별 대입

[사진 2] /assets/_js/

2.3 login.js

- FFuF를 실행한 후 흥미로운 코드가 있는 login.js 파일을 확인
확인 토큰 없이 직원의 계정을 재설정할 수 있는 "ResetPassword.json" 엔드포인트가 있는 것으로 확인

[사진 3] ResetPassword.json

2.4 /forgotPassword/resetPassword.json

- 임의의 계정 정보를 포함한 POST 요청을 전송

[사진 4] 임의의 계정 정보 전송 및 실패

유효한 계정 정보를 사용해 테스트한 결과 비밀번호를 정상적으로 변경할 수 있었음

[사진 5] 유효한 계정 정보 전송및 성공

2.5 2FA 우회

- 변경한 계정 정보를 통해 로그인을 시도한 결과 2FA 인증이 필요

[사진 6] 2FA 요구

UI에서 클라이언트 측 오버레이를 제거하는 간단한 방법으로 2FA 인증을 우회할 수 있었음

> 또한 모든 버튼이 정상적으로 작동

[사진 7] 오버레이 제거
[사진 8] 2FA 우회

2.6 차량 해킹

- 지인의 차량 번호판을 통해 관리자 패널에서 접근 권한을 부여
> 계정이 성공적으로 생성되었음을 확인할 수 있는 이메일을 수신
> 생성된 계정으로 지인 차량의 잠금을 원격에서 해제할 수 있었음

[사진 9] 계정 정상 추가

[영상 1] 공격 시연 [3]

3. 참고

[1] https://samcurry.net/hacking-subaru#finding-the-subaru-admin-panel
[2] https://github.com/ffuf/ffuf
[3] https://www.youtube.com/watch?v=0i8juy6RPBI
[4] https://www.boannews.com/media/view.asp?idx=135796

1. 개요

터널링 프로토콜의 보안 취약점이 발견돼 420만 개 이상의 인터넷에 연결된 호스트가 공격에 노출 [1][2]
> 터널링 프로토콜 : 두 네트워크 간에 데이터를 전송할 때, 데이터를 캡슐화하여 다른 네트워크 프로토콜의 데이터 패킷 안에 포함시켜 안전하고 효율적으로 전달할 수 있도록 해주는 네트워크 통신 프로토콜
- VPN 서버, 가정용 라우터, 인터넷 핵심 라우터, 모바일 네트워크 게이트웨이, 콘텐츠 전송 네트워크 노드 등 다양한 호스트가 공격에 취약
- 서비스 거부 공격부터 비인가 네트워크 접근까지 다양한 악성 활동을 가능하게 함

2. 주요내용

- IPIP/IP6IP6, GRE/GRE6, 4in6, 6in4 프로토콜에서 인증과 암호화를 지원하지 않아 외부에서 패킷을 변조 또는 악용할 수 있는 문제가 발견
> 스캐닝 (Standard tunnel, Subnet-spoofing, Spoofing, 6to4 & IPv4-mapped address, Tunneled ICMP Echo/Reply, Tunneled ICMP TTL Expired)을 통해 전체 IPv4 주소공간(37억개)과 1,000만 개의 IPv6 주소를 스캔

[사진 1] 스캔 방법 및 결과 요약

- 스캔 결과 약 430만 개의 취약한 호스트 중 약 190만 개의 호스트가 스푸핑이 가능한 것으로 확인

[사진 2] 터널링 프로토콜 별 취약한 호스트 및 스푸핑 가능한 호스트의 갯수

구분 설명
IPIP
(IP-in-IP)
IPv4 패킷을 또 다른 IPv4 패킷 안에 캡슐화하여 전송
- 구현이 간단하나 암호화와 인증을 제공하지 않음
- 외부 헤더 : 터널링의 시작점(출발지)과 끝점(목적지) 정보 등
- 내부 헤더 : 원래 IPv4 패킷 정보
IP6IP6
(IPv6-in-IPv6)
IPv6 패킷을 또 다른 IPv6 패킷 안에 캡슐화하여 전송
- IPv6 전용 네트워크 환경에서 최적화되어 있지만, IPv6 인프라가 필요
- 외부 헤더 : 터널링의 시작점(출발지)과 끝점(목적지) 정보 등
- 내부 헤더 : 원래 IPv6 패킷 정보
GRE
(Generic Routing Encapsulation)
IP 패킷뿐만 아니라 다양한 프로토콜을 캡슐화할 수 있음
- 다양한 프로토콜을 캡슐화할 수 있어 여러 목적으로 사용가능하나, 암호화 기능이 없음
- 외부 헤더 : 터널링의 시작점(출발지)과 끝점(목적지) 정보 등
- 내부 헤더 : 원래 패킷 정보
GRE6
(Generic Routing Encapsulation IPv6)
GRE의 IPv6 버전으로, IPv6 패킷을 캡슐화하거나 GRE 터널을 IPv6 네트워크 상에서 운용
- GRE의 다양성을 유지하면서, IPv6 환경에 최적화되어 있지만, 암호화 기능이 없음
- 외부 헤더 : 터널링의 시작점(출발지)과 끝점(목적지) 정보 등
- 내부 헤더 : 원래 패킷 정보
GUE
(Generic UDP Encapsulation) 
UDP 패킷 안에 다양한 프로토콜을 캡슐화하여 전송
- 다양한 프로토콜을 캡슐화 할 수 있으며, UDP를 사용해 단순하고 효율적이나 신뢰성이 부족
- 외부 헤더 : 터널링의 시작점(출발지)과 끝점(목적지) 정보 등
- 내부 헤더 : 원래 패킷 정보
4in6
(IPv4-in-IPv6)
IPv4 패킷을 IPv6 패킷에 캡슐화하여 전송하며, IPv6 네트워크를 통해 IPv4 트래픽을 전송할 수 있음
- IPv6 네트워크 상에서 IPv4 지원을 용이하게 할 수 있으나, 패킷 크기가 커져 MTU 문제가 발생할 수 있음
- 외부 헤더 : 터널링의 시작점(출발지)과 끝점(목적지) 정보 등
- 내부 헤더 : 원래 IPv4 패킷 정보
6in4
(IPv6-in-IPv4)
IPv6 패킷을 IPv4 패킷으로 캡슐화하여 전송하며, IPv4 네트워크를 통해 IPv6 트래픽을 전송할 수 있음
- IPv4 전용 네트워크에서 IPv6 지원을 용이하게 할 수 있으나, 터널 끝점이 고정되어 있어야 하며, 보안을 제공하지 않음
- 외부 헤더 : 터널링의 시작점(출발지)과 끝점(목적지) 정보 등
- 내부 헤더 : 원래 IPv6 패킷 정보

[사진 3] 터널링 프로토콜별 상위 3개 포트/도메인

공격자는 터널링 헤더를 조작해 접근 제어를 우회하고 서비스 거부 공격 등의 악성 행위를 수행할 수 있음
> 외부 헤더 : 출발지 공격자 IP, 목적지 취약한 호스트 IP
> 내부 헤더 : 출발지 취약한 호스트 IP, 목적지 공격 대상 IP
취약한 호스트가 외부 헤더 중 출발지 IP(=공격자 IP)를 제거하고, 내부 헤더를 확인해 목적지로 전달
내부 헤더의 출발지 IP가 신뢰할 수 있는 호스트 IP인 경우 네트워크 필터를 우회할 수 있음 

[사진 4] 공격 과정 요약

[영상 1] 공격 설명

- 4개의 CVE가 할당

취약점 영향 받는 프로토콜
CVE-2024-7595 [4] GRE 및 GRE6
CVE-2024-7596 [5] GUE
CVE-2025-23018 [6] IPv4-in-IPv6 및 IPv6-in-IPv6
CVE-2025-23019 [7] IPv6-in-IPv4

 

- 대응방안

> 인증 및 암호화 프로토콜(IPsec, WireGuard 등)을 사용해 터널링 트래픽 보호
> 라우터와 미들박스에 트래픽 필터링 구현
> 악의적인 터널링 패킷에 대한 심층 패킷 검사(DPI)
> 암호화되지 않은 터널링 패킷 모두 차단

3. 참고

[1] https://papers.mathyvanhoef.com/usenix2025-tunnels.pdf
[2] https://www.top10vpn.com/research/tunneling-protocol-vulnerability/
[3] https://www.youtube.com/watch?v=eFZsM3khrSk&t=157s
[4] https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2024-7595
[5] https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2024-7596
[6] https://nvd.nist.gov/vuln/detail/CVE-2025-23018
[7] https://nvd.nist.gov/vuln/detail/CVE-2025-23019
[8] https://thehackernews.com/2025/01/unsecured-tunneling-protocols-expose-42.html
[9] https://www.dailysecu.com/news/articleView.html?idxno=163202

1. 개요

- 도메인 컨트롤러를 대상으로 시스템 충돌과 재부팅을 유발할 수 있는 취약점 LDAPNightmare 발견 [1]
- 서비스 거부 취약점 CVE-2024-49113과 정수 오버플로를 통한 원격 코드 실행 취약점 CVE-2024-49112
- Windows 서버를 대상으로 한 심각한 보안 위협이 되고 있어 가능한 한 빨리 '24.12 보안 업데이트 적용 필요

 

1.1 LDAP(Lightweight Directory Access Protocol)

- 네트워크 상에서 조직이나 개인정보 혹은 파일이나 디바이스 정보 등을 찾아보는 것을 가능하게 만든 소프트웨어 프로토콜로 389 포트 사용 [2][3]

> 디렉토리 서비스 표준인 X.500의 DAP(Directory Access Protocol)를 기반으로한 경량화(Lightweight)된 버전으로 서버-클라이언트 구조

※ 디렉토리 서비스란 이름을 기준으로 대상을 찾아 조회하거나 편집할 수 있는 서비스

2. 취약점

2.1 CVE-2024-49113

[사진 1] CVE-2024-49113 [4]

- Windows LDAP 프로토콜에서 발생하는 서비스 거부 취약점

> 공격자가 조작된 CLDAP 요청을 보내 LSASS 프로세스를 충돌시켜 서버 재부팅을 유발할 수 있음

CLDAP (Connection-less Lightweitght Directory Access Protocol)
- LDAP의 한 종류로, UDP/389포트를 사용 (LDAP는 TCP 사용)
- LDAP 대비 응답 시간이 빠르고 오버헤드가 낮으나, 데이터 손실이 발생 가능
※ UDP의 특성상 송신 IP를 확인하지 않고, 응답 패킷이 요청 패킷보다 훨씬 커 DRDoS 공격에 사용됨 (평균 50~86배 정도 증폭)

LSASS (Local Security Authority Subsystem Service)
- Windows 운영체제에서 시스템의 보안 정책을 강화를 위한 윈도우의 프로세스
> 윈도우 시스템에 로그인하려는 사용자의 유효성을 판단
> 사용자 비밀번호 저장 및 관리, 비밀번호 변경 요청 처리
> 인증된 사용자에게 시스템 자원에 접근할 수 있는 권한을 부여하는 액세스 토큰을 생성
> 시스템 보안 관련 이벤트를 기록하며, 시스템의 보안 정책을 적용 및 관리
※ 시스템의 모든 사용자 자격 증명을 저장하고 관리하기 때문에 공격자의 주요 목표 중 하나이며, Mimikatz 등의 공격 도구 존재

 

- 공격과정

① 공격자는 피해자 DC에 DCE/RPC 요청을 전송

- 공격자가 제어하는 LDAP 서버를 쿼리하도록 조작된 DCE/RPC 요청을 전송

> RPC 메소드 중 DsrGetDcNameEx2 메소드는 도메인 컨트롤러의 LDAP 서버 정보를 반환하기 위해 설계된 RPC 호출임

 

- DsrGetDcNameEx2 메소드의 매개변수 중 DomainName을 공격자가 제어하는 DNS 서버로 조작하여 요청 전송

> DomainName이 특정 도메인 또는 사이트를 가리킬 때, 자동으로 해당 도메인에 대한 LDAP DNS SRV 쿼리를 생성

> DNS는 공격자가 제어하는 LDAP 서버의 호스트 네임과 LDAP 포트 정보 응답

[사진 2] DsrGetDcNameEx2 메소드 매개변수 및 설명 [5]

- DC (Domain Controller) : 로그인, 이용권한 확인, 새로운 사용자 등록, 암호 변경 등을 처리하는 기능을 하는 서버 컴퓨터
- DCE/RPC (Distributed Computing Environment/Remote Procedure Calls) : 분산 컴퓨팅 환경(DCE)에서 원격 프로시저 호출(RPC)을 구현하기 위한 프로토콜
- DNS SRV (Service Resource Record) : 특정 서비스에 대해 도메인 이름을 기반으로 연결할 수 있는 호스트 및 포트 정보를 제공하는 DNS 레코드 유형

② NBNS 요청 및 응답

- LDAP 서버의 호스트네임과 포트 정보를 수신한 피해자는 LDAP 서버에 대한 NBNS 쿼리를 수행

> 호스트네임에 대응하는 LDAP 서버의 IP 주소(공격자가 제어하는 LDAP 서버 IP) 응답

- NetBIOS (Network Basic Input/Output System) : 윈도우 네트워크에 사용되는 컴퓨터 이름 [6]
- NBNS (NetBIOS Name Service) : NetBIOS 네트워크 상에서 호스트 이름을 IP 주소로 해석하기 위해 사용되는 프로토콜 [7]

③ 조작된 CLDAP 응답으로 시스템 재부팅 유도

- 피해자 DC는 공격자의 LDAP 서버에 CLDAP 요청을 전송

> 공격자는 LDAP 참조(referral) 결과 코드와 함께 조작된 lm_referral 값을 포함한 조작된 CLDAP 응답 전송

> 조작된 lm_referral 값에 의해 범위를 벗어난 읽기와 LSASS를 충돌이 발생하고 시스템 재부팅을 유도할 수 있음

※ 관련 PoC [8]

lm_referral 값 - LDAP 클라이언트가 참조 테이블에서 메모리 접근을 수행할 때 사용
- 참조 테이블에 액세스하는지 여부를 결정하는 조건은 lm_referral 값이 0이 아닌지 확인
- 0이 아닌 값은 참조 테이블의 오프셋으로 사용되어 메모리 접근이 시도
- 공격자는 해당 값을 조작해 클라이언트가 잘못된 메모리 위치를 참조하도록 유도

[사진 3] 공격 과정 요약

2.2 CVE-2024-49112

[사진 4] CVE-2024-49112 [9]

- Windows LDAP 프로토콜에서 발생하는 원격 코드 실행 취약점 (CVSS: 9.8)

> CLDAP 패킷을 변조하여 LDAP 서비스에서 임의 코드를 실행할 수 있음

 

<<내용 추가 예정>>

 

3. 대응방안

- MS 12월 보안 위협에 따른 정기 보안 업데이트 적용 [10]

> 즉시 패치가 어려운 경우 권고 사항

① 악성 값이 설정된 CLDAP 참조 응답을 모니터링
② 비정상적인 DsrGetDcNameEx2 호출을 탐지
③ 도메인 컨트롤러를 대상으로 하는 의심스러운 DNS SRV 조회를 감지

4. 참고

[1] https://www.safebreach.com/blog/ldapnightmare-safebreach-labs-publishes-first-proof-of-concept-exploit-for-cve-2024-49113/
[2] https://yongho1037.tistory.com/796
[3] https://hec-ker.tistory.com/319
[4] https://nvd.nist.gov/vuln/detail/CVE-2024-49113
[5] https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-nrpc/fb8e1146-a045-4c31-98d1-c68507ad5620
[6] http://www.ktword.co.kr/test/view/view.php?m_temp1=319&id=452
[7] https://wiki.wireshark.org/NetBIOS/NBNS
[8] https://github.com/SafeBreach-Labs/CVE-2024-49113
[9] https://nvd.nist.gov/vuln/detail/CVE-2024-49112
[10] https://www.boho.or.kr/kr/bbs/view.do?searchCnd=1&bbsId=B0000133&searchWrd=&menuNo=205020&pageIndex=2&categoryCode=&nttId=71606
[11] https://www.dailysecu.com/news/articleView.html?idxno=162699

[12] https://www.boannews.com/media/view.asp?idx=135499&page=1&kind=1

1. 개요

- 미국(CISA, NSA, FBI), 호주(ACSC), 캐나다(CCCS), 뉴질랜드(NCSC-NZ)가 협동해 통신 인프라 관련 보안 가이드라인 발표 [1]
- 사이버 위협 행위자, 특히 중국과 관련된 위협에 대응하기 위한 권고사항

2. 주요내용

구분 설명
모니터링 - 지속적인 스위치, 라우터, 방화벽 등 네트워크 장치의 구성 변경 모니터링 및 비정상적 변경에 대해 경고하는 메커니즘 구축
- 네트워크 흐름 모니터링 솔루션 구현 및 가시성 확보
- 관리 트래픽 노출 최소화 및 전용 관리 워크스테이션에서만 접근 허용
- 사용자 및 서비스 계정 로그인을 모니터링하여 비정상적인 로그인 시도 탐지 및 비활성화
- 중앙 집중화된 로그 관리 및 분석으로 신속한 의심스러운 활동 식별 등
강화 시스템 및 장치 - 프로토콜 및 관리 프로세스 개선
> 대역 외 관리 네트워크 사용
> 기본 거부 ACL 정책 구현
> 강력한 네트워크 세분화
> VPN 게이트웨이에 강력한 암호화 프로토콜 적용
> AAA(Authentication_인증, Authorization_권한부여, Accounting_계정관리) 로깅이 CIA 기능을 갖춘 중앙 로깅 서버로 전송되도록 보장
> 불필요한 프로토콜 비활성화
> 기본 비밀번호 사용 지양
> 신뢰할 수 있는 무결성 검증 도구 활용 등
Cisco 특정 지침 - 사이버 위협 행위자들은 Cisco 장비의 특정 기능을 표적으로 공격하므로 조치 필요
> Cisco Smart Install 서비스 비활성화
> Guestshell 액세스 비활성화
> 암호화되지 않은 웹 관리 기능 비활성화
> Telnet을 비활성화
> 비밀번호 관리 강화
사고 보고 - 피해 발생 시 당국의 관련 기관에 즉시 신고
설계에 의한 보안 - 설계 단계에서부터 보안 고려하여 개발
- 소비자는 보안성을 만족하는 제품을 구매

3. 참고

[1] https://www.cisa.gov/resources-tools/resources/enhanced-visibility-and-hardening-guidance-communications-infrastructure

1. 개요

- 세계 여러 정보 보안 관련 기관이 협력하여 LotL 공격 대비 가이드라인 발표 [1]
- 장시간 공격을 유지할 수 있게 해 주는 LotL 공격이 공격자들 사이에서 인기
- ‘이벤트 로그 관리’를 방어책으로 내세움

 

2. 주요내용

2.1 LotL (Living off the Land)

이미 사용자 시스템에 설치된 여러 자원을 공격에 활용하는 방법
- 정상적으로 발생하는 트래픽과 공격으로 발생한 트래픽의 구분이 힘들며, 공격 지속성을 크게 높일 수 있는 장점

 

2.2 이벤트 로깅 (Event logging)

- 이벤트 로깅은 네트워크 가시성을 지원해 운영과 시스템의 보안 및 복원력을 개선

구분 개요
효과적인 이벤트 로깅 솔루션 ① 중요한 소프트웨어 구성 변경 또는 설치시 담당자에게 경고 잔송
② LotL 공격 또는 침해 후 횡적 이동 등의 보안 사고를 나타낼 수 있는 보안 이벤트 식별
③ 침해의 범위와 정도를 밝혀 사고 대응 지원
④ 정책이 잘 적용되도록 하며, 위반 여부 모니터링
⑤ 오탐과 노이즈를 줄여 저장 공간과 요청 시간 관련 비용을 절감
⑥ 보안 담당자들이 정보를 바탕으로 결정을 내릴 수 있게 지원
⑦ 보안 분석가들에게 유용한 로그와 플랫폼을 제공
핵심 고려 요소 ① 기업에서 승인된 이벤트 로그 정책
② 중앙 집중식 이벤트 로그 접근 및 상관 분석
③ 저장된 데이터의 보안 및 이벤트 로그 무결성
④ 관련 위협에 대한 탐지 전략
로그 정책 ① 어떤 이벤트를 로깅할 것인지 정의
② 어떤 시스템에 이벤트 로깅을 적용할 것인지 정의
③ 이벤트 로그를 모니터링하는 방법 정의
④ 이벤트 로그를 얼마나 보관할 것인지 정의
⑤ 로그 수집 관련 정책의 재평가 시기 정의

 

2.3 로그의 품질

- 사고 대응 및 위협 탐지의 맥락에서 이벤트 로그의 품질은 얼마나 잘 포맷 되었는지가 아닌, 수집된 이벤트 유형에 의해 결정

- 유용한 이벤트 로그는 보안 이벤트를 평가하여 정오탐을 식별하는 능력을 강화

> OT 장치를 포함하는 경우 해당 장치에 대한 고려가 필요

> OT 장치는 메모리와 프로세스에 부하를 주는 임베디드 소프트웨어를 사용하며, 과도한 로깅은 장치의 운영에 악영향을 미칠 수 있음

> OT 장치는 자세한 로그를 생성할 수 없으므로 센서를 사용하여 로그 기능을 보완할 수 있음

> 대역 외 로그 통신 또는 오류 코드와 기존 통신의 페이로드를 기반으로 로그를 기록

 

- LotL을 사용하는 공격자들은 주로 다음과 같은 로그를 수집해 파악할 수 있음

구분 설명
Linux 기반 - curl, systemctl, systemd, python 등을 사용했을 때 기록되는 로그
- 기타 일반적인 LOLBin의 사용와 관련된 로그
Windows 기반 - wmic.exe, ntdsutil.exe, Netsh, cmd.exe, PowerShell, mshta.exe, rundll32.exe, resvr32.exe 등을 사용했을 때 기록되는 로그
- 명령 실행, 스크립트 차단, PowerSehll용 모듈 로그, 관리 작업에 대한 로그
Cloud 환경 - API 호출 및 최종 사용자 로그인을 포함한 모든 컨트롤 플레인 작업을 기록
- 컨트롤 플레인 로그는 읽기 및 쓰기 활동, 관리 변경 사항 및 인증 이벤트를 기록하도록 구성

 

- 이벤트 로그는 대응을 돕기에 충분한 세부 정보가 포함되어 있는 것이 좋음

미국 관리예산국
M-21-312의
로그에 포함되어야
하는 내용
① 올바르게 포맷되고 정확한 타임스탬프 (밀리초 단위가 이상적)
② 이벤트 유형
③ 장치 식별자의 MAC 주소 또는 기타 고유 식별자
④ 세션/트랜잭션 ID
⑤ 자율 시스템 번호
⑥ 출처 및 도착지 IP (IPv4 및 IPv6 포함)
상태 코드
⑧ 응답 시간
⑨ 추가 헤더 (Ex. HTTP 헤더)
⑩ 사용자 ID (해당되는 경우)
⑪ 실행된 명령 (해당되는 경우)
⑫ 이벤트 상관 관계를 돕기 위한 고유 이벤트 식별자 (가능한 경우)
※ 모든 데이터는 추출을 더 쉽게 하기 위해 "키-값 쌍" 형식으로 포맷 (가능한 경우)

 

- 로그의 품질을 높이는 요소들

구분 설명
콘텐츠 및 형식 일관성 - 로그를 중앙 집중화할 때 JSON과 같은 구조화된 로그 형식을 사용
- 형식, 순서, 스키마를 일관되게 유지
- 로그가 생성될 때부터 일관된 형식을 유지하는 것이 좋음
- 그러나, 모든 로그가 정해진 형식을 따를 수 있는 것은 아니므로 자동화된 로그 정규화 방법론을 마련할 필요
타임스탬프 일관성 - 모든 시스템에서 동일한 날짜-시간 형식과 표기법을 사용
- ISO 8601 형식은 연도-월-일-시-분-초-밀리초 순서 권고
로그 보존 - 시스템에 대한 위험 평가 결과에 따라 로그 보관 기간 결정하며, 침입과 영향을 평가하는 로그는 좀 더 오래 보존
- 조직에 적용되는 모든 규제에 어긋나지 않도록 보존
- 조직이 보유하고 있는 저장 공간도 고려
- 공격자들이 로그를 삭제할 수 있으므로, 로그에 대한 접근 또한 강화
※ 어떤 경우 사고를 발견하는 데 최대 18개월이 걸리고, 어떤 악성코드의 경우 70~200일 동안 네트워크에 거주하는 것을 고려

 

2.4 로깅 우선순위

- 조직 내에서 로그 소스를 우선순위를 둘 것우선순위가 낮은 로그도 모니터링할 것을 권장

구분 설명
로깅 우선순위 - LotL 맥락에서 기업의 망은 공격자들이 사용하기 좋은 도구들이 많음
> 해당 도구들과 관련하여 로그의 우선순위를 정하는 것이 효과적

 공격 대상이 될 가능성이 높은 중요 시스템과 데이터
② 원격 접근, 네트워크 메타데이터, 기본 서버 OS, 인터넷 연결 서비스
③ ID 및 도메인 관리 서버
④ 기타 중요 서버
⑤ 네트워크 외곽에 있는 라우터와 방화벽 등
⑥ 관리자의 관리 작업을 위한 워크스테이션
⑦ 환경 설정, 시스템 모니터링, CI/CD, 취약점 스캔, 비밀 관리, 권한 관리에 사용되는 시스템
⑧ 데이터 저장소
⑨ 보안 소프트웨어
⑩ 사용자 컴퓨터
⑪ 사용자 애플리케이션
⑫ 웹 프록시
⑬ DNS 서비스
⑭ 이메일 서버
⑮ DHCP 서버
⑯ 오래된 레거시 IT 자산
⑰ 하이퍼바이저 호스트
⑱ 프린터 등 부수적인 IT 장치
⑲ 애플리케이션 게이트웨이 등 네트워크 구성 요소
OT 환경
로깅 우선순위
- 최근 OT 네트워크에 대한 공격이 증가

① 안전 및 서비스 제공에 중요한 OT 장치 (Air-Gap 시스템 제외)
② 공공 인터넷과 연결된 OT 장치
③ 네트워크 외곽선을 통과했을 때 접근이 가능해지는 OT 장치
④ 로깅 기능이 없는 OT 장치 (OT 장치의 네트워크 트래픽 모니터링 필요)
엔드포인트
로깅 우선순위
- 팬데믹 등으로 재택 근무의 증가

사용자가 사용하는 웹 프록시
② 회사/기관에서 운영 혹은 사용하는 DNS 서비스
③ 조직에 공식 등록된 장치들의 보안 상황
④ 조직에 공식 등록된 장치들의 행동 패턴
⑤ 사용자 계정에서 발생하는 활동
⑥ VPN 솔루션
⑦ MDM 및 모바일 애플리케이션 관리(MAM)
클라우드 컴퓨팅
로깅 우선순위
- IaaS, PaaS, SaaS 등 플랫폼과 유형에 따라 이벤트 로깅 방식을 조정
> Ex. IaaS : 테넌트에 로깅 책임을 부여 / SaaS : 서비스 제공 업체에 로깅 책임 부여
> 기업(사용자)과 제공자(CSP) 간 긴밀한 협조 필요

표적이 될 가능성이 높은 중요 시스템과 데이터
② 공공 인터넷에 직접 연결된 서비스
③ 클라우드 서비스에 직접 접근하고 관리하는 테넌트의 계정
④ 환경 설정
⑤ 모든 보안 관련 계정 (생성, 삭제, 수정 등)
⑥ 서드파티 인증 서비스를 활용할 때(성공/실패 로그)
⑦ 클라우드 서비스에서 생성된 로그, 클라우드 API 로그, 네트워크 이벤트 등

 

2.5 이벤트 로그의 안전한 저장 및 무결성

- 중앙 집중식 이벤트 로깅 시스템을 구축한 후 SIEM, XDR과 같은 분석 도구로 로그를 전달할 것을 권장

> 충분한 저장 용량을 갖출 것 (침해가 발생하였으나, 과거 이벤트 로그가 없으면 사고 대응에 부정적 영향을 미침)

> 별도의 네트워크 또는 세분화된 네트워크에 보관하며, 로그 변조의 위험을 줄이기 위한 추가 보안 제어 기능이 필요

 

- 이벤트 로그의 안전한 전송 및 무결성을 보장하기 위해 TLS 1.3 및 암호화 검증 등의 보안 메커니즘 구현 권장

> 공격자들은 로그를 수정하거나 삭제하며, 로그에서 유용하면서 민감한 데이터를 확인할 수도 있음

> 적정한 요건을 갖춘 사용자만이 이벤트 로그에 접근할 수 있는 권한을 부여

 

2.6 LotL 탐지

- 아주 조금의 이상 행동이라도 탐지 및 기록해야 함

구분 설명
이상 (비정상적) 행동 비정상적인 시간대에 발생한 사용자 로그인 (근무 외 시간, 공휴일 등)
② 사용자가 일반적으로 접근하지 않는 서비스에 접근 혹은 접근 시도
③ 비정상적인 장치를 활용한 로그인 및 로그인 시도
④ 비정상적으로 빈번한 로그인 시도
⑤ 물리적으로 불가능한 로그인 시도 (불가능한 이동(Impossible Travel) 등)
⑥ 대량의 데이터 다운로드 및 외부 유출
⑦ 정상 인증 단계를 거치지 않은 로그인
⑧ 다양한 사용자 ID로 접근하는 단일 IP 주소
⑨ 사용자 계정 생성 / 비활성화 된 계정의 재활성화(특히 관리자 계정)
⑩ 일반적으로 통신 트래픽이 없는 장치에서 트래픽이 발생
⑪ 비정상적인 스크립트 실행
⑫ 갑작스러운 로그 삭제
⑬ 비정상적인 프로세스 생성 및 실행
⑭ 보안 소프트웨어 및 로깅 소프트웨어의 환경 설정 변경
추가 분석 ① 프로세스 생성 이벤트 / 명령줄 감사 등 상세 로깅 활성화 상태로 유지
> 로그 가시성 향상 가능
② 조직 내에서 사용할 수 있는 정상 바이너리의 기준 생성
> 비정상 바이너리가 자연스럽게 결정
③ 진화하는 위협에 따라 다양한 운영 체제에 대한 탐지 규칙 생성
Windows : powershell.exe, cmd.exe, regedit.exe 등에 대한 상세 탐지 규칙
Linux : curl, systemctl, python 등에 유의
OT 환경 ① 비정상적인 혹은 예상하기 힘든 도구의 활용
② 벤더나 서드파티의 갑작스러운 접근
③ 유지보수나 원격 모니터링을 위한 도구의 비정상적인 사용
④ 운영 체제, 소프트웨어, 펌웨어, 환경, 데이터베이스 등의 무단 변경 및 무단 업데이트
⑤ 제어 시스템과 외부 네트워크 간의 비정상적인 통신
⑥ 평소에 통신 활동이 없던 구성 요소 간에 발생하는 통신
⑦ 비정상적인 스크립트 실행

3. 참고

[1] https://www.nsa.gov/Press-Room/Press-Releases-Statements/Press-Release-View/Article/3880942/nsa-joins-allies-in-releasing-best-practices-for-event-logging/
[2] https://www.boannews.com/media/view.asp?idx=132371&page=1&kind=1

1. NVIDIA Container Toolkit [1]

- 컨테이너 런타임 라이브러리와 NVIDIA GPU를 활용하도록 컨테이너를 자동으로 구성하는 유틸리티가 포함
- Docker 컨테이너 내에서 NVIDIA GPU를 효율적으로 활용할 수 있도록 만들어진 도구
> 일반적인 환경에서 Docker를 동작 시키면 Host의 CPU를 기반으로 Docker가 생성되며, GPU를 사용할 수 없음
> 과거에는 GPU를 사용하기 위해 컨테이너 내에 NVIDIA GPU 드라이버를 설치하였으나, 안전성-하드웨어와 컨테이너의 드라이버 버전을 매번 맞춰야하는-문제가 있음
> NVIDIA Container Toolkit은 Container에서 GPU를 사용시 libcuda.so와 같은 Host에 있는 CUDA Toolkit들을 마운트해주는 역할

※ CUDA(Computed Unified Device Architecture) Toolkit: 고성능 GPU 가속 애플리케이션을 만드는 개발 환경을 제공 [2]

 

2. 취약점 [3]

2.1 CVE-2024-0132

[사진 1] CVE-2024-0132 [4]

- NVIDIA Container Toolkit에서 발생하는 TOCTOU 취약점 (CVSS: 9.0)

> 악성 이미지를 통해 실행되는 컨테이너를 탈출해 호스트 시스템에 대한 전체 액세스 권한을 얻을 수 있음

> 악용에 성공할 경우 코드 실행, 서비스 거부(DoS), 권한 상승, 정보 유출, 데이터 변조 등의 공격을 유발할 수 있음

※ 구체적인 기술적 세부 사항은 공개하지 않음

영향받는 버전: NVIDIA Container Toolkitv 1.16.1 이하 버전

2.1.1 TOCTOU (Time-Of-Check to Time-Of-Use) 취약점

자원을 사용하는 시점과 검사하는 시점이 달라서 자원의 상태변동으로 야기되는 Race Condition 취약점

> 병렬시스템(멀티프로세스로 구현한 응용프로그램)에서는 자원(파일, 소켓 등)을 사용하기에 앞서 자원의 상태를 검사

> 하지만, 자원을 사용하는 시점과 검사하는 시점이 다르기 때문에, 검사하는시점(Time Of Check)에 존재하던 자원이 사용하던 시점(Time Of Use)에 사라지는 등 자원의 상태가 변하는 경우가 발생

동기화 구문을 통해 한번에 하나의 프로세스만 공유자원에 접근 가능하도록 처리

> 성능에 미치는 영향을 최소화하기 위해 임계코드 주변만(동기화가 필요한 부분만) 동기화 구문을 사용

2.1.2 공격 과정

[영상 1] 공격 과정 [5]

① 공격자는 악성 이미지를 제작해 유포한 후 대상 플랫폼에서 악성 이미지 실행
> 공급망 또는 사회공학적기법을 사용해 이미지 실행을 유도
② CVE-2024-0132를 악용해 호스트 파일 시스템에 엑세스
③ Container Runtime Socket을 이용해 호스트 시스템에서 임의의 명령 실행
> docker.sock 및 containerd.sock 악용: root 권한으로 호스트 시스템에서 컨테이너로 임의의 명령을 실행할 수 있음

 

2.2 CVE-2024-0133

[사진 2] CVE-2024-0133 [6]

- 컨테이너 이미지가 호스트 파일 시스템에 빈 파일을 생성할 수 있는 취약점

영향받는 버전: NVIDIA Container Toolkitv 1.16.1 이하 버전

 

※ 두 취약점 모두 CDI (Container Device Interface)가 사용되는 경우 영향받지 않음
> CDI (Container Device Interface): 컨테이너 런타임에서 NVIDIA GPU와 같은 복잡한 디바이스에 대한 액세스를 표준화 [7]

3. 대응방안

- 벤더사 제공 보안 업데이트 적용 [8][9]

취약점 제품명 영향받는 버전 해결 버전
CVE-2024-0132
CVE-2024-0133
NVIDIA Container Toolkit v1.16.1 이하 v1.16.2
NVIDIA GPU Operator v24.6.1 이하 v24.6.2

4. 참고

[1] https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/index.html
[2] https://developer.nvidia.com/cuda-toolkit
[3] https://www.wiz.io/blog/wiz-research-critical-nvidia-ai-vulnerability
[4] https://nvd.nist.gov/vuln/detail/CVE-2024-0132
[5] https://www.youtube.com/watch?v=kslKQMgWMzY
[6] https://nvd.nist.gov/vuln/detail/CVE-2024-0133
[7] https://docs.nvidia.com/datacenter/cloud-native/gpu-operator/latest/cdi.html
[8] https://www.boho.or.kr/kr/bbs/view.do?bbsId=B0000133&pageIndex=1&nttId=71562&menuNo=205020
[9] https://nvidia.custhelp.com/app/answers/detail/a_id/5582
[10] https://thehackernews.com/2024/09/critical-nvidia-container-toolkit.html

+ Recent posts