[BAS 연재⑤ 최종회] 취약점 관리 얼마나 가능한가
선제적으로 취약점 체크하고 사전에 개선할 수 있는 Offensive 솔루션 검토 필요한 시점
내부와 외부의 보안 위협에 대응하기 위해 기업들은 보안팀을 구축하고 수십종의 보안솔루션을 도입하고 보안관제, 보안컨설팅 등 다양한 정보보호와 관련 투자를 매년 해 오고 있다. 하지만 과연 구축된 보안솔루션이 제대로 작동하고 있는지, 실제로 현재 우리 조직의 보안 프로세스로 해커의 공격을 막을 수 있는지, 기존 솔루션과 조직의 보안 프로세스를 검증하고 개선하려면 어떻게 해야 하는지 즉 궁극적으로 우리 회사의 보안체계가 얼마나 잘 작동하는지 한눈에 파악할 필요성이 대두되고 있는 시점이다. 글로벌 기업들은 이 부분에 대해 적극적인 투자를 아끼지 않고 있다. 황석훈 타이거팀 대표는 이번 'BAS 연재'를 통해 정보보호의 방향성을 독자들과 함께 고민해 보고자 한다. (편집자 주)
◇연재 순서
1. 내·외부 위협에 대해서 얼마나 이해하고 있는가
2. 해커들의 공격은 어떻게 이루어지는가
3. Cyber-KillChain과 ATT&CK
4. BAS를 어떻게 업무에 활용할 것인가
5. 취약점 관리 얼마나 가능한가
많은 고객사와 미팅을 하다 보면 개별 자산에 대한 정교한 취약점 관리를 하고 싶어 하는 고객들이 많다. 만약 이 부분이 정말 정교하게 관리될 수 있다면 아마도 최고의 방어수단중 하나가 될 것이라는 데는 의심할 여지가 없다. 하지만 현실적으로 얼마나 가능할지 고민을 하게 된다.
회사마다 규모는 다를 수 있지만, 요즘 대기업의 네트워크는 엄청난 규모다. 인력을 단순히 늘리는 방법으로는 턱없이 어려울 만큼 넓고 자산도 많다. 때문에 자동화가 가능한 방법을 찾는데 많은 노력을 기울이고 있다. 직원 한 명이 감당할 수 있는 자산을 최대치로 늘리려는 노력이라고 생각한다.
그리고 요즘 서비스들은 단순히 한 두 개의 자산(서버나 네트워크 장비)으로만 구성되지도 않는다. 복잡한 아키텍처를 가지는 경우가 다반사고 기존 시스템과 연동되거나 외부망과 연동되는 상황도 자주 발생한다.
자산 개별에 대한 취약점도 자산 자체가 많아 제대로 관리가 어려운데, 복잡하게 연동된 자산까지 고려한다면 정말 취약점을 관리할 수 있을까 하는 생각이 든다. 그런 면에서 개인적으로 망분리는 업무를 너무 번거롭게 하고 완벽하게 안전하게 하지는 못하지만, 분명 위에서 제기한 이슈를 상당히 많은 부분에 대해서 한번에 줄일 수 있는 방법임은 분명한 것 같다. 코로나19 확산을 막기 위해 도시나 국가를 폐쇄하는 것과 유사하다 할 것이다.
이미 기 존재하는 자산에 대한 관리도 쉽지 않지만, 신규로 개발되는 자산에 대해서도 사전 점검 단계에서부터 충분히 검증을 거치는지 생각해 볼 필요가 있다. 여러 이유로 인해서 간단히 점검하는 경우도 있지만, 점검 자체가 특정한 부분만을(대부분의 경우 웹어플리케이션만을 보고 개발시에서 테스트하는 경우도 많음) 검토하는 경우가 대다수다.
또한 점검 자체가 점검자 개개인의 역량에만 의존하다 보니 역량에 따라 결과도 달라지고 충분히 체계적인 점검 자체도 기대하기 어렵다.
가끔 같은 대상에서 모의해킹 때마다 계속 취약점이 나오는 현상을 당연하게 생각하는 것을 필자는 이해가 잘되지 않지만, 상황적으로 그럴 수밖에 없음을 안다. 하지만 한편으로 너무 취약점이 없으면 다음해 예산 확보는 가능한가라는 또 다른 딜레마가 생각나기도 한다.
사실 이미 각 서비스에 대한 취약점을 검증하기 위해서 가장 체계가 잘 수립된 여러가지 위협모델링(MS-STRIDE, CAPEC, LINDDUN 등)이 존재하지만, 이를 실무에서 적용하는 사례는 극히 드물다. 제대로 적용된 사례는 필자가 직접 수행한 것을 제외하고는 다른 사례를 본적이 없다. 이는 시간과 비용이 많이 들기 때문이고 위협모델링 자체를 잘 모르는 경우도 많은 것 같다. 더욱이 국내에서는 연구하는 곳도 많지 않다.
개인적으로 대대적으로 위협모델링을 한번이라도 적용할 수 있다면 위와 같은 반복적인 현상은 많이 줄일 수 있지 않을까 생각한다. 이를 신규서비스 점검에 적용한다면 가장 이상적인 방법이 되지 않을까.
즉, 자산 자체가 완벽하고 안전하게 관리될 수 있다면 너무 좋겠지만 애초부터 그럴 가능성이 높지 않기 때문에, 우리는 부가적인 방법으로 보안솔루션의 기능에 의존할 수 밖에 없다. 그렇다면 보안솔루션의 역할은 자산에 대한 관리가 부족한 부분을 최대한 커버할 수 있는 상태로 구성되어야 하고 동작되어야 한다.
보안솔루션을 크게 차단솔루션과 탐지솔루션으로 구분해 보도록 하겠다. 차단솔루션은 내·외부의 공격을 막는데 효과적인 방법이다. 차단하는 방법이 명확(통상 IP, Port 등)하기 때문에 오탐이나 과탐이 발생할 가능성이 거의 없다. 하지만 실수가 존재하거나 홀이 존재한다면 아무런 도움이 되지 못하기도 한다. 매우 치명적인 것이다. 하지만 이런 부분을 찾아내는 일은 쉬운 일만은 아니다.
한편 탐지솔루션은 내·외부의 공격을 패턴(Pattern or Rule)이나 비정상 행위기반으로 탐지하고 차단 또는 모니터링하는 솔루션을 말한다. 하지만 이 솔루션의 최대 단점은 오탐과 과탐이다. 특히 비정상행위기반의 경우 오탐이 상당하다. 지금은 많이 개선되었다고 하지만 개발하기가 쉽지 않은 분야임에는 틀림없다.
때문에, 탐지솔루션을 도입하기 위해서는 반드시 튜닝과정을 거치는 것이 바람직하다. 개인적으로 3~6개월 정도 필요하다고 본다. 자사의 서비스와 네트워크 환경에 맞게끔 룰 설정을 튜닝(추가, 삭제, 변경)하고 탐지 내역을 검증해 오탐과 과탐을 줄이고 의미있는 데이터가 나오도록 해야 하기 때문이다. 하지만 이렇게 하는 사례는 많지 않다. 그러다 보니 탐지로그가 과도하게 쌓이는 문제가 발생하는데, 너무 많이 발생해버릴 경우 이를 제대로 관리하는 것은 사실상 쉽지 않다.
또 탐지솔루션의 가장 치명적인 약점은 탐지 패턴의 업그레이드다. 최신 취약점에 대해서 신속하게 탐지하기 위해서는 무엇보다 업그레이드가 중요하다. 얼마나 업데이트를 자주 그리고 충분히 수행하는지는 개별 솔루션마다 차이가 있을 수 있다. 하지만 그 부분을 검증할 방법은 없다. 탐지 되지 않으면 사고가 나도 알 수가 없기 때문이다.
만약 탐지 로그가 쌓이다 갑자기 더 이상 추가되지 않는다면 이것은 어떤 의미일까. 공격을 포기한 것일까. 아니면 탐지 우회 또는 공격을 성공한 것일까. 이 상황에 우리는 현재 어떻게 대응하고 있는가. 물론 그전에 IP를 차단하는 등의 대응을 할 수도 있지만 말이다.
대표적인 탐지 솔루션인 백신 또한 그러하다. 백신은 패턴 업데이트가 신속하지 않으면 최신 공격을 막을 방법이 없다. 패치관리도 마찬가지다. 패치관리는 CVE 취약점이 나왔다고 바로 벤더에서 패치를 내려주지 않는다. 패치가 나오기 전까지는 다른 관리가 필요한데, 이 또한 관련 정보를 충분히 이해하지 못하는 담당자라면 할 수 있는 것이 아무것도 없는 것이다.
물론 이러한 문제점들을 해결하기 위해서 보다 진일보된 보안솔루션을 도입하거나 취약점 정보를 공유하거나 연동해 이를 반영하는 방법 등을 적극적으로 검토하고 도입하고 있다. 무엇보다 뛰어난 인재를 영입하거나 내부 인력을 양성하기 위해서 노력하고 있다. 주어진 환경에서 최선을 다하는 기업들도 많다.
하지만 전쟁을 대비하기 위해서 최선을 다해 성벽을 쌓고 무기를 준비하지만, 정작 성벽을 잘못 쌓은 곳은 없는지, 작은 틈은 없는지, 적군의 공격 무기에 대한 대안은 충분한지 등에 대한 검증과 준비가 없다면 성벽만으로 전쟁을 이길 수 있다고 볼 수 없다.
보안은 완벽을 다루는 것이 아니라, 최선을 다루는 분야라고 한다. 이제는 최선을 위해 방어적인(Defensive) 솔루션도 중요하지만, 선제적으로 취약점을 체크하고 사전에 개선할 수 있는 공격적인(Offensive) 솔루션에 대한 검토가 필요한 때가 됐다.
지금까지 연재를 통해 필자는 공격적인(Offensive) 보안 점검 솔루션중 하나인 BAS에 대한 개념과 그 필요성, 그리고 도입을 통한 효과 등에 대해 설명했다. 기고 특성상 지면이 충분치 못해 자세한 내용을 모두 전달 할 수는 없었지만, 조금이나마 데일리시큐 독자들에게 도움이 됐으면 하는 바람이다. (연재 끝)
[글. 황석훈 타이거팀 대표 / h9430@tigerteam.kr]
★정보보안 대표 미디어 데일리시큐!★