본문 바로가기

정보처리기사 실기

보안점검-1

보안점검

세션통제
세션은 서버와 클라이언트의 연결을 의미
세션 통제는 세션의연결과 연결로 인해 발생하는 정보를 관리하는 것을 의미

-세션 통제는 소프트웨어 개발 과정 중 요구사항 분석 및 설계 단계에서 진단해야 하는 보안 점검 내용

 

-세션 통제의 보안 약점

불충분한
세션 관리
-일정한 규칙이 존재하는 세션ID가 발급되거나 타임아웃이 너무 길게 설정돼 있는 경우 발생할 수 있는 보안 약점
세션ID : 서버가 클라이언트들을 구분하기 위해 부여하는 키로 클라이언트가 서버에 요청을 보낼때마다 세션ID를 통해 인증 수행
잘못된 세션에
의한 정보 노출
다중 스레드 환경에서 멤버변수에 정보를 저장할 때 발생하는 보안 약점
멤버 변수보다 지역 변수를 활용해 변수의 범위를 제한함으로써 방지 가능

 

입력 데이터 검증 및 표현

-입력 데이터 검증 및 표현은 입력 데이터로 인해 발생하는 문제들을 예방하기 위해 구현 단계에서 검증해야 하는 보안 점검 항목들이다.

 

-입력 데이터 검증 및 표현의 보안 약점 

SQL 삽입 -입력란에 sql을 삽입해 무단으로 db를 조회하거나 조작하는 보안 약점
-동적 쿼리에 사용되는 입력 데이터에 예약어 및 특수문자가 입력되지 않게 필터링 되도록 설정해 방지 할 수 있다. 
경로 조작 및
자원 삽입
-데이터 입출력 경로를 조작해 서버 지원을 수정·삭제할 수 있는 보안 약점이다.
-사용자 입력값을 식별자로 사용하는 경우 경로 순회 공격을 막는 필터를 사용해 방지할 수 있다.
클스사이트
스크립팅(XSS)
-웹페이지에 악의적인 스크립트를 삽입해 방문자들의 정보를 탗뤼하거나 비정상적인 기능 수행을 유발하는 보안 약점
-HTML 태그의 사용을 제한하거나 스크립트에 삽입되지 않도록 '<', '>', '&' 등의 문자를 다른 문자로 치환함으로써 해결 가능
운영체제
명령어 삽입
-외부 입력값을 통해 시스템 명령어의 실행을 유도함으로써 권한을 탈취하거나 시스템 장애를 유발하는 보안 약점
-웹 인터페이스를 통해 시스템 명령어가 전달되지 않도록 하고 외부 입력값을 검증 없이 내부 명령어로 사용하지 않음으로써 방지 가능
위험한 형식
파일 업로드
-악의적인 명령어가 포함된 스크립트 파일을 업로드함으로써 시스템에 손상을 주거나 시스템을 제어할 수 있는 보안 약점
-업로드 되는 파일의 확장자 제한, 파일명의 암호화, 웹사이트와 파일 서버의 경로 분리, 실행 속성을 제거하는 등의 방법으로 방지 가능
신뢰되지 않는
URL주소로
자동접속 연결
-입력 값으로 사이트 주소를 받는 경우 이를 조작해 방문자를 피싱 사이트로 유도하는 보안 약점
-연결되는 외부 사이트의 주소를 화이트 리스트로 관리해 방지 가능

 

보안 기능

-소프트웨어 개발의 구현 단계에서 코딩하는 기능인 인증, 접근제어, 기밀성, 암호화 등을 올바르게 구현하기 위한 보안 점검 항목들이다. 

 

-보안 기능에 대한 점검을 수행하지 않을 경우 발생할 수 있는 보안 약점

