본문 바로가기
자격증/정보처리기사(필기)

[정보처리기사] 5과목 - 정보시스템 구축관리

by 훈영 2023. 5. 12.

1. 개발방법론

1. 소프트웨어 생명주기

- 소프트웨어 생명주기란 소프트웨어 개발을 하기 위한 정의, 운용, 유지보수 등의 각 과정을 단계별로 나눈 것을 말한다.

 

1-1. 폭포수 모형

- 소프트웨어 개발 각 단계를 확실히 매듭 짓고 그 결과를 철저히 검토해 승인 과정을 거침

- 이전 단계로 돌아갈 수 없음

- 가장 오래되고 폭 넓게 사용된 전통적인 소프트웨어 생명주기모형

- 선형 순차적 모형

- 개발 순서: 타당성 검토 → 계획 → 요구분석 → 설계 → 구현 → 검사 → 유지보수

장점 단점
 - 모형의 적용 경험과 성공 사례가 많음
 - 단계별 산출물이 정확해 개발 공정의 기준점을 잘 제시함
 - 개발 과정 중의 새로운 요구나 경험 반영이 어려움
 - 사용자가 모든 요구사항을 처음부터 명확히 제시해야 함
 - 오류없이 다음 단계로 진행해야 하는데 현실적으로 어려움

 

1-2. 프로토타입 모형

- 사용자의 요구사항을 정확히 파악하기 위해 견본품을 만들어 최종 결과물을 예측하는 모형

 → 요구사항이 불분명한 경우 프로토타입 모형을 선택할 수 있음

- 요구 분석 단계에서 사용되며 승인 후 다른 모형을 이용해 본격적인 개발이 이루어짐

- 유지보수 단계가 아닌 개발 단계 안에서 유지보수가 이루어짐

- 개발 순서: 요구 수집 → 빠른 설계 → 프로토타입 구축 → 고객평가 → 프로토타입 조정 → 구현

장점 단점
 - 요구사항을 충실히 반영, 요구사항 변경 용이
 - 최종 결과물이 만들어지기 전, 의뢰자가 볼 수 있음
 - 의뢰자, 개발자 모두에게 공동의 참조 모델을 제공
 - 미리 제작된 소프트웨어와 실제 소프트웨어 사이의 차이가 발생할   수 있음
 - 단기간에 제작해야 하기에 비효율적인 언어나 알고리즘을 사용할   수 있음

 

1-3. 나선형 모형(선형 순차적, 점진적)

- 폭포수, 프로토타입 모형의 장점에 위험 분석 기능을 추가한 모형

- 나선을 따라 돌듯이 여러 번의 소프트웨어 개발 과정을 거쳐 점진적으로 완벽한 최종 소프트웨어를 개발하는 것

- 개발 시 발생할 수 있는 위험을 관리하고 최소화하는 것을 목적으로 함

- 대규모 개발에 적함

- 개발 순서: 계획 → 위험 분석 → 개발 → 고객 평가

장점 단점
- 가장 현실적인 모형, 대규모 시스템에 적합함
- 점진적으로 반복되므로 추가된 요구사항 반영 가능
- 유지보수 과정이 필요없음
- 위험성 평가에 의존하기 때문에 발견되지 않으면 문제가 생김
- 비교적 최신 기법이므로 이전 모형보다 널리 사용되지는 않음

 

1-4. 애자일 모형

- 애자일은 '민첩한', '기민한'이라는 의미

- 고객의 요구사항 변화에 유연하게 대응할 수 있도록 일정한 주기를 반복하는 개발 과정을 의미

- 고객과의 소통에 초점을 맞춘 방법론을 통칭함

- 애자일 모형은 짧은 개발 주기를 반복하여 짧은 주기마다 도출된 결과에 대한 고객의 평가를 적극적으로 수용함

- 애자일 모형 기반의 소프트웨어 개발 모형: 스크럼(Scrum), XP(익스트림 프로그래밍), 크리스탈, ASD 등

 

1-5. V-모델

- 폭포수 모델에 시스템 검증테스트 작업을 강조한 모델이다.

- Perry에 의해 제안되었으며 세부적인 테스트 과정으로 구성되어 있어서 신뢰도 높은 시스템을 개발하는데 효과적이다.

- 개발 단계의 작업을 확인하기 위해 테스트 작업을 수행한다.

- 생명 주기 초반부터 테스트 작업을 지원한다.

- 개발 순서: 요구사항 분석 설계 구현(코딩) 단위 테스트 통합 테스트   시스템 테스트   인수 테스트

V-모델 개발 순서

 

2. Docker

- 컨테이너 응용프로그램의 배포를 자동화하는 오픈소스 엔진이다.

- 소프트웨어 컨테이너 안의 응용 프로그램들을 배치시키는 일을 자동화해 주는 오픈소스 프로젝트이자 소프트웨어이다.

 

