2020.11.06

기고 | 비승인 접근 위험 낮춘다··· ‘망분리’의 효과

Susan Bradley | CSO
팬데믹 위기 이후 어느 장소에서나 접근할 수 있도록 만들려는 기업들이 늘고 있다. 그러나 보안 취약점 때문에 모든 것을 인터넷에 노출시키는 것은 현명하지 않을 수도 있다.

최근 한 교육기관이 퍼블릭(공인) IP 주소로 모든 컴퓨터와 장치를 셋업하는 것을 직접 목격했다. 이 경우, 네트워크가 공격자에 노출되는 사고가 발생할 가능성이 높다. 망분리(network segmentation)는 이런 노출로 인한 위험을 줄이게 해주는 한 방법이다. 설명에 앞서 공격자들이 전체 네트워크를 침해할 수 있었던 최근 사례들 가운데 일부를 알아본다.

라우터와 광고 패킷을 처리하는 윈도우를 표적으로 삼는 ‘배드 네이버’ 취약점
10월, 마이크로소프트는 ICMPv6 광고 패킷을 부적절하게 처리하는 윈도우 TCP/IP 스택의 취약점을 노출시키는 문제를 없애는 패치를 배포했다. 배드 네이버(Bad Neighbor)(CVE-2020-16898)로 불리는 해당 취약점은 윈도우 10과 서버 2016, 서버 2019 모든 버전에 존재한다. 

직접 원격 공격이 아닐 수 있다. 워크스테이션에 주입되어 네트워크 액세스 권한을 얻는 피싱 공격이 출발점이 되는 혼합된 형태의 공격이 가능하다. 원격 제어가 되지 않는 작동 불능 블루 스크린을 트리거하는 ‘개념 증명’을 확인할 수 있다.

네이버(인접 라우터, 또는 네트워크 환경) 검색 프로토콜의 일부인 라우터 광고 메시지를 부적절하게 처리하는 것이 근본적인 문제를 초래한다. 이를 통해 해커는 쉽지는 않지만, 원격으로 인증 없이 공격을 실시할 수 있다. 

앞서 ‘개념 증명’에서 언급하고 있듯, 원격 코드 실행을 위해, 공격자는 스택 쿠키 보호 체계를 우회해야 한다. 또한, 표적으로 삼은 장치 커널의 메모리 레이아웃을 알아야 할 수도 있다. 따라서 다른 메모리 노출 취약점과 이 버그를 연결시켜야 할 수도 있다.

일부는 이 공격을 저지하기 위해 IPv6를 비활성화하는 것이 좋다고 말하지만, SANS ISC가 언급했듯 초래되는 영향을 확실히 모른다면 IPv6를 끄면 안 된다. 패치를 할 수 없다면, 기능을 끄는 것이 더 좋은 방법이다. 다음 명령을 사용하면 된다.

 netsh int ipv6 set int *INTERFACENUMBER* rabaseddnsconfig=disable.

인터페이스를 파악하려면 관리자 권한 명령줄(Elevated command line)에 route print를 입력한다. 그러면 아래처럼 IP 주소에 인터페이스가 열거된다.

그런 다음 명령을 입력한다.

netsh int ipv6 set int *INTERFACENUMBER* rabaseddnsconfig=disable

위의 인터페이스 번호(이 경우 7)를 아래처럼 명령에 삽입한다. 패치를 배포할 준비가 끝나면, 다음 명령을 실행 취소해 회피 방법을 실행 취소한다.

netsh int ipv6 set int *INTERFACENUMBER* rabaseddnsconfig=enable

원격 코드 실행이 되도록 만드는 셰어포인트 취약점
두 번째 보안 패치도 기업에는 아주 중요한 패치이다. 셰어포인트 2013, 2016, 2019에 영향을 줄 수 있는 CVE-2020-16952는 공격자나 사용자가 영향을 받는 셰어포인트 버전에 해당되는 특별한 셰어포인트 애플리케이션 패키지를 업로드할 때 발생한다. 소프트웨어가 애플리케이션 패키지의 소스 마크업을 확인하지 못하고, RCE가 발생할 수 있다. 

개념 증명’에서 언급됐듯, 인증을 받은 공격자는 web.config 파일이 노출되도록 서버-사이드를 트리거 하는 페이지를 만들 수 있다. 공격자는 이를 통해 원격으로 코드가 실행되도록 만들 수 있다.

