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

정보처리기사 필기 공부 5과목 (정보시스템 구축관리)

by 애기 개발자 2024. 2. 2.
반응형

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

소프트 웨어 개발 방법론

구조적 방법론

  • 정형화된 분석 절차에 따라 사용자 요구사항을 파악하여 문서화하는 처리 중심의 방법론
  • 복잡한 문제를 다루기위해 분할 정복 적용

정보공학 방법론

  • 정보 시스템의 개발 위해 정형화된 기법들을 상호 연관성 있게 통합 및 적용하는 자료(data)중심 방법론
  • DB 설계를 위한 ERD 사용

컴포넌트 방법론 (CBD)

  • 컴포넌트를 조합하여 하나의 새로운 애플리케이션을 만드는 방법론
  • 컴포넌트의 재사용
  • 기능 추가가 쉬워 확장성 보장
  • 유지보수 비용 최소화, 생산성 및 품질 향상
  • 분석단계에서 사용자 요구사항 정의서 산출

 

 

SW공학의 발전적 추세

SW재사용 방법

  • 합성 중심: 모듈을 만들어서 끼워 맞춰 소프트웨어를 완성 시키는 방법
  • 생성 중심 : 추상화 형태로 쓰여진 명세를 구체화하여 프로그램을 만드는 방법  

SW 재공학의 주요 활동

  • 분석(Analysts) : 기존 SW 명세서를 확인하여 동작을 이해하고, 재공학할 대상을 선정
  • 재구성(Restructuring) : 기존 SW의 구조를 향상 시키기 위해 코드를 재구성
  • 역공학(Reverse Engineering) : 기존 SW를 분석하여 개발 과정과 데이터 처리 과정을 설명하는 분석 및 설계 정보를 재발견하거나 다시 만드는 활동
  • 이식(Migration) : 기존 SW를 다른 운영체제나 HW환경에서 사용할 수 있도록 변환

CASE (Computer Aided Software Engineering)

  • 소프트웨어 개발 과정의 전체 또는 일부를 자동화 하는 것
  • 장점
    • 개발기간 단축, 개발 비용 절감
    • 자동화 기법을 통해 품질 향상
    • 유지보수 간편
    • 모듈의 재사용성 향상
  • 주요 기능
    • SW 생명 주기 전 단계의 연결
    • 다양한 SW 개발 모형 지원
    • 그래픽 지원
    • 모델들의 모순 검사 및 오류 검증
    • 자료 흐름도 작성
  • 원천 기술
    • 구조적 기법, 프로토타이핑, 자동프로그래밍, 정보 저장소, 분산처리

 

상향식 비용 산정 기법

LOC(원시 코드 라인 수)

  • 비관치 (가장 긴 라인), 낙관치(가장 짧은 라인), 기대치(측정된 평균 라인)
  • 예측치 = (낙관치 + 비관치 + 4*기대치) / 6

 

수학적 산정 기법

COCOMO 모형

  • 보헴(Boehm) 제안
  • LOC에 의한 비용 산정기법
  • M/M 

COCOMO (Constructive Cost Model) 모형의 특징 

  • 프로젝트를 완성하는데 필요한 man-month로 산정 결과를 나타냄
  • 보헴 (Boehm)이 제안한 것으로 원시코드 라인수 (LOC)에 의한 비용 산정 기법
  • 비교적 작은 규모의 프로젝트를 통계 분석한 결과를 반영한 모델
  • 중소규모 소프트웨어 프로젝트 비용 추정에 적합
  • 개발 유형에 따라 조직형, 반분리형, 내장형으로 구분
    • 조직형 (Organic)
      • 5만 라인 이하
      • 사무 처리용, 업무용, 과학용 소프트웨어 개발에 적합
    • 반분리형 (Semi-Detached)
      • 30만 라인 이하
      • 컴파일러, 인터프리터 개발에 적합
    • 내장형 (Embedded)
      • 30만 라인 이상
      • 미사일 유도 시스템, 실시간 처리 시스템 개발에 적합

 

Putnam 모형

  • 소프트웨어 생명 주기의 전 과정 동안 사용될 노력의 분포를 가정해주는 모형
  • 시간에 따른 함수로 표현되는 Rayleigh-Norden 곡선의 노력분포도를 기초함
  • 대형 프로젝트의 노력 분포 산정에 이용
  • 개발기간이 늘어날수록 프로젝트 적용 인원의 노력 감소

 

기능 점수(FP) 모형 - 가중치 증대 요인

  • 자료 입력(입력 양식)
  • 정보 출력(출력 보고서)
  • 명령어(사용자 질의수)
  • 데이터 파일
  • 필요한 외부 루틴과의 인터페이스

 

프로젝트 일정 계획

PERT (프로그램 평가 및 검토 기술)

  • 프로젝트에 필요한 전체 작업의 상호관계를 표시하는 네트워크로 각 작업별로 낙관치, 기대치, 비관치로 종료시기를 결정
  • 작업들 간의 상호 관련성, 결정경로, 경계시간, 자원할당 등을 제시한다.
  • 각 작업들이 언제 시작하고 언제 종료되는 지에 대한 일정을 네트워크 도표를 이용하여 표시한다.

CPM (임계 경로 기법)

  • 프로젝트 완성에 필요한 작업을 나열하고 작업에 필요한 소요 기간을 예측하는데 사용
  • 경영층의 과학적인 의사 결정 지원
  • 효과적인 프로젝트 통제 가능
  • 병행작업 가능하도록 계획 가능, 이를 위한 자원 할당 가능
  • 임계 경로는 최장 경로를 의미

간트 차트(Gantt Chart)

  • 프로젝트 각 작업이 언제 시작하고 종료되는지 막대 도표로 표기
  • 수평 막대 길이는 작업의 시간

 

소프트웨어 개발 표준