3. 간트 차트(Gantt Chart)

- 각 작업들의 일정을 막대로 표시하는 기법이다.

- 이정표, 작업 기간, 작업 일정 등을 나타낸다.

- 시간선(Time-Line) 차트라고도 한다.

- 막대로 표시하며, 수평 막대의 길이는 각 작업(Task)의 기간을 나타낸다.

- 자원 배치 계획에 유용하게 사용된다.

 

4. Scrapy

- Python 기반의 웹 크롤링(Web Crawling) 프레임워크이다.

- 가볍고 빠르고 확장성이 좋다.

 

5. LOC(Line Of Code) 기법

- 소프트웨어 각 기능의 원시 코드 라인 수의 관치, 관치, 대치를 측정하여 예측치를 구하고 이를 이용하여 비용을 산정하는 기법이다.

- 예측치 = (a + 4m + b) / 6 (단, a는 낙관치, b는 비관치, c는 기대치임)

# 비낙기

 

6. 테일러링(Tailoring)

- 프로젝트에 최적화된 개발 방법론을 적용하기 위해 절차, 산출물 등을 적절히 변경하는 활동이다.

- 프로젝트 수행시 예상되는 변화를 감안하여 정밀하게 진행한다.

- 관리 측면: 최단기간에 안정적인 프로젝트 진행을 위한 사전 위험을 식별하고 제거하는 것이다.

- 기술적 측면: 프로젝트에 최적화된 기술 요소를 도입하여 프로젝트 특성에 맞는 최적의 기법과 도구를 사용하는 것이다.

 

=====================================================

2. 정보시스템 구축관리

1. 고가용성 솔루션(HACMP, High Availability Cluster Multi Processing)

- 각 시스템 간에 공유 디스크를 중심으로 클러스터링으로 엮어 다수의 시스템을 동시에 연결할 수 있다.

- 조직, 기업의 기간 업무 서버 등의 안정성을 높이기 위해 사용될 수 있다.

- 여러가지 방식으로 구현되며 2개의 서버를 연결하는 것으로 2개의 시스템이 각각 업무를 수행하도록 구현하는 방식이 널리 사용되나.

 

* 스턱스넷(Stuxnet)

- 2010년 6월에 발견된 웜 바이러스

- 윈도우를 통해 감염, 지맨스산업의 SW 및 장비를 공격한다.

 

* 루팅(Rooting)

- 모바일 기기에서 구동되는 안드로이드 운영체제상에서 루트 권한을 얻음으로 해당 기기의 생산자 또는 판매자 측에서 걸어 놓은 제약을 해제하는 행위이다. 애플 모바일 기기에서는 탈옥이라고 한다.

 

2. DAS(Direct-attached storage, 직접 연결 저장 장치)

- 하드디스크와 같은 데이터 저장장치를 호스트 버스 어댑터에 직접 연결하는 방식이다.

- 저장장치와 호스트 기기 사이에 네트워크 디바이스가 있지 말아야 하고 직접 연결하는 방식으로 구성된다.

 

3. HaDoop(하둡)

- 빅데이터를 분석 처리할 수 있는 큰 컴퓨터 클러스터에서 동작하는 분산 응용 프로그램을 지원하는 프리웨어 자바 소프트웨어 프레임워크이다.

 

4. NTFS(New Technology File System)
- FAT32에서 최대 파일 크기는 4GB이지만, NTFS에서 파일의 크기는 볼륨 크기에 의해서만 제한된다.
- 이론적으로 최대 볼륨의 크기는 256TB이다.
- NTFS는 FAT에 비하여 보안성이 높다.

 

=====================================================

3. 시스템보안 구축

1. Switch Jamming

- 스위칭 허브의 기능이 방해 받아 정상 동작을 하지 못해 스위치가 더미 허브(Dummy hub)처럼 작동하게 되는 것

 

2. 블루투스(Bluetooth) 공격

2-1. 블루프린팅

- 블루투스 공격 장치의 검색 활동을 의미

- 블루투스는 장치 간 종류를 식별하기 위해 서비스 발견 프로토콜(SDP, Sevice Discovery Protocol)을 보내고 받음

- 공격자는 이를 이용해 공격이 가능한 블루투스 장치를 검색하고 모델을 확인할 수 있음

 

2-2. 블루버그(BlueBug)

- 블루투스 장비 사이 취약한 연결 관리를 악용한 공격기법이다.

 

2-3. 블루스나프(BlueSnarf, 블루스나핑)

- 블루투스의 취약점을 활용하여 장비의 파일에 접근하는 공격으로 OPP(Obex Push Protocol)를 사용하여 정보를 열람하는 공격기법이다.

 

2-4. 블루재킹(BlueJacking)

