분류 전체보기 68

불충분한 세션 만료와 세션 고정

불충분한 세션 만료 개념 세션 타임아웃 기능이 구현되어있지않는 취약점입니다. 발생 원인 불충분한 보안 대책으로 인해 발생합니다. 위험한 이유 공격자가 만료되지 않은 세션을 활용해 불법적인 접근을 진행할 수 있습니다. 만약 성공할 경우 데이터 열람 및 탈취가 가능해집니다. 조치 방법 - 세션 타임아웃 구현 시 시간을 10분으로 설정할 것을 권고합니다. 세션 고정 개념 사용자의 세션 ID를 항상 고정된 세션 ID로 발급하는 취약점입니다. 발생 원인 불충분한 보안 대책으로 인해 발생합니다. 위험한 이유 항상 고정된 세션 ID가 발급된다면 세션 ID가 도용될 경우 비인가자의 접근 및 권한 우회가 가능해집니다. 조치 방법 - 로그인할 때마다 예측 불가능한 새로운 세션 ID를 발급받도록 해야 하고 기존 세션 ID는..

불충분한 인가란?

개념 중요페이지의 통제수단이 미흡한 경우 발생하는 취약점입니다 발생 원인 불충분한 보안 대책으로 인해 발생합니다. 위험한 이유 공격자가 URL 파라미터 값 조작등의 방법으로 중요 페이지의 접근해 중요 정보 열람 및 탈취가 가능해집니다. 조치 방법 - 접근제어가 필요한 중요 페이지는 세션을 통한 인증 등 통제수단을 구현하여 인가된 사용자 여부를 검증 후 해당 페이지에 접근할 수 있도록 합니다. - 페이지별 권한 매트릭스를 작성하여 접근제어가 필요한 모든 페이지에서 권한 체크가 이뤄지도록 구현하여야 합니다. 추가 정보 불충분한 인증은 담벼락이 허술해서 뚫리는 느낌이고 불충분한 인가는 담벼락은 단단한데 집안의 벽이 허술해서 방을 자유롭게 돌아다닐 수 있는 느낌으로 이해하고 있습니다.

세션 예측이란?

개념 세션 ID가 일정한 패턴을 가지고 있는 취약점입니다. 세션: 일정 시간 동안 같은 사용자(브라우저)로부터 들어오는 일련의 요구를 하나의 상태로 보고 그 상태를 일정하게 유지하는 기술 발생 원인 불충분한 보안 대책으로 인해 발생합니다. 위험한 이유 세션 ID가 일정한 패턴을 가지고 있으면 공격자가 세션 ID를 추측하여 부적절한 접근을 시도할 수 있습니다. 만약 성공할 경우 데이터 조작이나 탈취 같은 피해가 발생합니다. 조치 방법 - 길이가 길고 복잡한 항목으로 세션 ID가 만들어져도 공격자가 충분한 시간과 자원이 있다면 뚫는 것은 불가능하지 않으므로 강력한 세션 ID가 만들어져야 합니다. 주된 목적은 수많은 대역폭과 처리 자원을 가지고 있는 공격자가 하나의 유효한 세션 ID를 추측하는데 최대한 오랜 ..

크로스사이트 리퀘스트 변조(CSRF)란?

개념 공격자가 삽입한 스크립트를 다른 사용자가 자신의 의지와 무관하게 실행해 공격자가 의도한 행위를 서버에 요청하는 취약점입니다. 발생 원인 사용자 입력 값에 대한 적절한 필터링 및 유효성 검증을 하지 않아 발생하는 취약점입니다. 위험한 이유 타 사용자의 권한으로 악의적인 공격을 수행해 해당 사용자가 피해를 입을 수 있습니다. 조치 방법 - 웹 사이트에 사용자 입력 값이 저장되는 페이지는 요청이 일회성이 될 수 있도록 설계합니다 - 사용 중인 프레임워크에 기본적으로 제공되는 CSRF 보호 기능을 사용합니다. - 사용자가 정상적인 프로세스를 통해 요청하였는지 HTTP 헤더의 Referer 검증 로직을 구현합니다. - 정상적인 요청(Request)와 비정상적인 요청(Request)를 구분할 수 있도록 Hid..

취약한 패스워드 복구란?

취약한 패스워드 복구 (Recovering Vulnerable Passwords) 개념 패스워드 재설정 시 일정 패턴으로 설정되거나 웹 사이트에 재설정된 패스워드가 바로 노출되는 취약점입니다. 발생 원인 불충분한 보안 대책으로 인해 발생합니다. 위험한 이유 공격자가 불법적으로 다른 사용자의 패스워드를 획득하거나 변경할 수 있게 됩니다. 조치 방법 - 사용자의 개인정보로 패스워드를 생성하지 말아야 하며, 난수를 이용한 불규칙적이고 최소 길이(6자 이상)이상의 패턴이 없는 패스워드를 발급하여야 합니다. - 사용자 패스워드를 발급해주거나 확인할 때 웹 사이트 화면에 바로 출력하는 것이 아닌 인증된 사용자 메일이나 SMS로 전송해야 합니다. - 패스워드 재발급 검증 실패에 대한 임계값을 설정하여 일정 횟수 이상..

불충분한 인증이란?

불충분한 인증 (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 소스에 포함하지 않도록 합니다. - 로그인 실패 시 반환되는 에러 메시지는 특정..