본문 바로가기
Certificate/정보처리기사

[정보처리기사] 2020년 3회차 (5)정보시스템 구축관리

by HJ0216 2023. 7. 18.

정보처리기사

정보보안 3요소

- 기밀성: 인가된 사용자만 접근
- 무결성: 인가된 사용자만 인가된 방법으로 자원 수정
- 가용성: 인가된 사용자는 언제든지 접근 가능

 

암호화

  • 단방향(Hash): MD ▶ SHA, HAVAL
  • 양방향
    • 대칭키
      • 빠른 속도
      • 많은 양
      • 키 개수: n*(n-1)/2
      • 종류
        • Stream: RC4
        • Block: DES ▶ AES, IDEA, SEED, ARIA
    • 비대칭키(공개키)
      • 느린 속도
      • 적은 양 ◀ 내용보다는 키를 암호화하는 방식으로 사용
      • 키 개수: 2*n
      • 종류
        • 소인수분해: RSA, Robin
        • 이산대수: DH, DSA, EIGmal
        • 타원곡선: ECC, ECDSA
  • 페이스텔: 블록 암호의 일종으로, 암호화 방식이 특정 계산 함수의 반복으로 이루어지는 것

 

SW 비용 산정 기법

- 하향식
    - 프로젝트의 전체 비용을 산정한 후 각 작업별로 비용을 세분화
    - 종류: 전문가 감정 기법, 델파이 기법
- 상향식
    - 세부적인 작업 단위별로 비용을 산정한 후 집계하여 전체 비용을 산정
    - 종류
        - LOC(원시 코드 라인 수, source Line of Code)
            -각 기능의 원시 코드 라인 수의 비관치(1), 낙관치(1), 기대치(4)를 측정하여 예측치를 구하고 이를 이용하여 비용을 산정
- 수학적 산정
    - 종류
        - COCOMO: LOC(원시 코드 라인 수)에 의한 비용 산정 기법
            - 종류: 조직형-Organic(5만 라인 이하), 반 분리형-Semi-Detached(30만 라인 이하), 내장형-Embedded(30만 라인 이상)
        - Putnam: 소프트웨어 생명 주기의 전 과정 동안에 사용될 노력의 분포를 예상
            - 시간에 따른 함수로 표현되는 Rayleigh-Norden 곡선의 노력 분포도를 기초로 함
            - SLIM: Rayleigh-Nordan 곡선과 Putnam 예측 모델을 기초로 하여 개발된 자동화 추정 도구
        - 기능점수(FP): 소프트웨어의 기능을 증대시키는 요인별로 기능 점수(FP)를 구한 후, 비용을 산정

 

Dos(Denial of Service)

- 정의: 대량의 데이터를 보내어 타깃 시스템이 정상적인 서비스를 하지 못하도록 마비시키는 공격(가용성 저하)
- 종류
    - Ping Of Death: 정상 크기보다 큰 ICMP 패킷을 작은 조각(Fragment)으로 쪼개어 공격 대상이 조각화된 패킷을 처리하게 만드는 공격
    - Smurf: IP와 ICMP 특성을 이용하여 문제 발생 시, 해당 사용자에게 보고하지 못하도록 공격
    - Land Attack: Packet의 보내는 사람과 받는 사람을 동일하게 설정
    - Teardrop Attack: Fragment를 재조립 시 정확한 조립을 위해 오프셋이라는 값을 더하게 되는데 이 오프셋 값을 고의적으로 수정하여 시스템의 기능을 마비시켜 버리는 방법

 

DDoS (Distributed Denial of Service)

- 정의: 서비스 중단을 목적으로 표적 서버, 서비스 또는 네트워크에 인터넷 트래픽을 대량으로 보내려고 시도하는 악의적인 사이버 공격의 형태(가용성 저하)
- 종류
    - SYN Flooding: 접속을 요청하는 SYN Packet을 대량으로 전송해 네트워크를 마비 시킴
    - UDP Flooding: 많은 수의 UDP packet을 전송하여 정상적인 서비스가 불가능하도록 하는 공격
    - Ping Flooding: 많은 ICMP Echo를 보내 이에 대한 응답을 하기 위해 자원을 모두 사용해버려 시스템이 정상적으로 동작하지 못하도록 하는 공격
