Cohe

9-2 소프트웨어 개발 보안 구현 본문

자격증 공부/정보처리기사 실기

9-2 소프트웨어 개발 보안 구현

코헤0121 2024. 10. 9. 18:44
728x90

소프트웨어 개발 보안 구현

SW 개발 보안 구현

  1. 시큐어 코딩 가이드
    • 시큐어 코딩 가이드는 설계 및 구현 단계에서 해킹 등의 공격을 유발할 가능성이 있는 잠재적인 보안 취약점을 사전에 제거하고, 외부 공격으로부터 안전한 소프트웨어를 개발하는 기법이다.
    • 소프트웨어 보안 약점을 방지하기 위한 시큐어 코딩 가이드에 따른 개발 수행이 필요하다.
    보안 약점 내용 대응방법
    입력데이터 검증 및 표현 - 프로그램 입력값에 대한 검증 누락 또는 부적절한 검증, 잘못된 형식 지정 등 사용자 · 프로그램 입력데이터에 대한 유효성 검증체계를 수립하고 실패 시 처리 설계 및 구현
    보안 기능 부적절한 구현 - 보안 기능(인증, 접근 제어, 기밀성, 암호화, 권한 관리 등)의 부적절한 구현 인증 · 접근 통제, 권한 관리, 비밀번호 등의 정책이 적절하게 반영되도록 설계
    및 구현
    시간 및 상태 관리 - 거의 동시에 수행 지원하는 병렬 시스템 또는 하나 이상의 프로세스가 동작하는 환경에서 시간 및 상태의 부적절한 관리 공유 자원의 접근 직렬화, 병렬 실행 가능 프레임워크 사용. 블록문 내에서만 재귀함수 호출
    에러 처리 부족 - 에러 미처리, 불충분한 처리 등으로 에러 메시지에 중요정보가 포함될 수 있음 에러 또는 오류 상황을 처리하지 않거나. 불충분하게 처리되어 중요정보 유출 등 보안 약점이 발생하지 않도록 시스템 설계 및 구현
    코드 오류 개발자가 범할 수 있는 코딩 오류로 인해 유발 코딩 규칙 도출 후 검증 가능한 스크립트 구성과 경고 순위의 최상향 조정 후 경고 메시지 코드 제거
    캡슐화 기능성이 불충분한 캡슐화로 인해 인가 되지 않은 사용자에게 데이터 누출 디버그 코드 제거와 필수 정보 외의 클래스 내 프라이빗(Private) 접근자 지정
    API 오용 의도된 사용에 반하는 방법으로 API를 사용하거나, 보안에 취약한 API의 사용 개발 언어별 취약 API 확보 및 취약 API 검출 프로그램 사용
  1. 입력 데이터 검증 및 표현
    1. 입력 데이터 검증 및 표현 개념
      • 입력 데이터 검증 및 표현은 입력 데이터로 인해 발생하는 문제들을 예방하기 위해 구현 단계에서 검증해야 하는 보안 점검 항목들이다.
      • 입력 데이터로 인해 발생하는 문제를 예방하기 위해서는 소프트웨어 개발의 구현 단계에서 유효성 검증 체계를 갖추고, 검증되지 않은 데이터의 입력을 처리할 수 있도록 구현해야 한다.
    1. 입력 데이터 검증 및 표현 취약점
      1. 입력 데이터 검증 및 표현 취약점[2020년 2회]
      취약점 설명 대책
      XSS (Cross Site Scripting) - 검증되지 않은 외부 입력 데이터가 포함될 때 발생하는 보안 취약점
      웹 어플리케이션에서 사용자가 입력한 스크립트 코드가 실행되는 공격 형태
      • 특수문자 등록을 방지하기 위해 특수
      문자 필터링
      • HTML 태그 사용 금지(특히,〈 문자사
      용 시 &lt로 변환처리)
      • 자바스크립트로 시작하는 문자열은 모두 문자열 변환처리
      CSRF (Cross Site Request Forgery)

      사이트간 요청 위조
      - 사용자가 인증된 상태에서 악의적인 요청을 통해 다른 사용자의 계정을 이용하여 원치 않는 행동을 하게 하는 공격 입력화면 폼을 작성 시 GET 방식보다 POST 방식 사용
      • 입력 폼과 입력처리 프로그램에서 세션별 CSRF 토큰을 사용하여 점검
      • 중요기능의 경우 재인증을 통해 안전하게 실제 요청 여부를 확인하도록 구현
      SQL 삽입 (Injection) 응용 프로그램의 보안 취약점을 이용해
      서 악의적인 SQL 구문을 삽입, 실행시
      켜서 데이터베이스(DB)의 접근을 통해
      정보를 탈취하거나 조작 등의 행위를 하
      는 공격기법
      • 바인딩 매개변수 방식 적용하여 사전
      에 변수 타입을 명시적으로 지정
      • 사용자로부터 입력될 수 있는 모든 값을 체크하여 필터링
      • Servlet Filter 기능 적용(Java에서만 적용)
      1. XSS
        1. XSS(Cross Site Scripting) 공격 유형
          공격 유형 설명
          Stored XSS 방문자들이 악성 스크립트가 포함된 페이지를 읽어 봄과 동시에 악성 스크립트가 브라우저에서 실행되면서 감염되는 기법
          Reflected XSS 공격용 악성 URL을 생성한 후 이메일로 사용자에게 전송하면 사용자가 URL 클릭 시 즉시 공격 스크립트가 피해자로 반사되어 접속 사이트에 민감정보를 공격자에게 전송하는 기법
          DOM(Document Object Model) XSS 공격자는 D0M 기반 XSS 취약점이 있는 브라우저를 대상으로 조작된 URL을 이메일을 통해 발송하고 피해자가 URL 클릭 시 공격 피해를 당하는 기법
        1. XSS 공격 방식
          번호 공격 절차
          1 임의의 XSS 취약점이 존재하는 서버에 XSS 코드를 작성하여 삽입하여 저장
          2 해당 웹 서비스 사용자가 공격자가 작성해 놓은 XSS 코드에 접근
          3 사용자가 XSS 코드가 저장된 페이지에 정보를 요청
          4 사용자의 시스템에서 XSS 코드 실행
          5 XSS 코드가 실행된 결과가 공격자에게 전달되고, 공격자는 결과를 가지고 웹 서버에서 2차 해킹 시도
      1. SQL 삽입(SQL Injection)
        1. SQL 삽입 공격 유형
          공격 유형 설명
          Form SQL Injection - HTML Form 기반 인증을 담당하는 애플리케이션의 취약점이 있는 경우 사용자 인증을 우회하는 기법
          Union SQL Injection - 쿼리의 UNION 연산자를 이용하여 한 쿼리의 결과를 다른 쿼리의 결과에 결합하여 공격하는 기법
          Stored Procedure SQL Injection - 저장 프로시저(stored Procedure)를 이용하여 공격하는 기법
          Mass SQL Injection - 기존 SQL Injection의 확장된 개념으로 한 번의 공격으로 대량의 DB 값이 변조되어 홈페이지에 치명적인 영향을 미치는 공격기법
          Error-Based SQL Injection - DB 쿼리에 대한 에러값을 기반으로 한 단계씩 점진적으로 DB 정보를 획득할 수 있는 공격기법
          Blind SQL Injection - DB 쿼리에 대한 오류 메시지를 반환하지 않으면 공격을 할 수 없는 Error-Based SQL Injection과 달리 오류 메시지가 아닌 쿼리 결과의 참과 거짓을 통해 의도하지 않은 SQL 문을 실행함으로써 데이터베이스를 비정상적으로 공격하는 기법
        1. SQL 삽입 공격 방식
          순서 내용
          1 프로그램의 취약점 탐지
          2 악의적인 SQL 구문을 삽입하여 인증을 우회하는 공격 수행
          3 권한이 상승되어 데이터베이스의 정보를 탈취하거나 조작하는 공격을 실행
      1. CSRF
        순서 공격 절차
        1 공격자는 CSRF 스크립트가 포함된 게시물을 등록
        2 사용자는 CSRF 스크립트가 포함된 페이지의 게시물을 열람 요청
        3 - 게시물을 읽은 사용자의 권한으로 공격자가 원하는 요청이 발생함
        4 - 공격자가 원하는 CSRF 스크립트 결과가 발생함
  1. 보안 기능
    1. 보안 기능 개념
      • 보안 기능은 소프트웨어 개발 단계에서 인증, 접근제어, 기밀성, 암호화, 권한 관리 등을 적절하게 구현하기 위한 보안 점검 항목들이다.
      • 각 보안 기능들은 서비스 환경이나 취급 데이터에 맞게 처리될 수 있도록 구현해야 한다.
    1. 보안 기능 취약점
      • 보안 기능에 대한 점검을 수행하여 적절한 인증 없이 중요기능 허용, 부적절한 인가, 취약한 암호화 알고리즘 사용, 중요정보의 평문 저장 및 전송, 하드 코드 된 비밀번호 등의 보안 취약점을 방지해야 한다
      취약점 설명 대책
      적절한 인증 없이 중요 기능 허용 • 보안 검사를 우회하여 인증과정 없이 중요정보 또는 기능에 접근 및 변경이 가능 • 중요정보나 기능을 수행하는 페이지에서는 재인증 기능을 통해 방지
      부적절한 인가 • 접근제어 기능이 없는 실행경로를 통해 정보 또는 권한 탈취 • 모든 실행경로에 대해 접근제어 검사를 수행하고, 사용자에게는 반드시 필요한 접근권만 부여하여 방지
      취약한 암호화 알고리즘 사용 • 암호화된 환경설정 파일을 해독하여 비밀번호 등의 중요정보 탈취 • 안전한 암호화 알고리즘, 안정성이 인증된 암호 모듈을 이용하여 방지
      중요 정보 평문 저장 및 전송 • 암호화되지 않은 평문 데이터를 탈취하여 중요 정보 획득 가능 • 중요한 정보 저장 및 전송 시 반드시 암호화 과정을 거치도록 하고,
      HTTPS, SSL/TLS 등의 보안 채널을 이용하여 방지
      하드 코드 된 비밀 번호 • 프로그램 코드 내부에 패스워드 포함시 관리자 정보가 노출될 수 있는 보안 취약점 • 패스워드는 암호화하여 별도 파일에 저장
      • 소프트웨어 설치 시 직접 패스워드나 키를 입력하도록 설계하여 방지
      취약한 패스워드 요구조건 • 취약한 사용자 패스워드 조합 규칙에 따른 사용자 계정 보안 취약점 • 패스워드 생성 시 강한 조건 검증 필요
  1. 에러 처리
    1. 에러 처리 개념
      • 에러 처리는 프로그램 실행 시 발생하는 에러를 예외 처리하지 못하거나, 에러 정보에 중요한 정보(프로그램 정보, 상세한 에러 내역 등)가 포함될 때 발생할 수 있는 취약점을 예방하기 위한 보안 점검 항목들이다.
      • 각 프로그래밍 언어의 예외 처리 구문을 통해 오류에 대한 사항을 정의하지 않으면 중요정보를 노출시키거나, 소프트웨어의 실행이 중단되는 등 예기치 못한 문제를 발생시킨다.
    1. 에러 처리 취약점
      취약점 설명 대책
      오류 메시지 통한 정보노출 •프로그램이 실행환경, 사용자, 관련 데이터에 대한 민감한 정보를 포함하는 오류 메시지를 생성하여 공격자의
      악성 행위를 도와주는 보안 취약점
      • 에러 메시지는 정해진 사용자에게 유용한 최소한의 정보만 표현
      • 예외 사항을 내부적으로 처리하고 사
      용자에게 민감한 정보를 포함하는 오
      류 출력금지
      오류 상황 대응 부재 • 오류가 발생할 수 있는 부분을 확인 하였으나, 이러한 오류에 대하여 예외 처리를 하지 않았거나 미비로 인해 발생하는 보안 약점 오류가 발생할 수 있는 부분에 예외 처리 구문을 작성하고, 제어문을 활용하여 오류를 악용하지 않도록 코딩
      적절하지 않은 예외 처리 • 프로그램 수행 중에 함수의 결괏값에 대한 적절한 처리 또는 예외상황에 대한 조건을 적절하게 검사하지 않을
      경우, 예기치 않은 문제를 일으킬 수 있는 보안 약점
      • 값을 반환하는 모든 함수의 결괏값을 검사하여, 그 값이 기대한 값인지 검사하고, 예외 처리를 사용하는 경우
      에는 광범위한 예외 처리 대신 구체적인 예외 처리를 통해 방지
  1. 세션 통제
    1. 세션 통제 개념
      • 세션 통제는 다른 세션 간 데이터 공유 등 세션과 관련되어 발생할 수 있는 취약점을 예방하기 위한 보안 점검 항목들이다.
      • 이미 연결이 종료된 클라이언트의 정보가 사용 가능한 상태로 방치되는 경우 허가되지 않은 사용자가 시스템에 접근할 수 있는 보안 약점이 있다.
      • 안전한 세션 통제 정책이 적용되기 위해 세션 정보를 안전하게 관리해야 한다.
    1. 세션 통제 취약점
      취약점 설명 대책
      불충분한
      세션 관리
      • 인증 시 일정한 규칙이 존재하는 세션 ID를 발급
      •세션 타임아웃을 길게 설정한 경우 공격자에 의해 사용자 권한이 도용
      • 클래스 변수는 세션 간에 공유되는 데이터가 되므로 클래스 설계 시 세
      션 정보를 읽고 쓰기가 가능한 변수를 사용하지 않도록 설계
  1. 코드 오류
    1. 코드 오류 개념
      • 코드 오류는 소프트웨어 구현 단계에서 프로그램 변환 시 오류, 서버의 리소스 자원(메모리 등)의 부적절한 반환(버퍼 오버플로우) 등 개발자가 흔하게 실수하는 프로그램 오류를 예방하기 위한 보안 점검 항목들이다
    1. 코드 오류 취약점
      취약점 설명 대책
      널 포인터 역참조 • ‘일반적으로 그 객체가 Null이 될 수 없다’
      라고 하는 가정을 위반했을 때 발생
      • 대부분 운영체제에서 널 포인터는 메모리
      의 첫 주소를 가리키며, 해당 주소를 참조
      할 경우 소프트웨어가 비정상적으로 종료
      • 공격자가 의도적으로 Null 포인터 역참조를
      실행하는 경우, 그 결과 발생하는 예외 사
      항을 추후에 공격자가 악용할 수 있음
      • N ull 이 될 수 있는 레 퍼 런스
      (Reference)는 참조하기 전에 Null 값
      인지를 검사하여 안전한 경우에만 사
      정수를 문자로 변환 • 정수를 문자로 변환하면서 표현할 수 없는
      범위의 값이 잘려나가 문자에 대한 저장 값
      이 올바르지 않은 보안 취약점
      • 정수를 문자로 변환할 경우, 변환 값
      의 크기가 변환 값이 저장되는 변수
      의 크기보다 크지 않도록 함
      부적절한 자원 해제 • 힙 메모리, 소켓 등 프로그램 자원 사용 후,
      프로그램 오류로 인해 종료된 자원을 반환
      하지 못했을 때 발생할 수 있는 보안 취약
      자원을 획득하여 사용한 다음에는
      finally 블록에서 반드시 자원이 반환
      되도록 코딩함으로써 방지
      초기화되지 않은 변수 사용 초기화되지 않은 변수 사용은 변수 선언 후
      값이 부여되지 않은 변수를 人요할 때 발생
      할 수 있는 보안 취약점
      • 변수가 선언되어 메모리가 할당되면 해당
      메모리에 이전에 사용하던 내용이 계속 남
      아있어 변수가 외부에 노출되는 경우 중요
      정보가 악용될 수 있음
      • 변수 선언 시 할당된 메모리를 초기
      화함으로써 방지
  1. 캡슐화
    1. 개념
      • 캡슐화는 외부에 은닉이 필요한 중요한 데이터와 필요한 기능성을 불충분하게 캡슐화했을 때 인가되지 않은 사용자에게 데이터 유출, 권한 문제 등이 발생할 수 있는 보안 취약점 예방을 위한 보안 검증 항목들이다
    1. 취약점
      취약점 설명 대책
      잘못된 세션에 의한
      데이터 정보 노출
      다중 스레드 환경에서 싱글톤(Singleton) 객체 필드에서 경쟁 조건 (Race condition)으루 인해 동기화 오류가 발생하거나, 멤버 변수의 정보가 노출되는 보안 취약점 싱글톤 패턴을 사용하는 경우, 변수 범위(Scope)에 주의하고, 멤버 변수보다 지역 변수를 활용하여 변수의 범위를 제한함으로써 방지
      제거되지 않고 남은 디버그 코드 - 디버깅 목적으로 삽입된 코드가 제거되지 않아 공격자에게 의도하지 않은 정보와 제어 정보가 누출될 수 있는 보안 취약점 디버거 코드는 개발 완료 후, 삭제 처리
      민감한 데이터를 가진 내부 클래스 사용 - 권한이 없는 클래스를 사용하고자 할 때 발생하는 취약점 내부 클래스 사용 시 외부 클래스의 접근 금지
      시스템 데이터 정보노출 시스템 • 관리자 DB 정보 등 시스템의 내부 데이터를 시스템 메시지 등을 통해 외부로 출력하도록 코딩했을 때 발생하는 보안 취약점 시스템 메시지를 통해 노출되는 메시지는 최소한의 정보만 제공함으로써 방지
  1. API 오용
    1. API 오용 개념
      • API 오용은 서비스에서 제공되는 이용에 반하는 방법으로 API를 이용하거나 보안에 취약한 API를 오용하여 발생할 수 있는 보안 취약점 예방을 위한 보안 검증 항목들이다.
    1. API 오용 취약점
      취약점 설명 대책
      DNS Lookup에 의존한 보안 결정 • 도메인명에 의존하여 인증이나 접근
      통제 등의 보안 결정을 내리는 경우
      발생하는 보안 약점
      • DNS 엔트리를 속여 동일한 도메인
      에 속한 서버인 것처럼 위장하거나,
      사용자와 서버 간의 네트워크 트래
      픽을 유도하여 악성 사이트를 경유
      하도록 조작할 수 있음
      • 보안 결정에서 도메인명을 이용한
      DNS Lookup을 하지 않도록 함
      • DNS 이름 검색 함수를 사용한 후
      조건문에서 인증 여부를 수행하
      는 것보다 IP 주소를 이용하는 것이
      DNS 이름을 직접 사용하는 것보다
      안전
      위험하다고 알려진 함수 사용 • 보안 취약점을 고려하지 않고 개발
      되어, 사용자체가 취약한 함수들의
      보안 취약점
      예) strcpy 함수
      글자 수 상관없이 문자열 복사 가
      능하여 위험
      • 안전한 함수 사용
      널(Null) 매개변수 미검사 - 자바(Java) 표준에서 특정 메서드를 사용할 때 매개변수가 널(Null)인 경우 지정된 값이 반환하지 못해 발생하는 예기치 못한 동작에 대한 보안 취약점 • 널(NULL) 여부를 점검하는 과정을 거
      친 후 사용해야 함