- 블루투스를 이용해 스팸처럼 명함익명으로 퍼뜨리는 공격기법이다.

 

* OPP: 블루투스 장치끼리 인증 없이 정보를 간편하게 교환하기 위한 프로토콜이다.

 

3. DoS(Denial of Service)

- 시스템을 악의적으로 공격해 해당 시스템의 자원을 부족하게 하여 원래 의도된 용도로 사용하지 못하게 하는 공격

 

1) 지역 시스템 공격

- 실제 대상 시스템에 접근하여 서버 하드웨어에 직접 과부하를 주는 공격

 

2) 원격 네트워크 공격

- 공격자가 목표 시스템에 접근하지 않고 원격지에서 인터넷 등을 이용한 공격

 

4. DDos(Distributed Dos)

- DoS의 다른 형태로 여러 대의 공격자를 분산 배치하여 동시에 동작하게 함으로써 특정 사이트를 공격

 

5. 자원 고갈 공격

- 정상 접속을 시도하는 오픈된 소켓에 트래픽집중시키는 공격

 

1) SYN 플러딩(Flooding)

- 서버의 동시 가용 용자 수를 점유하여 다른 사용자가 서버를 사용하지 못하게 하는 공격

 

2) UDP 플러딩(Flooding)

- 대량의 UDP 패킷을 만들어 임의의 포트로 전송하여 응답 메시지(ICMP)를 생성하게 하여 지속적으로 자원을 고갈시키는 공격

 

3) 스머프(Smurf)

- 출발지 주소를 공격 대상의 IP로 설정하여 전체 네트워크에 ICMP echo 패킷을 직접 브로드캐스팅하여 마비시키는 공격

 

4) PoD(Ping of Death)

- 큰 사이즈의 패킷을 의도적으로 목표 시스템에 발생시켜 시스템이 서비스할 수 없는 상태로 만드는 공격

 

5) Land

- 패킷 전송 시 출발지 IP 주소와 목적지 IP 주소 값을 똑같이 만들어서 공격 대상에게 보내는 공격

 

6. Honeypot(꿀단지)

- 비정상적인 접근을 탐지하기 위해 의도적으로 설치해 둔 시스템을 의미한다.

- 1990년대 David Clock이 처음 제안하였다.

- 침입자를 속여 실제 공격을 당하는 것처럼 보여줌으로써 크래커를 추적 및 공격기법의 정보를 수집하는 역할을 한다.

- 쉽게 공격자에게 노출되어야 하며 쉽게 공격이 가능한 것처럼 취약해 보여야 한다.

 

7. 리눅스

7-1. umask

- 파일이나 디렉터리 생성 시 초기 접근 권한을 설정할 때 사용한다.

- 초기 파일의 권한은 666이고 디렉터리는 777이며 여기에 umask 값을 빼서 초기 파일 권한을 설정할 수 있다.

ex) 파일 초기 권한 666 - ? = 644 / ? = 022

 

7-2. i-node

 

 

7-3. 리눅스 로그파일

1) utmp: 현재 로그인한 사용자 상태 정보를 담고 있는 로그파일

2) wtmp: 성공한 로그인/로그아웃 정보와 시스템 boot/shutdown의 히스토리를 담고 있는 로그파일

3) btmp: 실패한 로그인 정보를 담고 있는 로그파일

# U현W성B실(유현덥성비실)

 

=====================================================

4. SW 개발 보안구축

1. 취약점 관리

- 무결성 검사

- 응용 프로그램의 보안 설정 및 패치 적용

- 불필요한 서비스 및 악성 프로그램의 확인과 제거

- 실행 프로세스 권한 설정

- 운영체제 접근 제한

- 운영체제의 정보 수집 제한

 

2. 암호화

2-1. DES(Data Encryption Standard)

- 블록 암호의 일종으로 평문을 64비트로 나누어 56비트의 키를 사용한 알고리즘 방식이다.

 

3. DPI(Deep Packet Inspection)

- OSI 7 계층까지 전 계층의 프로토콜과 패킷 내부의 콘텐츠를 파악하여 침입 시도, 해킹 등을 탐지하고 트래픽을 조정하기 위한 패킷 분석 기술이다.

- 유해정보 차단, 해킹 차단, 다양한 탐지/분석 모델이다.

- 네트워크 보안, 관리, 컨텐츠 관리 등의 목적을 갖는다.

 

4. 접근통제 정책

정책 MAC DAC RBAC
권한부여 시스템 데이터 소유자 중앙 관리자
접근결정 보안등급
(Label)
신분
(Identity)
역할
(Role)
정책변경 고정적
(변경 어려움)
변경 용이 변경 용이
장점 안정적
중앙 집중적
구현 용이
유연함
관리 용이

 

 

=====================================================

댓글