Search

정보 시스템 구축 관리

대분류
자격증
소분류
정보처리기사
유형
5과목
과목
5과목
최종 편집 일시
2024/10/27 15:36
생성 일시
2024/05/07 09:31
14 more properties

소프트웨어 개발 방법론 활용

소프트웨어 개발 생명주기 모형

소프트웨어 개발 생명주기(SDLC)

만들어지고 폐기될 때까지의 생명주기

프로토타입

시제품을 만드는 것

폭포수 모형

고전적 생명주기
순차적 접근 방법
소규모 시스템 개발에 적합
선형 순차적 모형

나선형 모형

반복 작업
위험 분석 단계 - 4단계가 있다.
점진적 모형, 집중적 모형, 완성도가 높음
반영 어려움
대규모 시스템 개발에 적합

CPM(Critical Path Method)

최악의 상황을 감안해서 기간을 산정
노드와 간선으로 구성
가장 오랜 기간

소프트웨어 개발 방법론

구조적 방법론

정형화된 체계적인 방법론
데이터 흐름 다이어그램
구조도

객체지향 방법론

대상체 자체를 객체로 봄
기본 원칙
캡슐화(Encapsulation), 정보 은닉(Information Hiding), 추상화(Abstraction), 상속(Inheritance), 다형성(Polymorphism)
시스템 분석을 위해 유스케이스 다이어그램 사용
시스템 설계를 위해 시퀀스 다이어그램 사용

컴포넌트 개발 방법론

재사용하기 위한 컴포넌트 제작
유지보수 비용 최소화

CBD(Component Based Development) SW 개발 표준 산출물

1.
분석
2.
설계
3.
구현
4.
시험

CBD 방법론 특징

재사용 가능
시스템 분석을 위해 유스케이스 다이어그램 사용
개발 기간 단축 - 확장성 높다

소프트웨어 재사용

합성 중심
전자칩과 같은 소프트웨어 부품, 즉 블록을 만들어 끼워 맞추어 완성시키는 방법
생성 중심
패턴 구성 방법
추상화 형태 명세 구체화

비용 산정 모델

비용 산정 모델 종류

전문가 감정 기법

델파이(Delphi) 기법

산정 요원가 조정자에 의해 산정
독단 행위 방지

LOC(Line Of Code) 기법

원시 코드 라인 수의 예측 치수를 구해 이를 이용하여 비용을 산정하는 기법
예측치 = 낙관치 + ( 4 x 기대치) + 비관치 / 6
개발 기간 = 예측된 LOC / (개발자 수 x 1인당 월 평균 생산 LOC)

COCOMO 모델

소스 코드 규모에 의한 비용 예측 모델
개발 노력 승수를 결정
COCOMO 모형 종류
Basic COCOMO, Intermediate COCOMO, Detailed COCOMO
소프트웨어 개발 유형
Organic Mode (단순형)
5만 라인 이하 소프트웨어 개발
노력(MM) = 2.4 x (KDSI)1.05
Semi-detached Mode (중간형)
30만 라인 이하의 소프트웨어 개발
노력(MM) = 3.0 x (KDSI)1.12
Embedded Mode (임베디드형)
30만 라인 이상의 소프트웨어 개발
노력(MM) = 3.6 x (KDSI)1.20
KDSI(Kilo Delivered Source Instrction) : 전체 라인 수를 1,000단위로 묶는 것 (==KLOC)

Putnam 모델

Rayleigh-Norden 곡선 노력 분포도 이용
노력 분포 예측
SLIM : Rayleigh-Norden 곡선과 Putname 모형에 기반을 둔 자동화 추정 도구

기능 점수(FP : Functional Point)

기능 정량화
시스템을 구현한 기술에 의존적이고 개발자에 의해 식별되는 기능에 기반하여 시스템의 크기를 측정하는 적도
기능 점수 비용산정 요소
코드 라인 수
데이터 파일 수
문서 페이지 수
입력 유형의 수
출력 보고서의 수
외부 루틴과의 인터페이스 수
명령어(사용자 질의 수)