시스템 보안 구현

  1. 유닉스/리눅스 주요 로그 파일
    • 유닉스/리눅스 로그가 저장되는 경로는 시스템마다 조금씩 다르다. 일반적으로 유닉스의 경우 /var/adm 디렉토리에 주로 저장되며, 리눅스의 경우 /var/log 디렉토리에 주로 저장된다.
    • 리눅스에서는 /var/log 디렉토리에서 시스템의 모든 로그를 기록 및 관리하고 있다.
    • 시스템의 /etc/syslog.conf 파일에서 시스템 로그 파일들의 위치를 지정하고 있다.
    • 다양한 로그를 바탕으로 해커를 추적하는 것이 가능하다.
      로그 이름 설명 내용 확인 명령어
      wtmp/wtmpx - 사용자 로그인/로그아웃 정보를 기록하는 파일
      • 시스템 shutdown/reboot 정보
      • last 명령어
      utmp/utmpx - 현재 시스템에 로그인한 사용자 정보를 기록하는 파일 • who, w, users, finger 명령어
      btmp/btmpx - 로그인에 실패한 정보를 기록하는 파일 • lastb 명령어
      lastlog - 사용자별 최근 로그인 시간 및 접근한 소스 호스트에 대한 정보를 기록하는 파일 • lastlog 명령어
      sulog - su(Switch user) 명령어 실행 성공/실패 결과에 대한 정보를 기록하는 파일 • 텍스트 파일이라서 별도 명령
      어 없음
      acct/pacct - 사용자별로 실행되는 모든 명령어에 대한 로그를 기록하는 파일 • lastcomm, acctcom 명령어
      xferlog - FTP 서비스 데이터 전송 기록 로그를 기록하는 파일 • 텍스트 파일이라서 별도 명령어 없음
      messages - 부트 메시지 등 시스템의 가장 기본적인 시스템 로그 파일로, 운영에 대한 전반적인 메시지를 저장하는 파일 • 텍스트 파일이라서 별도 명령어 없음
      secure - 보안과 관련된 주요 로그를 기록하며, 사용자 인증과 관련된 로그를 기록하는 파일 • 텍스트 파일이라서 별도 명령
      어 없음
  1. 보안 솔루션
    1. 네트워크 보안 솔루션
      • 네트워크 보안 장비는 접근 통제, 침입차단 및 탐지, DDoS 탐지 등을 수행 하는 일체형 장비들이 포함된다
        솔루션 이름 설명
        방화벽 (Firewall) - 기업 내부, 외부 간 트래픽을 모니터링하여 시스템의 접근을 허용하거나 차단하는 시스템
        웹 방화벽 (WAF) - 일반적인 네트워크 방화벽과는 달리 웹 애플리케이션 보안에 특화된 보안 장비
        네트워크 접근 제어 (NAC) - 단말기가 내부 네트워크에 접속을 시도할 때 이를 제어하고 통제하는 기능을 제공하는 솔루션
        침입 탐지 시스템 (IDS) - 네트워크에서 발생하는 이벤트를 모니터링하고 비인가 사용자에 의한 자원 접근과 보안정책 위반 행위(침입)을 실시간으로 탐지하는 시스템
        침입 방지 시스템 (IPS) - 바이러스나 웜 등의 보안 위협으로부터 네트워크 제어 및 통제 기능을 수행하는 시스템
        무선 침입 방지 시스템 (WIPS) - 인가되지 않은 무선 단말기의 접속을 자동으로 탐지 및 차단하고 보안에 취약한 무선 공유기를 탐지하는 시스템
        통합 보안 시스템 (UTM) - 다양한 보안 장비의 기능을 하나의 장비로 통합하여 제공하는 시스템
        가상 사설망 (VPN) - 인터넷과 같은 공중망에 인증, 암호화, 터널링 기술을 활용하여 마치 전용망을 사용하는 효과를 가지는 보안 솔루션
        SIEM (Security Information and Event Management) - 다양한 보안 장비와 서버, 네트워크 장비 등으로부터 보안 로그와 이벤트 정보를 수집한 후 정보 간의 연관성을 분석하여 위협 상황을 인지하고 대응하는 보안 관제 솔루션
        ESM (Enterprise Security Management) - 방화벽, 침입 탐지 시스템(IDS), UTM, 가상 사설망 등의 여러 보안 시스템으로부터 발생한 각종 이벤트 및 로그를 통합해서 관리, 분석, 대응하는 전사적 통합 보안 관리 시스템
    1. 시스템 보안 솔루션
      • 주요 솔루션으로 스팸 차단 솔루션 및 운영체제를 위한 Secure OS 등이 있다.
        솔루션 이름 설명
        스팸 차단 솔루션 (Anti-Spam Solution) - 메일 서버 앞단에 위치하여 프록시(Proxy) 메일 서버로 동작<br>- 메일 바이러스 검사, 내부 및 외부 본문 검색 기능 통한 내부 정보 유출 방지
        보안 운영체제 (Secure OS) - 컴퓨터 운영체제의 커널에 보안 기능을 추가한 솔루션
        - 운영체제에 내재된 결함으로 인해 발생할 수 있는 각종 해킹 공격으로부터 시스템을 보호하기 위해 보안 기능이 통합된 보안 커널을 추가한 운영체제
    1. 콘텐츠 유출 방지 보안 솔루션
      • 기업/기관 내 정보 유출 방지를 위한 솔루션으로 보안 USB, DRM, DLP 등이 있다.
        솔루션 이름 설명
        보안 USB (Security USB) - 정보 유출 방지 등의 보안 기능을 갖춘 USB 메모리<br>- 사용자 식별/인증, 데이터 암/복호화, 임의복제 방지, 분실 시 데이터 삭제 기능을 제공
        데이터 유출 방지 (DLP; Data Loss Prevention) - 조직 내부의 중요 자료가 외부로 빠져나가는 것을 탐지하고 차단하는 솔루션
        - 정보 유출 방지를 위해 정보의 흐름에 대한 모니터링과 실시간 차단 기능을 제공
        디지털 저작권 관리 (DRM; Digital Right Management) - MP3, E-Book과 같은 디지털 저작물에 대한 보호와 관리를 위한 솔루션
        암호화 파일 보안 (File Encryption) - 파일 자체에 암호를 걸어 권한 없는 사용자는 사용하지 못하도록 함<br>- 문서 보안 솔루션으로도 사용할 수 있고 문서를 저장할 때 암호화하여 저장하여 권한이 없는 사용자가 문서를 읽지 못하도록 함
  1. 취약점 분석
    1. 취약점 분석의 개념
      • 취약점 분석은 자산이 가지고 있는 보안상의 결점 또는 취약한 속성을 파악하여 위험을 낮추는 활동이다.
    1. 취약점 분석의 대상
      구분 설명 예시
      환경 및 시설 문, 창문 등 물리적 보호 결여 불안정한 전원 설비
      재해를 입기 쉬운 입지 조건
      도난
      정전/오작동
      천재지변
      하드웨어 (Hardware) - 온/습도의 변화
      - 기억매체의 유지보수 부족
      고장/오작동
      데이터 유실
      소프트웨어 (Software) - 명세서의 미준비
      - 부적절한 패스워드
      - 백업(Backup) 부족
      - 소프트웨어 장애
      정보유출
      데이터 소실
    1. 취약점 분석 절차
      • 취약점 분석 절차는 자산 식별, 대상 선정, 제약사항 확인, 진단 수행, 결과 분석/보고서 작성 단계로 구분한다.
      1. 자산 조사 및 분석:
        • 어떤 자산에 대해 수행할지 선정합니다.
        • 자산 규모에 따라 전수 조사 또는 샘플링을 수행합니다.
        • 자산 조사/진단 대상 선정, 제약사항 확인, 진단 수행, 결과 분석, 보고서 작성의 과정을 거칩니다.
      1. 진단 대상 선정:
        • 자산 규모에 따라 샘플링을 수행하거나, 전수 조사를 진행합니다.
        • 진단 수행하는 시간의 제약사항을 확인하고, 적절하게 일정을 분배합니다.
      1. 진단 수행:
        • 체크리스트를 이용하여 취약점 진단을 수행합니다.
        • 기술적, 관리적, 물리적 관점에서 수동 진단 또는 자동 진단을 실시합니다.
        • 관련 담당자와의 인터뷰를 통해 정보를 수집합니다.
        • 내부 실사를 통해 물리적인 취약점을 파악합니다.
      1. 결과 분석 및 보고서 작성:
        • 점검 항목에 대해 취약점 점수를 지정하고, 결과 값을 산출합니다.
        • 분석된 결과를 토대로 보고서를 작성하고, 발견된 취약점에 대한 대응책을 제시합니다.

 