적절한 인증 없이
중요기능 허용
-보안검사를 우회하여 인증과정 없이 중요한 정보 또는 기능에 접근 및 변경이 가능
-중요정보나 기능을 수행하는 페이지에서는 재인증 기능을 수행하도록 하여 방지 가능
부적절한 인가 접근제어 기능이 없는 실행경로를 통해 정보 또는 권한을 탈취
모든 실행경로에 대해 접근제어 검사를 수행하고 사용자에게는 반드시 필요한 접근 권한만을 부여해 방지 가능
중요한 자원에
대한 잘못된
권한 설정
-권한 설정이 잘못된 자원에 접근해 해당 자원을 임의로 사용
-소프트웨어 관리자만 자원들을 읽고 쓸 수 있도록 설정하고 인가되지 않은 사용자의 중요 자원에 대한 접근 여부를 검사함으로써 방지 가능
취약한 암호화
알고리즘 사용
-암호화된 환경설정 파일은 해독해 비밀번호 등의 중요정보를 탈취
-안전한 암호화 알고리즘을 이용하고 업무 관련 내용이나 개인정보 등에 대해서는 IT보안인증사무국이 안정성을 확인한 암호모듈을 이용함으로써 방지 가능
중요 정보 평문
저장 및 전송
-암호화되지 않은 평문 데이터를 탈취해 중요한 정보를 획득
-중요한 정보를 저장하거나 전송할 때는 반드시 암호화 과정을 거치도록 하고 HTTPS 또는 SSL과 같은 보안 채널을 이용함으로써 방지 가능
하드코드된
비밀번호
-소스코드 유출 시 내부에 하드코드된 패스워드를 이용해 관리자 권한을 탈취
-패스워드는 암호화해 별도의 파일에 저장하고 디폴트 패스워드나 디폴트 키의 사용을 피함으로 방지

 

시간 및 상태

-동시 수행을 지원하는 병렬 처리 시스템이나 다수의 프로세스가 동작하는 환경에서 시간과 실행 상태를 관리해 시스템이 원활하게 동작되도록 하기 위한 보안 검증 항목들

 

-시간 및 상태를 점검하지 않은 코딩이 유발하는 보안 약점

TOUTOU 경쟁 조건 -검사 시점(Time Of Check)과 사용 시점(Time Of User)을 고려하지 않고 코딩하는 경우 발생하는 보안 약점
-코드 내에 동기화 구문을 사용해 해당 자원에는 한 번에 하나의 프로세스만 접근 가능하도록 구성함으로써 방지 가능
종료되지 않는 반복문
또는 재귀함수
-반복문이나 재귀함수에서 종료 조건을 정의하지 않았거나 논리 구조상 종료될 수 없는 경우 발생하는 보안 약점
-모든 반복문이나 재귀함수의 수행 횟수를 제한하는 설정을 추가하거나 종료 조건을 점검해 반복문 또는 호출의 종료 여부를 확인함으로써 방지할 수 있다.

 

에러처리

-소프트웨어 실행 중 발생할 수 있는 오류(Error)들을 사전에 정의해 오류로 인해 발생할 수 있는 문제들을 예방하기 위한 보안 점검 항목들

 

-에러처리의 미비로 인한 코딩이 유발하는 보안 약점

오류 메시지를
통한 정보노출
-오류 발생으로 실행 환경, 사용자 정보, 디버깅 정보 등의 중요 정보를 소프트웨어가 메시지로 외부에 노출하는 보안 약점
-예외처리 구문에 예외의 이름이나 스택 트레이스를 출력하도록 코딩하는 경우 해커는 소프트웨어의 내부구조를 쉽게 파악 가능
-오류 발생 시 가능한 한 내부에서만 처리되도록 하거나 메시지를 출력할 경우 최소한의 정보 또는 사전에 준비된 메시지만 출력되도록 함으로써 방지 가능
오류 상황
대응 부재
-소프트웨어 개발 중 예외처리를 하지 않았거나 미비로 인해 발생하는 보안 약점
-오류가 발생할 수 있는 부분에 예외처리 구문을 작성하고 제어문을 활용해 오류가 악용되지 않도록 코딩함으로써 방지
부적절한
예외처리
-함수의 반환값 또는 오류들을 세분화해 처리하지 않고 광범위하게 묶어 한 번에 처리하거나 누락된 예외가 존재할 때 발생하는 보안 약점
-모든 함수의 반환값이 의도대로 출력되는지 확인하고 세분화된 예외처리를 수행함으로써 방지 가능

 

'정보처리기사 실기' 카테고리의 다른 글

운영체제(OS; Operating System)  (1) 2021.06.01
보안점검-2  (0) 2021.05.31
보안요소  (0) 2021.05.26
Secure SDLC  (0) 2021.05.26
소프트웨어 개발 보안  (0) 2021.05.26