웹취약점 자동점검 가능한가?
이글루코퍼레이션 대전사이버분석팀 김태섭 차장

[아이티데일리]

웹취약점 자동점검의 도입이 논의되는 이유

웹취약점 점검을 수행하다 보면 종종 고객으로부터 해당 업무에 대한 설명을 요청받는 경우가 있다. 이에 자료를 준비하고 따로 자리를 마련해 업무 프로세스나 진단 범위 등에 대한 간략한 브리핑을 하고 나면, 고객 담당자는 “자동점검 프로그램을 사용하는 게 아니었느냐”며 놀라곤 한다. 그러면 필자는 “웹서비스에 지장을 주지 않기 위해 수동점검을 통해 일일이 수행하고 있다”고 답변한다.

사실 이렇게 고객 담당자들이 의문을 제기하는 것도 무리는 아닌 게, 필자가 속한 대전사이버분석팀은 통상 10명 내외의 인력으로 연간 3,000여 개의 홈페이지를 점검하고 있다. 점검자마다 하루에 2개의 홈페이지는 점검 완료해야 각 홈페이지별로 연 1회의 점검을 받을 수 있으며, 이는 대민서비스 홈페이지만을 염두했을 때의 수치이기 때문에 업무망 홈페이지로 그 범위를 확대할 경우 점검 인력 역시 비례해 증가하게 된다.

그러나 현실적으로는 점검 인력을 필요한 만큼 계속해서 늘려나갈 수 없기에, 고객 담당자는 자동점검 도입을 통해 수동점검의 전체 혹은 일부분을 대체할 수 있기를 바란다. 자동점검을 통해 수동점검에 소요되는 시간을 단축시키고, 이를 통해 확보된 시간을 중요 홈페이지에 투자함으로써 연 1회가 아닌 분기 혹은 반기로 점검 횟수를 늘려 전반적인 웹서비스의 안정성 향상을 기대한다. 또 자동점검 솔루션을 활용한다면 예약점검과 같은 기능을 통해 야간에도 취약점 진단이 가능해질 것이다.

따라서 웹취약점에 보다 효율적으로 대응하기 위해 수동으로 수행했던 취약점 점검을 자동화해야 한다는 목소리가 높아지고 있다. 실제로 취약점 자동진단 기능을 탑재한 솔루션들이 하나둘 출시됨에 따라 이런 추세에 더욱 힘이 실리고 있는 상황이다. 그렇다면 과연 이러한 솔루션들이 수동점검을 완벽히 대체할 수 있을까? 이를 살펴보기 위해 웹취약점 자동점검 테스트를 수행해봤다.


웹취약점 자동점검 테스트 1차

● 자동점검 솔루션 테스트 1차 사전 준비

웹취약점 자동점검 솔루션의 기능성 테스트를 위해 먼저 상용 제품 3개를 선정했다. 그 후 필자의 팀이 취약점 점검 시 기반으로 하는 전자정부서비스 웹취약점 표준 점검항목 21개에 대한 테스트가 진행될 수 있도록, 세 업체에게 사전 준비를 요청했다.

표1. 전자정부서비스 웹취약점 표준 점검항목 21개 (출처: 행정안전부)
표1. 전자정부서비스 웹취약점 표준 점검항목 21개 (출처: 행정안전부)

업체들과 의견조율 중, 현재 서비스하고 있는 홈페이지에 데이터를 자동으로 입력 및 삭제하면서 취약점 변조를 수행하기는 어렵다고 판단해 자동점검이 가능한 아래의 8가지 항목을 바탕으로 테스트를 진행하게 됐다.

표2. 웹취약점 자동점검 가능항목 8개 (출처: 행정안전부)
표2. 웹취약점 자동점검 가능항목 8개 (출처: 행정안전부)
자동점검 기능 테스트 진행 프로세스 (출처: 이글루코퍼레이션)
자동점검 기능 테스트 진행 프로세스 (출처: 이글루코퍼레이션)


● 자동점검 솔루션 테스트 1차 결과

앞서 선정한 솔루션들을 활용해 현재 운영 중인 홈페이지 3개를 대상으로 취약점 자동점검을 수행했고, 그 결과는 다음과 같았다.