CMMI (Capability Maturity Model Integration)

  • 초기(Initial)
  • 관리(Managed)
  • 정의(Defined)
  • 정량적 관리(Quantitatively Managed)
  • 최적화(Optimizing)

SPICE (Software Process Improvement and Capability dEtermination)

  • SW의 품질 및 생산성 향상을 위해 소프트웨어 프로세스를 평가 및 개선하는 국제 표준
  • 목적
    • 프로세스 개선을 위해 개발 기관이스스로 평가하는 것
    • 기관에서 지정한 요구조건의 만족여부를 개발 조직이 스스로 평가
    • 계약 체결을 위해 수탁 기관의 프로세스를 평가
  • 프로세스 수행 능력 단계
    • Level 0 - 불완전(Incomplete)
    • Level 1 - 수행(Performed)
    • Level 2 - 관리(Managed)
    • Level 3 -  확립(Established)
    • Level 4 - 예측(Predictable)
    • Level 5 - 최적화(Optimizing)

프레임워크

  • 개발에 필요한 요소들을 일반화하여 쉽게 구현할 수 있도록 여러 기능들을 제공해주는 반제품 형태의 소프트웨어
  • 표준화된 개발 기반으로 인해 사업자 종속성 해소
  • 개발해야할 일부분이 이미 내장된 클래스 라이브러리로 구현되어 있음
  • 특성
    • 모듈화
    • 재사용성
    • 확장성
    • 제어의 역흐름

 


2장 IT프로젝트 정보시스템 구축 관리

네트워크 관련 신기술

소프트웨어 정의 기술(SDE, SDx; Software-Defined Everything)

  • 소프트웨어 정의 네트워킹 (SDN)
    • 네트워크를 컴퓨터처럼 모델링하여 여러 사용자가 각각의소프트웨어들로 네트워킹을 가상화하여 제어하고 관리하는 네트워크
    • 하드웨어에 의존하는 네트워크보다 효율적
    • 기존 네트워크에는 영향을 주지 않으면서 특정 서비스의 전송 경로 수정을 통해 인터넷상에서 발생하는 문제 처리
  • 소프트웨어 정의 데이터 센터(SDDC)
    • 데이터 센터의 모든 자원을 가상화하여 인력의 개입 없이 소프트웨어 조작만으로 관리 및 제어되는 데이터 센터
  • 소프트웨어 정의 스토리지 (SDS)
    • 물리적인 데이터 스토리지를 가상화하여 여러 스토리지를 하나처럼 관리하거나, 하나의 스토리지를 여러 스토리지로 나눠 사용

IoT

  • 올조인(AllJoyn)
    • 오픈소스 기반 IoT플랫폼
    • 서로 다른 OS나 HW를 사용하는 기기들이 표준화된 플랫폼을 이용함으로써 서로 통신 및 제어 가능
  • 메시 네트워크(Mesh Network)
    • 차세대 이동통신, 홈네트워킹, 공공 안전 등 특수 목적을 위한 네트워크
    • 수많은 디바이스를 그물망(Mesh)과 같이 유기적으로 연결하여 모든 구간을 동일한 무선망처럼 구성하여 사용자가 안정적인 네트워크를 사용
  • 와이선(Wi-SUN)
    • 스마트 그리드와 같은 장거리 무선 통신을 필요로 하는 IoT서비스를 위한 저전력 장거리 통신기술
    • 낮은 지연 속도, 메시 네트워크 기반확장성, 펌웨어 업그레이드 용이성 등으로 짧은 시간 동안 데이터 전송이 빈번한 검침 분야에 유용
  • UWB (Ultra WideBand, 초광대역)
    • 짧은거리에서 많은 양의 디지털 데이터를 낮은 전력으로 전송하기 위한 무선 기술
    • 무선 디지털 펄스, 블루투스와 비교(근거리)
    • 땅 속이나 벽면 뒤로도 전송이 가능, 지진 등 재해가 일어났을 때 탐지 가능
  • 피코넷(PICONET)
    • 여러 개의 독립된 통신장치가 블루투스나 UWB를 통해 통신망을 형성하는 무선 네트워크 기술
    • 주로 수십 미터 이내의 좁은 공간에서 네트워크를 형성
  • USN (Ubiquitous Sensor Network, 유비쿼터스 센서 네트워크)
    • 각종 센서로 다양한 정보를 무선으로 수집
    • 필요한 모든곳에 RFID 태그를 부착, 이를 통해 사물의 인식 정보와 주변 환경 정보까지 탐지한 모든 데이터 관리
  • SON (Slef Organizing Network, 자동 구성 네트워크)
    • 주변 상황에 맞추어 스스로 망을 구성
    • 장애 발생시 자체 치유 가능
  • 저전력 블루투스 기술 (BLE; Bluetooth Low Energy)
    • 일반 블루투스와 동일한 2.4GHz 주파수를 사용하지만 연결 되지 않은 대기 상태에서는 절전모드 유지
  • NFC (Near Field Communication, 근거리 무선 통신)
    • 고주파(HF)를 이용한 근거리 무선 통신, 아주 가까운 거리에서 양방향 통신을 지원하는 RFID기술의 일종

 

 