소프트웨어 개발 표준

ISO/IEC 12119

테스트를 위한 국제 표준
25051로 대체

ISO/IEC 12207

기본 생명주기 프로세스 구분
획득 프로세스
공급 프로세스
개발 프로세스
운영 프로세스
유지보수

SPICE(Software Process Improvement and Capability dEtermination)

소프트웨어 프로세스 평가 및 개선 국제 표준
== ISO/IEC 15504
ISO/IEC 12207 단점 해결
SPICE 모델 범주
고객-공급자 프로세스
공학 프로세스
지원 프로세스
관리 프로세스
조직 프로세스

SPICE 모델 레벨

0.
불완전 단계
1.
수행 단계
2.
관리 단계
3.
확립 단계
4.
예측 단계
5.
최적 단계

CMM(능력 성숙도 모델)

회사의 성숙도를 파악하는 것
능력치 평가

CMM 모델 레벨

1.
초보 단계
2.
반복 단계
3.
정의 단계
4.
관리 단계
5.
최적 단계

CMMI(능력 성숙도 통합 모델)

프로세스 역량 성숙도 평가 표준
CMM : 개발 프로세스 성숙도 모델
CMMI : 소프트웨어, 시스템, 프로덕트 포함 세 분야 통합 평가 모델
24개 프로세스 영역을 4개 범주로 분할

테일러링과 프레임워크

테일러링

소프트웨어 개발 방법론
기존 개발 방법론을 프로젝트 상황에 맞게 수정한는 작업
테일러링 수행 절차
1.
프로젝트 특징 정의
2.
표준 프로세스 선정 및 검증
3.
상위 레벨 커스터마이징
4.
세부 커스터마이징
5.
테일러링 문서화

테일러링 시 고려사항

내부적 요건
납기/비용
구성원 능력
목표 환경
고객 요구사항
프로젝트 규모
보유 기술
외부적 요건
법적 제약사항
표준 품질 기준

프레임워크

비슷한 유형의 응용 프로그램들을 위해 재사용이 가능한 아키텍처와 협력하는 소프트웨어 산출물의 통합된 집합
특정 클래스 재사용 뿐 아니라 응용 프로그램을 위한 핵심 아키텍처를 제공하여 설계의 재사용 지원

프레임워크 적용 시

개발 용이성
시스템 복잡도 감소
이식성
품질 보증
운영 용이성
개발 코드 최소화
변경 용이성
설계 및 코드의 재사용성

스프링 프레임워크

자바 기반
동적 웹 사이트 개발
전자정부 표준 프레임워크
공공부문 정보화 사업 시 플랫폼별 표준화된 개발 프레임 워크
공공기관에서 권장

네트워크 구성

성형

중앙에 호스트 컴퓨터가 있고 이를 중심으로 터미널이 연결

버스형

망형

그물형
응답 시간 빠르다
회선 수 = n(n-1)/2 (n은 노드 수)

스위치

보안 및 트래픽 관리 기능
계층별 스위치 장비가 존재

라우터

최적 IP 경로 설정
네트워크 계층

VLAN

가상으로 LAN을 구성하여 사용하게 하는 기술

네트워크 관련 신기술

RIP(Routing Information Protocol)

최단 경로 탐색
거리 벡터 라우팅 프로토콜
(거릿값)만을 고려
최대 홉 카운트 : 15홉 이하
소규모에 적합

OSPF(Open Shortest Path First Protocol)

89번 프로토콜 사용
IGP가 가장 많이 사용됨
링크 상태 라우팅 알고리즘 사용
대규모 네트워크에 적합

MQTT(Message Queuing Telemetry Transport)

IBM 주도
IoT같은 대역폭 제한 통신 환경에 최적화
TCP/IP 기반 네트워크에서 동작
발행-구독

클라우드 컴퓨팅(Cloud Computing)

