[정보처리기사 필기] 5과목 : 정보시스템 구축관리
1. 소프트 생명 주기 모형
2. 비용산정 기법
3. CMM 모델
4. 소프트웨어 개발 프레임 워크
5. RIP vs OSPF
6. 암호화 알고리즘
7. 정보보안 3요소
8. 공격 기법
9. 접근 통제 정책 (접근제어 방법)
10. 침입 탐지 시스템
11. 코드오류 (1과목 관련)
plus. CBD, 신기술 용어
1. 소프트웨어 생명 주기 모형
소프트웨어 생명 주기 모형
* 폭포수 모형
* 프로토타입 모형
* 나선형 모형
* 애자일 모형
폭포수 모형 (Waterfall Model)
: 고전적 생명 주기 모형.
폭포에서 떨어진 물이 다시 올라갈 수 없듯이, 소프트웨어 개발도 이전 단계로 돌아 갈 수 없다는 전제로,
각 단계를 확실히 매듭짓고, 철저하게 검토하여 승인하는 과정을 거친 후 다음 단개로 진행하는 개발 방법론.
* 타당성 검토 →계획 → 요구 분석 → 설계→ 구현 → 검사 → 유지 보수
83. 다음 설명에 해당하는 생명주기 모형으로 가장 옳은 것은? 가장 오래된 모형으로 많은 적용 사례가 있지만 요구사항의 변경이 어려우며, 각 단계의 결과가 확인되어야지만 다음 단계로 넘어간다. 선형 순차적 모형으로 고전적 생명 주기 모형이라고도 한다. (1) 패키지 모형 (2) 코코모 모형 (3) 폭포수 모형 (4) 관계형 모델 (2020년 정보처리기사 필기 기출문제) |
98. 폭포수 모형의 특징으로 거리가 먼 것은? (1) 개발 중 발생한 요구사항을 쉽게 반영할 수 있다. (2) 순차적인 접근방법을 이용한다. (3) 단계적 정의와 산출물이 명확하다. (4) 모형의 적용 경험과 성공사례가 많다. (2020년 정보처리기사 필기 기출문제 |
프로토타입 모형
: 샘플(프로토타입)을 만들어서 최종 결과물을 예측.
고객의 요구 사항을 받아서 그 샘플을 바꿔가면서 최종 구현 때까지 반복하는 것.
나선형 모형 (Spiral Model)
: 폭포수 모형 + 프로토 타입 모형.
- 여러번의 소프트웨어 개발 과정을 거쳐 점진적으로 완벽한 최종 소프트웨어 개발을 하는 것.
- 폭포수 모형의 장점 : 성과를 보면서 점진적으로 진행.
- 프로토 타입 모형의 장점 : 고객의 평가를 받음.
두 과정을 반복. 기존 모델과 다르게 "위험 분석 단계" 추가 - 프로젝트 시 발생하는 위험을 관리하고 최소화하려는 목적.
* 계획수립 → 위험분석 → 개발 → 고객 평가 순으로 진행 반복.
91. 프로토타입을 지속적으로 발전시켜 최종 소프트웨어 개발까지 이르는 개발방법으로 위험관리가중심인 소프트웨어 생명주기 모형은? (1) 나선형 모형 (2) 델파이 모형 (3) 폭포수 모형 (4) 기능점수 모형 (2020년 정보처리기사 필기 기출문제) |
95. 소프트웨어 개발 모델 중 나선형 모델의 4가지 주요 활동이 순서대로 나열된 것은? (A) 계획 수립 (B) 고객 평가 (C) 개발 및 검증 (D) 위험 분석 (1) A-B-D-C 순으로 반복 (2) A-D-C-B 순으로 반복 (3) A-B-C-D 순으로 반복 (4) A-C-B-D 순으로 반복 (2020년 정보처리기사 필기 기출문제) |
2. 비용 산정 기법
비용 산정 기법이란?
: 개발에 소요되는 인원, 자원, 기간 등으로 소프트웨어의 규모를 확인하여 개발에 필요한 비용을 산정하는 것.
하향식 산정 방법
- 전문가를 통해 위 → 아래 방식 내려가는 방법.
- 경험이 많은 전문가에게 비용 산정 하거나, 여러 전문가와 조정자를 통해 산정.
- 전문가 판단, 델파이 기법
상향식 산정 방법
- 세부적인 내용을 토대로 산정하는 아래 →위 로 올라가는 방법
- LOC (코드라인 수), Man Month, COCOMO모형, Putnam 모형, FP(Function Point)모형
LOC (Lines of Code) |
- 소프트웨어 각 기능의 원시코드 라인 수의 낙관치, 중간치, 비관치를 측정하여 예측치를 구하고 이를 이용하여 비용 산정 - LOC 예측치 = {낙관치 + (4 * 기대치) + 비관치} / 6 - 개발기간 = (예측한 총 라인 수 / 월 평균 생산성) / 프로그래머 수 |
Man Month | - 한 사람이 1개월 동안 할 수 있는 일의 양을 기준으로 프로젝트 비용을 산정하는 기법. - (Man Month) = LOC / (프로그래머의 월간 생산성) (프로젝트 기간) = (Man month) / 프로젝트 인력 |
수학적 비용 산정 기법 | |
COCOMO (COnstructive COst MOdel) |
- 보햄 (Bohem)이 제안한 모형으로 프로그램의 규모에 따라 규모를 산정. - 비용 산정 결과는 프로젝트를 완성하는데 필요한 노력(Man-Month) 산정. * 규모를 예측해서 산정.(조직형, 반분리형, 내장형) |
Putnam | - Rayleigh-Norden 곡선의 노력 분포토를 이용한 프로젝트 비용 산정 기법. - Putnam 모형을 기초로 해서 만든 자동화 추정 도구도 SLIM이 있음. |
기능점수 (FP; Functional Point) |
- 기능점수 모형에서 비용산정에 이용되는 요소 - 자료 입력(입력 양식) / 정보 출력(출력보고서) / 명령어(사용자 질의 수) / 데이터 파일 / 필요한 외부 루틴과의 인터페이스 |
91. 소프트웨어 비용 추정모형 (estimation models) 이 아닌 것은? (1) COCOMO (2) Putnam (3) Function-Point (4) PERT (2020년 정보처리기사 필기 기출문제 ) |
94. LOC 기법에 의하여 예측된 총 라인수가 50000라인, 프로그래머의 월 평균 생산성이 200라인, 개발에 참여할 프로그래머가 10인일 때, 개발 소요 기간은? (1) 25 개월 (2) 50개월 (3) 200 개월 (4) 2000 개월 (2020년 정보처리기사 필기 기출문제 ) 해설) (50000 / 200) / 10 = 25 (예측된 총 라인 / 월 평균 생산성) / 프로그래머 수 |
COCOMO 모델
1. Organic Mode (조직형) : 기관 내부에서 개발된 중, 소규모의 소프트웨어이며, 5만 라인 이하 (사무처리용, 업무용)
2. Semi-Detached Mode (반분리형) : 조직형과 내장형의 중간형으로 30만 라인 이하 (운영체제, 데이터 베이스 관리 시스템)
3. Embedded Mode (내장형) : 초대형 규모 소프트웨어이며 30만 라인 이상 (미사일 유도 시스템, 실시간 처리 시스테 등)
89. COCOMO model 중 기관 내부에서 개발된 중소 규모의 소프트웨어로 일괄 자료 처리나 과학기술 계산용, 비즈니스 자료 처리용으로 5만 라인 이하의 소프트웨어를 개발하는 유형은? (1) embeded (2) organic (3) semi-detached (4) semi-embedded (2020년 정보처리기사 필기 기출문제 ) |
96. COCOMO(Constructive Cost Model) 모형의 특징이 아닌것은? 1)프로젝트를 완성하는데 필요한 man-month로 산정 결과를 나타낼 수 있다. 2)보헴(Boehm)이 제안한 것으로 원시코드 라인 수에 의한 비용 산정 기법이다. 3) 비교적 작은 규모의 프로젝트 기록을 통계 분석하여 얻은 결과를 반영한 모델이며 중소 규모 소프트웨어 프로젝트비용 추정에 적합하다. 4) 프로젝트 개발유형에 따라 object, dynamic, function 3가지 모드로 구분한다. (2022년 2회 정보처리기사 필기 기출문제 ) |
3. CMM 모델
CMM (Capability Maturity Model) 능력 성숙도 모델
: 소프트웨어 개발 조직의 업무 능력 및 조직의 성숙도를 평가하는 모델.
* 특정 회사가 얼마나 개발을 잘하는지 평가하는 한 기준.
1. 초기 단계 (initial) : 개발 시작 단계
2. 반복 단계 (Repeatable) : 어느정도 프로세스가 정립되어, 그 프로세스대로 반복이 가능한 단계
3. 정의 단계 (Defined) : 전체 프로세스를 관리하는 절차가 정립된 단계
4. 관리 단계 (Managed) : 프로세스 자체가 얼마나 괜찮은지 평가 할 수 있는 단계 (잘못된 점 분석 가능)
5. 최적화 단계(Opimized) : 특정 프로세스를 계속 발전시켜서 그 프로세스에 대한 방법이 가장 적절하다고 생각할 수 있는 단계
85. CMM (Capability Maturity Model) 모델의 레벨로 옳지 않은 것은? (1) 최적단계 (2) 관리단계 (3) 정의단계 (4) 계획단계 (2020년 정보처리기사 필기 기출문제 ) |
4. 소프트웨어 개발 프레임 워크
소프트웨어 개발 프레임 워크란 (Framework)?
: 소프트웨어 개발에 공통적으로 사용되는 구성요소와 아키텍처를 일반화하여
손쉽게 구현할 수 있도록 여러가지 기능들을 제공해주는 반제품 형태의 소프트웨어 시스템.
* 사람들이 많이 쓰는 것들을 미리 만들어서 하나의 틀을 제공해주는 것.
86. 소프트웨어 개발 프레임워크의 적용 효과로 볼 수 없는 것은? (1) 공통 컴포넌트 재사용으로 중복 예산 절감 (2) 기술 종속으로 인한 선행 사업자 의존 증대 (3) 표준화된 연계 모듈 활용으로 상호 운용성 향상 (4) 개발 표준에 의한 모듈화로 유지보수 용이 (2020년 정보처리기사 필기 기출문제 ) |
88. 소프트웨어 개발 프레임워크를 적용할 경우 기대효과로 거리가 먼 것은? (1) 품질보증 (2) 시스템 복잡도 증가 (3) 개발 용이성 (4) 변경 용이성 (2020년 정보처리기사 필기 기출문제 ) |
5. RIP vs OSPF
라우팅 프로토콜 (Routing Protocol)이란?
: 라우터 간 통신 방식을 규정하는 통신 규약.
최종 목적지에 가기위해 한 통신망에서 다른 통신망으로 데이터 패킷을 전송하는 장치 (네비게이션 역할)
프로토콜의 종류 및 특징
프로토콜 | 설명 |
RIP | - 최초의 라우팅 프로토콜 - 거리 벡터 알고리즘 활용 - 30초 주기로 전체 라우팅 정보 갱신 - 변화 업데이트 시 많은 시간 소요 - 라이팅 루프 발생 가능 - 최대 홉(Hop)수 15. (Hop = 라우터들을 몇개 거쳤는지) |
IGRP | - RIP의 문제점 개선을 위해 시스코에서 개발 - 네트워크 상태를 고려하여 라우팅 (대역폭, 속도 등) |
OSPF | - 링크 상태 알고리즘 사용 - 발생한 변경 정보에 대해 RIP보다 빠른 업데이트 - 토폴로지에 대한 정보가 전체 라우터에 동일하게 유지 - 홉의 제한 없음 |
BGP | - 규모가 큰 네트워크의 상호 연결 - 대형 사업자(ISP)간의 상호 라우팅 |
6. 암호화 알고리즘 (단방향, 양방향)
단방향
: Hash 알고리즘 사용
암호화를 시켰을때, 다시 원래 메시지로 돌아올 수 없음.
양방향
(키 교환 필요)
: 암호화 한것을 주면 받은 쪽에서 암호화를 풀어 원래 메시지를 확인 가능.
* 개인키 암호화 기법 (Private Key Encryption) : 동일한 키로 데이터를 암호화도 하고 복호화한다.
- 블록 암호화 방식 (DES(64비트) , SEED, AES(128비트), ARIA : 한번에 하나의 데이터 블록을 암호화)
- 스트림 암호화 방식 (LFSR, RC4 : 암호화하기 전 평문과 동일한 길이의 스트림을 생성하여 비트 단위로 암호화하는 방식)
* 공개키 암호화 기법 (Public Key Encryption) = 비대칭 암호 기법
: 데이터 암호화할 때 공개키(Public Key)는 데이터베이스 사용자들에게 다 공개.
BUT 복호화할때 사용하는 비밀키(Secret Key)는 관리자가 비밀리에 관리.
* 인수분해 이용 - RSA,Robin
* 이산대수 - Elgamal, DSA
* 타원곡선 - ECC
87. 큰 숫자를 소인수 분해하기 어렵다는 기반 하에 1978년 MIT에 의해 제안된 공개키 암호화 알고리즘은? (1) DES (2) ARIA (3) SEED (4) RSA (2020년 정보처리기사 필기 기출문제 ) |
92. 공개키 암호화 방식에 대한 설명으로 틀린 것은? (1) 공개키로 암호화된 메시지는 반드시 공개키로 복호화 해야 한다. (2) 비대칭 암호기법이라고도 한다. (3) 대표적인 기법은 RSA 기법이 있다. (4) 키 분배가 용이하고, 관리해야할 키 개수가 적다. (2020년 정보처리기사 필기 기출문제 ) |
93. 대칭 암호 알고리즘과 비대칭 암호 알고리즘에 대한 설명으로 틀린것은? 1) 대칭 암호 알고리즘은 비교적 실행 속도가 빠르기 때문에 다양한 암호의 핵심 함수로 사용될 수 있다. 2) 대칭 암호 알고리즘은 비밀키 전달을 위한 키 교환이 필요하지 않아 암호화 및 복호화의 속도가 빠르다. 3) 비대칭 암호 알고리즘은 자신만의 보관하는 비밀키를 이용하여, 인증, 전자서명 등에 적용이 가능하다. 4) 대표적인 대칭키 암호 알고리즘으로는 AES, IDEA 등이 있다. (2022년 2회 정보처리기사 필기 기출문제 ) 해설) 암호화 및 복호화 속도는 빠르지만, 키 교환이 필요함! |
7. 정보보안 3대 요소 (기밀성, 무결성, 가용성)
기밀성 (Confidentiality)
: 허가를 받은 사람만 정보를 이용. 그 외의 사람을 접근 할 수 없음
(함부로 기밀문서를 볼 수 없음.)
무결성 (Integriity)
: 변경은 허락된 (인가된) 사람만 변경 가능.이로써 정확한 정보, 완전한 데이터 유지가능
(데이터를 아무나 건드리지 못하게 함으로 결함을 없게 함.)
가용성 (Availabilty)
: 정보를 필요로 할 때 적절히 사용 가능.
원하는 때에 제대로 제공되거나 작동 되어야 함.
※ 기밀성을 위협하는 공격 : Snoofing (남의 정보를 몰래 훔쳐보는 것)
※ 가용성을 위협하는 공격 : Dos (Denial of Service) ,
DDos(Distributed Dos) : 여러 사용자가 동시에 한 서버에 접근이 몰려 접속이 잘 되지않는 상황.
8. 공격 기법
Dos / DDOs 공격 유형
DoS공격 (서비스 거부 공격) |
- 서버의 자원을 고갈 시키기 위한 공격 (가용성 공격) - 대량의 데이터를 한곳의 서버에 집중적으로 전송 > 서버의 정상적인 기능 방해 |
DDos공격 (분산 서비스 거부) |
- 분산된 공격 지점에서 자원 고갈 공격 (한 서버에 접속자가 몰려 서버가 마비되는 것) |
Ping of Death | - ping 명령 전송을 이용해서 공격 대상의 네트워크 마비시킴 (규정 크기이상의 ICMP 패킷으로 시스템을 마비시키는 공격) |
SMURFING (스머핑) |
- IP 와 ICMP 특성을 이용해서 공격. - 엄청난 양의 데이터를 한 사이트에 집중적으로 보내, 네트워크를 불능 상태로 만듬. |
Tear drop | - 패킷을 분할하고 정보를 넘겨줄때 일부러 잘못된 정보를 주어 조립하는 상대방이 오류로 과부하가 걸리게하는 공격. (눈물방울 처럼 조금씩 오류를 내는 것이 누적되면 결국 큰 문제가 생겨 다운되게 됨) |
LAND attack (Local Area Network Denial Attack) |
- 자신에게 무한히 응답하도록 하는 공격. - 출발지 IP와 목적지 IP가 같은 패킷을 만들어 보내는 공격. (작은 범위의 네트워크가 자기 자신에게 보내고 자기자신이 무한히 응답하다 다운됨.) |
SYN Flooding | - 과도하게 SYN 패킷을 흘러넘치도록 전송하는 공격. - TCP 연결과정(3Way Handshaking)의 취약점 공격. |
UDP Flooding | - 다량의 UDP 패킷을 전송하여 네트워크 자원 고갈 시키는 공격. |
Ping Flooding | - 특정 사이트에 매우 많은 ICMP Echo를 보내는 공격. |
* Flooding의 경우 : 넘치게 하는 공격.
* ICMP : 전송을 하다가 오류로 인해 데이터가 전달되지 못했을 경우, 못갔다는 신호를 보내주는 역할.
네트워크 침해 공격
Smishing 스미싱 |
- 문자를 통해 수상한 링크를 누르게 해, 누르면 개인 신용 정보가 빠져나가게하는 공격 |
Spear Phishing 스피어 피싱 |
- 사회공학의 한 기법. - 특정인의 정보를 캐내기 위한 방법. - 상호작용의 신회를 바탕으로 특정 대상을 선정 후 메일의 링크나 파일을 클릭하도록 유도해 개인정보 탈취. |
(APT) 지능형 지속 위협 |
- 특정 대상에 지속적인 공격 시도 - 목표대상을 직접 공격하지않고, 내부의 PC를 노리고 내부 PC를 사용하는 사람들을 통해 침입 |
무차별 대입 공격 (Brute Force Attack) |
- 암호화된 문서의 암호키를 찾아내기 위해 적용가능한 모든 값은 대입하여 공격 |
Qshing 큐싱 |
- QR코드와 개인정보 및 금융정보를 낚는다의 합성 신조어 |
SQL 삽입 공격 (SQL Injection) |
- 데이터 베이스의 SQL문법을 이용하여 웹사이트의 데이터 베이스를 접근하거나 조작. |
크로스 사이트 스크립팅 (XSS; Cross-Site Scripting) |
- 사용자가 특정 게시물이나 이메일 링크를 클릭하면 악성 스크립트가 실행되어 페이지가 깨지거나, 사용자의 컴퓨터에 있는 로그인 정보나 개인정보, 내부 자료등이 해커에게 전달되는 해킹 방법 |
정보보안 침해 공격
좀비 PC | - 악성 코드에 감염되어 좀비처럼 자기 의지를 잃고 조종당하게 되는 것. - C&C(Command & Control) 서버의 제어를 받아 주로 DDos공격 등에 이용됨. |
C&C서버 (Command & Control) |
- 해커가 원격지에서 감염된 좀비 PC에 명령을 내리고 악성코드를 제어하기 위한 용도로 사용하는 서버 |
Botnet (봇넷) | - 악성 프로그램에 감염되어 악의적인 의도로 사용될 수 있는 다수의 컴퓨터들이 네트워크로 연결된 형태 |
Worm(웜) | - 자신을 복제하여 시스템의 부하를 높임으로써 결국 시스템을 다운시키는 바이러스 |
제로데이 공격 (Zero Day Attack) |
- 보안 취약점이 발견되고, 취약점의 존재가 공표되기전 해당 취약점을 통해 이뤄지는 보안 공격 |
키로거 공격 (Key Logger Attack) |
- 컴퓨터 사용자의 키보드 움직임을 탐지해 개인 정보를 빼가는 해킹. |
랜섬웨어 (Ransomware) |
- 내부 파일들을 모두 암호를 걸어, 돈을 주면 파일을 풀어주겠다고 하는 공격 |
Back Door (백도어, 트랩도어) |
- 액세스의 편의를 위해 시스템 보안을 제거하여 만들어 놓은 비밀 통로 (해커가 한번 침투 후 다음에도 오기위해 뒷문을 만들어두는 것) |
트로이 목마 (Trojan Horse) |
- 정상적인 기능을 하는 프로그램으로 위장했지만 내부에 악성코드가 숨어있는 것. |
9. 접근제어 방법
- 강제적 접근 통제 (MAC, Mandatory Access Control)
: 자원의 보안 레벨과 사용자의 보안 취급인자를 비교하여 접근 제어. (접근자의 레벨에 따라서 비교해서 접근 허용, 불가) - 임의적 접근 통제 (DAC, Discretionary Access Control)
: 자원의 소유권을 가진 사람이, 다른 사람의 접근을 허용하거나 제한. - 역할 기반 접근 통제 (RBAC, Role Based Access Control)
: 개별적인 신분이 아니라 조직 내 개인 역할에 따라 허용 여부를 결정하는 모델.
※ 접근 제어 모델
구분 | 설명 |
BLP 모델 | - 기밀성, 최초의 수학 모델 - 정부 및 군용 응용 시스템의 접근을 제어 - No Read Up, No Write Down |
BIBA 모델 | - 무결성 최초의 모델 - BLP 모델에서 불법 수정 방지 내용을 추가 - No Write Up, No Read Down |
Clark-Wilson 모델 | - 상업 환경에서 적합하도록 개발된 불법 수정 방지를 위한 모델 - 기밀성 보다는 무결성에 초점 |
만리장성 모델 | - 충돌을 야기시키는 어떤 정보의 흐름도 없어야 하며, 이해 충돌 발생을 막기 위해 설계된 내부 규칙 |
Lattice 모델 | - 컴퓨터 보안성이 있는 정보 흐름을 통제 |
15. 접근 통제 방법 중 조직 내에서 직무, 직책 등 개인의 역할에 따라 결정하여 부여하는 접근 정책은? 1) RBAC 2) DAC 3) MAC 4) QAC (2022년 2회 정보처리기사 필기) |
02. 정보 시스템 내에서 어떤 주체가 특정 개체에 접근하려 할 때 양쪽의 보안 레이블(security Label)에 기초하여 높은 보안 수준을 요구하는 정보(객체)가 낮은 보안 수준의 주체에게 노출되지 않도록 하는 접근 제어 방법은? 1) Mandatory Access Control 2) User Access Control 3) Discretinary Access Control 4) Data-Label Access Control (2022년 2회 정보처리기사 필기) |
10. 침입 탐지 시스템
이상 탐지 기법 (Anomaly Detection)
: 잘 만들어진 프로세스를 넣어 그것과 비교했을때 삐딱선을 타는 게 있다면 차단한다.
* 오류 확률이 높음.
오용 탐지 기법
: 이미 발견되고 정립된 공격패턴을 기억해 두었다가 탐지 및 차단한다. (알고있던걸 차단)
구분 | 설명 | 예시 |
생략 오류 (omission error) |
입력 시 한 자리를 빼놓고 기록한 경우 | 123 > 123 |
필사 오류 (Transcription error) |
입력 시 임의의 한 자리를 잘못 기록한 경우 | 1234 > 1235 |
전위 오류 (Transposition error) |
입력 시 좌우 자리를 바꾸어 기록한 경우 | 1234 > 1243 |
이중 오류 (Double Transpositon error) |
전위 오류가 두 가지 이상 발생한 경우 | 1234 > 2143 |
추가 오류 (Addition error) |
입력 시 한 자리 추가로 기록한 경우 | 1234 > 12345 |
임의 오류 (Random error) |
위에 오류가 두 가지 이상 결합하여 발생한 경우 | 1234 > 1236 |
plus. CBD방법론
CBD (Component Based Design) 방법론이란?
: 소프트웨어 개발 방법론 중 하나로. 컴포넌트 기반으로 개발하는 것.
기존의 시스템이나 소프트웨어를 구성하는 컴포넌트들을 조합하여 하나의 새로운 애플리케이션을 만들게 된다.
장점
- 컴포넌트 재사용이 가능하기 때문에 새로 만들지않아 시간과 노력 절감 가능
- 유지보수가 쉬어 유지보수 비용 최소화
- 생산성과 품질이 좋아짐
절차
: 개발 준비단계 > 분석단계 > 설계단계 > 구현 단계 > 테스트 단계 > 전개단계 > 인도 단계
plus. 신기술 용어
네트웨크 관련 신기술
소프트웨어 관련 신기술