[ 스위치 계층 보안 ③] 레이어 2 공격 유형 ( 2 ) - 데이터 넷 
 2003 년 10 월 09 일 00 : 00 : 00 공 성철 인젠 컨설팅 본부 컨설턴트 
 스위치 계층 ( L 2 ) 은 건축물 의 기둥 에 해당 하 는 부분 으로 입 구 경비 와 외관 등 을 완벽 하 게 지키 더라도 기둥 이 무너지 면 아무런 의미 가 없 는 것 처럼 , 스위치 에 연결 된 각종 호스트 및 서버 의 안정 적 인 운영 을 위해 스위치 계층 의 보안 은 고려 해야 한다 . 단 스위치 계층 의 특성 상 해당 네트워크 에 연결 돼야만 공격 이 가능 하 므로 , 물리 적 보안 과 관리 적 보안 의 중요 성 도 잊 지 말 아야 할 것 이 다 . 
 VLAN 공격 
 VLAN ( Virtual LAN ) 은 스위치 의 물리 적 인 네트워크 를 네트워크 관리자 가 필요 에 따라 좀 더 작 은 논리 적 인 네트워크 로 분리 하 는 것 을 의미 한다 . 1 대 의 물리 적 인 스위치 를 논리 적 으로 분리 한다는 것 은 포트 기반 , 프로토콜 기반 , 서브 넷 기반 으로 분리 할 수 있 으며 , 벤더 에 따라 지원 하 는 기준 은 상이 하 다 . 은 포트 기반 VLAN 을 구성 한 예 로 , VLAN 1 과 VLAN 2 의 호스트 간 에 는 통신 이 되 지 않 는다 . 
 VLAN 으로 분리 한 구성 에 도 필요 상 모든 VLAN 이 교집합 처럼 공통 적 으로 액세스 가 가능 해야 할 포트 가 요구 될 때 도 있 다 . 에서 만약 모든 호스트 가 인터넷 을 접속 해야 하 며 , 인터넷 망 과 연결 된 라우터 가 1 대 라면 라우터 는 어느 포트 에 연결 을 해야 할까 ? 
 정상 적 인 MAC 테이블 동작 
 VLAN 1 과 VLAN 2 가 동시 에 액세스 할 수 있 는 포트 가 필요 하 다 . 이러 한 포트 를 트렁크 ( Trunk ) 포트 라고 하 며 , 트렁크 포트 는 여러 개 의 VLAN 을 중복 할 수 있 다 . 트렁크 설정 은 IEEE 802 . 1 Q 또는 시스코 의 ISL ( Inter - Switch Link ) 방식 으로 패킷 을 변조 하 는데 , 기술 적 인 용어 로 는 태 깅 ( tagging ) 한다고 하 며 , ISL 의 경우 시스코 에서 만 사용 되 는 고유 한 방식 이 다 . 801 . 1 Q 태 깅은 정상 적 인 패킷 내 에 801 . 1 Q 태그 정보 가 삽입 되 게 된다 . 
 ① 베이직 VLAN 호 핑 공격 
 이 공격 은 네트워크 공격 의 일종 으로 , 정상 적 인 경우 서로 다른 VLAN 내 의 호스트 간 에 는 통신 을 하 지 못하 므로 공격자 역시 통신 이 불 가능 하 지만 공격자 는 가능 하 도록 한다 . 공격자 자신 이 스위치 처럼 위장 하 고 , 변조 된 ISL 혹은 802 . 1 Q 의 패킷 을 스위치 로 전송 해 스위치 와 트렁크 포트 로 연결 됨 으로써 VLAN 과 관계 없이 모든 네트워크 로 접속 할 수 있 다 . 
 공격 이 성공 한 이유 는 공격자 와 연결 된 스위치 에서 트렁크 포트 설정 이 관리자 가 설정 하 는 방법 이외 에 스위치 가 자동 적 으로 설정 하 는 DTP 기능 이 자동 ( AUTO ) 으로 설정 되 어 공격자 가 요청 한 트렁크 설정 에 스위치 가 트렁크 포트 로 설정 한 것 이 다 . 
 대부분 의 스위치 의 DTP 기능 이 자동 으로 초기 설정 돼 있 으며 , 이것 은 어떤 트렁크 포트 의 설정 요청 에 도 트렁크 포트 를 허용 한다는 기능 이 므로 주의 해야 한다 . 
 ② 더블 인 캡슐 레이티 드 VLAN 호 핑 공격 
 간단히 정리 하 면 , 공격자 는 원 하 는 VLAN 으로 접속 하 기 위한 트렁크 포트 가 되 기 위해 802 . 1 Q 의 패킷 변조 를 2 번 하 여 스위치 를 공격 하 는 것 이 다 . 스위치 는 첫 802 . 1 Q 를 한 번 사용 하 고 다시 다른 스위치 에서 두 번 째 802 . 1 Q 를 사용 하 는 방식 으로 802 . 1 Q 패킷 변조 가 2 번 이 되 었 음 에 도 불구 하 고 , 스위치 에서 는 한 번 만 을 해석 한다는 기능 적 인 취약점 을 이용 해 호 핑 ( hopping ) 의 의미 대로 깡총깡총 VLAN 을 넘 어 다닌다 . 
 더블 인 캡슐 레이티 드 VLAN 호 핑 공격 사례 
 은 공격자 가 첫 번 째 스위치 와 두 번 째 스위치 에서 802 . 1 Q 정보 를 사용 함 으로써 , 공격 대상 으로 의 접근 이 가능 하 다 . 이 써 리얼 ( Ethereal ) 이 라는 패킷 스니 핑 툴 을 이용 해 패킷 을 정보 를 분석 해 보 면 801 . 1 Q 패킷 변조 가 2 번 되 어 있 는 것 을 확인 할 수 있 다 . 
 우선 항상 모든 트렁크 포트 에 대해서 일관 적 인 VLAN ID 를 사용 해야 한다 . 즉 VLAN 구성 혹은 장비 설정 시 즉흥 적 인 VLAN ID 할당 이 아닌 , 정책 적 이 고 분류 된 VLAN 을 할당 한다 . 그 다음 사용 하 지 않 는 포트 는 꺼 놓 은 후 사용 하 지 않 는 VLAN 으로 모두 포함 시킨다 . 여기 에서 VLAN 1 의 VLAN ID 는 사용 하 지 않 는다 . 
 VLAN 을 지원 하 는 장비 들 의 초기 설정 은 모든 포트 가 VLAN 1 으로 설정 돼 , 구매 후 별다른 VLAN 설정 을 하 지 않 으면 모든 포트 가 VLAN 1 에 포함 되 어 있 으므로 일반 스위치 와 동일 하 게 사용 할 수 있 다 . 
 또한 벤더 나 모델 구분 없이 모두 VLAN 1 으로 초기 설정 돼 있 으므로 , VLAN 을 지원 하 는 A 사 제품 과 B 사 제품 구매 후 에 도 별다른 설정 이 없 으면 두 스위치 끼리 트래픽 이 전송 된다 . 만약 벤더 마다 VLAN 초기 설정 이 각각 다르 다면 , 장비 설정 을 변경 하 기 전 에 는 스위치 간 트래픽 전송 이 불 가능 한 사태 를 예방 하 기 위함 이 다 . 
 마지막 으로 일반 호스트 ( 사용자 ) 가 접속 하 는 포트 들 은 모두 논 - 트 렁 킹 ( DTP Off ) 으로 설정 해야 한다 . 일반 호스트 와 연결 된 포트 가 트렁크 포트 로 사용 될 일 은 극히 희박 하 므로 , 트렁크 포트 변경 될 수 없 도록 한다 . 
 DHCP 고갈 
 DHCP ( Dynamic Host Configuration Protocol ) 란 호스트 등 의 IP 설정 시 사용 자 가 고정 적 으로 IP 를 할당 하 지 않 고 DHCP 서버 에서 제공 하 는 IP , 서브 넷 마스크 , 게이트웨이 와 DNS 등 의 정보 를 자동 으로 할당 받 을 수 있 는 기능 이 다 . 이것 은 수많 은 호스트 가 존재 하 는 네트워크 구성 에서 관리자 의 IP 관리 의 효율 성 을 가져다 줄 수 있 는 기능 이 지만 보안관 점 에서 는 불 합리 한 점 들 이 있 다 . 
 DHCP 고갈 ( starvation ) 공격 은 위조 된 MAC 주소 로 포함 해 DHCP 리퀘스트 ( request ) 패킷 을 브로드 캐스트 한다 . 만약 리퀘스트 가 충분히 많 다면 공격자 는 DHCP 의 할당 가능 한 모든 주소 들 을 소비 시킬 수 있 으며 , 이것 은 SYN 플루드 ( flood ) 와 같 은 간단 한 자원 고갈 ( resource starvation ) 공격 이 라고 할 수 있 다 . 
 이후 공격자 는 DHCP 서버 로 위장 해 사용 자 들 에게 DHCP 주소 를 할당 하 지만 , 할당 하 는 주소 에 는 잘못 된 DNS , 게이트웨이 등 의 정보 를 포함 하 고 있 으므로 사용 자 는 위조 된 주소 정보 로 데이터 를 전송 한다 . 정상 적 인 네트워크 경로 가 아닌 공격자 에게 트래픽 전송 으로 인한 여러 가지 문제점 이 발생 한다 . 
 각 포트 에서 의 사용 할 수 있 는 MAC 주소 를 제한 함 으로써 CAM 플 루딩 공격 을 방지 하 기 위한 방법 과 마찬가지 로 DHCP 고갈 의 대책 으로 사용 할 수 있 으나 , 위장 된 DHCP 서버 를 통한 공격 은 차단 하 지 못한다 . 위장 된 DHCP 서버 를 이용 한 공격 을 차단 하 기 위해 RFC 3118 의 ‘ Authentication for DHCP Messages ’ 에서 DHCP 메시지 의 인증 방법 을 이용 하 기 도 했 지만 , 마침내 DHCP 옵션 82 에서 근본 적 인 대책 을 마련 했 다 . DHCP 고갈 공격 가능 성 을 최소 화 하 기 위해서 는 네트워크 내 의 안전 한 네트 워 트 지역 내 에 여러 대 의 DHCP 서버 를 구성 하 는 것 도 고려 해 볼 만 하 다 . 
 사설 VLAN 공격 
 사설 ( Private ) VLAN 의 핵심 적 인 기능 은 같 은 IP 서브 넷 상 의 시스템 간 통신 을 제한 하 기 위해 사용 한다 . 사설 VLAN 에 포함 된 포트 들 의 설정 은 네트워크 구성 을 고려 해 트래픽 전송 여부 에 따라 결정 된다 . 
 시스코 의 경우 아이 솔 레이티 드 ( isolated ) 포트 는 오직 프로 미 스큐 어스 ( promiscuous ) 포트 와 통신 이 가능 하 지만 , 아이 솔 레이티 드 포트 간 에 는 통신 이 차단 된다 . 공격자 가 아이 솔 레이티 드 에 속해 있 다면 , 다른 아이 솔 레이티 드 포트 에 속해 있 는 호트 스 를 공격 하 기 위해서 는 사설 VLAN 에 의해 차단 되 지 않 아야 하 므로 , 사설 VLAN 의 보안 정책 을 위배 하 는 공격 을 시도 한다 . 
 공격자 는 공격 대상 호스트 에게 접근 하 려고 하 지만 , 사설 VLAN 정책 에 서로 다른 아이 솔 레이티 드 포트 에 위치 하 고 있 으므로 불 가능 하 다 . 
 사설 VLAN 공격 사례 
 스위치 는 라우터 가 재전송 한 패킷 의 목적지 의 MAC 주소 가 공격 대상 의 MAC 주소 이 므로 공격 대상 으로 전달 한다 . 결국 공격자 는 스위치 → 라우터 → 스위치 → 공격 대상 의 경로 로 사설 VLAN 정책 이 무의미 하 도록 통신 을 하 고 있 다 . 
 공격 이 가능 한 이유 는 공격자 의 위조 된 패킷 이 라우터 로 접속 이 가능 했 기 때문 이 므로 , 라우터 의 인터페이스 에 ACL ( Access Control List ) 을 설정 해 차단 해야 한다 . ACL 은 스위치 와 연결 된 인터페이스 로 유입 되 는 IP 프로토콜 중 출발지 , 목적지 가 모두 내부 네트워크 인 트래픽 을 차단 하 도록 설정 한다 . 출발지 와 목적지 가 내부 네트워크 인 트래픽 은 라우터 까지 전송 되 지 않 고 스위치 에서 전송 할 수 있 으므로 , 라우터 까지 도달 할 필요 가 없 기 때문 이 다 . 이러 한 ACL 설정 으로 공격자 의 위조 된 패킷 이 스위치 에서 라우터 에 도달 할 경우 차단 된다 . 
 장비 관리 , 설정 과 모니터링 등 을 위해 스위치 에 는 IP 를 할당 하 며 텔넷 , http 등 의 접속 으로 직접 장비 로 접속 할 수 있 다 . 불법 적 인 접속 을 차단 하 기 위해 계정 및 패스워드 인증 으로 권한 에 따라 모니터링 혹은 설정 변경 이 가능 하 다 . 물론 벤더 마다 상이 하 지만 , 공통 적 인 것 은 인증 절차 를 제공 하 고 있 다는 것 이 다 . 보통 장비 구매 후 운영 네트워크 에 설치 할 때 , 다음 과 같 은 과오 를 자주 범한다 . 
 패스워드 를 설정 하 지 않 는다 . 
 패스워드 는 간단 한 것 을 사용 한다 . 
 장비 초기 설정 된 패스워드 를 그대로 사용 한다 . 
 사용 에 아무런 문제 가 없 으므로 초기 설정 으로 그대로 사용 한다 . 
 장비 설정 시 정상 적 으로 동작 하 면 더 이상 의 설정 은 하 지 않 으며 , 제공 기능 들 에 대해 고민 하 지 않 는다 . 
 공격자 는 스위치 의 IP 정보 , 벤더 및 장 비명 , 벤 더 별 장비 의 초기 패스워드 정보 등 을 쉽 게 파악 할 수 있 으므로 , 위 와 같 은 스위치 운영 환경 에서 는 쉽 게 장비 로 로그인 할 수 있 다 . 공격자 가 장비 로 직접 접속 할 수 있 다는 것 은 매우 위험 한 일 이 다 . 
 그 순간 부터 공격자 는 전지전능 한 신 이 되 어 장비 설정 변경 , 운영 펌웨어 삭제 , 설정 내용 삭제 , 설정 내용 백업 , 특정 포트 의 셧다운 과 인 에 이 블 ( enable ) 반복 , 리부팅 등 무수 한 일 을 할 수 있 다 . 장비 에서 제공 하 는 모든 기능 들 을 검토 하 고 실습 할 것 이 다 . 
 레이어 2 계층 의 스위치 는 백본 스위치 처럼 고 성능 의 고가 의 장비 가 아니 므로 소홀 한 경향 이 현실 인 것 만 은 분명 하 다 . 그러나 스위치 의 보안 강화 는 스위치 와 연결 된 모든 호스트 및 서버 들 의 정상 적 인 운영 을 위한 기초 가 되 므로 다음 과 같 은 보안대 책 으로 안전 한 스위치 운영 의 토대 를 마련 해 보 자 . 
 스위치 의 패스워드 는 중요 서버 의 부트 ( root ) 패스워드 와 같 은 수준 으로 설정 한다 . 
 패스워드 인증 이외 에 계정 입력 기능 이 제공 되 면 활용 하 도록 한다 . 
 장비 의 초기 설정 계정 및 패스워드 는 반드시 삭제 혹은 변경 한다 . 
 ACL 을 활용 한 접근 제어 를 설정 한다 . 관리자 의 호스트 주소 , 혹은 네트워크 대역 만 이 접속 할 수 있 도록 한다 . 
 SNMP ( Single Network Management Protocol ) 기능 을 사용 하 지 않 을 경우 삭제 하 고 , NMS ( Network Management System ) 를 통한 관리 를 하 고자 할 경우 SNMP 커뮤니티 를 패스워드 정책 에 준하 는 수준 으로 변경 한다 . 공격자 는 SNMP 커뮤니티 만 을 파악 함 으로써 90 % 이상 의 하드웨어 정보 와 운영 정보 를 얻 을 수 있 다 . 
 SSH , SSL 등 암호 화 된 프로토콜 을 이용 한 장비 접속 을 구현 한다 . 물론 장비 의 지원 여부 를 확인 해야 한다 . 일반 적 인 텔넷 혹은 http 의 경우 네트워크 스니 핑 으로 패스워드 등 의 주요 정보 가 노출 될 수 있 다 . 
 장비 의 로 깅 기능 을 활용 한다 . 로그 서버 로 의 전송 을 설정 하 고 주기 적 인 로그 분석 으로 운영 상태 점검 및 침해 사고 대응 의 기초 자료 로 활용 한다 .