IaaS, PaaS, SaaS로 구분
원격으로 빌려서 사용하는 방식
PaaS-TA : 개방형 클라우드 컴퓨팅 플랫폼, 국내 경쟁력 강화 목표로 개발

그리드 컴퓨팅(Grid Computing)

RFID(Radio Frequency IDentification)

전자 태그 부작 IC칩, 무선 통신 기술을 이용해 정보 관리를 하는 센서 기술

NFC(Near Field Communication)

RFID 기술 중 하나
13.56MHz의 주파수 대역 사용
비접촉식 통신 기술
읽기, 쓰기 모두 가능

Zing

초고속 무선 통신 기술

WPAN(Wireless Personal Area Network)

무선 통신 규격 - 블루투스에서 사용

PICONET(피코넷)

여러 개의 독립된 통신 장치가 UWB(Ultra Wideband)기술 또는 블루투스 기술을 사용하여 통신망을 형성하는 무선 네트워크 기술

스마트 그리드(Smart Grid)

전력망 시스템
에너지 효율 최적화

비컨(Beacon)

블루투스 프로토콜 기반
근거리 무선 통신 장치 70m 이내까지 가능

포스퀘어(Foursquare)

GPS로 위치 정보 수집

ZigBee

저전력 센서 네트워크

Mesh Network

대규모 디파이스 네트워크 생성에 최적화
기존 무선 랜 한계 극복 목적

Wavelength Division Multiplexing(WDM, 파장 분할 다중화)

단일 광섬유 적용 기술
광섬유 다중화 방식

소프트웨어/하드웨어 관련 신기술

소프트웨어 관련 신기술

소프트웨어 정의 데이터 센터(SDDC : Software Defined Data Center)

가상 데이터 센터
모든 자원 가상화 서비스

텐서플로우(TensorFlow)

인공지능 응용프로그램 개발용 오픈소스 프레임워크

머신 러닝

학습을 통해 패턴을 찾아 정보 처리 능력을 향상시키는 기술

딥 러닝

깊은 신경망 계층 구조 이용 머신 러닝

디지털 트윈(Digital Twin)

물리적인 사물과 컴퓨터에 동일하게 표현되는 가상 모델
META

HWD(Head Mounted Display)

머리에 착용하는 디스플레이

블록체인(Blockchain)

공공 거래 장부
블록은 트랜잭션 집합과 헤더로 구성

BaaS(Backend as a Service)

블록체인 개발 환경을 클라우드로 서비스하는 개념
블록체인 기본 인프라를 추상화
클라우드 컴퓨팅 플랫폼

분산 원장 기술(Distributed Ledger Technology)

암호화 기술로 거래 정보를 검증하고 합의한 원장(Ledger)을 통해 확인하는 기술

매시업(Mashup)

에서 제공하는 정보 및 서비스를 이용하여 새로운 소프트웨어나 서비스, 데이터베이스 등을 만드는 기술

양자 암호(Quantum Cryptography)

양자 역학 특성을 이용하여 정보 보호를 위한 알고리즘 또는 정보 이론적/수학적 기법

하드웨어 관련 신기술

N-Screen

여러 개의 스크린
다양한 디지털 전자기기에서 사용이 가능한 기술

데이터베이스 관련 기술 용어

직접 연결 저장 장치(DAS : Direct-Attached Storage)

데이터 저장 장치를 호스트 버스 어댑터에 직접 연결하는 방식

SAN(Storage Area Network)

네트워크상 광 채널 스위치 이점 고속 전송과 장거리 연결 및 멀티 프로토콜 기능 활용
여러 개의 저장 장치나 백업 장비를 단일화

NAS(Network Attached Storage)

구조적으로 스토리지 서버를 단순화, 소형화한 것

Software Defined Storage

가상화 적용 (서버 가상화와 유사)
데이터 스토리지 체계
효율적으로 나눠쓰는 방법

데이터웨어하우스(Data Warehouse)

