개인 정보가 유출되는 주요 원인 중 하나는 외부로부터의 공격으로 이 중 대부분이 SQL Injection, XSS(Cross-Site Scripting), LFI 등의 웹 취약점이 문제가 되었습니다.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 | REST API를 활용하여 진단 리스트 출력/검색, 진단 시작/취소/중지, 리포트 기능 이용 가능 |
SQL Injection | 설명 | 웹 애플리케이션에서 사용하는 SQL 구문에 공격자가 임의 구문을 주입(injection)하여 내부 데이터베이스에 있는 데이터를 유출 및 변조할 수 있는 취약점 |
발생 원인 | 웹 페이지에서 사용자가 입력한 값을 제대로 검사하지 않고 그대로 데이터 질의어로 사용할 때 발생 | |
위험성 | 데이터 유출, 변조 외에도 서버 파일을 쓰거나 읽을 수 있고 직접 임의의 명령도 실행할 수 있음 | |
Cross-Site Scripting (XSS) | 설명 | 공격자가 웹 페이지에 악성 스크립트를 삽입할 수 있는 취약점 |
발생 원인 | 웹 페이지에서 사용자가 입력한 값을 제대로 검사하지 않고 그대로 데이터 질의어로 사용할 때 발생 | |
위험성 | 해커가 사용자의 정보(쿠키, 세션 등)를 탈취하거나 자동으로 비정상적인 기능이 실행되도록 조작할 수 있음 | |
Local File Inclusion (LFI) | 설명 | 공격자가 웹 서버 내부 위치한 파일을 Include하여 해당 파일을 실행할 수 있는 취약점 |
발생 원인 | include(), include_once(), require() 등과 같은 함수에 사용자가 입력한 값을 그대로 전달할 때 발생 | |
위험성 | 웹 서버에 있는 파일을 로드하여 임의로 명령을 실행할 수 있음 | |
Remote File Inclusion (RFI) | 설명 | 원격지에 있는 공격자의 웹 서버에 위치한 악의적인 파일을 Include하여 해당 파일을 실행할 수 있는 취약점 |
발생 원인 | include(), include_once(), require() 등과 같은 함수에 사용자가 입력한 값을 그대로 전달할 때 발생 | |
위험성 | 해당 파일을 로드한 시스템에서 임의의 명령을 실행할 수 있음 | |
Server-Side Request Forgery (SSRF) | 설명 | 공격자가 웹 서버에 위조된 HTTP 요청을 발생시켜 직접 접근할 수 없는 서버 내부 자원에 접근해 외부로 데이터를 유출하거나 오동작을 유발할 수 있는 취약점 |
발생 원인 | 웹 페이지에 사용자가 입력하는 값(도메인 등)을 검증하는 절차가 미흡하여 발생 | |
위험성 | 보안 장비를 우회하고 방화벽이 보호하는 내부 시스템에 공격 트래픽 전송 등 추가 공격에 응용할 수 있음 | |
File Upload | 설명 | 공격자가 웹 서버에서 악성 파일을 업로드해 시스템을 장악할 수 있는 취약점 |
발생 원인 | 업로드하는 파일의 안전성 여부를 검사하지 않아 발생 | |
위험성 | 환경마다 권한이 다르나 대체로 공격자가 서버를 직접 제어할 수 있음 | |
File Download | 설명 | 공격자가 파일을 다운로드할 때 파일 경로를 조작하여 웹 서버 내부의 데이터나 중요 파일을 획득할 수 있는 취약점 |
발생 원인 | 웹 애플리케이션에서 파일을 다운로드할 때 입력하는 값을 검증하지 않아 발생 | |
위험성 | 공격자가 시스템 정보 등 권한이 없는 중요 데이터 파일을 다운로드할 수 있음 | |
XML External Entity (XXE) | 설명 | 외부 개체를 참조하는 내용을 포함할 수 있는 XML 문서의 External Entity 기능을 악용하여 XML 문서 포맷을 사용하는 웹 애플리케이션에 의도하지 않은 동작을 유발할 수 있는 취약점 |
발생 원인 | XML Request를 파싱(parsing)하는 페이지에서 발생하며 사용자로부터 XML 데이터 전문을 수신하거나 XML 형식을 규정하는 DTD를 정의할 수 있을 때 발생 | |
위험성 | 웹 서버의 로컬 파일 열람, 네트워크 기능을 마비시키는 서비스 거부 공격(denial of service) 등을 수행할 수 있음 | |
Command Injection | 설명 | 공격자가 서버에 직접 명령을 전달하고 실행할 수 있는 취약점 |
발생 원인 | 웹 애플리케이션에서 사용자가 입력한 값을 시스템 함수에 사용할 때 검증하는 절차가 미흡하여 발생 | |
위험성 | 환경마다 권한이 다르나 대체로 공격자가 서버를 직접 제어할 수 있음 | |
Insufficient Authorization | 설명 | 일반 사용자에게 허가되지 않아야 하는 권한이 허용되어 특정 웹 애플리케이션의 페이지와 기능에 접근이 가능해지는 취약점 |
발생 원인 | 일반 사용자에게 허가되지 않아야 하는 웹 애플리케이션(tomcat-admin, phpmyadmin, jenkins 등)으로의 접근을 통제하지 않을 때 발생 | |
위험성 | 노출된 페이지 또는 비정상적으로 접근이 허가된 정보에 공격자가 접근하여 정보를 수집하거나 추가 공격을 수행할 수 있음 | |
Specific Vulnerabilities | 설명 | 특정 애플리케이션과 관련해 파급력이 큰 취약점 |
발생 원인 | 최신 CVE와 특정 애플리케이션의 알려진 버그가 적절히 조치되지 않을 때 발생 | |
위험성 | 취약점마다 다르나 공격자가 원격 명령 실행, 시스템 메모리 탈취, 암포 키 탈취 등을 수행할 수 있음 | |
File Management | 설명 | 웹 서버를 운영하는데 불필요한 파일이 존재하는 취약점 |
위험성 | 관리가 미흡하면 시스템 정보가 노출되고 공격자가 추가 공격에 활용할 가능성이 있음 | |
Directory Listing | 설명 | 서버 내 모든 디렉터리 및 파일 목록이 노출될 수 있는 취약점 |
발생 원인 | 웹 서버 설정에 인덱싱(리스팅) 기능이 활성화될 때 발생하며 일부 애플리케이션의 버그로도 발생할 수 있음 | |
위험성 | 공격자가 웹 애플리케이션 구조를 파악할 수 있고 민감한 정보가 포함된 설정 파일을 열람하여 다양한 공격을 시도하는데 활용할 수 있음 | |
Source Code Disclosure | 설명 | 웹 서버가 스크립트 파일을 제대로 처리하지 못해 소스 코드가 그대로 노출되는 취약점 |
발생 원인 | 웹 서버가 스크립트 파일을 정상적으로 인식하지 못하거나 애플리케이션 자체 버그 등에 의해 발생 | |
위험성 | 공격자가 웹 서버의 소스 코드를 획득하여 서버 내부의 디렉터리 경로, DB 연결 정보, 애플리케이션 내부 로직 등 중요 정보를 획득할 수 있음 | |
Information Disclosure | 설명 | 웹 페이지에서 서버 정보, 오류 정보 등 공격에 활용할 수 있는 정보가 노출되는 취약점 |
발생 원인 | 웹 서버에서 발생하는 여러 가지 오류를 미흡하게 처리하거나 서버 설정이 취약할 때 발생 | |
위험성 | 공격자가 웹 서버의 서버 환경, 디렉터리 경로, 라이브러리 정보 등 다양한 정보를 수집할 수 있음 | |
URL Redirection | 설명 | 사용자가 의도하지 않은 페이지로 이동시킬 수 있는 취약점 |
발생 원인 | 파라미터에 입력되어 있는 이동될 URL을 검증하지 않아 발생 | |
위험성 | 공격자가 사용자를 피싱 또는 악성 코드 페이지로 강제 이동시킬 수 있음 | |
Insecure SSL / TLS | 설명 | 안전하지 않은 SSL / TLS 버전 사용으로 발생할 수 있는 취약점 |
발생 원인 | 취약한 SSL / TLS 버전 및 취약한 Cipher suites를 사용할 때 발생 | |
위험성 | 일반적으로 공격자가 암호화된 데이터를 해독할 수 있는 Man-In-The-Middle (MITM) 공격이 가능해지며 서버에서 사용하고 있는 OpenSSL 버전에 따라 서버 키 등 메모리에 포함된 중요 정보가 유출될 수 있음 | |
Mixed Content | 설명 | 보호가 필요한 중요 콘텐츠가 HTTP로 전송되는 취약점 |
발생 원인 | HTTP와 HTTPS 프로토콜을 혼용할 때 발생 | |
위험성 | HTTP 프로토콜을 사용하는 비암호화된 콘텐츠를 공격자가 수집 및 변조할 수 있음 | |
Personal Information Exposure | 설명 | 주민등록번호, 신용 카드 번호 등 개인 정보가 웹 페이지에 평문으로 노출되는 취약점 |
발생 원인 | 사용자가 웹 서비스에 개인 정보를 등록하거나 웹 서비스에서 개인 정보로의 접근 제어 또는 관리를 미흡할 때 발생 | |
위험성 | 공격자가 노출된 개인 정보를 피싱, 금융 사기, APT 공격 등에 활용할 수 있음 | |
HTTP Request Smuggling | 설명 | 공격자가 조작된 HTTP 패킷을 웹 서버로 전송하여 원격에 있는 임의의 사용자가 웹 서버로 전송하는 HTTP 패킷을 조작할 수 있는 취약점 |
발생 원인 | 방화벽, 웹 서버, 캐시 서버 등 패킷을 처리하는 과정에서 조작된 패킷을 처리하는데 미흡할 때 발생 | |
위험성 | 공격자는 원격에 있는 임의의 사용자가 의도하지 않은 HTTP 패킷을 전송하도록 할 수 있으며 XSS, CSRF와 같은 취약점이 존재할 경우 사용자가 취약한 URL을 방문하거나 클릭하지 않아도 사용자 정보(쿠키, 세션 등)를 탈취 등의 피해를 입힐 수 있음 | |
SSI Injection | 설명 | Server-Side Includes (SSI) 설정에 의해 악의적인 동적 HTML 코드가 실행될 수 있는 취약점 |
발생 원인 | Server-Side Includes (SSI) 설정이 활성화 되어있을 때 사용자로부터 입력 받은 값을 제대로 검증하지 않고 그대로 동적으로 실행할 때 발생 | |
위험성 | 공격자가 서버 환경 변수를 설정 또는 출력하거나 서버 내에서 특정 명령을 실행할 수 있음 | |
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 | 설명 | 안전하지 않은 쿠키 사용으로 인해 발생할 수 있는 보안 취약점 |
발생 원인 | 변조 가능한 쿠키 정보를 신뢰하여 접근 제어 및 권한을 부여할 경우 발생함 | |
위험성 | 쿠키를 변조하여 접근 제어를 우회하거나 타 사용자의 권한을 획득할 수 있음 |
수집 및 진단 중 페이지 수집 능력을 극대화하기 위해 동적으로 페이지를 방문하는 과정에서 스크립트가 실행되어 의도하지 않은 데이터 변경, 삭제 또는 테스트 값 입력이 발생할 수 있습니다.
웹 서비스에 관리자에게 메일을 발송하는 기능이 있을 경우 관리자에게 테스트 값이 삽입된 임의 메일이 발송될 수 있습니다.
취약점 진단 솔루션 특성상 진단 과정에서 일부 트래픽이 발생할 수 있습니다.
트래픽 발생을 최소화하였으나 웹 서비스의 설계 및 구현된 코드에 따라 사이트 응답 속도가 지연될 수 있습니다. 특히 SQL 관련 취약점이 존재할 경우 잘못된 코딩으로 인한 지연 현상이 발생할 수 있습니다.
URL 수집 및 진단이 어려운 상황이 발생할 수 있습니다.
자동 진단 툴 특성상 오탐과 미탐의 가능성이 존재하며 이로 인해 추가 검증이 필요할 수 있습니다.
테스트 환경을 이용해 주십시오.Web Security Checker는 안전하게 설계되어 있으나 웹 취약점을 찾는 과정에서 일부 의도치 않은 동작이 발생할 수 있습니다. 이러한 상황에 대비하여 진단 서비스는 리얼 서버가 아닌 알파, 베타, 개발 서버 등 테스트 환경에서 이용해 주십시오.
백업과 모니터링 기능을 이용하여 진단 과정에서 예상치 못하게 발생할 수 있는 위험을 최소화할 수 있습니다.무료로 제공하는 네이버 클라우드 플랫폼의 Monitoring을 활용하여 서비스 안전성을 보강할 수 있습니다.
제외 대상 정보 입력 기능을 사용하여 웹 서비스에 큰 영향을 줄 수 있는 페이지나 실행 차단이 필요한 페이지의 URL을 미리 제외해 주십시오.
로그인이 가능한 계정별로 적절한 권한만 부여해 주십시오.관리자 또는 개발자 계정과 같은 권한의 경우 의도치 않은 동작 발생 시 일반 계정에 비해 위험 부담이 커질 수 있습니다. 인증 정보가 포함된 HTTP Header 입력을 통해 로그인 정보를 입력할 경우 해당 계정의 권한에 적절한 권한만 부여되었는지 확인이 필요합니다.
서비스를 정식으로 제공하고 있다면 이용자가 많은 시간보다 이용자가 적은 시간대에 진단 작업을 진행할 수 있도록 예약 기능을 이용해 주십시오.
아래는 진단 결과를 정리한 취약점 리포트의 예시입니다. 취약점 리포트는 진단 시 설정한 정보와 함께 취약점별 상세 정보와 구체적인 대응 방안을 제시합니다.
과금 기준 (건) | 요금(원) |
---|---|
진단 횟수 당 | - |
(VAT 별도)
* 최초 진단 후 60일 내 동일한 대상을 다시 진단하는 경우, 추가 2회까지는 별도의 비용이 발생되지 않습니다.
동일한 대상이라 함은, 최초 진단한 웹사이트의 공인IP와 URL이 같은 사이트를 의미합니다.
재 진단 가능 기간이나 횟수를 초과한 경우, 신규 진단 기준으로 요금이 발생됩니다.
* 아래의 경우는 과금되지 않으며 취약점 진단 리포트도 제공되지 않습니다.
Web Security Checker 시스템 상의 문제로 진단이 실패한 경우 이용 요금이 과금되지 않습니다.
진단 중 고객이 진단을 중지한 경우 과금되지 않습니다.
진단 중 고객 요청으로 고객지원에서 진단을 중지한 경우 과금되지 않습니다.
진단할 웹 사이트에 정상적으로 접속되지 않는 경우 과금되지 않습니다.
이 외에는 정상적으로 과금이 되니, 진단 전에 확인이 필요한 사항들에 대해서 체크해 주시기 바랍니다.