관리자 권한을 갖지 않은 셰어포인트 사용자가 파일을 업로드할 수 있도록 셰어포인트를 구성하면(예를 들어, AddAndCustomizePages 권한을 보유하고 있다면), 인증되지 않은 사용자가 셰어포인트 배포의 권한이 권장되는 수준보다 느슨한 경우에 RCE를 트리거 할 수 있다. 

인증된 사용자에게 부여된 권한으로 페이지를 생성할 수 있고, 애플리케이션의 web.config 파일을 중심으로 임의의 파일을 노출할 수 있다. AttackerKB에서 언급됐듯, 공격자는 이 파일을 이용, .NET 비직렬화를 통해 RCE를 트리거 할 수 있다. 많은 서버가 인터넷에 노출되고, 공격 위험이 초래될 수 있다.

망분리
두 취약점은 네트워크 셋업 및 구성 방식에 따른 노출 위험에 대해 알려준다. 이 두 사례에서 즉각적인 해결책은 적절한 패치를 적용하는 것이지만, 동시에 네트워크 액세스와 구성도 확인해야 한다. 

인터넷에서 액세스할 수 있는 컴퓨터, 서버, 클라우드 서비스, 기타 리소스를 셋업할 때 각별히 주의해야 하고, 액세스를 보호할 필요가 있는 리소스를 평가해야 한다. 액세스를 허용하고, 특정 네트워크나 그룹에 특정적으로 만들지 않는 방식으로 그룹 정책 방화벽 규칙을 설정하는 경우가 아주 많다.

망분리는 아주 오래 전부터 아주 중요한 모범 사례 중 하나였다. 망분리는 처리 및 저장되는 정보의 민감도와 정보의 종류를 기준으로 네트워크를 분리하는 개념이다. 보호 대상이 물리적 장치나 서버, 가상 장치나 서버이든, 심지어 클라우드 리소스이든, 리소스를 셋업 한 방법과 여기에 액세스할 수 있는 권한을 가진 사람과 대상에 대해 평가해야 한다.

다음은 내부 리소스를 보호하기 위해 적용할 수 있는 모범 사례들이다.

• 정기적으로 네트워크를 스캔, 승인된 장치만 연결되어 있는지 확인한다.
• 동일 서브넷에 위치하는 장치를 이것이 필요하거나 승인된 장치로 제한한다.
• DMZ를 셋업 할 때, 네트워크 경계를 통과하는 헤더 및 페이로드 정보를 로깅 및 모니터링하도록 구성하고, 이 정보를 로깅 시스템으로 보낸다.
• VLAN을 사용하고, 방화벽 필터링을 통해 보호 요건이 다른 정보와 프로세싱의 종류를 구분하고, 승인된 사람만 자신의 책임을 이행하기 위해 필요한 시스템과 통신할 수 있도록 만든다.
• 장치 목록과 IP 주소 등, 네트워크에 연결되는 기술 자산의 인벤토리를 만든다. 네트워크의 모든 시스템을 여기에 포함시켜야 한다. 네트워크에 연결된 IP 주소를 가진 장치에 사물 인터넷 장치, 프린터, 전화, ‘뉴 노멀’에 따라 재택 근무를 할 경우에는 부적절하게 연결된 가정용 장치를 포함시킬 수 있다.

10월 업데이트가 네트워크에 미친 영향을 조사할 필요가 있다. 즉시 패치를 적용할 필요가 있다고 판단하면, 네트워크를 분리할 수 있는지 여부를 판단한다. 워크스테이션과 서버가 보호 체계 없이 웹에 직접 연결되는 일이 없어야 한다. 셰어포인트 서버를 셋업 및 배포한 방식을 평가한다. 앞으로도 셰어포인트 서버에 RCE 취약점 문제가 발생할 수도 있다. 서버를 배포한 방식을 평가하고, SSL VPN이나 다른 방법으로 더 튼튼히 보호할 수 있는지 여부를 판단한다. 리소스를 더 적합하게 배포하는 방법, 더 안전하게 계속 보호하는 방법을 찾을 수 있을 것이다.

* Susan Bradley는 CSO 객원 기자다. ciokr@idg.co.kr