클라우드 컴퓨팅

  • 클라우드 기반 HSM
    • 클라우드 기반 암호화 키의 생성, 저장, 처리 등의 작업을 수행하는 보안기기
    • 암호화 키 생성이 HW적으로 구현되기 때문에 SW적으로 구현된 암호 기술이 가지는보안 취약점 무시
  • 파스-타 (Paas-TA)
    • 소프트웨어 개발 환경을 제공하기 위해 개발한 개방형 클라우트 컴퓨팅 플랫폼
    • 국내 IT서비스 경쟁력 강화를 목표, 인프라 제어 및 관리 환경, 실행 환경, 개발 환경, 서비스 환경, 운영 환경으로 구성
  • 징(Zing)
    • 10cm이내 거리에서 데이터 전송이 가능한 초고속 NFC 
    • 기기를 키오스크에 갖다 대면 원하는 데이터를 바로 가져가는 기술
    • 근거리로 가까이 가면 지이이잉 하고 소리난다고 외운다
  • NGN (Next Generation Network, 차세대 통신망)
    • ITU-T에서 개발하고 있는 유선망 기반의 차세대 통신망
  • WBAN (Wireless Body Area Network)
    • 웨어러블, 몸에 심는 형태의 센서나 기기를 무선 연결
  • 스마트 그리드(Smart Grid)
    • 정보 기술을 전력에 접목해 효율성을 높인 시스템, 전력IT라고도 함
    • 전력선을 기반으로 모든 통신, 정보, 관련 애플리케이션 인프라를 하나의 시스템으로 통합
    • 효율적인 에너지 관리

 

 

 

네트워크 구축

성형(Star, 중앙 집중형)

  • Point-to-Point 방식
  • 단말장치 추가 제거 쉬움
  • 하나의 단말장치가 고장나도 괜찮은데 중앙 고장나면 안됨
  • 중앙 집중식으로 교환 노드의 수가 적다.

링형(Ring, 루프형)

  • Point-to-Point
  • 분산 및 집중 제어 가능
  • 각 단말장치에서 전송 지연 발생
  • 단방향 또는 양방향 가능
  • 단방향의 경우 하나만 고장나도 전부 먹통

버스형(Bus)

  • 한 개의 통신 회선에 여러대의 단말 장치 연결
  • 물리적 구조 간단
  • 단말기 추가 제거 용이
  • 단말장치가 고장나도 전체에 영향을 주지않아 신뢰성이 높음
  • 기밀 보장이 어려움, 통신 회선의 길이 제한

계층형(Tree, 분산형)

  • 분산 처리 시스템 구성 방식

망형(Mesh)

  • 많은 단말장치로부터 많은 양의 통신이 필요할 때
  • 공중 데이터 통신망에 사용, 통신 회선의 총 경로가 가장 길다
  • 통신 회선 장애시 다른 경로를 통해 데이터 전송
  • 노드가 n개일 때 n(n-1)/2 회선 필요, 노드당 n-1개 필요

 

CSMA/CD (Carrier Csese Muliple Access/Collision Detection)

  • 데이터 프레임간의 충돌이 발생하는 것을 인정하고 이를 해소하기 위해 CSMA 방식에 충돌 검출 기능과 충돌 발생시 재송신 하는 기능 추가
  • 통신 회선이 사용중이면 일정 시간 동안 대기하고, 통신회선 상에 데이터가 없을 때만 데이터를 송신, 송신 중에도 전송로의 상태를 계속 감시
  • 유선, 감지

CSMA/CA (Carrier Csese Muliple Access/Collision Avoidance)

  • 무선 랜에서 데이터 전송시 매체가 비어있음을 확인한 뒤 충돌을 피하기 위해 일정한 시간을 기다린후 데이터를 전송
  • 회선을 사용하지 않는 경우에도 확인 신호를 전송하여 동시 전송에 의한 충돌 예방
  • 무선, 회피

 

경로제어 / 트래픽 제어

경로 제어 프로토콜 (Rounting Protocol)

IGP (Interior Gateway Protocol, 내부 게이트웨이 프로토콜)

  • RIP (Routing Information Protocol)
    • 가장 많이 사용하는 라우팅 프로토콜
    • 거리 벡터 라우팅 프로토콜이라 불림
    • 최단 경로 탐색에 벨만-포드 알고리즘 사용
    • 소규모 네트워크에 효율적
    • 최대 홉 수를 15홉으로 제한
  • OSPF (Open Shortest Path First protocol)
    • RIP의 단점 해결, 대규모 사용
    • 최단 경로 탐색에 다익스트라 알고리즘 사용

EGP (Exterior Gateway Protocol)

  • 자율 시스템 간의 라우팅, 즉 게이트웨이 간의 라우팅에 사용

BGP (Border Gateway Protocol)

  • 자율 시스템 간의 라우팅 프로토콜, EGP 단점 보안

 

트래픽 제어

흐름 제어(Flow Control)

  • 네트워크의 패킷의 양이나 속도를 규제하는 기능
  • 정지-대기 (Stop-and-Wait)
    • 수신 측의 Ack을 받은 후 다음 패킷 전송
    • 한번에 하나의 패킷만 전송
  • 슬라이딩 윈도우 (Sliding Window)
    • 확인 신호를 이용해 송신 데이터 양 조절
    • 수신 측의 신호 받지 않더라도 미리 정해진 패킷의 수만큼 연속 전송
    • 한번에 여러개의 패킷을 보내 전송 효율 좋음
    • 송신 측은 수신 측으로부터 확인 신호(Ack) 없이도 보낼 수 있는 패킷의 최대치를 미리 약속받는데, 이 패킷의 최대치가 윈도우 크기
    • 긍정수신 응답이 전달되면 윈도우 크기 증가
    • 부정 수신 응답이 전달되면 윈도우 크기 감소

폭주(혼잡) 제어(Congestion Control)

- 네트워크 패킷 수를 조절하여 오버플로 방지

  • 느린 시작(Slow Start)
    • 윈도우의 크기를 1, 2, 4, 8, 과 같이 2배씩 증가시켜 처음엔 느리지만 갈수록 빨라짐
    • 전송 데이터 크기가 임계값에 도달하면 혼잡 회피 단계로 넘어감
  • 혼잡 회피 (Congestion Avoidance)
    • 느린 시작이 임계값에 도달하면 혼잡으로 간주하고 회피를 위해 윈도우의 크기를 1씩 선형적으로 증가시켜 혼잡을 예방

 