SW 개발 보안 테스트와 결함 관리

  1. 소프트웨어 개발 보안 테스트의 개념
    • 소프트웨어 개발 보안 테스트는 소프트웨어 보안 요구사항이 반영되어 있음을 보증하고, 취약점을 발견하고 개선하여 안전한 소프트웨어를 개발하기 위한 활동이다
  1. 소프트웨어 개발 보안 테스트의 유형[2022년 1회]
      설명 특징
    정적 분석 • SW를 실행하지 않고 보안 약점을 분석
    • SW 개발 단계에서 주로 사용
    • 취약점 초기 발견으로 수정비용 절감
    • 컴포넌트 간 발생할 수 있는 통합된 취약
    점 발견에 제한적
    • 설계 • 구조 관점의 취약점은 식별 불가
    동적 분석 • SW 실행환경에서 보안 약점 분석
    • SW 시험 단계에서 주로 사용
    • 소스코드 필요 없음
    • 정확도와 커버리지 향상
    • 구조 관점의 보안 약점식별 불가

비즈니스 연속성 계획(BCP)

  1. 비즈니스 연속성 계획(BCP; Business Continuity Plan)의 개념
    • 비즈니스 연속성 계획은 각종 재해, 장애, 재난으로부터 위기관리를 기반으로 재해복구, 업무복구 및 재개, 비상계획 등을 통해 비즈니스 연속성을 보장하는 체계이다.
    • 비즈니스 연속성 계획을 위한 비즈니스 영향 평가(BIA)가 선행되어야 한다
  1. 비즈니스 연속성 계획 관련 주요 용어[2020년 2회
    주요 용어 설명
    BIA (Business Impact Analysis) 장애나 재해로 인해 운영상의 주요 손실을 가정하여 시간에 따른 영향과 손실을 평가하는 비즈니스 영향 분석
    RTO (Recovery Time Objective) 업무 중단 시점부터 업무가 복구되어 다시 가동될 때까지의 목표 시간
    RPO (Recovery Point Objective) 업무 중단 시점부터 데이터가 복구되어 다시 정상 가동될 때까지 데이터의 손실을 허용하는 시간
    DRP (Disaster Recovery Plan) 재해 시 복구 목표 시간의 선정을 포함한 재해 시 복구를 위한 계획
    DRS (Disaster Recovery System) 재난으로 인한 장기간 시설 운영 불능 상황에 대비한 재해 복구 시스템
    Mirror Site 재해 복구 센터의 한 유형으로, 재난으로부터 시설을 보호하기 위해 평상시에 운영 중인 복제 사이트
    유형 설명
    Mirror Site - 주 센터와 데이터 복구 센터가 실시간으로 동시 서비스 가능한 재해 복구 센터
    - 복구 시간(RTO)은 즉시(이론적으로 0)
    Hot Site • 주 센터와 동일한 수준의 자원을 대기 상태로 원격지에 보유하면서 동기, 비동기 방식의 미러링을 통하여 데이터의 최신 상태를 유지하고 있는 재해복구센터
    • 재해 발생 시 복구까지의 소요 시간(RT0)은 4시간 이내
    Warm Site • Hot Site와 유사하나 재해복구센터에 주 센터와 동일한 수준의 자원을 보유하는 대신 중요성이 높은 자원만 부분적으로 재해복구센터에 보유하고 있는 센터
    • 데이터 백업 주기가 수 시간-1일
    • 재해 발생 시 복구까지의 소요 시간(RTO)은 수일~수주
    Cold Site • 데이터만 원격지에 보관하고, 재해 시 데이터를 근간으로 필요 자원을 조달하여 복구 할 수 있는 재해복구센터
    • 재해 발생 시 복구까지의 소요 시간(RTO)은 수주-수개월
    • 구축 비용이 저렴하나 복구 소요 시간이 길고 신뢰성이 낮음

보안 용어

  1. 보안 공격 관련 용어
    주요 용어 설명
    부 채널 공격 - 암호화 알고리즘의 실행 시기의 물리적 특성을 측정하여 내부 정보를 획득하는 공격 기법
    - 내부 비밀 정보를 부 채널에서 탈취
    드라이브 바이 다운로드 - 웹 서버와 웹 페이지에 악성 스크립트를 설치하여 사용자 접속 시 의도된 서버로 연결하여 감염시키는 공격 기법
    워터링홀 - 특정인이 잘 방문하는 웹 사이트에 악성코드를 심거나 악성코드를 배포하는 UR로 유인하여 감염시키는 공격 기법
    비즈니스 스캠 - 기업 이메일 계정을 도용하여 무역 거래 대금을 가로채는 사이버 범죄
    하트 블리드 - OpenSSL의 하트비트 확장 모듈에서 발생하는 취약점을 이용하여 시스템 메모리의 데이터를 외부로 무제한 탈취하는 공격 기법
    크라임웨어 - 중요한 정보를 탈취하여 범죄 행위를 목적으로 하는 악성코드
    토르 네트워크 - 네트워크 경로를 암호화하여 익명으로 인터넷을 사용할 수 있는 가상 네트워크
    MITM 공격 - 통신을 중간에서 가로채어 도청하거나 조작하는 공격 기법
    DNS 스푸핑 공격 - DNS 응답을 조작하여 희생자가 의도하지 않은 주소로 접속하게 만드는 공격 기법
    포트 스캐닝 - 공격 전 취약점을 분석하기 위해 대상 호스트의 포트를 확인하는 기법
    디렉토리 리스팅 - 웹 서버의 설정 미흡으로 인해 디렉토리와 파일 목록이 노출되는 취약점
    리버스 쉘 공격 - 타깃 서버가 클라이언트로 접속하여 클라이언트가 서버의 쉘을 획득하는 공격 기법
    익스플로잇
    (Exploit)
    • 소프트웨어나 하드웨어의 버그 또는 취약점을 이용하여 공격자가 의도한 동작이나 명령을 실행하도록 하는 코드 또는 그러한 행위
    스턱스넷 공격
    (Stuxnet)
    • 독일 지멘스사의 SCADA 시스템을 공격 목표로 제작된 악성코드로 원자력, 전기, 철강, 반도체, 화학 등 주요 산업 기반 시설의 제어 시스템에 침투해서 오작동을 일으키는 악성코드 공격기법
    크리덴셜 스터핑
    (Credenti기 Stuffing)
    • 사용자 계정을 탈취해서 공격하는 유형 중 하나로, 다른 곳에서 유출된 아이디와 비밀번호 등의 로그인 정보를 다른 웹 사이트나 앱에 무작위로 대입 해 로그인이 이루어지면 타인의 정보를 유출시키는 기법
  1. 보안 공격 대응 관련 용어
    주요 용어 설명
    허니팟 - 소프트웨어나 하드웨어의 버그 또는 취약점을 이용하여 공격자가 의도한 동작이나 명령을 실행하도록 하는 코드 또는 행위
    - 의도적으로 설치하여 해커를 유인하는 유인 시스템
    OWASP Top 10 - 웹 애플리케이션 취약점 중 공격 빈도가 높고 보안상 중요한 10가지 취약점에 대한 대응 방안을 제공하는 웹 보안 기술 가이드
    핑거프린팅 • 멀티미디어 콘텐츠에 저작권 정보와 구매한 사용자 정보를 삽입하여 콘텐츠 불법 배포자에 대한 위치 추적이 가능한 기술(저작권 정보구매자 정보)
    워터마킹 - 디지털 콘텐츠에 저작권자 정보를 삽입하여 불법 복제 시 워터마크를 추출, 원소유자를 증명할 수 있는 콘텐츠 보호 기술
    이상금융거래탐지시스템 - 전자금융거래에 사용되는 단말기 정보, 접속 정보, 거래 정보 등을 종합적으로 분석하여 의심 거래를 탐지하고, 이상 거래를 차단하는 시스템
    cc - 정보기술의 보안 기능과 보증에 대한 평가 기준(등급)
    - 정보보호 시스템의 보안 기능 요구사항과 보증 요구사항 평가를 위해 공통으로 제공되는 국제 평가 기준
    사이버 위협정보 분석 공유시스템 - 사이버 위협정보를 체계적으로 수립하여 인터넷진흥원(KISA) 주관으로 관계 기관과 자동화된 정보 공유를 할 수 있는 침해 예방 대응 시스템
    장착형 인증 모듈 - 리눅스 시스템 내에서 사용되는 각종 애플리케이션 인증을 위해 제공되는 다양한 인증용 라이브러리
    CVE 미국 비 영리회사인 MITRE 사에서 공개적으로 알려진 소프트웨어의 보안취약점을 표준화한 식별자 목록
    • 규칙: CVE - (연도) - (순서)
    CWE • 미국 비영리 회사인 MITRE 사가 중심이 되어 소프트웨어에서 공통적으로 발생하는 약점을 체계적으로 분류한 목록으로, 소스 코드 취약점을 정의한 데이터베이스
    • 소프트웨어 약점은 SDLC 과정에서 발생할 수 있기 때문에 설계, 아키텍처, 코드 단계 등에 대한 취약점 목록을 포함
    ISMS - 조직의 주요 정보자산을 보호하기 위하여 정보보호 관리 절차와 과정을 체계적으로 수립하여 지속적으로 관리하고 운영하기 위한 종합적인 체계
    PIMS - 기업이 개인정보보호 활동을 체계적 • 지속적으로 수행하기 위해 필요한 보호조치 체계를 구축했는지 여부를 점검, 평가하여 기업에게 부여하는 인증제
    PIA
    (Privacy Impact
    Assessment)
    • 개인정보를 활용하는 새로운 정보 시스템의 도입이나 개인정보 취
    급이 수반되는 기존 정보 시스템의 중대한 변경 시, 동 시스템의 구
    축 • 운영 • 변경 등이 프라이버시에 미치는 영향에 대하여 사전에 조
    사 및 예측, 검토하여 개선 방안을 도출하는 체계적인 절차
    TKIP
    (Temporal Key Integrity
    Protocol)
    • 임시 키 무결성 프로토콜
    • IEEE 802.11i°| 암호화 방식으로 초기 Wi-Fi 장비에서 널리 사용되었던 안전하지 않은 WEP(Wired Equivalent Privacy) 암호화 표준을 대체하기 위한 암호 프로토콜