본문 바로가기
<개인공부> - IT/[Network&Security]

MAB (MAC Authentication Bypass) Summary #1

by Aggies '19 2021. 4. 19.
반응형

1. Overview

MAB은 MAC 주소를 이용해서 network의 access를 제공할지 여부를 결정하는 기술이다. MAB은 기본 동작방식은 end point의 identity는 unknown이라 가정하고 모든 트래픽을 차단함으로 시작한다. 스위치가 device의 MAC 주소를 점검 후 MAB이 통과되면 모든 트래픽을 허용한다. MAB의 새로운 기술이 아닌데 그 전신은 VLAN Management Policy Server (VMPS) archiecture이다. MAC 주소와 mapping 될 VLAN 정보를 담은 text file의 정보를 비교하여 동작하던 architecture의 발전된 기술이 오늘 요약할 MAB이다. 다시 말해서 과거 VMPS server switch에 MAC 주소를 저장하던 방식은 centralized respository에 저장하여 RADIUS를 이용해 query하여 유효성을 검사하는 형태로 발전하게 된다.

MAB을 이용한 network design의 장점:

  1. Visibility - Authentication 과정을 통해서 통신 가능한 link를 제공받는다. 이 때 포함되는 정보는 device IP주소, MAC 주소, switch와 port이다. 이러한 정보는 security audit이나 network forensics에 사용가능하다.
  2. Identity-based services - 예를 들어 어떤 장치의 VLAN이 동적으로 할당되는 경우가 좋은 예이다. (dynamic authorization 기술은 IEEE 802.1X authentication과 함께 사용가능하다)
  3. Access control at the edge - MAB은 기술의 명칭에서도 볼 수 있듯이 Layer 2에서 동작하며 access edge에서 network access를 컨트롤 할 수 있게 해준다.
  4. Fallback or standalone authentication - IEEE 802.1X를 지원/비지원 하는 장치 모두에 대해서 fallback 또는 complementary 모드로 MAB을 구축할 수 있다. 물론, 802.1X capable devices가 아니라면 standalone 형태로 인증 mechanism을 사용가능하다.
  5. Device authentication - MAB은 IEEE 802.1X 를 사용할 수 없는 장치를 인증할 때 사용된다.

MAB을 이용한 network design의 단점:

  1. MAC database - MAB을 사용하기 위해서는 MAC 주소의 database가 필요하다. 해당 database를 통해 어떤 device의 network access를 가능/불가능하게 하는 mechanism이므로 이를 maintain하는게 primary challenge이다.
  2. Delay - Fallback mechanism을 사용시 설정된 timeout은 기본적으로 network access를 block시키기에 사용자 입장에서는 불만을 초래한다. (물론, delay를 줄이는 technique은 존재함)
  3. No user authentication - MAB은 장치를 인증하는 과정이다. 따라서, 다른 user가 동일한 device를 통해 network access를 얻을 수 있다는 단점이 존재한다.
  4. Strength of authentication - 802.1X와 비교해서 MAB은 강력한 인증방법이 아니다. 이 것은 valid한 장치의 MAC address를 spoofing하여 network access를 얻을 수 있는 단점이 있다.

2. 동작과정

High-level view로 MAB을 보면 크게 4가지로 나뉜다.

High-Level MAB Sequence

  1. Session Initiation - 스위치는 port의 link가 up이 감지되면 authentication session을 시작한다. 스위치는 Extensible Authentication Protocol (EAP) Request-Identity message를 보낸다. 스위치에서 response를 받지 못하면 특정 interval을 두고 반복하여 해당 메시지를 보내고 정해진 retry 횟수를 넘게되면 timeout이 동작한다. EAPoL이란 EAP over LAN의 약자로 802.1X에서 사용된 network authentication protocol이다. EAPoL architecture에서는 Supplicant는 Endpoint로, Authenticator는 Switch, 마지막으로 Authentication Server는 RADIUS server로 생각하면 된다.
  2. MAC Address Learning - 스위치는 포트를 열어 single packet을 수신하도록 허용함으로 MAB을 동작한다.  MAB이 동작하기 이전에 수신된 packet은 즉시 discard되어진다. 스위치는 거의 모든 Layer 2 그리고 Layer 3 packet을 통해 MAC 주소를 learning할 수 있다. 물론, Cisco Discovery Protocol, Link Layer Discovery Protocol, Spanning Tree Protocol, and Dynamic Trunking Protocol과 같은 bridging은 예외이다. 스위치가 MAC 주소를 learning 한 후 해당 패킷은 discard 되며 스위치는 RADIUS Access-Request packet을 생성한다. Access-Request messasge는 Password AUthentication Protocol (PAP) 요청으로 source MAC address를 포함하여 3가지 attributes을 가지며 각각 Username, Password, 그리고 Calling-Stating-id이다. 

    RADIUS Attribute Format Example
    1 (Username) 12 hexadecimal digits, all lowercase, no punctuation 00186809cfd7
    2 (Password) Same as the username but encrypted \xf2\xb8\x9c\x9c\x13\xdd#,\xcaT\xa1\xcay=&\xee
    31 (Calling-Station-Id) 6 groups of 2 hex digits, all uppercase, separated by hyphens 00-18-F8-09-CF-D7
  3. Session Authorization - Valid한 MAC 주소가 확인되면 RADIUS server는 Access-Accept message를 보낸다. 이를 통해 port를 열어준다. 물론 선택적으로 dynamic network access policy를 적용가능하다. (VLAN을 할당 or ACL 적용이 그 예이다) 만약 Access-Reject message를 보낸다면 MAC 주소가 valid하지 않다는 뜻이며 endpoint는 network access를 얻을 없게된다. 이 경우 스위치의 configuration에 따라 다른 동작을 나타내는데 aleternative authentication이나 authroization method가 설정되었다면 스위치는 IEEE 802.1X authentication을 수행하거나 web authentication, 아니면 guest VLAN을 할당한다. 추후보다 자세한 요약을 해보고자 한다.
  4. Session Accounting - 스위치는 authorized session에 대한 구체적인 정보를 Accounting-Request message를 통해서 RADIUS 서버에 요청할 수 있다.

