정책 리스크를 파악하십시오. 정책에 대한 질문을 일상 언어로 하십시오. 데모 신청하기 →
Published:
일관된 네트워크 보안 위생을 확보하는 다섯 가지 팁
by FireMon
보안의 초점은 언제나 복잡하고 정교한 공격을 막는 데 맞춰져 있었습니다. 고도화된 공격자와 뛰어난 방어자의 대결은 훌륭한 이야깃거리가 됩니다. 이른바 선과 악의 대결입니다.
러시아와 우크라이나의 전쟁을 고려할 때, 많은 분들이 러시아발 사이버 공격에 대비해 오셨을 것입니다. 미국 정부는 공격을 예상하라고 밝혔습니다. 러시아가 서방을 상대로 대규모 사이버 공격을 감행할지는 확실하지 않지만, 만약 감행한다면 어떤 종류의 공격일까요? 저는 목적을 달성할 수 있는 가장 단순한 공격이 그 답이라고 봅니다. 상당한 사이버 역량을 갖춘 모든 국가는 수십 개(혹은 그 이상)의 제로데이 공격 수단을 보유하고 있습니다. 그러나 굳이 강요받지 않는 한, 왜 정교한 공격 수단을 소모하겠습니까?
합리적인 공격자는 조직 환경에 발판을 마련하기 위해 가장 저항이 적은 경로를 찾습니다. 즉, 가장 약한 고리를 이용한다는 뜻이며, 그것은 대개 잘못된 구성이나 기본적인 보안 실수와 같은 단순한 문제입니다. 이러한 공격으로부터 스스로를 보호하는 최선의 방법이 무엇이냐는 질문을 받으면, 저는 대체로 단순한 것을 제대로 하라고 답합니다. 미식축구에 빗대자면 블로킹과 태클 같은 기본기입니다.
제 동료이자 DisruptOps 공동 창업자인 Rich Mogull은 늘 "단순한 것은 확장되지 않는다"고 말해 왔고, 그의 말이 맞습니다. 장비 두 대에서 방화벽을 변경하는 일은 어렵지 않습니다. 그러나 전 세계에 분산된 수백 대의 장비에 방화벽 정책을 적용하는 일은 대단히 어렵습니다. 그리고 매번 정확하게 수행하는 것은 더욱 까다롭습니다.
그렇다면 단순한 일을 잘, 그리고 일관되게 수행하기 위한 해법을 살펴보겠습니다. 다소 의외일 수 있지만, 여기에는 사람과 프로세스, 기술의 조합이 필요합니다. 그리고 저희는 프로세스에 큰 비중을 둡니다. 일관성을 확보하는 가장 좋은 방법이기 때문입니다. 모두가 자신이 해야 할 일을 알고 있고 그 활동을 추적할 수단이 있다면, 일관된 결과를 얻게 됩니다.
다음 다섯 가지 팁은 보안 위생 수준은 물론 전반적인 보안 태세를 개선하기 위한 지침이 될 것입니다.
팁 1: 정책에 대한 합의 도출
어디로 가는지 모른다면, 언제 도착하는지는 물론 "그곳"이 어디인지조차 알 수 없습니다. 따라서 첫 번째 팁은 성공의 기준을 알 수 있도록 보안 위생 정책을 수립하는 것입니다. 일주일 이내 패치라는 목표를 세우든, 특정 지역으로의 아웃바운드 연결을 차단하든, 정책을 정의하고 문서화해 두면 무언가를 차단하기 시작하기 전에 모두가 같은 기준을 공유하게 됩니다.
팁 2: 가시성 확대
볼 수 없으면 관리할 수 없다는 격언을 들어보셨을 것입니다. 실제로 맞는 말입니다. 정책에 대한 합의가 이루어지면, 환경 안에 무엇이 있는지 파악해야 합니다. 물론 이미 어느 정도는 알고 계실 것입니다. 사업장 위치나 이미 설치된 인프라 같은 것들 말입니다. (표면상) 자산 정보를 담고 있는 CMDB를 보유하고 계실 수도 있습니다. 그것이 출발점입니다.
보유하고 계신 자산 목록과 태세 정보는 대부분 최신 상태가 아닐 가능성이 높으며, 클라우드와 SaaS가 확산되면서 더욱 그렇습니다. 따라서 온프레미스와 클라우드를 아우르는 전체 기술 자산을 파악할 수 있도록 정의된 프로세스와 도구가 필요합니다.
팁 3: 변경 관리
반드시 구현해야 할 또 다른 핵심 프로세스는 변경 통제입니다. 누가, 언제, 어떤 변경을 수행합니까? 이 프로세스는 Log4j(또는 다음에 등장할 광범위한 취약점)를 접하기 전에 미리 검토되어야 합니다. 일관되고 성공적인 운영의 핵심은 모두가 자신의 업무를 정확히 아는 것입니다. 전사적 비상 대응 상황에서 가장 불필요한 것은 역할과 책임에 대한 불확실성입니다.
변경을 수행하려면 승인이 필요합니까? 승인자에게 RTO(응답 시간 목표)가 정해져 있습니까? 승인 없이 변경을 수행해도 될 만큼 긴급한 상황이 있습니까? 허용 가능한 다운타임은 어느 정도입니까? 변경 통제 프로세스는 이러한 상황들을 다룰 수 있어야 합니다.
또한 프로세스의 일부로 누가 변경을 수행했는지 반드시 감사하십시오. 잘못된 변경이 발생했을 때 누가 실수했는지 파악해야 하기 때문입니다(이 말은 절반만 농담입니다). 그리고 관리자 장치가 침해된 경우, 공격자가 수행한 모든 변경이 기록되므로 신속하게 되돌릴 수 있습니다.
팁 4: 지속적인 모니터링
이쯤이면 프로세스 이야기는 충분히 하셨을 것입니다. 이제 실행에 옮길 차례입니다. 그것이 재미있는 부분이지요. 보안 위생의 핵심은 모니터링입니다. 충치를 확인하기 위해 1년에 두 번 치과를 찾듯이, 모든 것이 정책을 준수하는지 확인하기 위해 인프라를 지켜봐야 합니다.
즉, 장비의 구성 변경 여부를 점검해야 한다는 뜻입니다. 앞서 언급했듯이 잘못된 구성은 공격자에게 가장 저항이 적은 경로가 되는 경우가 많으므로, 구성이 변경되었는지 여부와 그 시점을 반드시 파악해야 합니다.
사용 가능한 패치도 모니터링해야 합니다. 다음 패치 적용 시점까지 기다릴 수도 있지만, 어떤 장비를 업데이트해야 하는지와 해당 패치의 상대적 긴급도를 알아야 작업을 효과적으로 계획할 수 있습니다.
위에서 "지속적"이라고 말씀드렸지만, 이는 상대적인 표현입니다. 구성을 1분마다 점검해야 할까요? 한 시간마다? 아니면 하루에 한 번? 상황에 따라 다르지만, 일반적으로 모니터링은 적게 하는 것보다 많이 하는 편이 낫습니다. 사실 가장 좋은 방법은 로그 스트림에서 변경 사항을 찾는 것입니다. 예를 들어 AWS의 보안 그룹이나 Panorama의 방화벽 규칙(Palo Alto 방화벽을 사용하는 경우)이 변경될 때 알림을 설정할 수 있습니다. 이러한 트리거를 통해 변경이 발생하는 즉시 파악할 수 있으며, 악의적인 행위자가 변경을 수행한 경우라면 1분 1초가 중요하다는 점은 분명합니다.
팁 5: (거의) 모든 것을 자동화
저희는 자동화를 매우 중시합니다. 실제로 자동화는 모든 제품의 핵심 요소입니다. "단순한 것은 확장되지 않는다"는 점을 기억하십시오. 환경이 커지고 복잡해질수록 자동화를 받아들이는 것은 절대적으로 중요합니다. 보안 인력의 기술 격차와 채용 및 유지의 어려움을 고려하면, 기계가 처리할 수 있는 일이 많을수록 좋습니다.
장비에 수정 사항을 적용하는 작업을 자동화할 수 있고, 승인되지 않은 변경을 되돌리는 작업도 자동화할 수 있습니다. 패치 정보를 알려주는 정보원을 기계가 모니터링하도록 할 수 있으며, 같은 기계가 변경에 관한 다양한 정보를 수집해 주기 외 변경이나 승인되지 않은 변경을 정확히 찾아낼 수 있습니다.
AWS의 동료들은 사람이 인프라를 변경할 때마다 그것은 자동화의 실패라고 봅니다. 대다수 기업에게는 이상적인 목표이지만, 좋은 비전입니다. 프로세스가 자리를 잡고 직원들이 반복적으로 수행하는 정형화된 작업이 무엇인지 파악되면, 그것을 자동화하십시오. 지나친 자동화에 대한 (때로는 이해할 만한) 망설임이 있습니다. 편안하게 느끼는 속도보다 빠르게 자동화할 필요는 없지만, 동시에 변화에 대한 두려움이 조직의 발목을 잡도록 두어서도 안 됩니다.
정리하자면, 공격자에게 가장 저항이 적은 경로가 *되어서는 안 됩니다*. 운영 관점에서 보안 위생을 일관되게 확보할 수 있다면 보안 태세는 훨씬 더 견고해질 것입니다. 공격을 완전히 막아낼 수 있다는 뜻은 아니지만, 공격자가 훨씬 더 많은 수고를 들이게 만들 수 있습니다.