[컴퓨터시스템응용기술사 제140회 4교시 2번]

4교시 2번 · 25점 · 6문제 중 4문제 선택 · 100분

소프트웨어 개발보안에 대하여 다음 사항들을 설명하시오.

  1. 분석·설계 단계(보안설계 기준 4개 유형)
  2. 구현 단계(보안약점 제거 기준 7개 유형)
답안 개요 보기

답안 구조

  1. 소프트웨어 개발보안(Secure SDLC)의 개요
  2. 가) 분석·설계 단계의 보안설계 기준 4개 유형
  3. 나) 구현 단계의 보안약점 제거 기준 7개 유형
  4. 소프트웨어 개발보안 활성화 방안 및 고려사항

용어 정의

소프트웨어 개발보안
소프트웨어 개발 생명주기의 각 단계에서 발생할 수 있는 보안 취약점을 최소화하기 위해 보안 활동을 내재화하는 프로세스
보안약점 (Weakness)
설계 및 구현 단계의 로직 오류나 실수로 인해 공격자가 시스템의 보안을 침해할 수 있게 하는 소프트웨어 내부의 결함
시큐어 코딩 (Secure Coding)
소프트웨어 구현 단계에서 보안약점을 배제하고 안전한 코드를 작성하여 해킹 등 사이버 공격에 대비하는 코딩 기법

핵심 내용

가)

  • 입력데이터 검증 및 표현 설계: 사용자 입력값 검증 누락 방지 및 안전한 데이터 처리 형식 지정
  • 보안기능 설계: 인증, 인가, 권한부여, 암호화 등 핵심 보안 매커니즘의 구조 및 통제 방안 설계
  • 에러처리 설계: 오류 메시지를 통한 중요 정보 유출 차단 및 예외 상황 발생 시의 안전한 처리 대책 설계
  • 시간 및 상태 등 기타 설계: 다중 프로세스/스레드 환경의 교착상태 방지 및 안전한 세션 자원 관리 설계

나)

  • 입력데이터 검증 및 표현: SQL 삽입, 크로스사이트 스크립팅(XSS) 등 외부 입력값의 부적절한 검증 제거
  • 보안기능: 부적절한 인가, 중요 정보 평문 저장, 하드코딩된 비밀번호 등 보안 통제 결함 수정
  • 시간 및 상태: 검사시점과 사용시점(TOCTOU)의 경쟁조건 등 병렬 처리 시 발생하는 동시성 문제 해결
  • 에러처리: 오류 메시지 통한 정보 노출 방지 및 부적절한 예외 처리 로직 보완
  • 코드오류: 널 포인터 역참조, 사용이 끝난 자원 해제 누락 등 개발자 실수에 의한 버그 제거
  • 캡슐화: 민감한 데이터의 은닉 실패 및 중요 자원의 부적절한 접근 제어(퍼블릭 메소드 노출 등) 수정

AI 작성 답안 개요 · 검수 전 · 채점기준과 기준답안은 공개되지 않습니다. 참고용 개요입니다.

출처: 한국산업인력공단, Q-Net 자료실 · 공공누리 제1유형 · 원문(Q-Net)

신고가 접수됐습니다. 감사합니다.

오류 신고