MACE's life blog

소프트웨어 개발보안 가이드(2017년 1월) 본문

개인정보&보안

소프트웨어 개발보안 가이드(2017년 1월)

mace-lifelog 2017. 3. 17. 08:26
반응형


소프트웨어 개발보안 가이드(2017.1월)_경량화.pdf



행자부와 KISA에서 발간한 소프트웨어 개발보안 가이드 최신판(2017.1월) 


 보안은 ROI가 나오지 않는다고 하는 사람들이 많아서 아쉬울 때가 더러있다. 사실 리스크를 고려하면 ROI는 문제가 될게 아닌데... 

 한가지 확실한 것은 이러한 보안 지침은 최소한의 요구조건이지, 이것만 지킨다고 보안이 완벽해진다는 착각은 금물이라는 것이다. 보안은 선택사항이 아닌 필수 사항이라는 것. 아무리 강조해도 지나치지 않는다는 것을 잊지 말아야 한다.  



1장. 개요

제1절 배경

제2절 가이드 목적 및 구성


2장. 소프트웨어 개발보안

제1절 개요

1. 소프트웨어 개발보안 필요성

제2절 소프트웨어 개발보안 체계

제3절 소프트웨어 개발보안 방법론

1. 소프트웨어 개발 생명주기 이해

2. 소프트웨어 개발 방법론 이해

3. 소프트웨어 개발보안 방법론 이해

4. 소프트웨어 개발보안 적용 사례

5. 소프트웨어 개발보안 적용 효과

제4절 프로젝트 참여 직무별 보안활동

1. 역할(Role)별 보안활동


3장. 분석·설계 단계 SW보안강화 활동

제1절 보안항목 식별

1. 정보에 대한 보안항목 식별

2. 기능에 대한 보안항목 식별

3. 구현 단계 기준과의 관계

제2절 기능설계시 보안요구항목 적용 방법

제3절 보안요구사항 정의 및 설계시 고려사항

1. 입력데이터 검증 및 표현

2. 보안기능

3. 에러처리

4. 세션통제


4장. 구현 단계 시큐어코딩 가이드

제1절 입력데이터 검증 및 표현

1. SQL 삽입

2. 경로 조작 및 자원 삽입 

3. 크로스사이트 스크립트 

4. 운영체제 명령어 삽입

5. 위험한 형식 파일 업로드

6. 신뢰되지 않는 URL 주소로 자동접속 연결

7. XQuery 삽입 

8. XPath 삽입

9. LDAP 삽입 

10. 크로스사이트 요청위조

11. HTTP 응답분할 

12. 정수형 오버플로우

13. 보안기능 결정에 사용되는 부적절한 입력값

14. 메모리 버퍼 오버플로우

15. 포맷 스트링 삽입

제2절 보안기능

1. 적절한 인증 없는 중요기능 허용

2. 부적절한 인가 

3. 중요한 자원에 대한 잘못된 권한 설정

4. 취약한 암호화 알고리즘 사용 

5. 중요정보 평문저장 

6. 중요정보 평문전송 

7. 하드코드된 비밀번호

8. 충분하지 않은 키 길이 사용

9. 적절하지 않은 난수값 사용 

10. 하드코드된 암호화 키 

11. 취약한 비밀번호 허용 

12. 사용자 하드디스크에 저장되는 쿠키를 통한 정보노출 

13. 주석문 안에 포함된 시스템 주요정보 

14. 솔트 없이 일방향 해시함수 사용 

15. 무결성 검사 없는 코드 다운로드

16. 반복된 인증시도 제한 기능 부재

제3절 시간 및 상태

1. 경쟁조건: 검사 시점과 사용 시점(TOCTOU)

2. 종료되지 않는 반복문 또는 재귀함수

제4절 에러처리

1. 오류 메시지를 통한 정보노출

2. 오류 상황 대응 부재

3. 부적절한 예외 처리

제5절 코드오류

1. Null Pointer 역참조

2. 부적절한 자원 해제

3. 해제된 자원 사용

4. 초기화되지 않은 변수 사용

제6절 캡슐화

1. 잘못된 세션에 의한 데이터 정보노출

2. 제거되지 않고 남은 디버그 코드

3. 시스템 데이터 정보노출

4. Public 메서드로부터 반환된 Private 배열

5. Private 배열에 Public 데이터 할당

제7절 API 오용

1. DNS lookup에 의존한 보안결정

2. 취약한 API 사용


부록

제1절 설계 단계 보안요구항목

제2절 구현 단계 SW보안약점항목

제3절 설계 단계 보안요구항목별 적용 계획서

제4절 보안요구항목 설계 산출물 적용 예

제5절 용어정리


반응형
Comments