2020.11.06

기고 | 비승인 접근 위험 낮춘다··· ‘망분리’의 효과

Susan Bradley | CSO
팬데믹 위기 이후 어느 장소에서나 접근할 수 있도록 만들려는 기업들이 늘고 있다. 그러나 보안 취약점 때문에 모든 것을 인터넷에 노출시키는 것은 현명하지 않을 수도 있다.

최근 한 교육기관이 퍼블릭(공인) IP 주소로 모든 컴퓨터와 장치를 셋업하는 것을 직접 목격했다. 이 경우, 네트워크가 공격자에 노출되는 사고가 발생할 가능성이 높다. 망분리(network segmentation)는 이런 노출로 인한 위험을 줄이게 해주는 한 방법이다. 설명에 앞서 공격자들이 전체 네트워크를 침해할 수 있었던 최근 사례들 가운데 일부를 알아본다.

라우터와 광고 패킷을 처리하는 윈도우를 표적으로 삼는 ‘배드 네이버’ 취약점
10월, 마이크로소프트는 ICMPv6 광고 패킷을 부적절하게 처리하는 윈도우 TCP/IP 스택의 취약점을 노출시키는 문제를 없애는 패치를 배포했다. 배드 네이버(Bad Neighbor)(CVE-2020-16898)로 불리는 해당 취약점은 윈도우 10과 서버 2016, 서버 2019 모든 버전에 존재한다. 

직접 원격 공격이 아닐 수 있다. 워크스테이션에 주입되어 네트워크 액세스 권한을 얻는 피싱 공격이 출발점이 되는 혼합된 형태의 공격이 가능하다. 원격 제어가 되지 않는 작동 불능 블루 스크린을 트리거하는 ‘개념 증명’을 확인할 수 있다.

네이버(인접 라우터, 또는 네트워크 환경) 검색 프로토콜의 일부인 라우터 광고 메시지를 부적절하게 처리하는 것이 근본적인 문제를 초래한다. 이를 통해 해커는 쉽지는 않지만, 원격으로 인증 없이 공격을 실시할 수 있다. 

앞서 ‘개념 증명’에서 언급하고 있듯, 원격 코드 실행을 위해, 공격자는 스택 쿠키 보호 체계를 우회해야 한다. 또한, 표적으로 삼은 장치 커널의 메모리 레이아웃을 알아야 할 수도 있다. 따라서 다른 메모리 노출 취약점과 이 버그를 연결시켜야 할 수도 있다.

일부는 이 공격을 저지하기 위해 IPv6를 비활성화하는 것이 좋다고 말하지만, SANS ISC가 언급했듯 초래되는 영향을 확실히 모른다면 IPv6를 끄면 안 된다. 패치를 할 수 없다면, 기능을 끄는 것이 더 좋은 방법이다. 다음 명령을 사용하면 된다.

 netsh int ipv6 set int *INTERFACENUMBER* rabaseddnsconfig=disable.

인터페이스를 파악하려면 관리자 권한 명령줄(Elevated command line)에 route print를 입력한다. 그러면 아래처럼 IP 주소에 인터페이스가 열거된다.

그런 다음 명령을 입력한다.

netsh int ipv6 set int *INTERFACENUMBER* rabaseddnsconfig=disable

위의 인터페이스 번호(이 경우 7)를 아래처럼 명령에 삽입한다. 패치를 배포할 준비가 끝나면, 다음 명령을 실행 취소해 회피 방법을 실행 취소한다.

netsh int ipv6 set int *INTERFACENUMBER* rabaseddnsconfig=enable

원격 코드 실행이 되도록 만드는 셰어포인트 취약점
두 번째 보안 패치도 기업에는 아주 중요한 패치이다. 셰어포인트 2013, 2016, 2019에 영향을 줄 수 있는 CVE-2020-16952는 공격자나 사용자가 영향을 받는 셰어포인트 버전에 해당되는 특별한 셰어포인트 애플리케이션 패키지를 업로드할 때 발생한다. 소프트웨어가 애플리케이션 패키지의 소스 마크업을 확인하지 못하고, RCE가 발생할 수 있다. 

개념 증명’에서 언급됐듯, 인증을 받은 공격자는 web.config 파일이 노출되도록 서버-사이드를 트리거 하는 페이지를 만들 수 있다. 공격자는 이를 통해 원격으로 코드가 실행되도록 만들 수 있다.

