728x90
반응형
SMALL

예전에는 구현단계 즉 최종 개발완료된 산출물에 대해서 시큐어코딩의 적용여부를 검사했지만
지금은 분석/설계단계부터 개발보안 가이드를 기준으로 시큐어코딩의 적용여부를 체크하도록
되어 있다.
SW보안약점진단원 준비할려면 열심히 외워야 하는 부분이 더 늘어난 셈이다. ㅠㅠ
이번장에서는 소프트웨어 개발보안 가이드 중 '분석/설계' 단계에서의 진단항목에 대해서
알아보고자 한다. 

분석/설계 단계에서의 개발보안 항목은 크게 4가지로 분류를 한다.

SR1. 입력데이터 검증 및 표현 사용자가 입력하는 값에 대한 유효성체크를 주로 다룬다. 
SR2. 보안기능 중요정보에 대한 인증,전송,접근통제,저장 등을 주로 체크한다.
SR3. 에러처리 에러메시지에 대한 과도한 정보노출 등에 대해서 다룬다.
SR4. 세션통제 세션에 대한 해킹 방지를 위한 설계가 되어 있는지 확인한다.



각 세션별로 점검항목이 무엇이 있는지 간략하게 설명하면 다음과 같다

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

번호 항목명 설명 비고
SR1-1 DBMS 조회 및 결과 검증 DBMS 조회를 위한 질의문(SQL) 생성시 사용되는 입력값
과 조회결과에 대한 검증방법 (예, 필터링) 설계 및 유효
하지 않은 값에 대한 처리방법설계
입.출력값
검증
SR1-2 XML 조회 및 결과 검증 XML조회를 위한 질의문 (XPath, XQuery) 생성 시 사용
되는 입력값과 조회결과값에 대한 검증방법 설계 및
유효하지 않은 값에 대한 처리 방법 설계
SR1-3 디렉터리 서비스 조회 및
결과 검증
디렉터리 서비스 조회 (LDAP) 시 사용되는 입력값과
조회결과에 대한 검증방법 설계 및  유효하지 않은 값에
대한 처리 방법
설계
SR1-4 시스템 자원 접근 및
명령어 수행 입력값 검증
시스템 자원 접근 및 명령어 수행을 위해 사용되는 입력값
에 대한 유효성 검증방법과  유효하지 않은 값에 대한
처리 방법
설계
SR1-5 웹서비스 요청결과 및
검증
웹서비스(게시판 등) 요청 (스크립트 게시) 과 응답결과
(스크립트 포함 웹페이지 등) 에 대한 검증방법과 적절하지
않은 데이터에 대한 처리방법 설계
SR1-6 웹기반 중요기능
수행요청 유효성 검증
사용자 권한 확인(인증 등) 이 필요한 중요기능 (결제)
에 대한 웹서비스 요청에 대한 유효성 검증방법과  유효
하지 않은 값에 대한 처리 방법
설계
SR1-7 HTTP 프로토콜 유효성
검증
비정상적인 HTTP 헤더, 자동연결 URL링크 등 사용자가
원하지 않는 결과를 생성할 수 있는 HTTP헤더 및 응답
결과에 대한 유효성 검증방법과  유효하지 않은 값에
대한 처리 방법
설계
SR1-8 허용된 범위내 메모리 
접근
허용된 범위의 메모리 버퍼에만 접근하여 저장 또는
읽기가 수행되어 버퍼오버플로우가 발생하지 않도록
처리방법 설계
SR1-9 보안기능 동작에 사용되는
입력값 검증
보안기능 (인증,인가,권한부여 등) 등 프로그램 동작을
위해 사용되는 입력값과 함수 (또는 메소드) 의 외부입력값
및 수행결과에 대한 처리 방법 설계
SR1-10 업로드.다운로드 파일
검증
업로드.다운로드 파일의 무결성,실행권한 등에 관한 유효
성 검사 방법을 설계하고, 검사 실패시 대응방안 설계
파일관리



SR2. 보안기능

번호 항목 설명  비고
SR2-1 인증 대상 및 방식 중요정보.기능과 인증방식을 정의
정의된 중요정보 접근 및 중요기능 수행허용을 위해
인증기능이 우회되지 않고 수행될 수 있도록 설계
인증관리
SR2-2 인증 수행 제한 인증 반복시도 제한 및 인증실패 등에 대한 인증제한
기능 설계
SR2-3 비밀번호 관리 안전한 비밀번호 조합규칙 
  - 비밀번호 길이
  - 허용문자 조합 등
