5. 정보시스템 구축 관리
5.3 소프트웨어 개발 보안 구축
5.3.1 소프트웨어 개발 보안 구축 능력 단위 정의
5.3.2 SW개발 보안 설계
- SW개발 보안 구축 능력 단위 정의
SW개발 보안 구축이란 정의된 보안 요구사항에 따라 SW의 보안 요구사항을 명세하고 이에 따라SW에 대한 보안을 설계, 구현, 테스트하는 능력이다.
- SW개발 보안 설계
1 Secure SDLC
1.1 Secure SDLC
SW개발과정에서 개발자의 실수, 논리적 오류 등으로 인해 발생될 수 있는 보안 취약점, 보안약점들을 최소하하여 사이버 보안위협에 대응할 수 있는 안전한 SW를 개발하기 위한 일련의 보안활동을 의미한다.
목적은 각 단계별로 요구되는 보안활동을 수행함으로써 안전한 소프트웨어를 만들 수 있도록 한다.
1.2 소프트웨어 개발 보안 생명주기
시큐어 코딩을 위한 개발방법론은 기존의 SW개발 생명주기에서 보안활동을 추가하는 것으로 기존의 SDLC는 폭포수 모델, 프로토 타입, 나선형 모델 등이 존재한다.
2. 소프트웨어 개발 보안 생명주기 방법론 유형
2.1 MS-SDL
MS에서 보안수준이 높은 안전한 소프트웨어를 개발하기 위해 자체수립한 SDL이다
방법론이 적용되기 전 버전보다 50% 이상 취약점 감소한다.
교육부터 대응까지 총 7단계로 구분
2.2 Seven Touchpoint
실무적으로 검증된 개발보안 방법론 중 하나로써 SW 보안의 모범 사례를 SDLC에 통합한 방법론이다.
7개의 보안강화 활동을 정의
2.3 CLASP
소프트웨어 개발 생명주기 초기단계에 보안강화를 목적으로 하는 정형화된 프로세스로써, 활동중심 역할기반의 프로세스로 구성된 집합체이다.
이미 운영중이 시스템에 적용하기 좋음
개념, 역할기반, 활동평가, 활동 구현, 취약성의 5가지 관점에 따라 개발보안 프로세스를 수행할 것을 제안
2.4 CWE
SW 보안약점은 7개의 큰 항목과 47개의 세부 항목으로 구분된다
1. 입력데이터검증 및 표현 : XSS, SQL삽입, 버퍼오버플로우 등
2. 보안기능 : 중요정보 평문저장, 하드코딩된 패스워드
3. 시간 및 상태 : Deadlock자원에 대한 경쟁조건, 세션고착
4. 에러처리 : 처리루틴 누착, 정보 노출
5. 코드품질 : 널 포인트 역참조, 부적절한 자원 해제
6. 캡슐화 : 디버거 코드, 시스템 데이터 정보
7. API악용 : DNS Lookup에 의존한 보안 결정
보안 약점은 SW결함의 한 종류로 보안취약점을 유발하는 원인이다.
보안 취약점은 해커가 시스템 접근 권한 획득 등 직접 이용할 수 있는 SW 상의 결함이다.
3. 입력데이터 검증 및 표현
프로그램 입력 값에 대한 부적절한 검증 등으로 인해 발생할 수 있는 보안약점
1.1 SQL삽입
데이터베이스와 연동된 웹 어플리케이션에서 입력된 데이터의 유효성 검증을 하지 않은 경우 발생
공격자가 입력 폼 및 URL 입력란에 SQL 문을 삽입하여 DB로부터 정보를 열람하거나 조작할 수 있는 약점을 말함
1.2 크로스사이트스크립트
웹페이지에 악의적인 스크립트를 포함시켜 사용자측에서 실행되게 유도하여, 정보유출 등의 공격을 유발할 수 있는 취약점
1.3 크로스사이트 요청 위조(CSRF)
서버로 요청하는 쿼리를 임의로 조작하여 실행하게 하는 공격으로 피해자의 권한을 이용하여 공격도 가능
CSRF XSS 차이점
CSRF는 피해자의 권한을 이용하여 피해자가 조작된 패킷을 전송하여 이 결과로 공격자가 이득을 얻는 형태의 공격
XSS는 악성 스크립트가 실행되어 클라이언트를 공격하는 것이다.
1.4 위험한 형식 파일 업로드
서버측에서 실행될 수 있는 스크립트 파일이 업로드 가능하고, 이파일을 공격자가 웹을 통해 직접 실행시킬 수 있는 경우, 시스템 내부명령어를 실행하거나 외부와 연결하여 시스템을 제어할 수 있는 취약점으로 대표적으로 웹셸을 이용한 업로드 공격이 있다.
1.5 디렉토리 경로 조작
외부의 입력을 통하여 디렉토리 경로 문자열 생성이 필요한 경우, 외부입력값에 대해 경로 조작에 사용될 수 있는 문자를 필터링하지 않으면, 예상 밖의 접근 제한 영역에 대한 경로 문자열 구성이 가능해 시스템 정보누출, 서비스 장애 등을 유발 가능, 즉 , 경로 조작을 통해서 공격자가 허용되지 않은 권한을 획득하여 설정에 관계된 파일을 변경하거나 실행 시 킬 수 있다.
4. 보안기능
인증, 접근제어, 권한 관리 등을 적절하지 않게 구현시 발생할 수 있는 보안약점
4.1 사용자 중요정보 평문 저장
프로그램이 보안과 관련된 민감함 데이터를 평문으로 통신채널을 통해서 송/수신 할 경우, 통신채널 스니핑을 통해 인가되지 않은 사용자에게 민감한 데이터가 노출될 수 있음
4.2 하드코드로 되어있는 패스워드
프로그램 코드 내부에 하드코드로 되어 있는 패스워드를 포함하고, 이를 이용하여 내부 인증에 사용하거나 외부 컴포넌트와 통신을 하는 것은 위험하다 또한 코드 내부에 하드코드로 되어 있는 패스워드가 인증실패를 야기하는 경우, 시스템관리자가 그 실패의 원인을 탐지하는 것도 용이하지 않다.
5. 에러처리
불충분한 에러 처리로 중요정보가 에러정보에 포함되어 발생할 수 있는 보안약점
5.1 오류 메시지를 통한 정보노출
SW가 실행환경, 사용자, 관련데이터에 대한 민감한 정보를 포함하는 오류메시지를 보여줌으로써 공격자의 악성 행위를 도와줄 수 있다.
6. 세션통제
다른 세션간 데이터 공유금지, 세션 노출금지, 재로그인시 세션ID변경, 세션종료 처리 등 세션관리로 발생할 수 있는 보안약점
6.1 불충분한 세션관리
인증시 일정한 규칙이 존재하는 세션ID가 발급되거나 세션 타임아웃을 너무 길게 설정한 경우 공격자에 의해 사용자 권한이 도용될 수 있는 취약점이다.
'자격증 > 정보처리기사' 카테고리의 다른 글
최종 합격!!! (0) | 2021.06.10 |
---|---|
정보처리기사 필기 합격! (0) | 2021.03.10 |
정보처리기사 36일차 (0) | 2021.02.18 |
정보처리기사 35일차 (0) | 2021.02.13 |
정보처리기사 34일차 (0) | 2021.02.12 |