관리자 권한을 갖지 않은 셰어포인트 사용자가 파일을 업로드할 수 있도록 셰어포인트를 구성하면(예를 들어, AddAndCustomizePages 권한을 보유하고 있다면), 인증되지 않은 사용자가 셰어포인트 배포의 권한이 권장되는 수준보다 느슨한 경우에 RCE를 트리거 할 수 있다. 

인증된 사용자에게 부여된 권한으로 페이지를 생성할 수 있고, 애플리케이션의 web.config 파일을 중심으로 임의의 파일을 노출할 수 있다. AttackerKB에서 언급됐듯, 공격자는 이 파일을 이용, .NET 비직렬화를 통해 RCE를 트리거 할 수 있다. 많은 서버가 인터넷에 노출되고, 공격 위험이 초래될 수 있다.

망분리
두 취약점은 네트워크 셋업 및 구성 방식에 따른 노출 위험에 대해 알려준다. 이 두 사례에서 즉각적인 해결책은 적절한 패치를 적용하는 것이지만, 동시에 네트워크 액세스와 구성도 확인해야 한다. 

인터넷에서 액세스할 수 있는 컴퓨터, 서버, 클라우드 서비스, 기타 리소스를 셋업할 때 각별히 주의해야 하고, 액세스를 보호할 필요가 있는 리소스를 평가해야 한다. 액세스를 허용하고, 특정 네트워크나 그룹에 특정적으로 만들지 않는 방식으로 그룹 정책 방화벽 규칙을 설정하는 경우가 아주 많다.

망분리는 아주 오래 전부터 아주 중요한 모범 사례 중 하나였다. 망분리는 처리 및 저장되는 정보의 민감도와 정보의 종류를 기준으로 네트워크를 분리하는 개념이다. 보호 대상이 물리적 장치나 서버, 가상 장치나 서버이든, 심지어 클라우드 리소스이든, 리소스를 셋업 한 방법과 여기에 액세스할 수 있는 권한을 가진 사람과 대상에 대해 평가해야 한다.

다음은 내부 리소스를 보호하기 위해 적용할 수 있는 모범 사례들이다.

• 정기적으로 네트워크를 스캔, 승인된 장치만 연결되어 있는지 확인한다.
• 동일 서브넷에 위치하는 장치를 이것이 필요하거나 승인된 장치로 제한한다.
• DMZ를 셋업 할 때, 네트워크 경계를 통과하는 헤더 및 페이로드 정보를 로깅 및 모니터링하도록 구성하고, 이 정보를 로깅 시스템으로 보낸다.
• VLAN을 사용하고, 방화벽 필터링을 통해 보호 요건이 다른 정보와 프로세싱의 종류를 구분하고, 승인된 사람만 자신의 책임을 이행하기 위해 필요한 시스템과 통신할 수 있도록 만든다.
• 장치 목록과 IP 주소 등, 네트워크에 연결되는 기술 자산의 인벤토리를 만든다. 네트워크의 모든 시스템을 여기에 포함시켜야 한다. 네트워크에 연결된 IP 주소를 가진 장치에 사물 인터넷 장치, 프린터, 전화, ‘뉴 노멀’에 따라 재택 근무를 할 경우에는 부적절하게 연결된 가정용 장치를 포함시킬 수 있다.

10월 업데이트가 네트워크에 미친 영향을 조사할 필요가 있다. 즉시 패치를 적용할 필요가 있다고 판단하면, 네트워크를 분리할 수 있는지 여부를 판단한다. 워크스테이션과 서버가 보호 체계 없이 웹에 직접 연결되는 일이 없어야 한다. 셰어포인트 서버를 셋업 및 배포한 방식을 평가한다. 앞으로도 셰어포인트 서버에 RCE 취약점 문제가 발생할 수도 있다. 서버를 배포한 방식을 평가하고, SSL VPN이나 다른 방법으로 더 튼튼히 보호할 수 있는지 여부를 판단한다. 리소스를 더 적합하게 배포하는 방법, 더 안전하게 계속 보호하는 방법을 찾을 수 있을 것이다.

* Susan Bradley는 CSO 객원 기자다. ciokr@idg.co.kr

X