SW 관련 신기술

그레이웨어(Grayware)

  • 유용할수도, 악의적일 수도 있는 애드웨어, 트랙웨어 같은 프로그램

매시업(Mashup)

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

증발품(Vaporware)

  • 판매계획, 배포계획은 있으나 실제로 판매되지 않은 SW

서비스 지향 아키텍처 (SOA; Service Oriented Architecture)

  • 기업의 소프트웨어 인프라인 정보시스템을 공유와 재사용이 가능한 서비스 단위나 컴포넌트 중심으로 구축하는 정보기술 아키텍처
  • 기업의 IT시스템을 유연하게 사용할 수 있음
  • SOA기반 애플리케이션 계층
    • 표현계층
    • 업무 프로세스 계층
    • 서비스 중간 계층
    • 애플리케이션 계층
    • 데이터 저장 계층

서비스형 소프트웨어 (Saas)

  • SW의 여러 기능 중 사용자가 필요로 하는 서비스만 이용할 수 있도록 한 소프트웨어
  • 공급업체가 하나의 플랫폼을 이용해 다수의 고객에게 소프트웨어 서비스를 제공하고, 사용자는 이용한 만큼 돈 지불

디지털 트윈

  • 현실속의 사물을 대신해 모의 실험 하기위한 용도로 사용

텐서플로(TensorFlow)

  • 구글 제작.
  • 다양한 작업에 대해 데이터 흐름 프로그래밍을 위한 오픈소스 라이브러리
  • C++제작, 구글 검색, 음성인식, 번역 등 사용 가능

도커(Docker)

  • 컨테이너 기술을 자동화하여 쉽게 사용할 수 있게 하는 오픈소스 프로젝트
  • 컨테이너 안에 프로그램들을 배치시켜 일을 자동화 해줌

스크래피(Scrapy)

  • Python 웹 크롤링 프레임워크

 

보안 관련 신기술

  • 블록체인
  • 분산 원장 기술(DLT; Distributed Ledger Technology)
  • 양자 암호키 분배 (QKD; Quantum Key Distribution)
    • 양자 통신을 위해 비밀키를 분배관리하는 기술
  • 프라이버시 강화 기술 (PET; Privacy Enhancing Technology)
  • 비트로커 (BitLocker)
    • 윈도우7부터 지원, 윈도우 전용
    • TPM과  AES-128 알고리즘 사용
  • 서비스형 블록체인 (Baas)
    • 블록체인앱의 개발 환경을 클라우드 기반으로 제공하는 서비스
    • 다른 블록체인 기술을 보다 편리하게 사용하게 해줌
  • OWASP (the Open Web Application Security Project, 오픈 웹 애플리케이션 보안 프로젝트)
    • 보안 취약부분을 연구하는 비영리 단체
  • TCP 래퍼 (TCP Wrapper)
    • 외부 컴퓨터의 접속 여부를 점검하여 허용 및 거부하는 보안 도구
  • 허니팟 (Honeypot)
    • 비정상적 접근을 탐지하기 위해 설치해둔 시스템
  • DPI (Deep Packet Inspection)
    • OSI 7 전 계층의 프로토콜과 패킷 내부의 콘텐츠를 파악하여 침입시도, 해킹을 탐짐하고 트래픽을 조정하기 위한 패킷 분석 기술

 

 

HW 관련 신기술

고가용성 솔루션 (HACMP; High Availability Clustering MuliProcessing)

  • 안정적인 서비스 운영 위해 장애 발생시 즉시 다른 시스템으로 대체 가능한 환경울 구축하는 매커니즘
  • 각 시스템 간에 공유 디스를 중심으로 클러스터링으로 엮어 다수의 시스템을동시에 연결

RAID (Redundant Array of Inexpensive Disk, Redundant Array of Independent Disk)

  • 여러 개의 하드디스크로 디스크 배열을 구성하여 파일을 구성하고 있는 데이터 블록들을 서로 다른 디스크에 분산하여 저장할 경우 그 볼륵들을 여러 디스크에서 동시에 읽거나 쓸 수 있음
  • 디스크 속도 매우 향상
  • RAID는 한 디스크에만 문제가 생겨도 전체가 손상됨
  • 오류 검출 방법에 따라 RAID1~RAID5 5종류 있음

N-Screen

  • 여러개의 서로 다른 단말기에서 동일한 콘텐츠를 자유롭게 보는 것

 

 

DB 관련 신기술

  • 빅데이터
  • 브로드 데이터
    • 빅데이터와 달리 다양한 정보를 뜻함, SNS나 위치 정보 등
  • 메타 데이터
    • 데이터를 정의하고 설명해주는 데이터
    • 주로 빠르게 검색하거나 내용을 간략하고 체계적으로 하기위해 사용
    • 엘라스틱 서치같은 느낌
  • 디지털 아카이빙
  • 하둡 (Hadoop)
    • 오픈소스 기반 분산 컴퓨팅 플랫폼
    • 일반 PC급 컴퓨터들로 가상화된 대형 스토리지를 형성, 그 안에 보관된 거대한 데이터 세트를 병렬 처리
    • 하둡과 RDBMS 간 대용량 데이터를 전송할 때 스쿱(Sqoop) 사용
  • 맵 리듀스
  • 타조 (Tajo)
    • 우리나라에서 주도하여 개발
    • 아파치 하둡 기반의 분산 데이터 웨어하우스 프로젝트
    • 대규모 데이터 처리와 실시간 상호분석에 사용
  • 데이터 다이어트
  • 데이터 마이닝 (Data Mining)
    • 대량의 데이터를 분석하여 데이터 속에 내재되어 있는 변수 사이의상호관계를 규명하여 패턴화
    • 효율적인 데이터 추출 가능
  • OLAP (Online Analytical Processing)
    • 다차원으로 이루어진 데이터로부터 통계적인 요약을 분석하여 사용
    • OLAP 연산 : Roll-up, Drill-down, Drill-through, Drill-across, Pivoting, Slicing, Dicing  

 

 

 

