소개
ISE(Identity Services Engine) 버전 1.3에서는 pxGrid라는 새 API를 지원합니다. 인증, 암호화 및 권한(그룹)을 지원하는 이 현대적이고 유연한 프로토콜을 통해 다른 보안 솔루션과 손쉽게 통합할 수 있습니다. 이 문서에서는 개념 증명으로 작성된 pxLog 애플리케이션의 사용법에 대해 설명합니다. pxLog는 IPS(Intrusion Prevention System)에서 syslog 메시지를 수신하고 pxGrid 메시지를 ISE에 전송하여 공격자를 격리할 수 있습니다. 따라서 ISE는 네트워크 액세스를 제한하는 엔드포인트의 권한 부여 상태를 변경하기 위해 RADIUS CoA(Change of Authorization)를 사용합니다. 이 모든 작업은 최종 사용자에게 투명하게 이루어집니다.
이 예에서는 Snort가 IPS로 사용되었지만 다른 어떤 솔루션도 사용할 수 있습니다. 사실 IPS일 필요는 없습니다. 필요한 것은 공격자의 IP 주소와 함께 syslog 메시지를 pxLog로 전송하는 것입니다. 이로 인해 수많은 솔루션이 통합될 가능성이 생깁니다.
또한 이 문서에서는 일반적인 문제 및 제한 사항과 함께 pxGrid 솔루션을 트러블슈팅하고 테스트하는 방법을 제시합니다.
면책조항: pxLog 애플리케이션은 Cisco에서 지원하지 않습니다. 이 글은 개념의 증명으로 쓰여져 왔다. 주요 목적은 ISE에서 pxGrid 구현을 테스트하는 동안 이를 사용하는 것이었습니다.
사전 요구 사항
요구 사항
Cisco는 Cisco ISE 컨피그레이션에 대한 경험이 있고 다음 항목에 대한 기본 지식을 갖춘 것을 권장합니다.
- ISE 구축 및 권한 부여 컨피그레이션
- Cisco Catalyst 스위치의 CLI 컨피그레이션
사용되는 구성 요소
이 문서의 정보는 다음 소프트웨어 및 하드웨어 버전을 기반으로 합니다.
- Microsoft Windows 7
- Cisco Catalyst 3750X Series Switch Software, 버전 15.0 이상
- Cisco ISE 소프트웨어, 버전 1.3 이상
- Cisco AnyConnect Mobile Security와 NAM(Network Access Manager), 버전 3.1 이상
- Snort Version 2.9.6 with Data Acquisition (DAQ)
- MySQL 버전 5의 Tomcat 7에 설치된 pxLog 애플리케이션
네트워크 다이어그램 및 트래픽 흐름
다음은 네트워크 다이어그램에 나와 있는 트래픽 흐름입니다.
- Microsoft Windows 7 사용자는 스위치에 연결하여 802.1x 인증을 수행합니다.
- 스위치는 ISE를 AAA(Authentication, Authorization, and Accounting) 서버로 사용합니다. Dot1x Full Access 권한 부여 규칙이 일치하고 전체 네트워크 액세스가 부여됩니다(DACL: PERMIT_ALL).
- 사용자가 신뢰할 수 있는 네트워크와의 연결을 시도하고 Snort 규칙을 위반합니다.
- 따라서 Snort는 pxLog 애플리케이션에 알림을 보냅니다(syslog를 통해).
- pxLog 애플리케이션은 로컬 데이터베이스에 대해 확인을 수행합니다. Snort에서 보낸 syslog 메시지를 포착하고 공격자의 IP 주소를 추출하기 위해 구성됩니다. 그런 다음 pxGrid를 사용하여 공격자 IP 주소를 격리하기 위해 ISE에 요청을 보냅니다(ISE는 pxGrid 컨트롤러).
- ISE는 권한 부여 정책을 다시 평가합니다. 엔드포인트가 격리되었으므로 Session:EPSStatus EQUALS Quarantine(세션:EPSStatus EQUALS 격리) 조건이 충족되고 다른 권한 부여 프로파일이 일치합니다(Dot1x Quarantine). ISE는 세션을 종료하기 위해 스위치에 CoA Terminate를 보냅니다. 이렇게 하면 재인증이 트리거되며 새 DACL(Downloadable ACL)(PERMIT_ICMP)이 적용되어 최종 사용자에게 제한된 네트워크 액세스를 제공합니다.
- 이 단계에서 관리자는 엔드포인트의 격리를 해제하기로 결정할 수 있습니다. 이는 pxLog의 GUI를 통해 구현할 수 있습니다. 다시 ISE에 대한 pxGrid 메시지가 전송됩니다.
- ISE는 6단계와 유사한 작업을 수행합니다. 이번에는 엔드포인트가 더 이상 격리되지 않으며 전체 액세스 권한이 제공됩니다.
pxLog
아키텍처
이 솔루션은 Linux 시스템에 애플리케이션 세트를 설치하는 것입니다.
- Java로 작성되고 Tomcat 서버에 구축된 pxLog 애플리케이션 이 애플리케이션은 다음으로 구성됩니다.
- 웹 요청을 처리하는 서블릿 - 웹 브라우저를 통해 관리 패널에 액세스하는 데 사용됩니다.
- Enforcer 모듈 - 서블릿과 함께 시작되는 스레드입니다. Enforcer는 파일에서 syslog 메시지를 읽고(최적화됨), 구성된 규칙에 따라 해당 메시지를 처리하고, 작업(예: pxGrid를 통한 격리)을 실행합니다.
- pxLog(규칙 및 로그)에 대한 컨피그레이션을 포함하는 MySQL 데이터베이스입니다.
- 외부 시스템에서 syslog 메시지를 받아 파일에 기록하는 syslog 서버.
설치
pxLog 애플리케이션은 다음 라이브러리를 사용합니다.
- jQuery(AJAX 지원용)
- JSTL(JavaServer Pages Standard Tag Library)(MVC(Model View Controller) 모델, 데이터가 논리와 분리됨: JSP(JavaServer Page) 코드는 렌더링에만 사용되며 Java 클래스에는 HTML 코드가 없음)
- 로깅 하위 시스템으로서의 Log4j
- MySQL 커넥터
- 테이블 렌더링/정렬용 displaytag
- Cisco의 pxGrid API(현재 버전 알파 147)
이러한 모든 라이브러리는 이미 프로젝트의 lib 디렉토리에 있으므로 더 이상 JAR(Java ARchive) 파일을 다운로드할 필요가 없습니다.
애플리케이션을 설치하려면 다음을 수행합니다.
- 전체 디렉터리의 압축을 Tomcat Webapp 디렉터리로 풉니다.
- WEB-INF/web.xml 파일을 편집합니다. 유일하게 필요한 변경 사항은 ISE를 가리키는 serverip 변수입니다. 또한 Java Certificate KeyStores(신뢰할 수 있는 ID용 ID)가 기본값 대신 생성될 수 있습니다. 클라이언트 및 서버 인증서와 함께 SSL(Secure Sockets Layer) 세션을 사용하는 pxGrid API에서 사용됩니다. 양쪽 모두 인증서와 함께 제출해야 하며 서로 신뢰할 필요가 있습니다. 자세한 내용은 pxGrid 프로토콜 요구 사항 섹션을 참조하십시오.
- ISE 호스트 이름이 pxLog에서 올바르게 확인되었는지 확인합니다(DNS(Domain Name Server) 또는 /etc/hosts 항목의 레코드 참조). 자세한 내용은 pxGrid 프로토콜 요구 사항 섹션을 참조하십시오.
- mysql/init.sql 스크립트를 사용하여 MySQL 데이터베이스를 구성합니다. 자격 증명은 변경할 수 있지만 WEB-INF/web.xml 파일에 반영해야 합니다.
Snort
이 글에서는 특정 IPS에 초점을 두지 않으므로 간단한 설명만 제공됩니다.
Snort는 DAQ 지원을 통해 인라인으로 구성됩니다. 트래픽은 iptable로 리디렉션됩니다.
iptables -I FORWARD -j ACCEPT
iptables -I FORWARD -j NFQUEUE --queue-num 1
그런 다음 검사 후 기본 입력 가능한 규칙에 따라 주입되고 전달됩니다.
몇 가지 사용자 지정 Snort 규칙이 구성되었습니다(/etc/snort/rules/test.rules 파일은 전역 컨피그레이션에 포함됨).
alert icmp any any -> any any (itype:8; dsize:666<>686; sid:100122)
alert icmp any any -> any any (itype:8; ttl: 6; sid:100124)
Snort는 패킷의 TTL(Time To Live)이 6이거나 페이로드의 크기가 666에서 686 사이인 경우 syslog 메시지를 전송합니다. 트래픽은 Snort에 의해 차단되지 않습니다.
또한 경고가 너무 자주 트리거되지 않도록 임계값을 설정해야 합니다(/etc/snort/threshold.conf).
event_filter gen_id 1, sig_id 100122, type limit, track by_src, count 1, seconds 60
event_filter gen_id 1, sig_id 100124, type limit, track by_src, count 1, seconds 60
그런 다음 syslog 서버는 pxLog 머신(/etc/snort/snort.conf)을 가리킵니다.
output alert_syslog: host=10.222.0.61:514, LOG_AUTH LOG_ALER
일부 버전의 Snort에는 syslog 컨피그레이션과 관련된 버그가 있으며, 기본 설정을 사용하여 localhost를 가리키고 syslog-ng를 구성하여 특정 메시지를 pxLog 호스트로 전달할 수 있습니다.
ISE
설정
개인 및 인증서
- 기본적으로 ISE에서 비활성화되어 있는 pxGrid 역할을 Administration(관리) > Deployment(구축) 아래에서 활성화합니다.
- Administration(관리) > Certificates(인증서) > System Certificates(시스템 인증서) 아래에서 인증서가 pxGrid에 사용되는지 확인합니다.
엔드포인트 보호 서비스(EPS)
EPS는 관리 > 설정에서 활성화 해야 합니다 (기본적으로 비활성화 됩니다.
그러면 격리/격리 해제 기능을 사용할 수 있습니다.
권한 부여 규칙
첫 번째 규칙은 엔드포인트가 격리된 경우에만 발생합니다. 그런 다음 제한된 액세스가 RADIUS CoA에 의해 동적으로 시행됩니다. 또한 올바른 공유 암호를 사용하여 스위치를 네트워크 디바이스에 추가해야 합니다.
문제 해결
pxGrid 상태는 CLI를 통해 확인할 수 있습니다.
lise/admin# show application status ise
ISE PROCESS NAME STATE PROCESS ID
--------------------------------------------------------------------
Database Listener running 6717
Database Server running 51 PROCESSES
Application Server running 9486
Profiler Database running 7804
AD Connector running 10058
M&T Session Database running 7718
M&T Log Collector running 9752
M&T Log Processor running 9712
Certificate Authority Service running 9663
pxGrid Infrastructure Service running 14979
pxGrid Publisher Subscriber Service running 15281
pxGrid Connection Manager running 15248
pxGrid Controller running 15089
Identity Mapping Service running 9962
또한 pxGrid에는 별도의 디버그가 있습니다(Administration > Logging > Debug Log Configuration > pxGrid). 디버그 파일은 pxGrid 디렉토리에 저장됩니다. 가장 중요한 데이터는 pxgrid/pxgrid-jabberd.log 및 pxgrid/pxgrid-controller.log에 있습니다.
테스트
1단계. pxGrid 등록
Tomcat 시작 시 pxLog 애플리케이션이 자동으로 구축됩니다.
- pxGrid를 사용하려면 ISE에 두 명의 사용자(세션 액세스 권한이 있는 사용자 1명, 격리 권한이 있는 사용자 1명)를 등록합니다. Pxgrid Operations(Pxgrid 작업) > Register users(사용자 등록)에서 이 작업을 완료할 수 있습니다.
등록이 자동으로 시작됩니다.
- 이 단계에서는 ISE에 등록된 사용자를 승인해야 합니다(자동 승인은 기본적으로 비활성화됨).
승인 후 pxLog는 AJAX 호출을 통해 관리자에게 자동으로 알립니다.
ISE는 두 사용자의 상태를 Online(온라인) 또는 Offline(오프라인)(더 이상 Pending(보류 중)이 아님)으로 표시합니다.
2단계. pxLog 규칙 컨피그레이션
pxLog는 syslog 메시지를 처리하고 이를 기반으로 작업을 실행해야 합니다. 새 규칙을 추가하려면 Manage Rules를 선택합니다.
이제 Enforcer 모듈은 syslog 메시지에서 "snort["라는 정규식(RegExp)을 찾습니다. 발견되면 모든 IP 주소를 검색하고 마지막 주소 이전의 주소를 선택합니다. 이는 대부분의 보안 솔루션과 일치합니다. 자세한 내용은 Syslog 섹션을 참조하십시오. 해당 IP 주소(공격자)는 pxGrid를 통해 격리됩니다. 또한 좀 더 세분화된 규칙이 사용될 수 있습니다(예: 시그니처 번호가 포함될 수 있음).
3단계. 첫 번째 Dot1x 세션
Microsoft Windows 7 스테이션은 유선 dot1x 세션을 시작합니다. Cisco Anyconnect NAM이 신청자로 사용되었습니다. EAP-PEAP(Extensible Authentication Protocol-Protected EAP) 방법이 구성됩니다.
ISE Dot1x Full Access 권한 부여 프로파일이 선택됩니다. 스위치는 전체 액세스 권한을 부여하기 위해 액세스 목록을 다운로드합니다.
3750#show authentication sessions interface g0/17
Interface: GigabitEthernet0/17
MAC Address: 0050.b611.ed31
IP Address: 10.221.0.240
User-Name: cisco
Status: Authz Success
Domain: DATA
Security Policy: Should Secure
Security Status: Unsecure
Oper host mode: single-host
Oper control dir: both
Authorized By: Authentication Server
Vlan Policy: N/A
ACS ACL: xACSACLx-IP-PERMIT_ALL-53fc9dbe
Session timeout: N/A
Idle timeout: N/A
Common Session ID: 0A01000C000037E6BAB267CF
Acct Session ID: 0x00003A70
Handle: 0xA100080E
Runnable methods list:
Method State
dot1x Authc Success
3750#show ip access-lists interface g0/17
permit ip any any
4단계. Microsoft Windows PC가 경보를 트리거하는 패킷을 전송합니다.
다음은 TTL = 7인 Microsoft Windows 패킷에서 전송하는 경우 발생하는 상황을 보여줍니다.
c:\> ping 10.222.0.61 -i 7 -n 1
이 값은 포워딩 체인의 Snort에서 감소되며 경보가 발생합니다. 따라서 pxLog에 대한 syslog 메시지가 전송됩니다.
Sep 6 22:10:31 snort snort[6310]: [1:100124:0] ALERT {ICMP} 10.221.0.240 ->
10.222.0.61
5단계. pxLog
pxLog는 syslog 메시지를 수신하고, 처리하고, 해당 IP 주소를 격리하도록 요청합니다. 로그를 확인 하는 경우 이 확인 할 수 있습니다.
6단계. ISE 쿼런틴
ISE는 IP 주소가 격리되었음을 보고합니다.
그 결과 권한 부여 정책을 검토하고 격리를 선택한 다음 RADIUS CoA를 전송하여 특정 엔드포인트에 대한 스위치의 권한 부여 상태를 업데이트합니다.
이는 신청자가 새 세션을 시작하고 제한된 액세스(Permit_ICMP)를 받도록 강제하는 CoA 종료 메시지입니다.
그 결과는 스위치에서 확인할 수 있습니다(엔드포인트에 대한 제한적 액세스).
3750#show authentication sessions interface g0/17
Interface: GigabitEthernet0/17
MAC Address: 0050.b611.ed31
IP Address: 10.221.0.240
User-Name: cisco
Status: Authz Success
Domain: DATA
Security Policy: Should Secure
Security Status: Unsecure
Oper host mode: single-host
Oper control dir: both
Authorized By: Authentication Server
Vlan Policy: N/A
ACS ACL: xACSACLx-IP-PERMIT_ICMP-53fc9dc5
Session timeout: N/A
Idle timeout: N/A
Common Session ID: 0A01000C000037E7BAB7D68C
Acct Session ID: 0x00003A71
Handle: 0xE000080F
Runnable methods list:
Method State
dot1x Authc Success
3750#show ip access-lists interface g0/17
permit icmp any any
7단계. pxLog 격리 해제
이 단계에서 관리자는 해당 엔드포인트의 격리를 해제하기로 결정합니다.
동일한 작업을 ISE에서 직접 실행할 수 있습니다.
8단계. ISE 격리 해제
ISE는 다시 규칙을 검토하고 스위치에서 권한 부여 상태를 업데이트합니다(전체 네트워크 액세스가 부여됨).
이 보고서는 다음을 확인합니다.
pxLog 기능
pxLog 애플리케이션은 pxGrid API의 기능을 시연하기 위해 작성되었습니다. 이를 통해 다음을 수행할 수 있습니다.
- ISE에서 세션 및 EPS 사용자 등록
- ISE에서 활성화된 모든 세션에 대한 정보 다운로드
- ISE의 특정 활성 세션에 대한 정보 다운로드(IP 주소별)
- ISE의 특정 활성 사용자에 대한 정보 다운로드(사용자 이름으로)
- 모든 프로파일(프로파일러)에 대한 정보 표시
- ISE에 정의된 TrustSec SGT(Security Group Tag)에 대한 정보 표시
- 버전 확인(pxGrid 기능)
- IP 또는 MAC 주소를 기준으로 격리
- IP 또는 MAC 주소를 기반으로 격리 해제
향후 더 많은 기능이 제공될 예정입니다.
다음은 pxLog의 스크린샷 예입니다.
pxGrid 프로토콜 요구 사항
그룹
클라이언트(사용자)는 한 번에 한 그룹의 멤버일 수 있습니다. 가장 일반적으로 사용되는 두 그룹은 다음과 같습니다.
- 세션 - 세션/프로필/SGT에 대한 정보를 찾아보기/다운로드하는 데 사용됩니다.
- EPS - 쿼런틴을 실행하기 위해 사용됨
인증서 및 Java KeyStore
앞에서 언급한 것처럼, 클라이언트 애플리케이션인 pxLog 및 pxGrid 컨트롤러(ISE)가 모두 통신을 수행하려면 인증서가 구성되어 있어야 합니다. pxLog 애플리케이션은 Java KeyStore 파일에 이를 보관합니다.
- store/client.jks - 클라이언트 및 CA(Certificate Authority) 인증서를 포함합니다.
- store/root.jks - ISE 체인: MnT(Monitoring and Troubleshooting Node) ID 및 CA 인증서가 포함됩니다.
파일은 암호로 보호됩니다(기본값: cisco123). 파일 위치 및 암호는 WEB-INF/web.xml에서 변경할 수 있습니다.
다음은 새 Java KeyStore를 생성하는 단계입니다.
- 루트(신뢰할 수 있는) 키 저장소를 생성하려면 CA 인증서를 가져옵니다(cert-ca.der는 DER 형식이어야 함).
pxgrid store # keytool -import -alias ca -keystore root.jks -file cert-ca.der
- 새 키 저장소를 만들 때 나중에 키 저장소에 액세스하기 위해 사용하는 암호를 선택합니다.
- MnT ID 인증서를 루트 키 저장소로 가져옵니다(cert-mnt.der는 ISE에서 가져온 ID 인증서이며 DER 형식이어야 함).
pxgrid store # keytool -import -alias mnt -keystore root.jks -file cert-mnt.der
- 클라이언트 키 저장소를 생성하려면 CA 인증서를 가져옵니다.
pxgrid store # keytool -import -alias ca -keystore client.jks -file cert-ca.der
- 클라이언트 키 저장소에 개인 키를 만듭니다.
pxgrid store # keytool -genkey -alias clientcert -keyalg RSA -keystore client.jks -
keysize 2048
- 클라이언트 키 저장소에서 CSR(Certificate Signing Request)을 생성합니다.
pxgrid store # keytool -certreq -alias clientcert -keystore client.jks -
file cert-client.csr
- cert-client.csr에 서명하고 서명된 클라이언트 인증서를 가져옵니다.
pxgrid store # keytool -import -alias clientcert -keystore client.jks -file cert-
client.der
- 두 키 저장소 모두에 올바른 인증서가 포함되어 있는지 확인합니다.
pxgrid store # keytool -list -v -keystore client.jks
pxgrid store # keytool -list -v -keystore root.jks
주의: ISE 1.3 노드가 업그레이드될 때 ID 인증서를 유지할 수 있는 옵션이 있지만 CA 서명은 제거됩니다. 따라서 업그레이드된 ISE는 새 인증서를 사용하지만 SSL/ServerHello 메시지에 CA 인증서를 연결하지 않습니다. 그러면 클라이언트에서 (RFC에 따라) 전체 체인을 볼 것으로 예상하는 장애가 트리거됩니다.
호스트 이름
여러 기능(예: 세션 다운로드)을 위한 pxGrid API는 추가 검증을 수행합니다. 클라이언트는 ISE에 연결하고 CLI에서 hostname 명령으로 정의된 ISE 호스트 이름을 받습니다. 그런 다음 클라이언트는 해당 호스트 이름에 대해 DNS 확인을 수행하고 해당 IP 주소에서 데이터를 연결하여 가져오려고 시도합니다. ISE 호스트 이름에 대한 DNS 확인이 실패하면 클라이언트는 데이터를 가져오려고 시도하지 않습니다.
주의: 이 확인 방법에는 호스트 이름만 사용됩니다. 이 시나리오에서는 FQDN(Fully Qualified Domain Name)이 아니라 이 시나리오에서는 lise.example.com입니다.
개발자 참고 사항
Cisco는 pxGrid API를 게시하고 지원합니다. 다음과 같은 패키지가 있습니다.
pxgrid-sdk-1.0.0-167
그 안에는 다음과 같은 것들이 있습니다.
- 클래스를 포함하는 pxGrid JAR 파일 - 코드를 확인하기 위해 Java 파일로 쉽게 디코딩할 수 있습니다.
- 인증서가 있는 샘플 Java KeyStore
- pxGrid를 사용하는 샘플 Java 클래스를 사용하는 샘플 스크립트
Syslog
다음은 공격자 IP 주소와 함께 syslog 메시지를 전송하는 보안 솔루션 목록입니다. 컨피그레이션에서 올바른 RegExp 규칙을 사용하는 한 이를 pxLog와 쉽게 통합할 수 있습니다.
Snort
Snort는 다음과 같은 형식으로 syslog 알림을 전송합니다.
host[id] [sig_gen, sig_id, sig_sub] [action] [msg] [proto] [src] [dst]
예를 들면 다음과 같습니다.
snort[6310]: [1:100124:0] ALERT {ICMP} 10.221.0.240 -> 10.222.0.61
공격자 IP 주소는 항상 마지막 IP 주소(대상)의 두 번째입니다. 특정 시그니처에 대한 세분화된 RegExp를 구축하고 공격자 IP 주소를 추출하는 것은 간단합니다. 다음은 시그니처 100124 및 메시지 ICMP(Internet Control Message Protocol)에 대한 RegExp 예입니다.
snort[\.*:100124:.*ICMP.*
Cisco ASA(Adaptive Security Appliance) 검사
ASA가 HTTP(예) 검사를 위해 구성된 경우 해당 syslog 메시지는 다음과 같습니다.
Mar 12 2014 14:36:20: %ASA-5-415006: HTTP - matched Class 23:
MS13-025_class in policy-map MS_Mar_2013_policy, URI matched -
Dropping connection from inside:192.168.60.88/2135 to
outside:192.0.2.63/80
다시 세분화된 RegExp를 사용하여 이러한 메시지를 필터링하고 마지막 메시지보다 두 번째로 공격자 IP 주소를 추출할 수 있습니다.
Cisco Sourcefire NGIPS(Next Generation Intrusion Prevention System)
다음은 Sourcefire 센서에서 전송한 예제 메시지입니다.
Jan 28 19:46:19 IDS01 SFIMS: [CA IDS][Policy1][119:15:1] http_inspect: OVERSIZE
REQUEST-URI DIRECTORY [Classification: Potentially Bad Traffic] [Priority: 2]
{TCP} 10.12.253.47:55504 -> 10.15.224.60:80
따라서 동일한 논리가 적용되기 때문에 공격자 IP 주소를 추출하는 것은 간단합니다. 또한 정책 이름과 서명이 제공되므로 pxLog 규칙을 세부적으로 지정할 수 있습니다.
주니퍼 넷스크린
다음은 이전 Juniper IDP(Intrusion Detection & Prevention)에서 전송한 메시지의 예입니다.
dayId="20061012" recordId="0" timeRecv="2006/10/12
21:52:21" timeGen="2006/10/12 21:52:21" domain="" devDomVer2="0"
device_ip="10.209.83.4" cat="Predefined" attack="TROJAN:SUBSEVEN:SCAN"
srcZn="NULL" srcIntf="NULL" srcAddr="192.168.170.20" srcPort="63396"
natSrcAddr="NULL" natSrcPort="0" dstZn="NULL" dstIntf="NULL"
dstAddr="192.168.170.10" dstPort="27374" natDstAddr="NULL" natDstPort="0"
protocol="TCP" ruleDomain="" ruleVer="5" policy="Policy2" rulebase="IDS"
ruleNo="4" action="NONE" severity="LOW" alert="no" elaspedTime="0" inbytes="0"
outbytes="0" totBytes="0" inPak="0" outPak="0" totPak="0" repCount="0"
packetData="no" varEnum="31" misc="<017>'interface=eth2" user="NULL"
app="NULL" uri="NULL"
동일한 방법으로 공격자의 IP 주소를 추출할 수 있다.
주니퍼 준오스
JunOS도 이와 비슷합니다.
Jul 16 10:09:39 JuniperJunOS: asp[8265]:
ASP_IDS_TCP_SYN_ATTACK: asp 3: proto 6 (TCP),
ge-0/0/1.0 10.60.0.123:2280 -> 192.168.1.12:80, TCP
SYN flood attack
Linux iptables
다음은 Linux iptables의 예입니다.
Jun 15 23:37:33 netfilter kernel: Inbound IN=lo OUT=
MAC=00:13:d3:38:b6:e4:00:01:5c:22:9b:c2:08:00 src=10.0.0.1 DST=10.0.0.100 LEN=60
TOS=0x10 PREC=0x00 TTL=64 ID=47312 DF PROTO=TCP SPT=40945 DPT=3003 WINDOW=32767
RES=0x00 SYN URGP=0
연결 추적, xtables, rpfilters, 패턴 매칭 등의 입력 가능한 모듈에서 제공하는 고급 기능을 사용하여 모든 유형의 패킷에 대한 syslog 정보를 보낼 수 있습니다.
FreeBSD IPF 방화벽(IPFW)
다음은 IPFW 차단 프래그먼트에 대한 예제 메시지입니다.
Sep 7 15:03:14 delta ipfw: 11400 Deny UDP 10.61.216.50 10.81.199.2 in via fxp0
(frag 52639:519@1480)
VPN 준비 상태 및 CoA 처리
ISE는 CoA 처리 측면에서 세션의 유형을 인식할 수 있습니다.
- 유선 802.1x/MAB(MAC Authentication Bypass)의 경우 ISE는 CoA 재인증을 전송하여 두 번째 인증을 트리거합니다.
- 무선 802.1x/MAB의 경우 ISE는 CoA 종료를 전송하며, 이는 두 번째 인증을 트리거합니다.
- ASA VPN의 경우 ISE는 새로운 DACL이 연결된 CoA를 전송합니다(두 번째 인증 없음).
EPS 모듈은 간단합니다. 격리를 실행하면 항상 CoA 종료 패킷을 전송합니다. 유선/무선 세션의 경우 문제가 되지 않습니다(모든 802.1x 신청자는 투명하게 두 번째 EAP 세션을 시작할 수 있음). 그러나 ASA가 CoA 종료를 수신하면 VPN 세션이 삭제되고 최종 사용자에게 다음과 같은 메시지가 표시됩니다.
AnyConnect VPN이 자동으로 다시 연결되도록 하는 두 가지 방법이 있습니다(XML 프로필에서 구성).
- 자동 재연결 - 관리 종료가 아니라 VPN 게이트웨이와의 연결이 끊긴 경우에만 작동합니다.
- Always-On - AnyConnect가 작동하며 세션을 자동으로 다시 설정합니다.
새 세션이 설정된 경우에도 ASA는 새 audit-session-id를 선택합니다. ISE의 관점에서 볼 때 이 세션은 새 세션이며 격리 규칙을 접할 기회가 없습니다. VPN의 경우에도 유/무선 dot1x와 달리 엔드포인트의 MAC 주소를 ID로 사용할 수 없습니다.
해결 방법은 EPS가 ISE와 같이 작동하고 세션을 기반으로 올바른 유형의 CoA를 보내도록 강제하는 것입니다. 이 기능은 ISE 버전 1.3.1에 도입됩니다.
pxGrid 파트너 및 솔루션
다음은 pxGrid 파트너 및 솔루션 목록입니다.
- LogRhythm(Security Information and Event Management, SIEM) - REST(Representational State Transfer) API 지원
- Splunk(SIEM) - REST API 지원
- HP Arcsight(SIEM) - REST API 지원
- Sentinel NetIQ(SIEM) - pxGrid 지원 계획
- Lancope StealthWatch(SIEM) - pxGrid 지원 계획
- Cisco Sourcefire - pxGrid 1HCY15를 지원할 계획
- Cisco WSA(Web Security Appliance) - 2014년 4월에 pxGrid를 지원할 계획
기타 파트너와 솔루션은 다음과 같습니다.
- Tenable(취약점 평가)
- Emulex(패킷 캡처 및 포렌식)
- Bayshore Networks(DLP(Data Loss Prevention) 및 IoT(Internet of Things) 정책)
- Ping Identity(IAM(Identity and Access Management)/SSO(Single Sign On))
- Qradar(SIEM)
- LogLogic(SIEM)
- Symantec(SIEM MDM(모바일 장치 관리))
보안 솔루션의 전체 목록은 Marketplace Solutions Catalog를 참조하십시오.
ISE API: REST vs REST vs pxGrid
ISE 버전 1.3에서는 세 가지 유형의 API를 사용할 수 있습니다.
다음은 비교 내용입니다.
|
나머지 |
외부 RESTfull |
pxGrid |
클라이언트 인증 |
사용자 이름 + 비밀번호 (기본 HTTP 인증) |
사용자 이름 + 비밀번호 (기본 HTTP 인증) |
인증서 |
권한 구분 |
아니요 |
제한됨(ERS 관리자) |
예(그룹) |
액세스 |
MnT |
MnT |
MnT |
전송 |
tcp/443(HTTPS) |
tcp/9060(HTTPS) |
tcp/5222(XMPP) |
HTTP 메서드 |
가져오기 |
가져오기/게시/입력 |
가져오기/게시 |
기본적으로 활성화됨 |
예 |
아니요 |
아니요 |
작업 수 |
소량 |
다수 |
소량 |
CoA 종료 |
지원됨 |
아니요 |
지원됨 |
CoA 재인증 |
지원됨 |
아니요 |
지원 * |
사용자 작업 |
아니요 |
예 |
아니요 |
엔드포인트 작업 |
아니요 |
예 |
아니요 |
엔드포인트 ID 그룹 작업 |
아니요 |
예 |
아니요 |
쿼런틴(IP, MAC) |
아니요 |
아니요 |
예 |
격리 해제(IP, MAC) |
아니요 |
아니요 |
예 |
포트 바운스/종료 |
아니요 |
아니요 |
예 |
게스트 사용자 작업 |
아니요 |
예 |
아니요 |
게스트 포털 작업 |
아니요 |
예 |
아니요 |
네트워크 디바이스 운영 |
아니요 |
예 |
아니요 |
네트워크 장치 그룹 작업 |
아니요 |
예 |
아니요 |
* 쿼런틴에서는 ISE 버전 1.3.1의 Unified CoA 지원을 사용합니다.
다운로드
pxLog는 Sourceforge에서 다운로드할 수 있습니다.
SDK(소프트웨어 개발 키트)가 이미 포함되어 있습니다. pxGrid용 최신 SDK 및 API 설명서는 파트너 또는 Cisco 어카운트 팀에 문의하십시오.
관련 정보