3. MAB Session Termination

Endpoint의 ethernet cable이 disconnect 되더라도 authozied session이 유지된다면 보안의 문제를 야기한다. 이번 섹션에서는 Session termination 시나리오에 대해서 요약해보고자 한다.

 

  1. Link Down - MAB session을 종료하는 가장 단순한 방법은 endpoint를 network에서 unplug하는 것. Switch의 link가 down되면 즉시 session을 clear한다. 이후 다시 연결이 되면 authentication과정을 재시작함
  2. Cisco Discovery Protocol Enhancement for Second-Port Disconnect - Endpoint (예를 들어 Workstation) 가 IP phone을 통해서 연결된 경우를 떠올리면 된다. Cisco IP phone이라면 CDP를 통해서 data endpoint의 link가 down되었음을 즉시 알릴 수 있다.
  3. Inactivity timer - 스위치는 endpoint의 activity를 모니터링 하며 inactivity timer가 만료되면 스위치는 해당 장비의 authenticated session을 삭제한다. 이 타이머는 스위치 port에 정적으로 설정될 수도 있고 RADIUS Idle-Timeout attribute 형태로도 설정이 가능하다. Cisco에서는 RAIDUS attribute을 이용하여 설정하는 것을 권장한다.

4. MAB 기술 적용시 고려할 사항

  1. MAC Address Discovery - 참고한 white paper에서는 MAC 정보를 수집하는 몇 가지 방법을 소개하고 있다. 결국, endpoint의 MAC 주소를 확인 후 network access 여부를 결정하는 기술이기에 MAC 주소 DB를 구성하는 것은 필수적이다. 참고자료에서 설명하는 두 번째 방법 (첫 번째는 단순히 구매부서에서 갖고있는 구매장비 목록의 DB를 활용하기라 패스)은 MAB의 monitor 모드를 설정하는 것이다. 해당 모드에서는 MAB은 동작하지만 endpoint의 network access의 영향은 없는 모드이다. 이를 통해서, 현재 deploy 된 장비들의 MAC 주소를 큰 서비스 영향없이 수집할 수 있다. 또 다른 방법은 RADIUS에 wildcard rule을 설정한다. MAC 주소의 첫 3 octects은 OUI이다. 이 값을 RADIUS에 service policy로 설정하여 MAC 주소의 특정 OUI를 갖는 endpoint는 network access가 가능하게끔 한다.
  2. MAB DBs and RADIUS Servers - MAB이 실행되면 RADIUS 서버는 MAC 주소가 담긴 DB를 접근해야 하며 참고자료에는 3가지 방법을 안내하고 있다.

      1) Internal DB: RADIUS 서버 자체에 MAC DB를 갖는 경우. Cisco Access Control Server (ACS)를 자료에서는 예로 들고있는데 ACS는 허용된 MAC 주소만 저장하고 MAB request를 PAP authentication으로 간주하여 처리하지 않는다. 대신에 MAB request자체로 인식하여 DB와 Calling-Station-ID attribute를 바로 비교하여 처리한다. 바로 이점이 ACS가 다른 RADIUS 서버보다 MAB Aware한 점이다. 반대로 ACS 5.0 기준으로 50,000 entry만 처리가 가능하다. 그리고 RADIUS 자체 DB 정보를 변경, 수정해야 되는 부분은 보안정책상 문제가 되며 external DB 구축을 검토해야 한다.

      2) LDAP DB: Lightweight Directory Access Protocol (LDAP)은 다양한 환경에서 사용되고 있다. 운영중인 network의 모든 MAC 정보를 수집하여 LDAP으로 이 DB를 import하고 RADIUS에서 LDAP으로 query하게끔 구성할 수 있다. 이렇게 기능에 따라서 DB와 RADIUS를 분리하여 운영하면 independent하게 운영할 수 있고 scalable한 (처리 가능한 MAC entry가 증가) 장점이 있다. 하지만 이 디자인은 LDAP의 availability를 유지하는 것이 필수적으로 고려된다. LDAP DB는 MAB을 운영하는데 필수적인 정보이고 RADIUS와 LDAP이 통신불가능 상태가 된다면 endpoint는 network access를 얻을 수 없는 상황이 발생할 수도 있다. 물론, 해당 부분은 faliback policy를 통해서 mitigate할 수있다.

      3) Microsoft Active Directory: MS의 Active Directory는 많은 조직에서 user와 domain 정보를 저장하는 서비스로 널리 사용되고 있다. 모든 정보들이 중앙집중화되는 것이 중요할 경우 AD는 좋은 MAC 주소의 DB로 활용가능하다. 특히 Windows Server 2003 R2 와 2008 이후 버전은 ieee802Device라는 클래스를 제공함으로 AD에 MAC 주소를 저장하고 비밀번호 복잡도 요구 설정을 피할 수 있게 되었다. 

 


Reference site: www.cisco.com/c/en/us/products/collateral/ios-nx-os-software/identity-based-networking-services/config_guide_c17-663759.html

반응형

'<개인공부> - IT > [Network&Security]' 카테고리의 다른 글

게이트웨이 이중화 (HSRP) #1  (4) 2021.04.27
MAB (MAC Authentication Bypass) Summary #2  (0) 2021.04.23
OSPF Virtual Link란?  (0) 2021.03.31
OSPF 정리 #2  (0) 2021.03.16
OSPF 정리 #1  (0) 2021.03.12