정보 보안 거버넌스 7. Applications & Systems Development(어플리케이션&시스템 개발)

2020. 2. 26. 14:05Security/물리보안&보안 요구 분석&거버넌스

목차

1. 소프트웨어 개발 프로세스

1-1. S/W 개발 프로세스

1-2. 프로젝트 계획 수립

1-3. 폭포수 모델

1-4. 나선형 모델

1-5. 테스트 이슈

1-6. 통제 이슈

2. 다양한 시스템

2-1. 데이터 베이스 시스템

2-2. 그외 다양한 시스템

 

1-1. S/W 개발 프로세스

SDLC(Software Development Life Cycle, 소프트웨어 개발 생명 주기)

- 비즈니스의 효과적인 기능 수행을 위해 필수적인 응용 시스템을 개발, 구입, 유지 보수, 폐기하는 과정

- IT 자원을 통제, 관리하는 프로세스도 SDLC의 일부분이다.

 

조직 중심의 컴퓨팅
- SDLC 접근방법을 이용
- 알 필요를 기반으로 사용자와 부서의 정보를 수집, 추출, 저장, 보관하여 공유 하도록 하는 것

- 프로그램이 완성된 후 프로그램을 확인 가능
- MIS(경영정보시스템), ERP, CRM(Customer Relationship Management, 고객 관리 시스템) 등등

 

최종 사용자 중심 컴퓨팅
- 성과의 최적화를 위해 데이터를 제공

- 대규모 프로젝트에는 잘 사용되지 않고 점진적으로 개발시에 사용

대안적 개발 접근 방법이 이용

- 상향식 개발

- 프로그램 완성 전 화면 디자인을 먼저 완성

- DSS(Decision Support System, 의사 결정 지원 시스템), GIS(지리정보시스템) 등등

 

1-2. 프로젝트 계획 수립

- 프로젝트가 성공하도록 지속적인 자원을 제공하기 위해서는 전체 과정에 대한 계획을 작성, 감시

- 이를 위해서는 여러 가지 기법이 사용.

 

S/W 규모 산정
- 원시코드 라인 수(SLOC : Source Lines of Code)
  -> Basic이나 Cobol 등의 개발 도구일 경우 매우 유용(장점)
  -> 정량적 측정이 가능(장점)
  -> 최종 사용자에게 무의미(단점)
  -> 새로운 개발 도구(C++, VB, java 등등)에는 무의미(단점)

 

- 기능 점수 분석(FPA : Function Point Ana.)
  -> 사용자가 눈으로 보고 상호 작용하는 입/출력 파일, 인터페이스, 질의 등을 갯수와 복잡도에 근거하여 정보시스템의 크기를 측정.
  -> 비즈니스 응용(업무용) S/W에는 적합하지만 OS, Network 관련 S/W에는 적합하지 않음.

  -> 최근에 많이 사용

 

핵심 경로 방법론(CPM)
- 각 task간 전후 활동에 따라 만들어진 그래프에서 시간의 합이 가장 긴 경로
- 프로젝트 완료에 필요한 최단 시간
- CPM 패키지는 자원 활용을 분석하여 자원 균일화를 지원.

- PERT와 같이 쓰임 

 

PERT(Program Evaluation Review Technique, 프로그램 평가 검토 기법)

- task

  -> 방향성이 있는 업무

- task(업무) 완료에 비관적, 낙관적, 일반적(가능성 높은) 세가지 시나리오를 이용해 네트워크 기반 도표를 작성

  -> 프로젝트의 성능에는 비관적 시나리오가 가장 중요

- 프로젝트 일정의 추정치를 개발하는데 적합.

- CPM과 같이 쓰임
- 시간 견적 = (낙관치+비관치+4*일반적)/6

 

간트 차트
- 헨리 간트가 1919년 창안한 일정 계획 수립을 위한 차트
- 각 활동의 시작 종료 및 동시 수행 사항을 보여준다.
- 프로젝트의 진척 정도나 계획과의 일치성을 확인하는데 이용
- 특정 단계의 완료나 프로젝트상의 중요한 달성을 추적하는데 사용된다.

 

타임 박스
- 프로젝트 계획 및 일정을 작성할 때 사용하는 경영 개념.

- 타임박스 시간을 정해놓고 프로덕트를 작업.

- 타임박스 접근방법을 사용할 경우, 시간은 고정 요인이며 타임박스 내에 맞추기 위해 비용과 범위를 조정.

- 비용의 초과나 일정의 지연을 방지.

  -> 시간이 지연될 경우 비용의 초과가 가장 크게 발생

- 품질 보증 프로세스는 필요.

 

1-3. 폭포수 모델

폭포수기법
- SDLC(Software Development Life Cycle)에 기반한 소프트웨어 개발 기법

- 워터폴 모델ꞏ폭포수 모형ꞏ선형순차 모형ꞏ단계적 생명주기라고도 지칭.

- 거슬러 올라갈 수 없는 폭포수와 같이 소프트웨어 개발도 각단계를 확실히 매듭짓고 다음 단계로 넘어간다는 의미

- 전통적인 시스템 생명 주기 모델로 소프트웨어를 개발할 때 가장 널리 사용.

 

단점
- 예상치 못한 사건의 발생시 처리가 어려움
- 고객(최종 사용자)로부터 명확한 요구사항 입수가 어려움.
- 종료 시점까지 사용자가 시스템을 확인 불가.
- 비즈니스가 변해도 시스템을 인도하기 전에 요구사항을 변경 불가.

 