표3. 자동점검 솔루션 테스트 1차 결과 (출처: 이글루코퍼레이션)
표3. 자동점검 솔루션 테스트 1차 결과 (출처: 이글루코퍼레이션)

실제 서비스 중인 홈페이지를 대상으로 진행한 테스트이다 보니, 2개의 홈페이지에서는 도메인 정보 수집에 상당 시간이 소요돼 점검이 미완료로 마무리됐고 접속 장애 및 서비스 지연 현상도 발생했다. 그와 동시에 1개 홈페이지에서는 두 솔루션이 ‘크로스사이트 스크립트’ 취약점을 발견하는 유의미한 결과도 있었지만, 수동 점검을 통해 발견된 취약점 수를 비롯한 전반적인 진단 결과를 비교했을 때 정확도의 차이는 매우 컸다. 이에 자동점검 솔루션이 존재하는 취약점들을 식별해내지 못한 사유를 분석해 아래와 같이 정리해봤다.

표4. 자동점검 솔루션 취약점 미발견 사유 (출처: 이글루코퍼레이션)
표4. 자동점검 솔루션 취약점 미발견 사유 (출처: 이글루코퍼레이션)


웹취약점 자동점검 테스트 2차

그러나 1차 테스트의 경우 표본이 너무 적고 점검이 미완료로 마무리되는 케이스도 발생하면서, 수동점검을 자동점검으로 대체할 수 있을지에 대한 여부와 자동점검의 취약점 발견 정확도를 확인하기에는 여러모로 역부족인 것으로 판단됐다. 이에 표본을 8개로 확대해 2차 테스트를 진행하기로 했다.

● 자동점검 솔루션 테스트 2차 결과

총 8개의 홈페이지를 선정해 2차 테스트를 수행한 결과는 아래와 같다.

표5. 자동점검 솔루션 테스트 2차 결과 (출처: 이글루코퍼레이션)
표5. 자동점검 솔루션 테스트 2차 결과 (출처: 이글루코퍼레이션)

보다 자세히 살펴보면, 먼저 홈7(Home7)에 대한 자동점검 수행 시 A솔루션에서는 자체적인 정체현상이 발생했다. 그 사유는 전자정부 표준프레임워크로 홈페이지를 개발한 경우, 파라미터 인자값에 취약점 패턴을 입력하면 에러페이지로 리다이렉션된다는 데에 있다. 이 현상을 A솔루션이 통신 오류로 감지해 취약점 진단 패턴마다 일정 시간 정지 후 전송하게 됨으로써 정체가 발생하게 된 것이다. 또 홈페이지를 구성하는 메뉴 및 배치된 콘텐츠의 양이나, 각 솔루션의 진단 패턴이 많고 적음도 전체 진단 시간에 영향을 주었으며 에러페이지, SSL 관련 문제점으로 자동점검이 지연되거나 미완료되는 경우도 있었다.


웹취약점 자동점검 테스트 결과 분석

● 자동점검 솔루션 테스트 결과

이와 같이 두 차례의 테스트를 통해 우리는 상용화돼 있는 자동점검 기능의 전반적인 성능을 파악해봤다. 앞서 선정한 기능항목 8개를 기준으로 봤을 때, 대체로 크로스사이트 스크립트나 데이터 평문전송 취약점은 자동진단이 가능했지만 그에 반해 관리자페이지 노출, 위치공개 취약점은 발견하지 못하는 결과를 보였다. 더불어 운영체제 명령어 실행과 웹서비스 메소드 설정 공격 취약점의 경우, 표본으로 삼은 홈페이지상에서 발견되지 않아 자동진단 가능 여부에 대한 검증 자체가 불가능했다.


● 자동점검 솔루션이 취약점을 발견하지 못하는 이유

그리고 그 결과를 토대로, 자동점검 솔루션이 존재하는 취약점을 제대로 발견하지 못하는 이유이자 현실적인 한계를 크게 2가지로 도출해볼 수 있었다.

