ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 2020 정보처리기사 필기 : 5과목 : 3장
    Study/정보처리기사 2020. 5. 29. 14:34
    728x90

    3장 : 소프트웨어 개발 보안 구축


    1.     Secure SDLC (Secure Software Development Life Cycle, 보안 소프트웨어 개발 생명 주기) ★★★

    • SDLC에 보안 강화를 위한 프로세스를 포함시킨 것

     

     

    1-2.     요구사항 분석 단계에서의 보안 활동

    • 요구사항을 식별하는 작업을 수행한다.
    • 보안 요소별로 등급을 구분한다. 
    • 보안 정책 항목들의 출처, 요구 수준, 세부 내용 등을 문서화한다. 

     

     

    1-3.     설계 단계에서의 보안 활동

    • 소프트웨어 설계서에 보안 요구사항을 반영한다. 
    • 네트워크 : 방화벽을 설치한다. 
    • 서버 : 보안이 좋은 운영체제를 사용한다. 
    • 물리적 보안 : 출입 통제, 개발 공간의 제한, 폐쇄 회로 감시
    • 개발 프로그램 : 허가되지 않은 프로그램을 통제한다. 

     

     

    1-4.     구현 단계에서의 보안 활동

    • 지속적인 단위 테스트를 통해 보안 취약점을 최소화한다. 
    • 소스 코드의 안정성을 확보한다. 
    • 시큐어 코딩을 한다. 

     

     

    ** 시큐어 코딩 (Secure Coding) : 구현 단계에서 발생할 수 있는. 보안 취약점들을 최소화하기 위해 보안 요소들을 고려하며 코딩하는 것

     

     

    1-5.     테스트 단계에서의 보안 활동

    • 설계 단계에서 식별된 위협들의 해결 여부를 검증한다. 
    • 모든 결과를 문서화 한다. 

     

     

    1-6.     유지보수 단계에서의 보안 활동

    • 보안 패치를 실시한다. 

    2.     세션 통제

    • 세션 : 서버와 클라이언트의 연결을 의미한다. 
    • 세션 통제 : 세션의 연결로 인해 발생하는 정보를 관리하는 것을 말한다. 
    • 세션 통제는, 연결만을 관리할 뿐, 접근 권한을 통제하지 않는다. 
    • 요구사항 분석 및 설계 단계에서 진행한다.

     

     

    2-1. 세션 관련 약점

    불충분한 세션 관리

    일정한 규칙이 존재하는 세션ID의 발급이 이루어지는 경우

    타임아웃이 너무 길게 설정된 경우

    잘못된 세션에 의한 정보 노출

    다중 스레드 환경에서, 멤버 변수에 정보를 저장할 때 발생하는 보안 약점이다. 

    동기화 오류가 발생하거나, 멤버 변숭의 정보가 노출될 수 있다. 

    멤버 변수보다 지역 변수를 활용하여 범위를 제한한다면 방지할 수 있다. 

     

     

    2-2. 세션 설계 시 고려 사항

    • 모든 페이지에서 로그아웃이 가능해야 한다. 
    • 로그아웃 요청 시, 할당된 세션이 완전히 제거되어야 한다. 
    • 타임아웃은 중요도가 높다면 2~5분, 낮으면 15~30분으로 설정한다. 
    • 이전 세션이 종료되지 않으면, 새 세션이 생성되면 안된다. 

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

    종류 막는 방법
    SQL 삽입 예약어 및 특수문자가 입력되지 않게 한다. 
    경로 조작 및 자원 삽입 경로 순회 공격을 막는 필터를 사용한다. 
    크로스 사이트 스크립팅 (XSS) '<', '>', '&' 등의 문자를 다른 문자로 치환한다. 
    운영체제 명령어 삽입 웹 인터페이스를 사용한다. 
    위험한 형식 파일 업로드 확장자 제한, 파일명의 암호화
    신뢰되지 않은 URL 주소로 자동 접속 연결 화이트 리스트로 관리한다. 

    4. 보안 기능의 보안 약점

    종류 막는 방법
    적절한 인증 없이 중요 기능 허용 재인증 기능을 수행한다. 
    부적절한 인가 모든 경로에 대해 검사를 수행하고, 반드시 필요한 접근 권한만 부여한다. 
    중요한 자원에 대한 잘못된 권한 설정 관리자만 읽고 쓸 수 있도록 한다. 
    취약한 알고리즘 사용 안전한 알고리즘을 이용한다. 
    중요 정보 평문 저장 및 전송 저장 또는 전송 시 암호화 과정을 거친다. 
    하드코드된 비밀번호 암호화하여 별도로 저장한다. 

    4. 널 포인터 역참조 (Null Pointer)

    • 널 포인터가 가리키는 메모리에 어떠한 값을 저장할 때, 발생하는 보안 약점이다. 
    • 대부분의 운영체제에서, 널 포인터는 메모리의 첫 주소를 가리킨다. 이 주소를 참조할 경우 SW의 비정상적 종료가 가능하다. 
    • 널 포인터를 접근하기 전에, 널 값을 가지는지 검사함으로써 방지할 수 있다. 

    5. 암호 알고리즘

    암호화 방식 양방향 방식 개인키 속도가 빠르다. 

    단순하다. 

    파일의 크기가 작다. 

    사용자가 증가하면, 관리할 키의 수가 증가한다. 
    공개키 속도가 느리다.

    복잡하다.

    파일의 크기가 크다.

    키의 분배가 쉽다. 

    관리할 키의 수가 적다. 
    단방향 방식 HASH 고정된 길이의 값이나 키로 변환한다. 

     

    728x90

    댓글

kxmjhwn@gmail.com