- 도구
    - Trinoo : UDP flood 공격을 유발하는 데 사용되는 도구
    - TFN(Tribe Flood Network) : Trinoo와 거의 유사한 분산 도구로 UDP flood 공격 이외의 다양한 공격도 수행 가능
    - Stacheldraht: Linux 및 Solaris 시스템용 멀웨어 도구

 

Routing Protocol

routing_protocol

  • 정적: 관리자가 직접 라우터에 경로 설정
  • 동적: 라우터가 직접 경로 설정
  1. EGP: 외부 게이트웨이 프로토콜
    • BGP: Board Gateway Protocol
  2. IGP: 내부 게이트웨이 프로토콜
    • Distance Vector
      • RIP: Routing Information Protocol
        • 인접한 라우터간 일정 시간마다 상태 공유
        • 홉 수(=거치게되는 라우터 수) 제한 O
    • Link State
      • OSPF: Open Shortest Path First
        • 변경된 데이터가 있을 때마다 상태 공유
        • 가장 많이 사용되는 내부 라우팅 프로토콜
        • 홉 수 제한 X

 

요구사항 분석 기법

구조적 분석

: 하향식 접근 방식(폭포수 모형)

  • DFD: 프로세스와 프로세스 간에 존재하는 상호작용 표현DFD
  • DD: 데이터 흐름도(Data Flow Diagram)에 기술된 자료들에 대해 정의
  • - = 정의 - + 연결 - () 생략 - {} 반복 - [] 선택 - ** 주석
  • Mini spec.: 자료 흐름도를 보완 설명
  • ERD: 시스템에서 처리되는 개체와 속성 그리고 관계를 표현하여 개체를 모델화하는 도구
  • STD(State Transition Diagram): 시스템의 상태와 변화를 모델링

객체지향적 분석

: 상향식 접근 방식

  • Rumbaugh: 가장 일반적으로 사용되는 방법으로 분석 활동을 객체, 동적, 기능 모델로 나누어 순서대로 수행
    • 객체 모델링(Object Modeling): 클래스 다이어그램을 이용하여 시스템에서 요구되는 객체을 표현한 것
    • 동적 모델링(Dynamic Modeling): 상태 다이어그램을 이용하여 시간의 흐름에 따른 객체들 사이의 동적인 행위를 표현한 것
    • 기능 모델링(Functional Modeling): 자료 흐름도(DFD)를 이용하여 다수의 프로세스들 간의 자료 흐름을 중심으로 처리 과정을 표현한 것
  • Booch: 미시적(Micro) 개발 프로세스와 거시적(Macro) 개발 프로세스를 모두 사용
  • Jacobson: UseCase를 강조하여 사용
  • Coad와 Yourdon: E-R다이어그램을 사용
  • Wirfs-Brock: 분석과 설계간의 구분이 없음

 

소프트웨어 생명 주기

  • 폭포수 모형 (Waterfall Model)
    • 이전 단계로 돌아갈 수 없다는 전제
    • 각 단계가 끝난 후에는 다음 단계를 수행하기 위한 결과물이 명확하게 산출되어야 함
  • 나선형 모델
    • 계획 및 정의 → 위험 분석 → 공학적 개발 → 고객 평가
  • 프로토타입 모형(Prototype Model, 원형 모델)
    • 실제 개발될 소프트웨어에 대한 견본품을 만들어 최종 결과물을 예측하는 모형
  • RAD 기법 모델
    • 짧은 개발 기간동안 개발하기위한 순차적 프로세스 모델
  • V 모델
    • 단위 테스트 → 통합 테스트 → 시스템 테스트 → 인수 테스트
    • 작업 결과의 검증(테스트)에 초점
  • 4세대 기법
    • 자동화 도구들을 이용하여 요구사항 명세서로부터 실행코드를 자동으로 생성할 수 있게 해주는 방법

 

