주요정보통신기반 시설 가이드 23

불충분한 인증이란?

불충분한 인증 (Insufficient authentication) 개념 중요정보 페이지에 대한 인증 절차가 불충분하여 권한없는 사용자가 중요정보페이지에 접근할 수 있는 취약점입니다. 발생 원인 중요정보 페이지에 대한 인증 절차가 불충분하여 발생합니다. 위험한 이유 권한을 가지지않은 사용자가 중요정보페이지에 접근이 가능할 경우 임의로 조작이 가능해질 수 있습니다. 조치 방법 - 중요정보를 표시하는 페이지에서는 본인 인증을 재확인하는 로직을 구현하고, 사용자가 인증 후 이용 가능한 페이지에 접근할 때마다 승인을 얻은 사용자인지 페이지마다 검증하여야 합니다. - 접근 통제 정책을 구현하고 있는 코드는 구조화, 모듈화가 되어 있어야 합니다. - 접근제어가 필요한 모든 페이지의 통제수단(로그인 체크 및 권한 체..

약한 문자열 강도란?

약한 문자열 강도 (Weak password) 개념 유추하기 쉬운 문자열로 회원가입이 가능할 경우 발생할 수 있는 취약점입니다. 발생 원인 불충분한 보안 대책으로 인해 발생합니다. 위험한 이유 유추하기 쉬운 문자열로 된 계정이 쉽게 뚫릴 수 있고 만약 그 계정이 관리자 계정일 경우 데이터 삭제나 여러 조작이 가능해지기 때문입니다. 조치 방법 - 취약한 계정 및 패스워드를 삭제하고, 사용자가 취약한 계정이나 패스워드를 등록하지 못하도록 패스워드 규정이 반영된 체크 로직을 회원가입, 정보변경, 패스워드 변경 등 적용 필요한 페이지에 모두 구현하여야 합니다. - 로그인 시 패스워드 입력 실패가 일정 횟수 이상 초과할 경우 관리자에게 통보 및 계정 잠금을 합니다.(PHP, ASP같은 Server side Scr..

크로스사이트 스크립팅이란?

크로스사이트 스크립팅(XSS) (Cross-site scripting) 개념 공격자가 공격하려는 사이트에 스크립트를 넣는 취약점입니다. 공격자가 게시판 같은 곳에 악의적인 스크립트를 심고 타 사용자가 해당 게시물을 확인할 경우 발생합니다. 발생 원인 사용자 입력 값에 대한 필터링이 제대로 이루어지지않아 발생합니다. 위험한 이유 악의적인 스크립트를 삽입하여 사용자의 쿠키(세션)을 탈취하여 도용하거나 Redirect를 할 수 있으며 CSRF공격의 베이스로 활용될 수 있습니다. 조치 방법 - 웹 사이트에 사용자 입력 값이 저장되는 페이지는 공격자가 웹 브라우저를 통해 실행되는 스크립트 언어를 사용하여 공격하므로 해당되는 태그 사용을 사전에 제한하고, 사용자 입력 값에 대한 필터링 작업이 필요합니다. - 게시글..

악성 콘텐츠란?

악성 콘텐츠 (Malicious content) 개념 웹 사이트의 게시판, 댓글, 자료실 등에 정상적인 콘텐츠 대신 악성 콘텐츠를 주입되며 실행되는 취약점을 말합니다. 발생 원인 불충분한 보안 대책으로 인해 발생합니다 . 위험한 이유 악성 콘텐츠가 주입되거나 실행될 경우 악성코드 감염이나 웹 페이지 변조등이 이루어질 수 있고 XSS나 파일 업로드 취약점같은 취약점에 노출 될 수 있습니다. 조치 방법 - 악성 콘텐츠가 삽입되어있는 페이지에 대하여 증거자료를 남기고, 삽입된 악성 콘텐츠를 삭제하거나 페이지의 삭제 등을 실시합니다. - 취득한 증거자료를 가지고 악성 콘텐츠의 삽입 원인에 대하여 분석하여 원인을 제거합니다. - 게시판의 글 등록 및 파일 업로드 기능에 Flash 파일이나 avi 동영상 파일, e..

정보 누출이란?

정보 누출 (Information disclosure) 개념 웹 사이트에 중요정보가 노출되거나 에러 발생 시 과도한 정보가 노출되는 취약점입니다. 발생 원인 불충분한 보안 대책으로 인해 발생합니다. 위험한 이유 중요정보나 과도한 정보가 노출될 경우 공격자들의 2차 공격을 위한 정보로 활용될 수 있기때문입니다. 조치 방법 - 사용자가 주민등록번호 뒷자리, 비밀번호 입력 시 별표 표시하는 등 마스킹 처리를 하여 주변 사람들에게 노출되지 않도록 합니다. - 개인정보 조회, 출력 시 아래 사진처럼 일부 정보에 마스킹을 적용하여 표시합니다. - 웹페이지를 운영 서버에 이관할 때 주석은 모두 제거하여 이관합니다. - 중요정보를 HTML 소스에 포함하지 않도록 합니다. - 로그인 실패 시 반환되는 에러 메시지는 특정..

디렉터리 인덱싱이란?

디렉터리 인덱싱 (diretory indexing) 개념 특정 디렉터리 초기 페이지의 파일이 존재하지 않을 때 자동으로 디렉터리 리스트를 출력하는 취약점입니다. 발생 원인 특정 디렉터리 초기 페이지의 파일이 존재하지 않을 때 자동으로 디렉터리 리스트를 출력하는 기능을 끄지않아 발생합니다. 위험한 이유 디렉터리 리스트가 출력될 경우 파일리스트가 노출되어 시스템의 구조가 외부에 노출되고 민감한 정보가 포함되어 있는 설정파일까지 노출 시 보안상 심각한 위험을 초래할 수 있습니다. 조치 방법 - 웹 서버 환경설정에서 디렉터리 인덱싱 기능 제거 추가 정보 디렉터리 인덱싱이 성공한다면 디렉터리 리스팅이라는 취약점도 가능할 가능성이 높습니다.

XPath 인젝션이란?

XPath 인젝션 (XPath Injection) 개념 비정상적인 XPath 쿼리를 조합하거나 실행하는 취약점입니다. XPath : XML Path Language의 약자로, XML 문서에서 특정 요소나 속성을 선택하는 데 사용하는 표준 표현식 언어입니다. 발생 원인 사용자의 입력값을 제대로 검증하지않아 발생하는 취약점입니다. 위험한 이유 공격자가 비정상적인 XPath 쿼리문을 삽입할 경우 데이터가 유출될 뿐만 아니라 데이터 수정이나 삭제를 하여 웹 사이트를 손상시킬 수 있습니다. 조치 방법 - XPath 쿼리에 사용자가 값을 입력할 수 있는 경우, 엄격한 입력 값 검증을 통해 필요문자만을 받아들이게 합니다. - (), =, ', [], :, *, / 등 XPath 쿼리를 파괴하는 특수문자는 입력하지 못..

SSI 인젝션이란?

SSI 인젝션 (SSI Injection) 개념 HTML 문서 내 입력받은 변수 값을 서버 측에서 처리할 때 부적절한 명령문이 포함 및 실행되어 서버의 데이터가 유출되는 취약점입니다. SSI : Server-Side Includes로 CGI 프로그램을 작성하거나 혹은 서버사이드 스크립트(PHP, ASP등)를 사용하는 언어로, 웹 서버가 사용자에게 페이지를 제공하기 전에 구문을 해석하도록 지시하는 역할을 합니다. 발생 원인 사용자 입력 값에 적절한 검증절차를 거치지 않아 발생하는 취약점입니다. 위험한 이유 웹 서버 상에 있는 파일을 include 시켜 명령문이 실행되게 함으로 불법적으로 데이터에 접근할 수 있게 합니다. 조치 방법 - 사용자가 입력 가능한 문자들을 화이트 리스트로 정해 놓습니다. - 정해진..

SQL 인젝션이란?

SQL 인젝션 (SQL Injection) 개념 비정상적인 SQL 쿼리를 조합하여 실행하는 취약점입니다. 발생 원인 사용자 입력 값에 적절한 검증절차를 거치지 않아 발생하는 취약점입니다 위험한 이유 공격자가 비정상적인 SQL 쿼리문을 삽입할 경우 데이터가 유출될 뿐만 아니라 데이터 수정이나 삭제를 하여 웹 사이트를 손상시킬 수 있습니다. 조치 방법 - SQL 쿼리에 사용되는 문자열의 유효성을 검증하는 로직을 구현합니다. - 아래 사진과 같은 특수문자를 사용자 입력 값으로 지정 금지합니다. (아래 문자들은 해당 DB에 따라 달라질 수 있습니다.) - Dynamic SQL 구문 사용을 지양하며 파라미터에 문자열 검사를 필수로 적용합니다. - 시스템에서 제공하는 에러 메시지 및 DBMS에서 제공하는 에러 코드..

운영체제 명령 실행 공격이란?

운영체제 명령 실행 공격 (OS Command Injection, Command Injection Attack) 개념 웹에서 서버에 명령어를 전송하여 서버의 정보를 얻을 수 있는 취약점입니다. 발생 원인 사용자 입력 값에 적절한 검증절차(길이와 형식을 함께 검사)를 거치지 않아 발생하는 취약점입니다. 위험한 이유 공격자가 사용자 입력 값에 시스템 명령어를 입력하면 시스템 명령어를 실행돼 시스템내 데이터를 변조, 유출하거나 삭제해 시스템에 손상을 입힐 수 있습니다. 조치 방법 - 웹 방화벽에 모든 사용자 입력 값을 대상으로 악용될 수 있는 특수문자, 특수 구문 등을 필터링 할 수 있도록 규칙을 적용합니다. - APP은 OS로부터 명령어를 직접적으로 호출하지 않도록 구현합니다. - 명령어를 직접 호출하는 것..