기간 업무 시스템에서 추출되어 새로이 생성된 데이터베이스
의사결정지원시스템을 지원하는 주제적, 통합적, 시간적 데이터의 집합체
통합된 데이터에 의한 OLAP(On-Line Analytical Processing) 연산을 효율적으로 지원

데이터 마트(Data Mart)

데이터웨어하우스에서 축소된 개념
중간층에 위치

데이터 마이닝(Data Mining)

대량의 데이터를 분석하여 데이터 속에 있는 변수 사이의 상호관계를 규명하여 일정한 패턴을 찾아내는 기법

디지털 아카이빙(Digital Archiving)

디지털 정보 자원을 장기적으로 보존하기 위한 작업

하둡(Hadoop)

오픈소스 기반 분산 컴퓨팅 플랫폼
빅데이터 분산 처리를 돕는 자바 소프트웨어 오픈소스 프레임워크
거대한 데이터 세트를 병렬 처리
필수 핵심 구성 요소
맵리듀스
Google 개발
대용량 데이터 분산 처리 목적 개발 프로그래밍 모델
병렬 처리 기법 제공
분산 처리 후 다시 합치는 과정을 거친다.
하둡 분산 파일 시스템
Sqoop : 하둡과 관계형 데이터베이스 간에 데이터를 전송할 수 있도록 설된 도구

소프트웨어 개발 보안

Secure OS

목적
안정성
보안성
신뢰성

버퍼 오버플로우

운영 체제가 메모리를 조작하는 동안 잘못된 동작을 하는 프로그램 취약점

버퍼 오버플로우 대응 방안

스택 실드
ASLR
스택 가드 : 한쪽으로만 입출력이 가능한 형태, 프로그램 실행을 중단시키는 기술

시스로그(Syslog)

리눅스에서 다양한 이벤트를 로그 파일에 기록하는

소프트웨어 개발 보안 방법론

Secure SDLC(소프트웨어 개발 생명주기)

개발부터 폐기까지 보안 생명 주기를 지켜야한다

Seven Touchpoints

공통 위험 요소 파악 이해
체크 리스트

CLASP(Comprehensive, Lightweight, Application Security Process)

생명주기 초기 단계에 보안 강화 목적으로 하는 정형화된 개발 보안 프로세스

정보 보안 3대 요소

기밀성(Confidentiality) : 권한이 있는 사람만 접근이 가능한 것
무결성(Integrity) : 인가된 사용자가 인가된 방법으로만 수정이 가능한 것
가용성(Availablity) : 사용자가 필요할 때 데이터에 접근할 수 있는 능력

OWASP

오픈소스 웹 애플리케이션 보안 프로젝트
10가지 취약점 공개

시큐어 코딩 가이드

입력 데이터 검증 및 표현

데이터 삽입으로 인한 보안 약점 종류

SQL Injection
SQL 쿼리문을 삽입하여 공격하는 보안 약점
크로스 사이트 스크립트(XSS)
악의적인 스크립트를 포함시켜 사용자 측에서 실행되게 유도하여, 정보 유출 등의 공격을 유발 할 수 있는 취약점
XQuery 삽입
XPath 삽입
LDAP 삽입

보안 기능 문제로 인한 보안 약점 종류

적절한 인증 없는 중요 기능 허용
부적절한 인가
중요한 자원에 대한 잘못된 권한 설정
취약한 암호화 알고리즘 사용
중요 정보 평문 저장
중요 정보 평문 전송
하드 코드된 비밀번호
충분하지 않은 키 길이 사용
적절하지 않은 난수값 사용

시간 및 상태를 통한 보안 약점 종류

경쟁 조건 : 검사 시점과 사용 시점(TOCTOU)
종료되지 않는 반복문 또는 재귀함수

에러 처리에 대한 보안 약점 종류

에러 메시지를 통한 정보 노출
에러 상황 대응 부재
부적절한 예외 처리

코드 오류 보안 약점 종류