회복 / 병행제어

 - 트랜잭션들을 수행하는도중 장애가 발생하여DB가 손상되었을 때 손상 이전으로 복구하는 작업

   

장애 유형

  • 트랜잭션 장애
  • 시스템 장애
  • 미디어 ㅈ아애

회복 기법

연기 갱신 기법 (Deferred Update)

  • 트랜잭션이 성공적으로 완료될 때까지 DB에 대한 실질적인 갱신을 연기
  • 트랜잭션이 수행되는 동안 갱신된내용은 로그에 보관
  • Redo작업만 가능

 즉각 갱신 기법 (Immediate Update)

  • 트랜잭션이 데이터를 갱신하면 부분 완료되기 전이라도 즉시 실제 DB에 반영
  • Redo와 Undo 사용

그림자 페이지 대체 기법 (Shadow Paging)

  • 갱신 이전 데이터베이스를 일정 크기로 페이지 복사본인 그림자페이지로 별도 보관, 장애가 발생하여 Rollback 할 때 갱신된 이후 실제 페이지 부분에 그림자 페이지를 대체하여 회복
  • 로그, Undo, Redo 필요 없음

검사점 기법

  • 일정 지점부터 회복하는 것

 

병행 제어 (Concurrency Control)

 - 여러개의 트랜잭션을 병행 수행할때, 동시에 실행되는 트랜잭션들이 데이터베이스의 일관성을 파괴하지 않도록 트랜잭션 간의 상호작용을 제어하는 것

 

목적

  • 데이터베이스의 공유 최대화
  • 시스템의 활용도 최대화
  • 데이터베이스의 일관성 유지
  • 사용자 응답 시간 최소화

 

병행제어 기법

  • 로킹 (Locking)
    • 주요 데이터의 액세스를 상호 배타적으로 하는 것
    • 트랜잭션들이 어떤 로킹 단위를 액세스하기 전에 Lock(잠금)을 요청해서 Lock이 허락되어야 그 로킹 단위를 액세스 할 수 있음
  • 타임 스탬프 순서 (Time Stamp Ordering)
    • 직렬성 순서를 결정하기 위해 트랜잭션 간의 처리 순서를 미리 선택
    • 가장 보편적
    • 교착상태 발생하지 않음
  • 최적 병행수행 (검증 기법, 확인 기법, 낙관적 기법)
    • 트랜잭션이 Read Only일 경우 충동률이 매우 낮아서 병행제어 기법을 사용하지 않아도 일관성 있게 유지됨
  • 다중 버전 기법
    • 타임 스탬프 기법 이용, 다중 버전 타임 스탬프 기법 이라함
    • 타임 스탬프가 시간표를 이용한다면, 다중 버전은 버전을 이용함

* 로킹 단위

  • 병행제어에서 한꺼번에 로킹할 수 있는 객체의 크기
  • DB, 파일, 레코드, 필드 등이 로킹 단위
  • 로킹단위가 크면 로크 수가 작아 관리하기 쉽지만 병행성 수준이 낮아짐
  • 로킹단위가 작으면 로크 수가 많아 관리하기 복잡해 오버헤드 증가, 병행성 수준 높아짐

 

 

교착상태 (Dead Lock)

교착 상태 필요 충분 조건

  • 상호 배제 (Mutual Exclusion)
    • 한 번에 한 개의 프로세스만 공유 자원을 사용할 수 있어야 한다
  • 점유와 대기 (Hold and Wait)
    • 최소한 하나의 자원을 점유하고 있으면서 다른 프로세스에 할당되어 사용되고 있느 ㄴ자원을 추가로 점유하기 위해 대기하는 프로세스가 있어야 한다.
  • 비선점 (Non-preemption)
    • 다른 프로세스에 할당된 자원은 사용이 끝날 때까지 강제로 빼앗을 수 없어야 한다.
  • 환형 대기 (Circular Wait)
    • 공유 자원과 공유자원을 사용하기 위해 대기하는 프로세스들이 원형으로 구성되어 있어 자신에게 할당된 자원을 점유하면서 앞이나 뒤에 있는 프로세스의 자원을 요구해야 한다.