첫 번째로는, 테스트가 운영 중인 홈페이지를 대상으로 진행됐다는 점이다. 솔루션 개발 및 운영업체에 따르면 실제 운영 중인 홈페이지를 대상으로 한 자동점검은 진행되기 어렵고 또 추천하지 않는다고 한다. 운영 중인 홈페이지에 자동점검을 수행하다 보면 수많은 점검 패턴을 단시간에 전송하게 되면서 홈페이지 서비스에 지장을 줄 수밖에 없기 때문이다. 이에 해킹 파일을 올리는 파일 업로드, 서버의 파일을 다운로드하는 파일 다운로드, 인증 및 인가를 검증하는 불충분한 인증 및 인가와 같이 서버에 영향을 줄 수 있는 취약점들에 대해서는 테스트를 수행할 수 없었다.

두 번째로는, 자동점검 솔루션에 포함된 점검 항목별 점검 패턴이 실제 발생하는 취약점 현황과 상이하다는 점이다. 예를 들어 관리자페이지 노출 취약점의 경우 URL에 admin.jsp, admin.do처럼 단순한 URL 패턴만 전송해 취약점 존재 여부를 파악하다 보니 다양한 제품의 관리자페이지를 발견해내지 못했다. 물론 솔루션에 패턴을 추가할수록 점검에 소요되는 시간이 늘어나기에 해당 부분을 고려한 개발이겠지만 어느 정도의 보완은 불가피하다고 보인다.

마지막으로 웹취약점 점검 항목별 개선이 필요한 사항을 정리하면 아래와 같다.

표6. 점검 항목별 개선 필요 사항 (출처: 이글루코퍼레이션)
표6. 점검 항목별 개선 필요 사항 (출처: 이글루코퍼레이션)


효율적인 웹취약점 진단을 위한 방안

그렇다면 결국 자동진단은 아직 시기상조인 것일까? 솔루션을 활용해 수동점검의 일부분이라도 대체해 보다 효율적인 웹취약점 진단 프로세스를 구축할 수 있는 방안을 아래와 같이 생각해봤다.


● 자동점검 솔루션의 점검 환경 개선

오늘날 클라우드 환경이 보편화되면서 홈페이지 구축 시 클라우드 서버를 활용하는 경우가 많아졌다. 이에 취약점 자동점검을 실현할 수 있는 첫 번째 방안은 바로 클라우드를 활용하는 것이다. 클라우드 서버군에 점검 영역을 만들고, 점검 대상 홈페이지를 복제해 기존 홈페이지와 동일하게 구성한 후, 솔루션을 통해 자동점검을 수행한다. 이는 실제 운영 중인 홈페이지 상에서 이뤄지는 점검이 아니기 때문에 서비스 장애를 고려하지 않고 진행할 수 있다는 장점이 있다. 다만 홈페이지를 복제해 세팅하기 위해서는 홈페이지 구성 프로그램들의 라이선스가 추가로 필요한 경우가 있어 해당 부분에 대해서는 보다 심층적인 고민이 요구된다.


● 자동점검 솔루션의 점검 패턴 개선

자동점검 솔루션의 실질적인 활용을 위해 가장 먼저 확보돼야 하는 것은 단연 취약점 발견 정확도다. 그리고 이를 위해서는 각 점검항목별 점검 패턴을 추가하는 기능이 기본적으로 탑재돼 있어야 한다. 물론 솔루션 개발 업체의 입장에서는 점검 패턴의 업데이트 및 관리 등이 부가적인 기술지원으로 여겨져 고민될 수 있지만, 사용자에게 취약점 점검 결과에 대한 정확성을 보장해주기 위해서는 현황을 반영하는 점검 패턴의 개선이 필수불가결한 요소라 판단된다.

지금까지 웹취약점 자동점검의 현 주소에 대해 살펴봤다. 그리고 아쉽게도 자동점검 솔루션이 수동점검을 대체하기까지는 아직 갈 길이 멀어 보인다. 그렇지만 대체 가능한 부분부터 차근차근 실현해나간다면 결코 불가능한 것만은 아니라고 생각된다. 최근 인공지능을 통해 사이버 보안의 다양한 분야가 하나둘 자동화되고 있는 만큼, 취약점 점검 분야 역시 자동화에 대한 논의는 지속될 것이며, IT기술의 빠른 발전에 힘입어 차후에는 수동점검을 완전히 대체할 수 있는 자동화가 이뤄지길 기대하는 바다.

저작권자 © 아이티데일리 무단전재 및 재배포 금지