안녕하세요~ Urikiri입니다. 오랜만에 포스팅을 하네요 ^0^ 여름에 잠~깐 휴가도 다녀오고 개인적인 사정으로 잠깐 뜸했는데 벌써 절 잊어버리신 건 아니시겠죠? 이제 휴가 기간도 슬슬 끝나가고 업무에 복귀하시는 독자(?)분들도 계실 것 같아서 오늘부터 계속 좋은 글들을 포스팅 해볼까 합니다. 오늘은 MS Forefront Client Security Team 블로그에 올라온 글 중 NAP에서 FCS가 동작하는 방법에 대한 좋은 글이 있어서 번역을 했습니다. 한번쯤 읽어보시고 SOH(Statement Of Health), SHA(System Health Agent), SHV(System Health Validator)가 무엇이고 어떤 기능을 하는지 이해해 보시길 바랍니다. 그리고 FCS만이 아닌, 타사 백신 프로그램들도 위 SOH, SHA, SHV를 제공할 경우 NAP에 적용할 수 있습니다.
Solution Accelerators Forefront Integration Kit for NAP의 기술적 깊이를 위해 Dan Griffin이 작성한 글을 소개하려합니다.
이 블로그는 두가지의 목적이 있습니다. 첫번째는 간단하게 다음 질문에 대한 답입니다. : NAP이 적합하지 않은(Non-Compliance) 클라이언트들에 대해 어떻게 작동하는가? 다른 말로, 건강한 컴퓨터들과 건강하지 않은 컴퓨터들이 어떻게 구분이 되는가? 두번째는 Solution Accelerators의 새로운 Forefront/NAP 통합 킷을 가지고 무엇을 할 수 있는가? 에 대한 답입니다.
위 두가지를 설명함에 앞서 NAP에 대해 약간 설명을 해드리겠습니다. NAP에는 5가지 시나리오(802.1X, DHCP, Ipsec, Terminal Server Gateway, VPN)가 있습니다. 이 글에서는 DHCP에 대해서 설명합니다. 그러나 DHCP는 몇가지 보안상 문제가 있습니다. 첫번째로, DHCP 구성에서 적합하지 않은 클라이언트는 제한된 네트워크에 놓여집니다. 그러나 네트워크가 기본 라우터가 있는 정말 간단한 구성으로 되어있을 경우 그리고, 기본 게이트웨이가 몇 개 안될 경우, 컴퓨터를 조금 알고있는 사용자는 제한되지 않는 네트워크로 우회할 수 있습니다. 두번째로, DHCP 표준의 제한된 속성 때문에 서버인증이나 메시지 무결성을 제공하지 않습니다. 이 것은 같은 LAN환경에 있는 누군가가 악의적으로 클라이언트나 서버가 알 수 없게 DHCP 트레픽을 수정할 수 있다는 말입니다. 그러나, 인증서 기반의 Ipsec을 이용해서 NAP을 배포할 때에는 위 두가지에 대한 문제를 해결할 수 있습니다. 예를들어 Ipsec 클라이언트와 서버는 상호간에 인증되고 네트워크 트레픽의 암호화와 암호화된 체크섬에 의해 보호됩니다.
그러나 NAP을 배우기 위한 목적이고, 테스트환경에서 POC(Proof of Concept)를 진행하기 위해서는 DHCP로 구성하는게 덜 복잡하고 보다 빠르게 다른 시나리오들을 진행할 수 있습니다. 방법은 다음 Step-by-Step 가이드를 참고해 주시기 바랍니다.
FCS/NAP 아키텍쳐 자세한 설치 절차는 제외하고 NAP이 DHCP로 구성되어있다고 가정하겠습니다. 클라이언트 컴퓨터는 NAP에 의해 적합하지 않을 경우 사내 네트워크 접근 권한을 박탈당하게 됩니다. 첫번째 단계로, NAP 에이전트가 실행되고있는 클라이언트는 SOH(Statement of Health)신호를 DHCP서버에 전송합니다. 아래 그림에서 클라이언트는 왼쪽 아래의 노트북 그림 둘 중 한 개 일 수 있습니다. 아래 큰 동그라미 그림에서 서버는 DHCP와 NPS 역할을 합니다.
DHCP서버는 클라이언트로부터 DHCP 요청을 받습니다. 그리고 SOH신호를 추출해서 NPS서버로 보냅니다. NPS는 이 신호를 분석합니다. 그런데요 한가지 궁금증이 생기네요. 한 서버에서 서비스끼리 통신이 가능할까요? ^^ 만약 SOH가 적합하다고 판단되면 DHCP서버는 사용할 수 있는 IP 정보를 보냅니다. 만약 SOH가 적합하지 않다면 DHCP서버는 제한된 네트워크의 IP정보를 보내줍니다. 그러면 FCS/NAP 솔루션은 어떻게 동작할까요? SOH에 어떤 정보가 포함이 될까요? 그리고 NPS에서 어떻게 평가가 되어질까요? FCS/NAP은 두개의 플러그인으로 구성되어있습니다. 그건 SHA(System Health Agent)와 SHV(System Health Validator) 입니다.
데이터 흐름 클라이언트 SHA는 Forefront관련 정보를 SOH에 추가하고 SHV에 의해 평가가 됩니다. SOH에는 미리 정의된 질문들에 대한 답을 가지고 있습니다. 예를들어 "Forefront Client가 현재 실행 중인가"(아래 그림에서 화살표 2번입니다.) 다른 질문은 "백신 업데이트 버전이 최신인가?"(화살표 1, 3) FCS/NAP의 SHV가 SOH(그림 5)를 받을 때 설정된 Health 정책과 맞는지 검사합니다. 예를 들어 만약 "Forefront가 실행중인가"에 대한 대답이 "아니오"일 경우 SHV는 현재의 정책이 Forefront가 항상 실행 되어야만 하는지 아닌지를 검사합니다.
SOH의 모든 대답에 대해 평가가 끝나면 SHV는 다음 둘 중 한가지 상태를 NPS서버로 보고합니다. 1. 클라이언트가 건강/적합 하다 2. 클라이언트가 건강하지 않음/부적합 하다 후자의 경우 SHV는 사용자에게 부적합한 이유를 설명해줍니다. 예를들어 "Forefront 클라이언트가 실행중이 아닙니다." 또는 "백신 업데이트 버전이 최신이 아닙니다.". 등등. 이런 메시지는 내장된 napstat.exe나 netsh.exe프로그램을 통해서 보여지게 됩니다.
설정시 주의할 점 위 그림에는 나타나있지 않지만, 추가적인 몇가지 NAP 설정 시나리오들이 있습니다.
첫번째는 "보고(Reporting)" 모드 입니다. "보고" 모드에서 NAP은 적합하지 않은 클라이언트들을 격리하진 않습니다. 간단하게 건강상태만 보고하기 때문입니다. 이것은 NAP을 운영하거나 평가중인 고객에게 아주 좋은 설정입니다. "보고"모드는 SHV의 효과가 동작하지 않습니다. 그러나 이것은 위에서 설명한것과 같이 동작합니다. 두번째 시나리오는 NAP "적용(enforcement)" 모드입니다. 부적합한 클라이언트들은 격리됩니다. 그리고 자동 치료(auto-remediation) 옵션이 있습니다. 이것은 어떤 효과가 있고 SHV는 어떻게 동작할까요? 자동치료 옵션이 활성화 되어있지 않다면 SHV는 위에서 설명한 것과 무엇이 잘못 되었는지 알려주기만 합니다. 그러나 자동치료 옵션이 활성화 되어있고 클라이언트가 적합하지 않을 때 SHV는 SOH 응답에 다른 정보를 넣어야만 합니다. 자동치료는 두 가지로 구성된 정보로 응답합니다. 1. 사용자가 수동(Instructive)으로 올바른 행동을 할 수 있는지와 SHA(informative)에 의해 자동으로 올바른 상태로 돌아가게 할 것인지에 대한 시나리오들의 차이를 두기 위해 다른 문자열이 사용됩니다. 후자가 자동치료입니다. 2. SOH응답은 SHV에서 SHA로, 지정된 자동 치료 행동에 관한 프로그램에 의한 명령들이 포함되어야 합니다. 예를들어 정책상 Forefront 서비스가 실행되어있어야 하는데 실행되어있지 않다면, SHV는 SOH에 SHA가 자동으로 서비스를 시작해야한다는 비트마스크를 설정할 것입니다.