을 설정하고 주기적으로 변경하도록 설계 
(하드코딩 금지)
SR2-4 중요자원 접근통제 중요자원 (프로그램 설정, 민감한 사용자 데이터 등) 을 
정의하고 정의된 중요자원에 대한 접근통제하는 신뢰할수
있는 방법 및 접근통제 실패시 대응방안 설계
권한관리
SR2-5 암호키 관리 암호키 생성,분배,접근,파기 등 안전하게 암호키 생명주기
를 관리할 수 있는 방법 설계
암호화
SR2-6 암호연산 국제표준 또는 검증필 프로토콜로 등재된 안전한 암호
알고리즘을 선정하여 충분한 암호키 길이, 솔트, 충분한
난수값을 기반으로 암호연산 수행방법 설계
SR2-7 중요정보 저장 중요정보 (비밀번호, 개인정보 등) 저장시 안전한 저장
및 관리방법 설계
중요정보
처리
SR2-8 중요정보 전송 중요정보 (비밀번호, 개인정보 등) 전송시 안전한 전송
방법 설계



SR3. 에러처리

번호 항목명 설명 비고
SR3-1 외처리 오류메시지에 중요정보 (개인정보, 시스템정보, 민감정보)
가 포함되어 출력되거나, 에러 및 오류가 부적절하게 처리
되어 의도치 않은 상황이 발생하는 것을 막기 위한
안전한 방안 설계
 


SR4. 세션통제

번호 항목명 설명 비고
SR4-1 세션통제 - 다른 세션간 데이터 공유금지
- 세션ID 노출금지
- (재)로그인시 세션ID 변경
- 세션종료 (비활성화, 유효기간 등) 처리
등 세션을 안전하게 관리할 수 있는 방안 설계
 


위에서 설명한 "분석/설계" 단계에서의 개발보안 항목은 결국 "구현"단계에서의 개발보안  항목과
연결이 되어 질수 밖에 없다.
구현단계에 대해서는 다음 편에서 소개를 하고 여기서는 간단하게 두 단계간의 매핑구조만 설명한다.

구분 분석/설계 항목 구현단계 보안약점
입력 데이터
검증 및 표현
DBMS 조회 및 결과 검증 SQL 삽입
XML 조회 및 결과 검증 XQuery 삽입
XPath 삽입
디렉터리 서비스 조회 및
결과 검증
LDAP 삽입
시스템 자원 접근 및
명령어 수행 입력값 검증
경로조작 및 자원삽입
운영체제 명령어 삽입
웹서비스 요청결과 및
검증
크로스사이트 스크립트 (XSS)
웹기반 중요기능
수행요청 유효성 검증
크로스사이트 요청위조
HTTP 프로토콜 유효성
검증
신뢰되지 않은 URL 주소로 자동접속 연결
HTTP 응답분할
허용된 범위내 메모리 
접근
포맷스트링삽입, 메모리 버퍼 오버플로우
보안기능 동작에 사용되는
입력값 검증
보안기능 결정에 사용되는 부적절한 입력값
정수형 오버플로우
Null Pointer 역참조
업로드.다운로드 파일
검증
위험한 형식 파일 업로드
무결성 검사 없는 코드 다운로드
보안기능 인증 대상 및 방식 적절한 인증 없는 중요기능 허용
DNS Lookup 에 의존한 보안 결정
인증 수행 제한 반복된 인증시도 제한 기능 부재
비밀번호 관리 하드코드된 비밀번호
취약한 비밀번호 허용
중요자원 접근통제 부적절한 인가
중요한 자원에 대한 잘못된 권한 설정
암호키 관리 하드코드 된 암호화
키 주석문 안에 포함된 시스템 주요 정보
암호연산 취약한 암호 알고리즘 사용
충분하지 않은 키 길이 사용
적절하지 않은 난수값 사용
솔트 없이 일방향 해시함수 사용
중요정보 저장 중요정보 평문저장
하용자 하드디스크에 저장되는 쿠키를 통한 정보노출
중요정보 전송 중요정보 평문전송
에러처리 예외처리  오류메시지를 통한 정보노출
시스템 데이터 정보노출
세션통제 세션통제  잘못된 세션에 의한 데이터 정보 노출




[출처 : 전자정부 SW개발.운영자를 위한 소프트웨어 개발보안 가이드]
[출처 : 2018년도 SW보안약번점진단원 교육 자료]

728x90
반응형
LIST

+ Recent posts