널 포인터 역참조
부적절한 자원 해제
해제된 자원 사용
초기화되지 않은 변수 사용

캡슐화 보안 약점 종류

잘못된 세션에 의한 데이터 정보 노출
제거되지 않고 남은 디버그 코드
시스템 데이터 정보 노출
public 메소드로부터 반환된 private 배열
private 배열에 public 데이터 할당

API 오용 보안 약점 종류

DNS lookup에 의존한 보안 결정
취약한 API 사용

암호화 알고리즘

암호 알고리즘 개념

평문과 암호문으로 각각 변경할 때 사용되는 알고리즘
암호화(평문→암호문)
복호화(암호문→문)

공개키(Public Key, 비대칭키) 암호화 기법

암호키와 해독키가 서로 다른 기법
키 개수는 2N개가 필요
RSA(Rivest Shamir Adleman) : MIT, 소인수 분해의 어려움
ElGama 기법 : 이산대수 문제의 어려움

비밀키(Private Key, 대칭키) 암호화 기법

동일 키로 암복호화하는 기법
키 개수는 N(N-1)/2개가 필요
스트림 방식
평문의 길이와 동일한 스트림 생성
RC4
블록 방식
DES
AES
ARIA
SEED
IDEA

해시(HASH) 암호화 방식

디지털 서명에 이용
데이터 무결성 제공
블록체인에서 체인 형태로 사용
데이터 신뢰성 보장
의사난수
SHA

Salt

시스템 저장 패스워드들은 Hash 또는 암호화 알고리즘 결과값으로 저장

서비스 공격 유형

Dos(Denial of Service, 서비스 거부)

정의
시스템 자원을 부족하게 하여 원래 의도된 용도로 사용하지 못하게 하는 공격 방법
가용성을 위엽하는 행위
IP주소를 속여 다량으로 서버에 보냄
종류
스머프 : 위조, 시스템 상태를 불능으로 만드는 공격, ICMP 응답 패킷을 전송
SYN 플러딩 : TCP 취약점 악용 - Half-Open 연결 시도가 가능
UDP 플러딩 : 대량의 UDP 패킷을 만들어 보내는 공격 방법
Ping 플러딩 : 특정 사이트에 매우 많은 ICMP Echo를 보내는 것
Ping of Death : 비정상적 ICMP 패킷을 전송하여 시스템 성능을 저하시키는 공격 방법
티어드랍 : 자원을 고갈시키는 방법
랜드 어택 : 출발지와 목적지 주소를 동일하게 함으로 실행 속도가 느려지거나 동작이 마비되어 서비스 거부 상태에 빠지도록 하는 공격 방법

DDoS(Distributed Denial of Service, 분산 서비스 거부)

여러 대의 공격자를 분산 배치하여 동시에 서비스 거부 공격을 하는 것
공격용 도구
Trinoo, TFN(Tribe Flood Network), TFN2K, Stackeldraht

피싱(Phishing)

가짜 웹 사이트로 개인정보를 탈취하는 것

이블 트윈 공격(evil twin Attack)

피싱 사기 무선 버전

파밍(Pharming)

도메인 탈취, DNS 서버 주소를 변경하여 오인을 유발해 개인정보를 탈취하는 수법

랜섬웨어(Ransomware)

시스템을 잠그거나 데이터를 암호화해 사용할 수 없도록 하고 이를 인질로 금전을 요구하는데 사용되는 악성 프로그램

키 로거(Key Logger)

키보드 움직임을 탐지해 개인정보를 탈취하는 수법

제로데이(Zero-day) 공격

알려지지 않은 취약점 및 보안 시스템에서 탐지되지 않는 악성코드 등을 감염시키는 것

백도어(Back Door)

정상적인 보안 절차를 우회하는 악성 소프트웨어
NetBus, Back Orifice, RootKit 등이 존재
탐지 방법
무결성 검사, 열린 포트 확인, 로그 분석, SetUID 파일 검사
tripwire : 크래커가 침입하여 백도어를 만들어 놓거나, 설정 파일을 변경했을 때 분석하는 도구