소프트웨어 3R

  1. 역공학(Reverse-Engineering)
    : 기존 개발된 시스템의 코드나 데이터로부터 설계 명세서나 요구 분석서 등을 도출하는 작업
  2. 재공학(Re-Engineering)
    : 소프트웨어의 위기를 유지 보수의 생산성으로 해결하려는 방법
    • Migration: 기존 SW 시스템을 새로운 환경에서 사용할 수 있도록 변환하는 작업
  3. 재사용(Re-Use)
    • 합성 중심: 블록(모듈)을 만들어서 끼워 맞추는 방법
    • 생성 중심: 추상화 형태로 써진 명세를 구체화하여 프로그램을 만드는 방법

 

ISO/IEC 9126

  • 소프트웨어 품질 특성과 척도에 관한 표준 지침
  • 기능성, 신뢰성, 사용성, 효율성, 유지보수성, 이식성
  • cf. 소프트웨어 품질특성과 척도 + 테스트에 관한 표준 지침: ISO/IEC 12119

 

소프트웨어 프로세스에 대한 개선 및 능력 측정 기준

  • CMMi(5)
    • 레벨 1, Initial: 소프트웨어 개발 프로세스는 거의 없는 상태
    • 레벨 2, Managed: 기본적인 프로세스 구축에 의해 프로젝트가 관리되고 있는 조직
    • 레벨 3, Defined: 세부 표준 프로세스가 있어 프로젝트가 통제되는 조직
    • 레벨 4, Quantitatively Managed: 소프트웨어 프로세스와 품질에 대한 정량적인 측정이 가능
    • 레벨 5, Optimizing: 조직적으로 최적화된 프로세스를 적용하여 다시 피드백을 받아 개선하는 상위 단계
  • SPICE(6)
    • 레벨 0, Incomplete: 특정한 프로세스의 작업이 목표 달성에 실패하는 경우가 많음
    • 레벨 1, Performed: 프로세스 작업 목표는 일정 수준 달성하나, 철저한 계획이 되어있지 않을 수 있음
    • 레벨 2, Managed: 프로세스가 정해진 절차에 따라 이루어져 산출물을 내며 모든 작업이 계획되고 추적
    • 레벨 3, Established: 정의된 프로세스가 표준화되어 있고 문서화되어 있음
    • 레벨 4, Predictable: 프로세스 능력을 정량적으로 이해할 수 있고 수행을 예측하고 정량적으로 관리할 수 있음
    • 레벨 5, Optimizing, 프로세스가 최적화되어 있어 현재 프로젝트만이 아니라 미래에 수행될 프로세스에 대하여도 목표를 잘 만족시킬 수 있음

 

Secure SDLC(Software Development Life Cycle)

: 안전한 소프트웨어를 개발하기 위해 SDLC 상에서 보안을 강화한 개발 프로세스

  • 종류
    • CLASP: SDLC 초기단계에 보안강화를 목적으로 하는 정형화된 프로세스
    • MSDL: 마이크로소프트에서 개발한 소프트웨어 개발 보안 방법론
    • Seven Touchpoints: 소프트웨어 보안의 모범 사례를 소프트웨어 개발 라이프사이클에 통합

 

MashUp: 웹에서 제공하는 정보 및 서비스를 이용하여 새로운 SW나 서비스, DB 등을 만드는 기술
Data Mining: 대량의 데이터를 분석하여 데이터 속에 내재되어 있는 변수 사이의 상호관계를 규명하여 일정한 패턴을 찾아내는 기법
Mesh Network: 대규모 디바이스의 네트워크 생성에 최적화되어 특수 목적을 위한 새로운 방식의 네트워크 기술
임계경로: 최소 소요기간(최대 기간 계산)

 

 

 

참고 자료

 

흥달쌤

흥달쌤과 함께하는 IT 채널입니다. 정보처리기사 자격증 관련된 강의 및 실무 노하우, 프로그래밍 언어(JAVA, C언어, Python) 특강 등이 진행됩니다. 앞으로 진행 예정인 동영상은 IT 관련된 이야기

www.youtube.com

정보처리기사 실기 준비 (by 수제비)

소프트웨어 재사용(Reuse)과 재공학(Reengineering)