4교시 2번 · 25점 · 6문제 중 4문제 선택 · 100분
소프트웨어 개발보안에 대하여 다음 사항들을 설명하시오.
- 분석·설계 단계(보안설계 기준 4개 유형)
- 구현 단계(보안약점 제거 기준 7개 유형)
답안 개요 보기
답안 구조
- 소프트웨어 개발보안(Secure SDLC)의 개요
- 가) 분석·설계 단계의 보안설계 기준 4개 유형
- 나) 구현 단계의 보안약점 제거 기준 7개 유형
- 소프트웨어 개발보안 활성화 방안 및 고려사항
용어 정의
- 소프트웨어 개발보안
- 소프트웨어 개발 생명주기의 각 단계에서 발생할 수 있는 보안 취약점을 최소화하기 위해 보안 활동을 내재화하는 프로세스
- 보안약점 (Weakness)
- 설계 및 구현 단계의 로직 오류나 실수로 인해 공격자가 시스템의 보안을 침해할 수 있게 하는 소프트웨어 내부의 결함
- 시큐어 코딩 (Secure Coding)
- 소프트웨어 구현 단계에서 보안약점을 배제하고 안전한 코드를 작성하여 해킹 등 사이버 공격에 대비하는 코딩 기법
핵심 내용
가)
- 입력데이터 검증 및 표현 설계: 사용자 입력값 검증 누락 방지 및 안전한 데이터 처리 형식 지정
- 보안기능 설계: 인증, 인가, 권한부여, 암호화 등 핵심 보안 매커니즘의 구조 및 통제 방안 설계
- 에러처리 설계: 오류 메시지를 통한 중요 정보 유출 차단 및 예외 상황 발생 시의 안전한 처리 대책 설계
- 시간 및 상태 등 기타 설계: 다중 프로세스/스레드 환경의 교착상태 방지 및 안전한 세션 자원 관리 설계
나)
- 입력데이터 검증 및 표현: SQL 삽입, 크로스사이트 스크립팅(XSS) 등 외부 입력값의 부적절한 검증 제거
- 보안기능: 부적절한 인가, 중요 정보 평문 저장, 하드코딩된 비밀번호 등 보안 통제 결함 수정
- 시간 및 상태: 검사시점과 사용시점(TOCTOU)의 경쟁조건 등 병렬 처리 시 발생하는 동시성 문제 해결
- 에러처리: 오류 메시지 통한 정보 노출 방지 및 부적절한 예외 처리 로직 보완
- 코드오류: 널 포인터 역참조, 사용이 끝난 자원 해제 누락 등 개발자 실수에 의한 버그 제거
- 캡슐화: 민감한 데이터의 은닉 실패 및 중요 자원의 부적절한 접근 제어(퍼블릭 메소드 노출 등) 수정
AI 작성 답안 개요 · 검수 전 · 채점기준과 기준답안은 공개되지 않습니다. 참고용 개요입니다.
출처: 한국산업인력공단, Q-Net 자료실 · 공공누리 제1유형 · 원문(Q-Net)