TCP 세션 하이재킹

TCP 3 Way Handshake 단계에서 발생하는 취약점을 이용한 공격기법
비동기화 상태
동기화 상태
세션 하이재킹 탐지 기법
비동기화 상태 감지
ACK STORM 탐지
패킷의 유실 및 재전송 증가 탐지
예상치 못한 접속의 리셋 탐지
SSH 프로토콜 사용

서버 인증 및 서버 접근 통제

서버 인증

사용자 인증 기법

지식 기반 인증
소유 기반 인증
생체(행위) 기반 인증

서버 접근 통제

접근 통제

크래커의 침입 보호
블법적인 접근 방지 과정
종류
강제적 접근 통제
임의적 접근 통제
역할 기반 접근 통제

접근 통제 요소

식별
인증
인가

대표적 접근 통제 모델

벨라파듈라 모델(BLP : Bell-LaPadula Confidentiality Model) : 자신의 귄한 보다 낮은 보안 레벨 권한을 가진 경우 높은 보안 레벨의 문서를 읽을 수 없고 자신의 권한보다 낮은 수준의 문서만을 읽을 수 있다.
SSO(Single Sign-On) : 하나의 시스템에서 인증에 성공하면 접근 권한도 얻는 시스템
Biba Integrity Model
CWM(Clark-Wilson Integrity Model)

강제적 접근 통제(MAC : Mandatory Access Control)

다단계 보안 모델
Biba, Clark-Wilson, 만리장성 모델 등 존재

임의적 접근 통제(DAC : Discretionary Access Control)

정보 소유자가 보안 레벨을 결정하고 권한 레벨을 설정하는 방법

역할 기반 접근 통제(RBAC : Role Based Access Control)

직책에 대해 권한 부여 - 효율적 권한 관리 가능

MAC vs DAC vs RBAC

보안 솔루션과 보안 아키텍처

보안 솔루션

IDS(Intrusion Detection System, 침입 탐지 시스템)

정의
침입 공격에 대하여 탐지하는 것을 목표
분류
HIDS(호스트 기반) : 컴퓨터 시스템 내부 감시
NIDS(네트워크 기반) : 네트워크상의 모든 패킷을 캡처링하여 분석
침입 탐지 기법
오용 탐지(Misuse Detection) : 알려진 공격 패턴과 일치하는 지 검사
이상 탐지(Anomaly Detection) : 통계적으로 침입 탐지

방화벽(Firewall)

시스템 침투를 막는 것
유형
패킷 필터링
상태 검사
응용 레벨 게이트웨이
회선 레벨 게이트웨이
베스천 호스트 : 방화벽 시스템 관리자의 중점 관리 시스템

방화벽 5가지 구성 형태

스크리닝 라우터(Screening Router)
이중 홈 게이트웨이
듀얼 홈드 호스트
단일 홈 게이트웨이
스크린된 호스트 게이트웨이
스크린된 서브넷 게이트웨이

IPS(Intrusion Prevention System, 침입 방지 시스템)

사후 조치 기술
IDS와 방화벽의 장점 결합
네트워크 보안 시스템
외부 침입 차단
내부 자원 보호

DMZ(DeMilitarized Zone)

보안 조치가 취해진 네트워크 영역

IPSec(IP Security)

통신 세션의 각 IP 패킷 암호화 및 인증을 하는 안전한 인터넷 프로토콜(IP)
ESP : 인증, 데이터 무결성, 기밀성 보장
AH : 발신지 호스트 인증, 패킷 무결성 보장
운영모드
Tunnel 모드
Transport 모드

DLP(Data Loss Prevention)

기업 데이터 유출 방지 목표

ESM(Enterprise Security Management, 통합 보안 관리)

각종 로그 통합적 관리
정보 시스템 보안성을 향상시키고 안정성을 향상

VPN(Virtual Private Network, 가상 사설망)