최근 분석된 보고서에 따르면, 개인정보가 유출되는 주요 원인 중 하나가 ‘외부로부터의 공격(65%)’이었습니다. 이 중 대부분이 SQL Injection, XSS(Cross-Site Scripting), LFI 등 웹 취약점이 차지하는 것으로 확인 되었습니다. 특히 최근 발생한 대규모 개인정보 해킹 사건도 SQL Injection 취약점을 이용한 공격으로 알려져 있습니다. 이처럼 웹 서비스를 대상으로 시도되는 무분별한 공격에 대비하기 위해서는 웹 서비스의 취약점을 진단하고 사전에 조치하는 활동이 필수적입니다. ‘Web Security Checker’를 활용하면 저렴한 비용으로 효과적이면서도 간편하게 웹 보안 위협에 대응할 수 있습니다. ‘Web Security Checker’ 서비스는 아래 그림과 같이, 웹 취약점을 찾아 제거함으로써 해커의 공격을 사전에 차단하고 웹과 고객 데이터를 안전하게 보호해드립니다.
웹 서비스의 취약점을 보완하여 서비스 보안성을 높이고 싶은 고객
자동화된 방식으로 빠른 취약점 진단이 필요한 고객
고가의 웹 취약점 진단 도구나 보안 컨설팅 비용이 부담스러운 고객
보안 인증이나 법률에서 요구하는 취약점 진단을 손쉽게 진행하고자 하는 고객
기능 | 설명 |
---|---|
무료 재진단 기능 제공 | 최초 진단 후 60일 내 동일한 대상을 다시 진단하는 경우, 추가 2회까지 별도의 비용 지불 없이 취약점을 진단할 수 있습니다. |
진단 상태 및 결과 확인 | 예약 및 진행 중인 진단 건에 대해서는 취소가 가능하며, 진단이 완료된 건은 탐지된 취약점 개수와 상세 결과 리포트를 확인할 수 있습니다 |
진단 항목 설정 | 다양한 취약점 항목에 대한 진단이 가능하며, 필요한 점검 항목을 자유롭게 선택할 수 있습니다. |
User-Agent 설정 | 웹 서비스 환경에 맞는 User-Agent를 설정하여 취약점 진단을 수행할 수 있습니다. |
진단 일정 설정 | 고객의 필요에 따라 '즉시' 혹은 '예약' 두 가지 방법으로 진단 시점을 설정할 수 있습니다. · 즉시 – 진단 신청 후 바로 진단이 시작됩니다. · 예약 – 원하는 날짜와 시간에 진단이 시작됩니다. |
알림 설정 | 진단 완료 시 사전에 선택한 방식(E-mail, SMS)으로 결과 완료 알림이 전달됩니다. (사전 설정 필요) |
진단 리포트 제공 | 진단 결과를 정리하여 리포트로 제공합니다. 리포트는 발견된 취약점에 대한 상세정보와 더불어 해당 취약점에 대한 대응방안도 함께 제공합니다. |
진단 속도 설정 | 보안 취약점 진단 시 진단 속도를 사용자가 직접 선택하여 조절할 수 있습니다. · 진단 속도가 빠를수록 진단 시간은 단축될 수 있으나, 웹 서비스에 부하가 비교적 높아질 수 있습니다. · 진단 속도는 보통(30 RPS), 빠름(60 RPS), 매우 빠름(90 RPS)으로 3단계로 제공하고 있습니다. (RPS : 초당 평균 요청 횟수) |
타사 웹 서버 진단 기능 | Web Security Checker 서비스는 타사 인프라에 구축된 웹 서버를 진단할 수 있는 기능을 제공하고 있습니다. 네이버 클라우드 플랫폼에서 생성한 웹 서버가 아닐 경우, 주의사항 안내 및 동의창이 팝업되며 이에 동의하시면 진단이 가능합니다. |
Rest API | Web Security Checker 서비스는 Rest API를 통해 진단 리스트 출력/검색, 진단 시작/취소/중지 그리고 리포트 기능을 이용할 수 있습니다. |
SQL Injection | 설명 | 웹 애플리케이션에서 사용되는 SQL 구문에 공격자가 임의의 구문을 주입(Injection) 하여 내부 데이터베이스의 데이터를 유출, 변조할 수 있는 취약점입니다. |
발생 원인 | 웹 페이지에서 사용자로부터 입력받은 값을 제대로 검사하지 않고 그대로 데이터 질의어로 사용할 경우 발생합니다. | |
위험성 | 데이터 유출, 변조 외에도 서버에 파일을 쓰거나 읽을 수 있고, 직접 명령 실행도 가능할 수 있기 때문에 위험도가 높은 취약점입니다. | |
XSS (Cross-Site Scripting) | 설명 | 공격자가 웹 페이지에 악성 스크립트를 삽입할 수 있는 취약점입니다. |
발생 원인 | 웹 페이지에서 사용자로부터 입력받은 값을 제대로 검사하지 않고 사용할 경우 발생합니다. | |
위험성 | 해커가 사용자의 정보(쿠키, 세션 등)를 탈취하거나, 자동으로 비정상적인 기능을 수행하게 할 수 있습니다. | |
LFI (Local File Inclusion) | 설명 | 웹 서버 내부에 위치한 악의적인 파일을 Include 하여 해당 파일을 실행하는 취약점입니다. |
발생 원인 | include(), include_once(), require() 등과 같은 함수에 사용자로부터 입력받은 정보를 그대로 전달하는 경우에 발생합니다. | |
위험성 | 해당 파일을 로드한 시스템에서 임의의 명령을 실행할 수 있기 때문에 위험도가 높은 취약점입니다. | |
RFI (Remote File Inclusion) | 설명 | 원격지의 공격자 서버에 위치한 악의적인 파일을 Include 하여 해당 파일을 실행하는 취약점입니다. |
발생 원인 | include(), include_once(), require() 등과 같은 함수에 사용자로부터 입력받은 정보를 그대로 전달하는 경우에 발생합니다. | |
위험성 | 해당 파일을 로드한 시스템에서 임의의 명령을 실행할 수 있기 때문에 위험도가 높은 취약점입니다. | |
SSRF (Server-Side Request Forgery) | 설명 | 웹 애플리케이션에서 사용자의 요청을 받아 다른 시스템에 접근하거나 요청을 수행하여 결과를 얻어오는 경우가 있습니다. 이때, 해당 웹 애플리케이션이 외부에서는 접근되지 않는 내부의 다른 서버로 요청하도록 개입하여 내부 서버가 의도하지 않은 행위를 하도록 하는 취약점입니다. |
발생 원인 | 사용자로부터 입력되는 데이터(도메인 등)에 대해 검증하는 절차가 부족하여 발생합니다. | |
위험성 | 보안 장비를 우회하고 방화벽 뒤쪽 내부 시스템으로 공격 트래픽이나 추가적인 행위를 이어갈 수 있기 때문에 위험도가 높습니다. | |
File Upload | 설명 | 악의적인 스크립트 파일을 웹 서버에 업로드하여 접근할 경우 웹 서버 사용자 권한으로 실행이 되는 취약점입니다. |
발생 원인 | 업로드할 파일이 안전한지 검사하지 않아 발생합니다. | |
위험성 | 환경마다 권한이 다를 수 있지만, 서버를 직접 컨트롤할 수 있어 서비스에 치명적인 영향을 줄 수 있습니다. | |
File Download | 설명 | 서버에 존재하는 파일이 의도하지 않게 클라이언트로 다운로드 되는 취약점입니다. 해커가 원하는 파일을 임의로 다운로드하거나 파일 내용을 노출시킬 수 있습니다. |
발생 원인 | 애플리케이션 로직에서 파일을 클라이언트로 다운로드할 때 입력 값 검증을 하지 않을 경우 발생합니다. | |
위험성 | 공격자에게 권한이 없는 데이터를 획득할 수 있도록 하며, 시스템 정보 등 중요 파일을 획득할 수 있도록 합니다. | |
XXE (XML External Entity) | 설명 | 웹 애플리케이션에서 XML 데이터를 사용하는 경우, XML 문서에서 동적으로 외부 URI의 리소스를 포함시킬 수 있는 External Entity 기능을 악용하여 의도하지 않은 동작을 하도록 하는 취약점입니다. |
발생 원인 | XML Request를 파싱하는 페이지에서 발생하며 사용자로부터 XML 데이터 전문을 받거나, DTD 정의가 가능한 경우 공격 가능합니다. | |
위험성 | 서버의 로컬 파일 열람, denial of service 등을 유발할 수 있습니다. | |
Command Injection | 설명 | 공격자가 서버에 직접적으로 명령을 전달하고, 실행할 수 있는 취약점입니다. |
발생 원인 | 웹 애플리케이션에서 사용자로부터 입력받은 값을 시스템 함수에 사용할 때, 검증이 미흡한 경우 발생합니다. | |
위험성 | 환경마다 권한이 다를 수 있지만, 서버를 직접 컨트롤할 수 있어 서비스에 치명적인 영향을 줄 수 있습니다. | |
Insufficient Authorization | 설명 | 일반적으로 사용자에게 노출되지 않아야 하는 특정 웹 애플리케이션에 대한 접근 가능 여부를 점검하는 항목입니다. ex) tomcat-admin, phpmyadmin, jenkins 등 |
발생 원인 | 관리 또는 기타 다른 목적으로 사용되는 웹 애플리케이션에 대한 접근통제를 하지 않는 경우에 발생됩니다. | |
위험성 | 공격자는 노출된 페이지로부터 정보를 수집하거나 추가적인 공격을 수행할 수 있습니다. | |
Specific Vulnerabilities | 설명 | 특정 애플리케이션과 관련된 파급력이 큰 취약점들에 대해 점검하는 항목입니다. ex) ShellShock (CVE-2014-6271) 등 |
발생 원인 | 특정 애플리케이션의 알려진 버그가 조치되지 않을 경우 발생합니다. | |
위험성 | 취약점마다 다르지만 원격 명령 실행, 시스템 메모리 탈취, 암호 키 탈취 등 서비스에 치명적인 영향을 줄 수 있습니다. | |
File Management | 설명 | 웹 서버를 운영하는데 불필요한 파일은 모두 삭제하거나 다른 시스템에서 관리되어야 합니다. |
위험성 | 관리가 미흡할 경우, 시스템 정보가 노출되고 추가 공격에 활용될 가능성이 있습니다. | |
Directory Listing | 설명 | 웹 서버 내의 모든 디렉터리 혹은 중요한 정보가 포함된 디렉터리에 대해 인덱싱이 가능하게 설정되어 디렉터리 내 파일 리스트가 노출될 수 있는 취약점입니다. |
발생 원인 | 웹 서버의 설정에 의해 해당 기능이 활성화된 경우 발생합니다. 일부 애플리케이션의 버그로도 발생할 수 있습니다. | |
위험성 | 공격자가 웹 응용시스템의 구조를 파악할 수 있으며, 민감한 정보가 포함된 설정 파일을 열람하여 다양한 공격을 시도할 수 있게 됩니다. | |
Source Code Disclosure | 설명 | 웹 서버가 스크립트 파일을 정상적으로 처리하지 못해 소스 코드가 그대로 노출되는 취약점입니다. |
발생 원인 | 웹 서버가 올바르게 스크립트 파일을 인식하지 못하거나, 애플리케이션 자체의 버그 등에 의해 발생합니다. | |
위험성 | 공격자는 소스 코드를 획득하여 서버 내부의 디렉터리 경로, DB 연결정보, 애플리케이션 내부 로직 등 중요 정보들을 획득할 수 있습니다. | |
Information Disclosure | 설명 | 웹 서비스에서 서버 정보, 오류 정보 등 공격에 활용될 수 있는 정보가 노출되는 취약점입니다. |
발생 원인 | 웹 서버에서 발생하는 여러 가지 오류 메시지에 대한 처리나 서버 설정이 미흡하여 발생합니다. | |
위험성 | 공격자가 웹 서버에 대한 서버 환경, 디렉터리 경로, 라이브러리 정보 등 다양한 정보를 수집할 수 있습니다. | |
URL Redirection | 설명 | 사용자가 의도하지 않은 페이지로 이동시킬 수 있는 취약점입니다. |
발생 원인 | 이동될 URL 이 올바른지 검증하지 않아 발생합니다. | |
위험성 | 공격자는 사용자를 강제로 피싱 또는 악성코드 페이지로 이동시킬 수 있습니다. | |
Insecure SSL/TLS | 설명 | 안전하지 않은 SSL/TLS 버전 사용으로 인해 발생 가능한 취약점을 점검하는 항목입니다. |
발생 원인 | 취약한 SSL/TLS 버전 및 취약한 Cipher suites를 사용할 경우 관련 취약점이 발생합니다. | |
위험성 | 보편적으로 공격자는 암호화된 데이터를 해독할 수 있는 MITM(Man-In-The-Middle) 공격이 가능하며, 서버에서 사용 중인 OpenSSL 버전에 따라 서버키 등 메모리에 포함된 중요한 정보가 유출될 수 있습니다. | |
Mixed Content | 설명 | 보호되어야 하는 중요한 콘텐츠가 HTTP를 사용해 전송되는 취약점입니다. |
발생 원인 | HTTP와 HTTPS 프로토콜을 혼용하여 사용할 경우 발생합니다. | |
위험성 | HTTP 프로토콜을 사용하는 비암호화된 콘텐츠는 공격자가 수집 및 변조할 수 있습니다. | |
Personal Information Exposure | 설명 | 웹 서비스에서 주민등록번호, 신용카드번호 등 개인정보가 평문으로 노출되는 취약점입니다. |
발생 원인 | 웹 서비스 사용자에 의해서 개인정보가 등록되거나 개인정보에 대한 접근 제어 또는 관리가 미흡한 경우 발생합니다. | |
위험성 | 평문으로 노출된 개인정보는 피싱, 금융사기, APT 공격 등에 활용될 수 있습니다. | |
HTTP Request Smuggling | 설명 | 공격자가 조작된 HTTP 패킷을 웹 서버로 전송하여 원격에 있는 임의의 사용자가 웹 서버로 전송하는 HTTP 패킷을 조작할 수 있는 취약점입니다. |
발생 원인 | 방화벽, 웹 서버, 캐시 서버 등 패킷을 처리하는 과정에서 조작된 패킷을 처리하는데 미흡할 경우 발생하는 취약점입니다. | |
위험성 | 공격자는 원격에 있는 임의의 사용자가 의도하지 않은 HTTP 패킷을 전송하도록 할 수 있으며,XSS, CSRF 와 같은 취약점이 존재할 경우 사용자가 취약한 URL을 방문하거나 클릭하지 않아도 사용자 정보(쿠키, 세션 등) 탈취 등의 피해를 입힐 수 있습니다. | |
SSI Injection | 설명 | SSI(Server-Side Includes) 설정에 의해 악의적인 동적 HTML 코드가 실행될수 있는 취약점 입니다. |
발생 원인 | SSI(Server-Side Includes) 설정이 활성화 되어있을 때, 사용자로부터 입력 받은 값을 제대로 검증하지 않고 그대로 동적으로 실행하여 발생하는 취약점 입니다. | |
위험성 | 공격자는 서버 환경변수를 설정 또는 출력하거나 서버 내에서 특정 명령을 실행할수 있기 때문에 위험도가 높은 취약점 입니다. | |
Unnecessary HTTP Method | 설명 | 불필요한 HTTP Method(CONNECT, PUT, DELETE, TRACE, OPTIONS, PATCH, PROPFIND 등)가 활성화되어있어 악용 가능한 취약점입니다. |
발생 원인 | 웹 서버에서 불필요한 HTTP Method가 활성화되어 있어 발생합니다. | |
위험성 | 공격자는 허용된 HTTP Method를 악용하여 정보 수집, 임의 파일 생성/삭제 등 다양한 공격을 시도할 수 있게 됩니다. | |
Buffer Overflow | 설명 | Buffer Overflow는 프로그램이 할당된 메모리 버퍼를 초과하여, 인접한 다른 메모리에 데이터를 쓰거나 수정할 때 발생하는 보안 취약점 |
발생 원인 | Parameter, POST data 등 입력 값을 올바르게 검증하지 않았을 때, 할당된 변수의 메모리를 초과함으로써 발생 | |
위험성 | Buffer Overflow 취약점은 공격자가 시스템의 메모리를 손상시키거나 악용하여 임의의 코드 실행, 데이터 유출 및 조작, 서비스 거부 공격 등의 공격이 가능함 | |
GraphQL Misconfiguration | 설명 | GraphQL의 설정 미흡으로 인해 일부 옵션이 활성화된 경우 발생할 수 있는 보안 취약점 |
발생 원인 | Production 환경에서는 비활성화 되어야 할 옵션이 활성화된 경우에 발생함 | |
위험성 | GraphQL의 스키마 구조가 노출되며, 이를 이용하여 악의적인 쿼리를 생성하여 요청할 수 있음 | |
Tampering Cookie | 설명 | 안전하지 않은 쿠키 사용으로 인해 발생할 수 있는 보안 취약점 |
발생 원인 | 변조 가능한 쿠키 정보를 신뢰하여 접근 제어 및 권한을 부여할 경우 발생 | |
위험성 | 쿠키를 변조하여 접근 제어를 우회하거나 타 사용자의 권한을 획득할 수 있음 |
수집/진단 중 스크립트가 실행되어 테스트 값이 기록되거나 데이터가 변경 또는 삭제될 수 있습니다. Web Security Checker는 페이지 수집 능력을 극대화하기 위해 동적으로 페이지를 방문하는 과정에서 스스로 버튼 또는 링크를 클릭하여 특정 기능이 실행될 수 있습니다. 이런 이유로 의도하지 않은 데이터의 변경, 삭제, 테스트 데이터 입력이 일부 발생할 수도 있습니다. 단, 이러한 행위가 발생하지 않도록 최대한 안전하게 설계되었음에도 개발된 코드에 따라서 불가피하게 행해지는 경우도 있습니다.
관리자에게 임의 메일이 발송될 수 있습니다. 웹 서비스에서 관리자에게 메일을 발송하는 기능이 구현되어 있는 경우, 테스트 값이 삽입된 메일이 발송될 수 있습니다.
진단하는 동안 트래픽이 증가할 수 있습니다. 자체 개발한 진단 알고리즘을 통해 취약점 진단 시 트래픽 발생을 최소화하였으나, 취약점 진단 솔루션 특성상 어느 정도 트래픽이 발생할 수 있습니다.
사이트의 응답 속도가 지연될 수 있습니다. Web Security Checker는 웹 취약점을 명확히 진단하기 위해 많은 HTTP 패킷을 웹 서버로 전송하고 있습니다. 이 때 사이트의 응답 속도가 느려지는 것을 막기 위해 각종 안전 장치 추가와 최적의 진단 알고리즘을 적용해 요청을 최소화하였습니다. 실제로 비슷한 동작을 하는 S/W에 비해 훨씬 더 안전하고 적은 트래픽을 발생시키고 있습니다. 그럼에도 불구하고 구현된 코드에 따라 일부 사이트의 경우 응답 속도가 지연될 수 있습니다. 특히 SQL 관련 취약점이 존재할 경우 잘못된 코딩으로 인한 지연 현상이 발생할 수도 있습니다.
URL 수집 및 진단이 어려운 경우가 있습니다. Web Security Checker 는 SSR(Server Side Rendering), CSR(Client Side Rendering) 기반의 웹 페이지와 DOM 클릭 이벤트에 의해서 랜더링되는 웹 페이지에서의 URL 수집을 지원하고 있습니다. 다만, SPA 방식으로 개발된 사이트에서 클릭 외 이벤트가 발생할 때 요청하는 URL 은 수집하지 않습니다. (※ 향후 지원 예정)
오탐이 발생할 수 있습니다. Web Security Checker는 다년간 쌓은 기술적 노하우를 통해 잠재적 취약점까지 찾아내는 방식으로 설계/구현하여 탐지율을 최대한 높였습니다.하지만 자동 진단 툴이라는 특성상 오탐과 미탐의 가능성이 존재하므로, 추가 검증이 필요할 수 있습니다.
테스트 환경을 이용하세요.Web Security Checker 는 비교적 안전하게 작동하도록 설계되어 있습니다. 그럼에도 불구하고 웹 취약점을 잘 찾기 위해 일부 의도치 않은 동작이 발생할 수 있어 주의가 필요합니다. 이러한 상황을 대비하여 알파, 베타, 개발 서버 등 리얼 서버가 아닌 테스트 환경을 이용하시면 좀 더 안전하게 진단 서비스를 받으실 수 있습니다.
백업과 Cloud Insight 를 이용하세요.위에서 설명 드린 테스트 환경을 이용하는 것과 더불어 진단 전 서비스 백업과 Cloud Insight 를 활용한다면 만에 하나 발생할 수 있는 위험을 최소화하여 좀 더 안전하게 진단을 받을 수 있습니다.
제외 URL을 활용하세요.‘제외 대상 정보 입력’ 기능을 통해 진단에서 제외하고자 하는 URL을 입력할 수 있습니다. 웹 서비스에 큰 영향을 줄 수 있는 페이지나 수집/진단 과정에서 페이지 내 스크립트 실행 차단이 필요한 페이지를 사전에 입력하여 진단 대상에서 제외시키세요.
로그인 필요 시 계정에 적절한 권한만 부여해 주세요.관리자 또는 개발자 계정과 같은 권한의 경우 의도치 않은 동작 발생 시 일반 계정에 비해 위험 부담이 커질 수 있습니다. Cookie 또는 ID, PW 입력을 통해 로그인 정보를 입력할 경우 해당 계정의 권한에 적절한 권한만 부여되었는지 확인이 필요합니다.
예약 기능을 이용해 고객 이용이 적은 시간에 진단하세요.서비스를 정식으로 제공 중인 경우 안전한 진단이 필수이므로, 이용자가 많은 시간보다는 이용자가 적은 새벽 시간에 진단하는 것을 권장합니다.
취약점 리포트는 진단 시 설정한 정보와 함께 취약점별 상세 정보와 구체적인 대응 방안을 포함하고 있습니다
과금 기준 (건) | 요금(원) |
---|---|
진단 횟수 당 | - |
(VAT 별도)
* 최초 진단 후 60일 내 동일한 대상을 다시 진단하는 경우, 추가 2회까지는 별도의 비용이 발생되지 않습니다.
동일한 대상이라 함은, 최초 진단한 웹사이트의 공인IP와 URL이 같은 사이트를 의미합니다.
재 진단 가능 기간이나 횟수를 초과한 경우, 신규 진단 기준으로 요금이 발생됩니다.
* 아래의 경우는 과금되지 않으며 취약점 진단 리포트도 제공되지 않습니다.
Web Security Checker 시스템 상의 문제로 진단이 실패한 경우 이용 요금이 과금되지 않습니다.
진단 중 고객이 진단을 중지한 경우 과금되지 않습니다.
진단 중 고객 요청으로 고객지원에서 진단을 중지한 경우 과금되지 않습니다.
진단할 웹 사이트에 정상적으로 접속되지 않는 경우 과금되지 않습니다.
이 외에는 정상적으로 과금이 되니, 진단 전에 확인이 필요한 사항들에 대해서 체크해 주시기 바랍니다.