Secure SDLC / 소프트웨어 개발 보안 구축

2023. 2. 23. 18:10정처기 필기/5과목 - 정보시스템 구축 관리

Secure SDLC

* SDLC : 소프트웨어 개발 수명 주기로 개발 팀이 고품질 소프트웨어를 설계하고 구축하는 데 사용하는 비용 효율적이고 시간 효율적인 프로세스이다.

1. Secure SDLC 의 개요

- 보안상 안전한 소프트웨어를 개발하기 위해 SDLC에 보안 강화를 위한 프로세스를 포함한 것

 

- 요구사항 분석

- 설계

- 구현

- 테스트

- 유지보수

# 분설구테유

 

2. 보안 요소   #기무가 인부

- 기밀성

  : 인가된 사용자에게만 접근 허용

  : 전송중 노출되어도 정보를 읽을 수 없음

 

- 무결성

  : 시스템 정보는 인가된 사용자만 수정할 수 있다.

 

- 가용성

  : 인가받은 사용자는 언제라도 사용 가능

 

- 인증

  : 사용자가 합법적인지 확인하는 모든 행위

 

- 부인 방지

  : 증거 제공

 


소프트웨어 개발 보안 구축

# 세입보시 에코캡A

세션 통제 - 잘못된 세션에 의한 정보 노출
- 불충분한 세션 관리
입력 데이터 검증 및 표현 - SQL 삽입, 경로 조작 및 자원 삽입, 크로스사이트 스크립팅(XSS), 신뢰되지 않는 URL 주소로 자동접속 연결, 위험한 형식 파일 업로드
보안 기능 - 잘못된 권한 설정, 취약한 암호화 알고리즘 사용, 하드코드 된 암호화 키 사용
시간 및 상태 - TOCTOU 경쟁조건, 무한반복문, 재귀문
에러처리 - 오류 메시지를 통한 정보 노출, 부적절한 예외처리
코드 오류 - 널 포인터 역참조, 부적절한 자원 헤제
캡슐화 잘못된 세션에 의한 데이터 정보 노출, 제거되지 않고 남은 디버그 코드
API 오용 - 보안에 취약한 API 사용

 

1. 세션 설계시 고려 사항

- 모든 페이지에서 로그아웃이 가능하도록 UI 구성

- 로그아웃 요청 시 할당된 세션이 완전히 제거되도록 한다.

- 세션 타임아웃은 중요도가 높으면 2~5분, 낮으면 15~30분으로 설정

- 아직 세션이 종료되지 않았으면 새 세션이 생성되지 못하도록 설계

- 패스워드 변경 시 활성화된 세션을 삭제한 후 재할당

 

2. 세션 ID의 관리 방법

- 안전한 서버에서 최소 128비트의 길이로 생성

- 예측이 불가능하도록 안전한 난수 알고리즘 적용

- 노출되지 않도록 URL Rewrite 기능을 사용하지 않는 방향으로 설계

- 로그인 시 로그인 전의 세션 ID를 삭제하고 재할당

- 장기간 접속하고 있는 세션 ID는 주기적으로 재할당되도록 설계

 

3. 크로스 사이트 스크립팅(XSS : Cross - Site Scripting)

- 웹페이지에 악의적인 스크립트를 삽입해 방문자들의 세션 정보를 탈취하거나 바이러스를 유포한다.

- HTML 태그의 사용을 제한하거나 스크립트에 삽입되지 않도록 < > 등의 문자를 다른 문자로 치환함으로써 방지

 

4. 부적절한 자원 해제

- 자원을 반환하는 코드를 누락하거나 오류로 할당된 자원을 반환하지 못했을 때 발생하는 보완 약점

- 예외처리에 관계없이 자원이 반환되도록 코딩함으로 방지해야 한다.