보안정보

전문화된 보안 관련 자료, 보안 트렌드를 엿볼 수 있는
차세대 통합보안관리 기업 이글루코퍼레이션 보안정보입니다.

웹취약점 자동점검의 이상과 현실

2022.08.10

2,538

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

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

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

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

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

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

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

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

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

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

[표 2] 웹취약점 자동점검 가능항목 8개 (출처: 행정안전부)

이번 테스트의 목적은 웹취약점 수동점검을 자동점검으로 대체할 수 있을지에 대한 대답을 찾는데 있으므로, 수동 및 자동점검을 병행수행하고 결과를 비교분석하여, 그 가능성과 개선 방향을 도출할 수 있도록 했다.

[그림 1] 자동점검 기능 테스트 진행 프로세스 (출처: 이글루코퍼레이션)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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