교착상태 해결 방법

  • 예방 기법 (Prevention)
    • 교착 상태가 발생하지 않도록 사전에 시스템을 제어
    • 교착상태 발생의 4가지 조건중 어느 하나를 제거하여 수행
    • 자원의 낭비가 가장 심함
  • 회피 기법 (Avoidance)
    • 교착상태가 발생할 가능성을 배제하지 않고 교착상태가 발생하면 적절히 회피하는 방법
    • 은행원 알고리즘 사용 (Banker's Algorithm)
      • 다익스트라, 은행에서 모든 고객의 요구가 충족되도록 현금을 할당하는데서 유래
  • 발견 기법 (Detection)
    • 시스템에 교착상태가 발생했는지 점검하여 교착상태에 있는 프로세스와 자원을 발견하는 것
    • 교착상태 발견 알고리즘과 자원 할당 그래프 사용
  • 회복 기법 (Recovery)
    • 교착상태를 일으킨 프로세스를 종료하거나 교착상태의 프로세스에 할당된 자원을 선점하여 프로세스나 자원을 회복하는 것

 


3장 소프트웨어 개발 보안 구축

 

Secure SDLC

 - 보안상 안전한 소프트웨어를 개발하기 위해 SDLC (Software Development Life Cycle)에 보안 강화를 위한 프로세스 포함

  • CLASP
    • Secure Woftware 개발, SDLC의 초기 단계에서 보안 강화
    • 활동 중심, 역할 기반의 프로세스로 구성
    • 현재 운용중인 시스템에 적용
  • SDL
    • MS에서 개발, 기존의 SDLC 개선
    • 전통적인 나선형 모델
  • Seven Touchpoints
    • 소프트웨어 보안의 모범사례를 SDLC에 통합한 방법론
    • 설계 및 각 개발과정의 모든 산출물에 대해 위험 분석 및 테스트
    • SDLC의 각 단계에 관련된 7개의 보안 강화 활동 수행  

보안 요소

 - 기밀성, 무결성, 가용성, 인증, 부인 방지

  • 기밀성 (Confidentiality)
    • 시스템 내의 정보와 자원은 인가된 사용자에게만 접근 허용
    • 정보가 전송 중 노출되더라도 데이터 읽을 수 없음
  • 무결성 (Integrity)
    • 시스템 내의 정보는 오직 인가된 사용자만 수정
  • 가용성 (Availability)
    • 인가받은 사용자는 언제라도 사용할 수 있음
  • 인증 (Authentication
    • 시스템 내의 정보와 자원을 사용하려는 사용자가 합법적인 사용자인지 확인하는 모든 행위
    • PW, 지문검사 등
  • 부인 방지 (NonRepudiation)
    • 데이터를 송수신한 자가 송수신 사실을 부인할 수 없도록 송수신 증거를 제공

 

입력 데이터 검증 및 표현

보안 약점 종류

  • SQL 삽입(SQL Injection)
    • 웹 응용프로그램에 SQL을 삽입하여 내부 DB서버의 데이터를 유출 및 변조, 관리자 인증 우회
    • 동적 쿼리에 사용되는 입력데이터에 예약어 및 특수문자가 입력되지 않게 필터링하여 방지
  • 경로 조작 및 자원 삽입
    •    데이터 입출력 경로를 조작하여 서버 자원을 수정, 삭제
    • 사용자 입력값을 식별자로 사용하는경우 경로 순회 공격을 막는 필터를 사용하여 방지
  • 크로스사이트 스크립팅(XSS; Cross Site Scripting)
    • 웹페이지에 악의적인 스크립트를 삽입하여 방문자 정보를 탈취하거나 비정상적인 기능을 수행하도록 함
    • HTML태그의 사용을 제안하거나 스크립트에 삽입되지 않도록, < > & 등의 문자를 다른문자로 치환하여 방지
  • 운영체제 명령어 삽입
    • 외부 입력값을 통해 시스템 명령어의 실행을 유도하여 권한을 탈취하거나 시스템 장애를 유발
    • 웹 인터페이스를 통해 시스템 명령어가 전달되지 않도록 하고, 외부 입력값을 검증 없이 내부명령어로 사용하지 않음으로 방지 
  • 위험한 형식 파일 업로드
    • 악의적인 명령어가 포함된스크립트 파일 업로드
    • 업로드 되는 파일의 확장자 제한, 팡리명 암호화, 웹사이트와 파일 서버 분리 등으로 방지
  • 신뢰되지 않는 URL 주소로 자동 접속
    • 방문자를 피싱사이트로 유도
    • 연결되는 외부사이트 주소를 화이트리스트로 관리하여 방지
  • 메모리 버퍼 오버플로

 

 

암호 알고리즘

 

개인키 암호화(Private Key Encryption) 기법

 - 동일한 키로 데이터를 암호화하고 복호화한다.

  • 블록 암호화 방식 : DES, SEED, AES, ARIA, IDEA
  • 스트림 암호화 방식 : LFSR, RC4
  • 장점: 암/복호화 속도가 빠름, 알고리즘 단순, 공개키 암호 기법보다 파일 크기가 작음
  • 단점: 사용자의 증가에 따라 관리해야할 키의 수가 많아짐

공개키 암호화(Public Key Encryption) 기법

  •  암호화할 때 사용하는 공개키는 데이터 베이스 사용자에게 공개, 복호화할때 비밀키는 관리자가 비밀리에 관리
  • 암호화 대상이 n개일 때 키의 개수는 2n개
  • 비대칭 암호 기법이라고도 함, RSA 기법이 있음
  • 장점: 키의 분배가 용이, 관리해야할 키의 개수 적음
  • 단점: 암호화/복호화속도 느림, 알고리즘 복잡, 개인키 암호화 기법보다 파일의 크기가 큼

 

양방향 알고리즘 종류

  • SEED
    • 한국인터넷진흥원(KISA)에서 개발한 블록 암호화 알고리즘
    • 블록 크기 128비트, 키 길이에 따라 128, 256 분류
  • ARIA (Academy, Research Institute, Agency)
    • 국정원과 산학연협회에서 개발한 블록 암호화 알고리즘
    • 블록 크기 128, 키길이에 따라 128, 192, 256
  • DES (Data ncryption Standard)
    • 미국 NBS에서 발표한 개인키 암호화 알고리즘
    • DES를 3번 적용한 3dES 있음
    • 블록크기 64, 키 길이 56
  • AES (Advanced Encryption Standard)
    • 미국 표준 기술 연구소에서 발표한 개인키 암호화 알고리즘
    • DES의 한계때문에 개발
    • 블록크기 128, 키길이 56
  • RSA (Rivest Shamir Adleman)
    • MIT에서 개발한 공개키 암호화알고리즘
    • 큰 숫자를 소인수분해 하기 어렵다는 것에 기반
    • 공개키와 비밀키를 사용, 키는 상수
  • ECC (Elliptic Curve Cryptography)
    • RSA 암호 방식 대안
    • 이산대수 문제를 타원곡선으로 옮겨 기밀성과 효율성을 높임
  • Rabin
    • 미하엘 라빈 개발
    • 소인수분해 어려움에 안정성의 근거를 둔 암호화 알고리즘

 

해시 (Hash)

  • 임의의 길이의 입력 데이터나 메시지를 고정된 길이의 값이나 키로 변환
  • 해시함수라 부름, 해시 함수로 변환된 값이나 키를 해시값, 해시키로 부름
  • 무결성 검증을 위해 사용, 정보보호의 다양한 분야 활용
  • 복호화가 불가능, 일방향 함수
  • SHA 시리즈, MD5, N-NASH, SNEFRU

솔트(Salt)

  • 암호화를 수행하기에 앞서 원문에 무작위의 값을 덧붗이는 과정
  • 솔트를 사용하면 같은 패스워드에 대해 암호화를 수행하더라도 서로 다른 결과가 나타나 더 안전하게 암호화된 데이터 관리

4장 시스템 보안 구축

서비스 공격 유형

  • Ping of Deate (죽음의 핑)
    • Ping 명령을 전송할 때 ICMP 패킷의 크기를 인터넷 프로토콜 허용 범위 이상으로 전송하여 공격 대상의 네트워크를 마비시키는 서비스 거부 공격 방법
    • 방화벽 차단기술 개발
  • SMURFING (스머핑)
    • IP나 ICMP의 특성을 악용하여 엄청난 양의 데이터를 한 사이트에 집중적으로 보내 네트워크를 불능 상태로 만드는 방법
    • 각 네트워크 라우터에서 브로드캐스트 주소를 사용할 수 없게 미리 설정하여 방지
  • SYN Flooding
    • 공격자가 가상의 클라이언트로 윚아하여 3-way-handshake 과정을 의도적으로 중단시켜 공격 대상지인 서버가 대기상태에 놓여 정상적인 서비스를 수행하지 못하게 하는 방법
    • 수신지의 SYN 수신 대기 시간을 줄이거나 침입 차단 시스템 이용
  • TearDrop
    • Offset 값을 변경시켜 수신 측에서 패킷을 재조립할 때 오류로 인한 과부하를 발생시키는 방법
    • Offset이 잘못된 경우 해당 패킷을 폐기하여 방지
  • Land
    • 패킷을 전송할 때 송신 IP주소와 수신 IP주소 모두 공격 대상의 IP주소로 하여 공격 대상에게 전송하는 것
    • 이 패킷을 받은 공격 대상은 송신 IP주소가 자신이므로 자신에게 응답을 수행함
    • 이러한 패킷이 계쏙해서 전송될 경우 자신에게 무한히 응답하는 공격
    • 송신IP와 수신IP의 적절성을 검사하여 방지
  • DDoS (Distributed Denial of Service, 분산 서비스 거부) 공격
    • 여러 곳에 분산된 공격 지점에서 한 곳의 서버에 대해 분산 서비스 공격 수행
    • 공격 툴 : Trin00, TFN, TFN2K, Stacheldrhat 등

 

네트워크 침해 공격

  • 스미싱 (Smishing)
    • 문자 (SMS)를 이용해 공격
    • 최근은 문자에 링크를 걸어 apk파일을 설치하여 빼감
  • 스피어 피싱 (Spear Phishing)
    • 일반적 메일로 위장한 메일을 지속적으로 보내 메일 링크나 첨부파일을 클릭하게함
  • APT (Advanced Persistent Threats, 지능형 지속 위협)
    • 악성코드가 포함된 이메일을 꾸준히 보내 한번이라도 클릭하게함
    • 악성코드가 담긴 USB, p2p사이트 등으로도 퍼짐
  • 무작위 대입 공격 (Brute Force Attack)
    • 암호에 아무값이나 계속 입력
  • 큐싱 (Qshing)
    • QR코드로 낚시
  • Phishing
    • 이메일이나 메신저로 사칭해 개인정보 빼냄
  • Ping Flood
    • 특정 사이트에 매우 많은 ICMP 메시지를 보내 시스템이 정상적으로 동작하지 못하도록 하는공격
  • Evil Twin Attack
    • 실제 존재하는 동일한 이름의 와이파이 신호를 송출해 개인정보를 빼냄
  • 스위치 재밍 (Switch Jamming)
    • 위조된 매체 접근 제어(MAC)주소를 지속적으로 네트워크에 보내, 스위치 MAC주소 테이블의 저장기능을 혼란시켜 더미허브처럼 동작하게 하는 공격

 블루투스 공격

  • 블루버그 (BlueBug)
    • 블루투스 장비 사이의 취약점을 공격, 휴대폰을 원격 조정하거나 통화 감청
  • 블루스나프 (BlueSnarf)
    • 파일에 접근
    • 간편하게 정보를 교환할 수 있는 OPP를 사용
  • 블루프린팅 (BluePrinting)
    • 공격대상이될 블루투스 장비를 검색하는 활동
  • 블루재킹 (BlueJacking)
    • 블루투스를 이용해 스팸처럼 메시지를 익명으로 퍼트림

 

정보보안 침해 공격

  • 좀비PC
    • C&C서버의 제어를 받아 DDoS공격에 사용됨
  • C&C 서버
    • 해커가 원격지에서 감염된 좀비PC에 명령을 내리고 악성코드를 제어하기 위한 용도의 서버
  • 봇넷(Botnet)
    • 감염되어 악의적으로 사용될 수 있는 다수의 컴퓨터들이 네트워크로 연결된 형태
  • 웜 (Worm)
    • 네트워크를 통해 연속적으로 자신을 복제하여 시스템의 부하를 높여 서버를 다운시키는 바이러스
    • DDoS, 버퍼 오버플로, 슬래머 등이 웜 공격의 형태
  • 제로 데이 공격 (Zero Day Attack)
    • 보안 취약점이 발견되었을 때 발견된 취약점의 존재 자체가 공표되기 전에 해당 취약점을 통해 공격하는 것
    • 공격의 신속성을 의미
  • 키로거 공격 (Key Logger Attack)
    • 컴퓨터 사용자의 키보드 움직임을 탐지해 정보를 빼감
  • 랜섬웨어 (Ransomware)
    • 사용자의 컴퓨터의 파일이나 문서를 암호화해 열지 못하도록하고 돈을 요구
  • 백도어 (Back Door, Trap Door)
    • 시스템 설계자가 서비스 기술자나 유지보수 프로그램 작성자가 액세스 편의를 위해 시스템 보안을 제거하여 만들어 놓은 비밀통로
    • 컴퓨터 범죄에 악용되기도 함
  • 트로이 목마 (Trojan Horse)
    • 정상적인 프로그램으로 위장하여 숨어있다가 공격
    • 자기 복제 능력은 없음
  • 파밍 (Pharming)
    • 해커가 감염된 PC를 조작하여 이용자가 정상적인 사이트에 접속해도 중간에 도메인을 탈취해 가짜 도메인에 접속하게 한 다음 개인정보를 털어감

 

 

 

 


 

 

 

 

 

정보보안 3요소

  • 무결성 : 인가된 사용자에 대해서만 자원 수정이 가능하며 전송중인 정보는 수정되지 않는다.
  • 기밀성 : 인가된 사용자에 대해서만 자원 접근이 가능하다
  • 가용성 : 인가된 사용자는 가지고 있는 권한 범위 내에서 언제든 접근이 가능하다.  

 

 

 

응용프로그램 취약점 관리

  • 패치 관리
  • 응용프로그램 실행 권한의 제한
  • 운영체제의 접근 제한
  • 정보 수집 제한
  • 불필요한 서비스 및 악성 프로그램의 확인 및 제거
  • 시스템 무결성 검사 : 주요 파일을 검사하여 변경 내역 확인

 

Worm

  • 악성코드
  • 다른 컴퓨터의 취약점을 이용하여 스스로 전파하거나 메일로 전파되며 스스로 증식

 

Rogue Ware

  • Rogue security software : 가짜 백신 소프트웨어
  • 사용자 컴퓨터에 바이러스가 있다고 믿게 하고 실제로 악성프로그램을 설치하도록 하거나 가짜 악성 프로그램 제거 도구에 대한 비용을 지불하도록 설득.
  • 공포심으로 조종

 

Adware

  • 특정 소프트웨어를 실행할 때 자동으로 활성화되는 광고 프로그램
  • 자체로는 악성코드로 보기는 힘들지만, 무분별한 광고 팝업을 뜨는 등의 악용 위험성으로 악성코드로 분류되기도 함

 

Reflection Attack (반사 공격)

  • 송신자가 생선한 메시지를가로챈 공격자가 그 메시지를 다시 송신자에게 재전송하여 접근 권한을 얻는 공격 방법

 

 

Piggyback Attack (피그백 공격)

  • 공격자가 다른 사용자의 연결에서 계정을 사용하지 않는 비활성 기간 (비활선 간격)을 이용하여 시스템에 엑세스 한다.
  • 간선(회선 간) 공격이라고도 함.

 

 

XSS (Cross Site Script)

  • 웹사이트에 악성 스크립트를 주입하는 행위
  • 공격자가 상대방의 브라우저에 스크립트가 실행되도록 해 사용자의 세션을 가로채거나, 웹사이트를 변조하거나, 악의적 콘텐츠를 삽입하거나, 피싱공격을 진행하는 것.

 

 

 대칭 암호 알고리즘

  • 비교적 실행 속도가 빠르기때문에 다양한 암호의 함수로 사용
  • 키 교환이 필요하기 때문에 키를교환하는 중 키가 탈취될 수 있음
  • 대칭키 알고리즘으로 AES, IDEA 등이 있음.

 

비대칭 암호 알고리즘

  • 자신만이 보관하는 비밀키를 이용하여 인증
  • 전자 서명 등에 사용

 

 

접근 통제 방법

  • RBAC (Role Based Access Control)
    • 역할 기반 접근 통제
    • 권한이 있는 사용자들만 접근할 수 있는 방법
  • DAC (Discretionary Access Control)
    • 임의 접근 통제
    • 자원에 대한 접근을 사용자나 그룹의 신분에 따라 제한
    • 자원의 소유권을 가진 사람이 다른 사람의 접근을 허용하거나 제한할 수 있음
  • MAC (Mandatory Access Control)
    • 강제 접근 통제
    • 미리 정해진 자원의 보안 레벨과 사용자에게 허락된 접근 권한 비교

 

 

 

 

사용자 인증 유형

  • 지식 : 본인이 알고 있는 것 (패스워드, PIN 등)
  • 소유 : 본인이 가지고 있는 것 (토큰, 스마트 카드 등)
  • 존재 : 본인을 나타내는 것 (홍채, 지문 등)
  • 행위 : 본인이하는 것 (서명, 움직임, 음성 등)

 

NFS (Network File System)

  • 네트워크상에서 공유되는 파일 시스템.
  • 다른 원격 호스트의 파일 시스템을 로컬디스크에 접근하듯 간단하게 접근하여 자신의 디렉토리처럼 사용할수 있음

 

 

Network Mapper

  • 네트워크 보안을 위한 유틸리티.
  • 네트워크의 보안을 위해 물리적 연결과 어떤 서버와 운영체제가 작동 중인지 등을 조사하는 응용 프로그램

 

AOE Network

  • 어떤 프로젝트를 마치기 가지 수행되는 작업의 각 단계(상태)를 그래프의 정점(Vertex)으로 표현하고, 작업 하나가 완료되어 다음 단계로 넘어가는 시간을 그래프의 간선(Edge)으로 나타낸 방향 그래프

 

 

반응형

댓글