SDLC 단계
타당성 분석 -> 계획과 요구 사항 정의 -> 설계(제품설계, 상세설계) 또는 선택(구매) -> 개발(코딩),시스템 구성 및 통합 -> 구현 -> 사후 관리(운영 유지보수)

 

1-4. 나선형 모델

- 소프트웨어 개발의 특성상 요구분석이 처음부터 완벽하기는 힘들기때문에 제품의 성숙도를 높여가는 개발 방법을 갖고 있는 것 
- 나선형 개발 방법은 패키지 제품 등을 개발할 경우 유용한 방법이 될 수 있음.

- 일정에 맞춰 제품의 사양을 조절하고, 현재 사양의 개발에 집중할 수 있음.

- 기능 간의 우선순위를 정할 수 있는 기회가 있기 때문에 핵심 기능을 명확히 할 수 있고, 부가적인 기능을 다음 버전으로 미룰 수 있는 지표를 마련 가능

 

프로토타이핑 개발 방법론
- 소프트웨어의 기본적인 기능을 알아보기 위해서 원형을 만들고 이후의 소프트웨어 완성품을 예측

- 파일럿 프로젝트라고 부르기도 한다.

- 너무 많은 비용과 시간이 들지 않는다면 프로젝트 시작을 위한 좋은 기반을 제공.

- 중간 중간 확인을 받기때문에 최종 사용자가 책임

- 나선형 개발 방법론에 각 사이클을 구성하는 방법론이 될 수 있다.
  -> 민첩 개발 방법론, 속성 개발 방법론 등등

 

1-5. 테스트 이슈

- 테스트의 목적은 시스템 무결성 확보
  -> 시스템이 올바르게 동작 한다는 보증을 위해 주기적인 테스트를 실시하는것

  -> 개발하는 과정에서 바로바로 테스트를 진행
- 응용 시스템이 설계된 바와 같이 기능하는지 검증하는 과정

 

종류
- 단위 테스트

  -> 개별 프로그램(모듈)별 test, 코딩과 관련된 검증
- 통합 테스트

  -> 둘 이상의 컴포넌트의 연결 상태를 평가

- 시스템 테스트

  -> 복구, 보안, 볼륨, 성능, 스트레스와 같이 구성된 시스템이 정상 작동하는지 평가
- 병행 테스트

  -> 개발 시스템이 사용자 요구에 부합하는지 평가.

  -> 사용자는 시스템과 연결된 모든 사람을 의미

  -> 같은 input값을 실제 사이트와 테스트 사이트에서 동시에 실행해서 output값이 같은지 확인

- 최종 인수 테스트
  -> 품질보증 test(QAT): 기술적인 측면
  -> 사용자 승인(인수) test(UAT) : 기능적인 측면, test 라이브러리에서 수행
  -> 최종 인수 테스트가 끝난 이후 실제 사용자에게 이관 
- 화이트박스 테스트

  -> 원시 코드의 논리적 구조가 정당한지 확인(준거성 테스트)

  -> 예방 통제

- 블랙박스 테스트 

  -> 기능이 정상적 작동 확인(기능테스트)

  -> 출력값의 정확성(실증 테스트)

  -> 처리 통제 

 

1-6. 통제 이슈

유지 보수 단계에서의 통제 이슈
- 요구 통제
  -> 제품 변경에 대한 사용자의 요구사항을 관리
- 변경 통제
  -> 문제 정의와 분석
  -> 변경사항 정리와 그에 따른 테스트 개발
  -> 품질 통제
  -> 재인증(recertification)과 인가(accreditation)
- 릴리즈 통제
  -> S/W 개발 버전 통제

 

2. 다양한 시스템

2-1. 데이터 베이스 시스템

DB의 보안 이슈
- DB에서 보안은 Need-to-know에 기초하여 사용자의 활동을 제한하는 것.
  -> View를 통해서 구현.
- Granularity
  -> 보안 통제를 세분화

- Data Warehouse 
  -> 기존 데이터를 기반으로 새로운 관계를 찾기 위한 주제 중심으로 분류된 데이터 저장소 
  -> 정보의 추출, 재구성, 재정의되어 접근과 분석이 이루어진다. 
  -> 상관 관계를 추출하는 것을 data mining이라고 한다.(IDS에 이용)

 

추가적인 보안 이슈
- 집성(aggregation)

  -> 낮은 레벨의 정보를 조합 높은 레벨의 정보를 획득하는 것
  -> 추론(inference) : 접근 불가능한 레벨의 정보를 추론하는 사용자의 능력(Polyinstantiation(Multilevel-Secure Relational Data Model)

 

2-2. 그 외에 다양한 시스템

객체 지향 시스템
-  객체 지향 시스템은 캡슐화되고 식별성(identity)을 갖는 객체의 그룹.

 

분산 환경
- DCE(Distributed Computing Environment)
  -> OSF에서 개발된 산업표준 S/W 기술
- DCOM(Distributed Component Object Model)
  -> MS의 프로그램 인터페이스
- 전문가 시스템
  -> 지식베이스(Knowledge base) + 추론엔진
  -> IDS에 활용
- 신경망 시스템
  -> 자가 학습을 통한 지식 축척과 활용
  -> 문자, 음성인식 등에 활용