정보시스템 구축관리

Purple·2021년 8월 17일
0

정보처리기사

목록 보기
5/5

정보처리기사 필기 공부 요약 정리입니다.
공부는 수제비책을 중심으로 했습니다.
요약본 공유합니다.

*소프트웨어 생명주기 모델 종류

  • 폭포수 모델, 프로토타이핑 모델, 나선형 모델, 반복적 모델이 있다.

*폭포수 모델

  • 고전적 생명주기 모형이다.
  • 적용 경험과, 성공 사례가 많다.
  • 선형 순차적 모델이라고도 한다.
  • 단계적 정의와 산출물이 명확하다.
  • 타당성 검토 -> 계획 -> 요구사항 분석 -> 설계 -> 구현 -> 테스트 -> 유지보수
  • 개발 중 발생한 요구사항을 반영할 수 없다.

*프로토타이핑 모델

  • 개발과정에서 사용자의 요구를 충분히 반영한다.

  • 개발단계에서 오류 수정이 가능하여, 유지보수 비용이 많이 발생하지 않는다.

  • 최종 결과물이 만들어지기 전에, 의뢰자가 최종 결과물의 일부 혹은 모형을 볼 수 있다.

  • 의뢰자나 개발자 모두에게, 공동의 참조 모델을 제공한다.

  • 단기간 제작 목적을 두고, 비효울적 언어나 알고리즘을 사용하면 안 된다.

  • 프로토타입은 구현 단계의 구현 골격이 된다.

  • 프로토타입은 발주자나, 개발자 모두에게 공동의 참조 모델을 제공한다.

*나선형 모델

  • 위험을 최소화하기 위해, 점진적으로 개발해 나가는 모형이다.
  • 즉, 프로토타입을 지속적으로 발젼시켜, 최종 개발까지 이르는 개발방법이다.

*반복적 모델

  • 구축 대상을 나누어, 병렬적으로 개발 후 통합하거나, 반복적으로 개발하여 점증 완성시키는 SDLC모델이다.

*소프트웨어 개발방법론 종류

  • 구정객컴 애제
  • 구조적 방법론(Structured Development)
  • 정보공학 방법론(Information Engineering Development)
  • 객체지향 방법론(Object-Oriented Development)
  • 컴포넌트 기반 방법론(CBD : Component Based Development)
  • 애자일 방법론(Agile Development)
  • 제품 계열 방법론(Product Line Development)

*구조적 방법론에 속하는 나씨-슈나이더만 차트

  • 논리의 기술에 중점을 둔 도형식 표현 방법이다.
  • 연속, 선택 및 다중 선택, 반복 등의 제어논리구조로 표현한다.
  • 조건이 복합되어 있는 곳의 처리를, 시각적으로 명확히 식별 하는데 적합하다.

*소프트웨어 개발방법론 종류 중, 객체지향 방법론

  • ‘객체’라는 기본 단위로, 시스템을 분석 및 설계하는 방법론이다.
  • 복잡한 현실 세계를, 사람이 이해하는 방식으로 시스템에 적용하는 방법론이다.

*CBD(Component Based Development)

  • 개발 기간 단축으로 인한 생산성 향상
  • 새로운 기능 추가가 쉬운 확장성
  • 소프트웨어 재사용이 가능

*애자일 방법론

  • 사용자의 요구사항이 빈번하게 변경됨에 따라, 새로운 방버론이 필요하게 되어, 2000년 이후 등장
  • 절차보다는 사람이 중심이 되어, 변화에 유연하고 신속하게 적응하면서, 효율적으로 시스템을 개발할 수 있는, 신속 적응적 경량 개발방법론이다.

*SADT(Structured Analysis and Design Technique)

  • SoftTech사에서 개발된 것으로, 구조적 요구 분석을 하기 위해, 블록 다이어그램을 채택한 자동화 도구이다.

*요구사항 개발 프로세스 상세

  • 요구사항 도출 : 인터뷰, 설문 조사, 브레인스토밍, 워크숍
  • 요구사항 분석 : 자료 흐름 지향 분석, 객체지향 분석, 요구사항 체계화를 위한 분석
  • 요구사항 명세 : 자연어에 의한 방법, 정형화 기법 사용 방법
  • 요구사항 확인 및 검증 : 리뷰, 워크스루, 인스펙션

*비용산정 모델 분류

  • 하향식 산정방법과 상향식 산정방법이 있다.

*하향식 산정방법

  • 여러 전문가와 조정자를 통해 산정하는 방식을 말한다.
  • 하향식 산정방법 종류 : 전문가 판단, 델파이 기법

*상향식 산정방법

  • 세부적인 요구사항과 기능에 따라 필요한 비용을 계산하는 방식을 말한다.
  • 상향식 산정방법 종류 : 코드 라인수(LOC : Lines Of Code), Man Month, COCOMO모형, Putnam 모형, FP(Function Point)모형

*LOC(Lines Of Code)

  • 원시 코드 라인수의, 예측치 = 구하고, 이를 이용하여 비용을 산정하는 모델이다.

*Man Month

  • 한 사람이 1개월동안 할 수 있는 일의 양을 기준으로, 프로젝트 비용을 산정하는 기법
  • Man Month =
  • 프로젝트 기간 =

*COCOMO(COnstructive COst MOdel)

  • 보헴이 제안한 모형으로, 원시 코드라인 수(LOC, 즉 프로그램 규모)에 의한 비용산정 기법이다.
  • 산정 결과는 Man-Month로 나타낸다.
  • 개발 노력 승수(Development Effort Multipliers)를 결정한다.
  • 비용 견적의 유연성이 높아, 소프트웨어 개발비 견적에 널리 사용된다.
  • 비용 산정 유형으로는 단순형, 중간형, 임베디드형이 있다.
  • 단순형(조직형) = Organic Mode : 5만 라인 이하
  • 중간형(반 분리형) = Semi-Detached Mode : 30만 라인 이하
  • 임베디드형 = Embedded Mode : 30만 라인 이상

*Putnam

  • 시간에 따른 함수로 표현되는, Rayleigh-Norden곡선의 노력 분포도를 기초로 한다.
  • Rayleigh-Norden곡선과 푸트남 예측모델을 기초로하여, 자동화 추정 도구 SLIM을 개발하였다.

*기능점수(FP : Function Point)

  • 요구 기능을 증가시키는 인자별로, 가중치를 부여하여, 기능의 점수를 계산하여 비용을 산정하는 방식이다.
    • 경험을 바탕으로 단순, 보통, 복잡한 정도에 따라 가중치를 부여한다.
  • 기능점수(FP) = 프로젝트의 영향도 + 프로젝트의 가중치
  • 비용 산정에 이용되는 요소 : 입력, 출력, 명령어(사용자 질의), 파일, 인터페이스
  • 프로그래밍 언어에 독립적이다.

*임계 경로(Critical Path)

  • CPM 네트워크를 그려서 가장 긴 경로를 찾는다.

*ISO/IEC 12207 표준

  • 소프트웨어 생명주기 프로세스이다.
  • 기본, 조직, 지원 공정으로 구성된다.

*CMMI(Capability Maturity Model Integration)

  • 소프트웨어 개발 업체들의, 업무 능력 및 조직의 성숙도를 평가하기 위한 모델이다.

*SPICE(Software Process Improvement and Capability dEtermination)

  • 소프트웨어 프로세스 평가를 위한 국제 표준이다.

*테일러링

  • 조직의 표준 프로세스를 커스터마이징하여, 현 프로젝트의 요구에 맞게 프로세스를 얻는 과정이다.

*소프트웨어 재사용의 방법

  • 합성 중심과, 생성 중심으로 구분된다.
  • 합성 중심 : 블록(모듈)을 만들어서 끼워 맞추어, 소프트웨어를 완성시키는 방법이다. 블록 구성 방법이라고 한다.
  • 생성 중심 : 추상화 형태로 쓰여진 명세를 구체화하여, 프로그램을 만드는 방법이다. 패턴 구성 방법이라고 한다.

*SDN(Software Defined Network)

  • 개방형 API기반이다.
  • 네트워크 장비의 트래픽 경로를 지정하는, 컨트롤 플레인과
  • 트래픽 전송을 수행하는, 데이터 플래인을 분리하여
  • 네트워크 트래픽을 중앙 집중적으로 관리하는 기술이다.
  • 오픈플로우를 사용한다.

*오픈플로우(Openflow)

  • 네트워크 장치인 컨트롤 플레인(Control Plane)과, 데이터 플레인(Data Plane)간의 연계 및 제어를 담당하는, 개방형 표준 인터페이스이다.
  • 오픈플로우 구성요소 : 컨트롤러, 프로토콜, 스위치, 흐름테이블, 파이프라이닝 등이 있다.
  • SDN에서는 오픈플로우를 사용한다.

*네트워크 가상화(NFV : Network Function Virtualization)

  • 네트워크 기능을, 가상 기능으로 모듈화하여, 필요한 곳에 제공하는 것이다.
  • 범용 하드웨어에 가상 기술을 적용하여, 네트워크 기능을 가상 기능으로 모듈화하여, 필요한 곳에 제공하는 기술이다.
  • NFV의 구성요소는 VNFs, NFVI, MANO가 있다.
  • VNFs(Virtual Network Function) : 네트워크 기능 실현을 위한 소프트웨어 패키지이다.
  • NFVI(Network Functions Virtualization Infrastructure) : VNF를 실행하는 실제의 물리적/소프트웨어적 자원
  • MANO(Management & Orchestration) : NFVI의 물리 및 가상 자원 관리와, VNF의 조율 및 라이프 사이크 관리를 담당한다.

*오버레이 네트워크(Overlay Network)

  • 기존 네트워크를 바탕으로, 그 위에 구성 된 또 다른 네트워크가 있는 구성을 말한다.

*Wi-SUN(Wireless Smart Utility Network)

  • 스마트 그리드(Smart Grid)와 연계하여, 전기, 수도, 가스 등의 공급자와, 사용자가 무선 네트워크를 이용하여, 효율적으로 관리할 수 있도록 활용하는 무선 통신 기술이다.

*스몰 셀(Small Cell)

  • 기존의 높은 전송 파워와 넓은 커버리지를 갖는 매크로 셀(Macro Cell)과 달리, 낮은 전송 파워와 좁은 커버리지를 갖는 소형 기지국이다.

*피코넷(PICONET)

  • 블루투스(Bluetooth) 기술을 사용하여, 통신망을 형성하는 무선 네트워크 기술이다.

*메시 네트워크(Mesh Network)

  • 기존 무선 랜의 한계 극복을 위해 등장하였다.
  • 대규모 디바이스의 네트워크 생성에 최적화되어있다.

*네트워크 설치 구조

  • 버트링메성
  • 버스형 : 하나의 네트워크 회선에, 여러 대의 노드가 멀티 포인트로 연결된 구조 형태이다.
  • 트리형 : 각 노드가 계층적으로 연결되어 있는 구성 형태로, 나뭇가지가 사방으로 뻗어 있는 것과 유사한 모양의 형태이다.
  • 링형 : 모든 구조가 하나의 링에, 순차적으로 연결되는 형태이다.
  • 메쉬형
  • 성형 : 각 단말 노드가, 허브라는 네트워크 장비에, 점 대 점으로 연결되어 있는 구성 형태이다.

*라우팅 프로토콜인, RIP(Routing Information Protocol)

  • 최대 홉 수(Hop Count)를 15개로 제한하였다.

*광전송 기술인, SONET(Synchronous Optical Network)

  • 고속 디지털 통신을 위한, 광전송 시스템 표준 규격이다.
    광전송용 동기식 다중화 방식에 의한, 디지털신호 계위 북미 표준이다.

*광전송 기술인, WDM(Wavelength Division Multiplexing)

  • 광섬유를 이용한 통신기술의 하나를 의미한다.
  • 파장이 서로 다른 복수의 광신호를 동시에 이용하는 것으로, 광섬유를 다중화하는 방식이다.
  • 빛의 파장 축과, 파장이 다른 광선은, 서로 간섭을 일으키지 않는 성질을 이용한 것이다.

*이동 통신 기술

  • CDMA(Code Division Multiple Access)
  • GSM(Global System for Mobile Communications)
  • WCDMA(Wideband CDMA)

*다중화기의 종류

  • 주파수 분할 다중화(FDM : Frequency Division Multiplexing) : 하나의 주파수 대역폭을, 다수의 작은 대역폭으로 분할하여 전송하는 방식이다.
  • 시간 분할 다중화(TDM : Time Division Multiplexing) : 회선의 대역폭을, 일정 시간으로 분할하여 전송하는 방식이다.
  • 코드 분할 다중화(CDM : Code Division Multiplexing) : 정해진 주파수 대역에 다수의 사용자가, 서로 다른 코드를 사용함으로써, 동일한 주파수로 동시에 다수가 접속해서 전송하는 방식이다.

*인공지능의 지능수준에 따른 분류

  • 수준1 : 단순 제어 프로그램
  • 수준2 : 고전적인 인공지능(탐색, 추론, 지식에 바탕을 둔 인공지능을 말한다.
  • 수준3 : 기계학습 인공지능
  • 수준4 : 딥러닝 인공지능

*기계학습 분류

  • 지도, 비지도, 강화 학습이 존재한다.

*지도 학습

  • 입력 X에 대한, 출력 목표값을 제시하여 학습하는 방법이다.
  • 지도 학습의 종류 : 인공 신경망, 회귀분석
  • 인공신경망 : 생물학의 신경망에서, 영감을 얻은 통계학적 학습 알고리즘이다.
  • 회귀 분석 : 관찰된 연속형 변수들에 대해, 두 변수 사이의 모형을 구한 뒤, 적합도를 측정해 내는 분석 방법이다.

*비지도 학습

  • 입력 X에 대해, 목푯값을 스스로 추론하여 학습하는 방법이다.
  • 비지도 학습의 종류 : K-Means알고리즘, 주성분 분석(PCA)
  • K-means 알고리즘 : 데이터 집단을 K개의 임의의 집단으로 군집화하고, 집단내의 거리를 측정하여, 더 이상 이동하지 않을 때까지, 군집화하여 그룹화하는 군집 알고리즘이다.
  • 주성분 분석(PCA) : 고차원 공간의 표본들을, 선형 연광성이 없는, 저차원 공간으로 변환하는 알고리즘이다.

*강화 학습

  • 입력 X에 대해, 행위의 포상을 기억하고 학습하는 방법이다.
  • 교사 학습과, 비교사 학습의 중간 형태로, 입력에 대해 학습자가 행동을 선택하고, 그 행동에 대해서 교사가 제공하는 보상치에 따라서 학습하는 방법을 말한다.
  • 강화 학습의 종류 : Q-Learning, 몬테카를로 트리 탐색
  • Q-Learning : 특정 상태에서 취할 수 있는 각 행동에 대해, 효용 값을 미리 계산하여, 마르코프 의사결정 과정에서, 최적의 정책을 찾는 강화학습 기법이다.
  • 몬테카르로 트리 검색 : 최소, 최대 알고리즘의 성능을 개선하여, 전체 경로 탐색이 불가능 할 때, 효율적 경로 탐색이 가능한 알고리즘을 활용한다.

*딥러닝(Deep Learning)

  • 딥러닝은 사람의 개입이 필요한, 기존의 지도 학습에, 보다 능동적인 비지도 학습이 결합되어, 컴퓨터가 마치 사람처럼, 스스로 학습할 수 있는 인공지능 기술이다.
  • 딥러닝의 주요 알고리즘으로 심층신경망, 합성곱 신경망, 순환 신경망이 있다.

*심층 신견망(DNN : Deep)

  • 입력 계층과 출력 계층 사이의, 다단계의 은닉 계층을 통해서, 비선형 관계에 대한 모델링이 가능한 인공신경망이다.

*합성곱 신경망(CNN : Convolution)

  • 필터에 의한 컨볼루션(합성곱)과 서브샘플링 과정을 반복하는 비지도 학습이다.
  • 입력 데이터의 특징을 극대화한다.
    차원을 축소하는 딥러닝 알고리즘이다.

*순환 신경망(RNN : Recurrent)

  • 연속된 데이터 상에서, 이전 순서의 은닉 노드의 값을 저장한 이후, 다음 순서의 입력 데이터로 학습할 때 이전의 값을 이용한다.
  • 연속적인 정보의 흐름을, 학습에 이용하는 딥러닝 알고리즘이다.

*퍼셉트론

  • 현재 계산한 값이 목표치와 다르면, 그만큼의 오차를 다시 퍼셉트론에 반영해서 오차를 줄이는 신경망이다.

*증강 현실(AR)

  • 실제로 존재하는 환경에, 가상의 사물이나 정보를 합성하여, 마치 원래의 환경에 존재하는 사물처럼 보이도록 하는 기술을 말한다.

*블록체인

  • 분산 데이터베이스의 한 형태이다.
  • 분산 노드의 운영자에 의한 임의조작이 불가능하도록 고안되었다.
  • 지속적으로 성장하는 데이터 기록 리스트인 블록을 연결한 모음이다.

*블록체인 합의 알고리즘

  • PoW, PoS, PBFT가 있다.

*PoW(Proof of Work)

  • 확률적으로 해답이 어려운 문제를 가장 빨리 해결한 사람에게, 블록을 만들 수 있도록 허가하는 합의 알고리즘

*PoS(Proof of Stake)

  • 이더리움이 채택할 예정인 알고리즘이다.
  • PoW와 기본방식은 동일하다.
  • 화폐량을 더 많이 소유하고 있는 승인자가, 우선하여 블록을 생성할 수 있게하는 알고리즘이다.

*PBFT(Practical Byzantine Fault Tolerance)

  • 참가자 중 1명이 Primary(리더)가 되어, 자신을 포함한 모든 참가자에게 요청을 보낸다.
  • 그 요청에 대한 결과를 집계한 뒤, 다수의 값을 사용해 블록을 확정하는 합의 알고리즘이다.

*디지털 트윈(Digital Twin)

  • 물리적인 사물과 컴퓨터에 동일하게 표현되는 가상 모델이다.
  • 실제 물리적인 자산 대신, 소프트웨어로 가상화함으로써, 실제 자산의 특성에 대한 정확한 정보를 얻을 수 있다.

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

  • 서비스라고 정의되는 분할된 애플리케이션 조각들을, Loosely-coupled하게 연결해, 하나의 완성된 Application을 구현하기 위한 아키텍처이다.
  • SOA는 비즈니스 층, 표현 층, 프로세스 층으로 구성된다.

*메시업(Mashup)

  • 웹에서 제공하는 정보 및 서비스를 이용하여, 새로운 소프트웨어나, 서비스, 데이터베이스 등을 만드는 기술이다.
  • 서로 다른 웹 사이트의 콘텐츠를 조합하여, 새로운 차원의 콘텐츠나 서비스를 창출하는 웹 사이트 또는 애플리케이션을 의미한다.

*Seven TouchPoints

  • 개발 보안 방법론이다.
  • SW보안의 모범 사례를, SDLC(Software Development Life Cycle)에 통합한 소프트웨어 개발 보안 생명주기 방법론이다.

*클라우드 컴퓨팅

  • 인터넷을 통해, 가상화된 컴퓨터 시스템 리소스를 제공한다.
  • 구성 가능한 컴퓨팅 자원에 대해, 어디서나 접근할 수 있는, 주문형 접근을 가능하게 하는 모델이다.

*클라우드 서비스 유형

  • 인프라형 서비스(IaaS) : 서버, 스토리지 같은 시스템 자원을 클라우드로 제공하는 서비스
  • 플랫폼형 서비스(PaaS) : 인프라를 생성 관리하는 복잡함 없이, 애플리케이션을 개발 실행 관리 할 수 있게 하는, 플랫폼을 제공하는 서비스
  • 소프트웨어형 서비스(SaaS) : 소프트웨어 및 관련 데이터는 중앙에 호스팅되고, 사용자는 웹 브라우저 등의 클라이언트를 통해 접속하여, 소프트웨어를 서비스 형태로 이용하는 서비스. 주문형 소프트웨어라고도 한다.

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

  • 컴퓨팅, 네트워킹, 스토리지, 관리 등을 모드 소프트웨어로 정의한다.
  • 인력 개입 없이, 소프트웨어 조작만으로 자동 제어 관리한다.
  • 데이터센터 내 모든 자원을 가상화하여, 서비스한다.
  • 특정 하드웨어에 종속되지 않는다.

*저장 장치(스토리지 시스템)

  • DAS, NAS, SAN이 있다.

*DAS(Direct Attached Storage)

  • 저장 장치를, 호스트 버스 어댑터에 직접 연결하는 방식이다.
  • 즉, 저장장치와 호스트 기기 사이에, 네트워크 디아비스가 없고, 직접 연결하는 방식이다.

*NAS(Network Attached Storage)

  • 저장 장치와 서버를 직접 연결하는 것이 아니라, 네트워크를 통해 스토리지에 접속한다.
    파일 단위로 관리한다.

*SAN(Storage Area Network)

  • 서버와 스토리지를, 저장 장치 전용 네트워크로 상호 구성하는 방법이다.
  • 데이터를 블록 단위로 관리한다.
  • SAN의 장점 : 무정지, 확장성, 고성능, 관리의 효율성이 높음
  • SAN의 단점 : 고비용, 호환성 체계가 미흡한 점

*고가용성 유형

  • 핫뮤콘

*Hot Standby

  • 가동시스템과, 백업시스템으로 구성되어진다.
  • 평상시에는 대기 상태를 유지하다가 장애 시 전환 된다.

*Mutual Take-Over

  • 2개 시스템이 각각의 고유한 가동 업무 서비스를 수행하다가,
  • 한 서버 장애 발생 시,
  • 상대 시스템의 자원을 Fail Over 하여 도시에 2개의 업무를 수행하는 방식이다.
    (Fail Over : 1선 시스템이 장애로 가동이 중단되면, 2선 시스템이 기능을 넘겨받아 운용되는 백업 모드이다.)

*Concurrent Access

  • 여러 개의 시스템이, 동시에 업무를 나누어 병렬 처리하는 방식이다.
  • HA에 참여하는 시스템 전체가, Active한 상태로 업무를 수행하는 방식이다.
  • 한 시스템에 장애가 발생하여도, 다른 시스템으로 Fail Over하지 않고, 가용성을 보장한다.

*빅데이터의 특성

  • 데이터의 양 : 디지털 정보량이 기하급수적으로 폭증하는 것을 의미한다.
  • 데이터의 다양성 : 로그, 소셜, 위치 등 데이터 유형이 다양해지는 것을 의미한다.
  • 데이터의 속도 : 가치 있는 정보 활용을 위해, 실시간 분성기 중요해지는 것을 의미한다.

*비정형 데이터 수집 기술인, 척와(Chukwa)

  • 분산된 각 서버에서 에이전트를 실행하고, 컬렉터가 에이전트로부터 데이터를 받아 HDFS에 저장하는 기술이다.

*분산 데이터 저장 기술인, 하둡(Hadoop)

  • 일반 PC급 컴퓨터들로, 가상화된 대형 스토리지를 형성한다.
  • 다양한 소스를 통해 생성된 빅데이터를, 효율적으로 저장한다.

*분산 데이터 처리 기술인, 맵리듀스(Map Reduce)

  • 대용량 데이터를 분산 처리하기 위한 목적으로, 개발된 프로그래밍 모델이다.
  • 대표적인 대용량 데이터 처리를 위한, 병렬 처리 기법을 제공한다.
  • 임의의 순서로, 정렬된 데이터를 분산 처리하고, 이를 다시 합치는 과정을 거친다.

*NoSQL

  • Not Only SQL의 약자이다.
  • 전통적인 DBMS와 다른 DBMS를 지칭하기 위한 용어이다.
  • 데이터 저장에 고정된 테이블 스키마가 필요하지 안혹, 수평적으로 확장이 가능한 DBMS이다.
  • 특정 시점에서는, 데이터의 일관성이 보장되지 않는 속성이 있다.
  • 일정 시간이 지나면, 데이터의 일관성이 유지되는 속성을 가지고 있다.

*NoSQL의 유형

  • Key-Value Store, Column Family Data Store, Document Store, Graph Store 등이 있다.

*Key-Value Store

  • 키 기반으로 Get/Put/Delete 제공
  • Unique한 Key에, 하나의 Value를 가지고 있응 형태의 DB
  • 종류 : Redis, DynamoDB

*Column Family Data Store

  • Key 안에 (Column, Value)조합으로 된, 여러 개의 필드를 갖는 DB
  • 종류 : HBase, Cassandra

*Document Store

  • 저장되는 Value의 데이터 타입이, Document라는 타입을 사용하는 DB
  • 종류 : MongoDB, Couchbase

*Graph Store

  • 시멘틱 웹과 온톨로지 분야에서 활용되는, 그래프로 데이터를 표현하는 DB
  • 종류 : Neo4j, AllegroGraph

*데이터 마이닝(Data Mining)

  • 빅데이터 분석 기술이다.
  • 대량의 데이터를 분석하여, 데이터 속에 내재되어 있는, 변수 사이의 상호관계를 규명하여 , 일정한 패턴을 찾아내는 기법이다.

*Secure SDLC(Software Development Life Cycle)

  • 기존 SDLC에 보안 요소를 추가한 방법론이다.
  • 계획, 분석, 설계, 구현 테스트 순으로 진행한다.
  • 모든 개발단계에서 보안 요소를 고려하여 개발한다.

*하드 코드 된 비밀번호

  • 프로그램 코드 내부에 패스워드 포함 시, 관리자 정보가 노출될 수 있는 보안 취약점

*입력데이터 검증 및 표현 취약점

  • XSS(Cross Site Script), 사이트간 위조요청(CSRF : Cross Site Request Forgery), SQL삽입

*에러 처리 취약점

  • 취약한 패스워드 요구 조건 : 취약한 패스워드를 설정했는데, 에러처리를 안해서 그런 것 같음.
  • 오류 메시지를 통한 정보 노출
  • 오류 상황 대응 부재
  • 적절하지 않은 예외 처리

*세션 통제 취약점

  • 불충분한 세션 관리

*대칭 키 암호 방식(= 비밀키 암호 방식)

  • 블록 암호방식과 스트림 암호 방식이 존재한다.

*블록 암호 방식

  • 고정 길이의 블록을, 암호화하는 블록 암호 알고리즘이다.
  • 블록 암호 종류 : DES, AES, SEED

*스트림 암호 방식

  • 매우 긴 주기의 난수열을 발생시켜, 평문과 더불어 암호문을 생성하는 방식
  • 스트림 암호 종류 : RC4

*비대칭 키 암호 방식(= 공개키 암호 방식)

  • 공개키로 암호화하고, 개인키(비밀키)로 복호화한다. 즉, 암호화 해독에 다른 키를 사용한다.
  • 암호키는 공개키로, 누구나 사용할 수 있다.
  • 키 사전공유가 필요없다.
  • 키 분배가 용이하고, 관리해야 할 키 개수가 적다.
  • 따라서, 키 분배가 대칭키 시스템보다 쉽다.
  • 그러나 대칭키 암호 방식에 비해, 계산속도가 느리다.
  • 비대칭 키 암호 종류 : 디피헬만, RSA

*RSA

  • 큰 숫자를 소인수 분해하기 어렵다는 기반하에 만들어졌다.
  • 공개 키 암호화 알고리즘이다.

*일방향 암호 종류

  • MAC(HMAC, NMAC), MDC(MD5, SHA)

*코드 오류 취약점

  • 널 포인터 역참조
  • 정수를 문자로 변환
  • 부적절한 자원 해제
  • 초기화되지 않은 변수 사용

*캡슐화 취약점 -> 약간 유출의 관점인 것들은 캡슐화 취약점으로 보면 됨

  • 잘못된 세션에 의한 데이터 정보 노출
  • 제거되지 않고, 남은 디버그 코드
  • 민감한 데이터를 가진 내부 클래스 사용
  • 시스템 데이터 정보 노출

*API 오용 취약점

  • DNS Lookup에 의존한 보안 결정 : IP주소를 이용하는 것이, DNS이름을 직접 사용하는 것보다 안전하다.
  • 위험하다고 알려진 함수 사용
  • 널 매개변수 미검사

*스머프(Smurf)/스머핑(Smurfing)

  • 출발지 주소를, 공격 대상의 IP로 설정한다.
  • 네트워크 전체에게 ICMP Echo패킷을 직접 브로드캐스팅하여 마비시키는 공격이다.
  • 즉, IP와 ICMP을 악용하여, 특정 사이트에 집중적으로 데이터를 보내, 네트워크 또는 시스템의 상태를 불능으로 만드는 공격이다.
  • 바운스(Bounce)라는 제 3의 사이트를 이용해 공격한다.
  • 공격자가 ICMP Echo 패킷의 출발 IP 값을, 공격할 대상으로 변형해 놓으면, 바운스(Bounce)사이트는 수많은 ICMP 응답 메시지를 공격 대상 쪽으로 보낸다.

*랜드어택(Land Attack)

  • 출발지 IP와 목적지 IP를 같은 패킷을 만들어 보낸다.
  • 수신자가 자기 자신에게 응답을 보내게 하여, 시스템의 가용성을 침해하는 공격이다.

*티어 드롭(Tear Drop)

  • IP 패킷의 재조합 과정에서, 잘못된 Fragment Offset 정보로 인해, 수신시스템이 문제를 발생하도록 만드는 DoS공격이다.
  • 공격자는 IP Fragment Offset 값을, 서로 중첩되도록 조작하여, 전송하여서, 결과적으로 이를 수신한 시스템이 재조합하는 과정에서, 오류가 발생하게 한다.

*DDoS 공격 도구

  • Trinoo, Tribe Flood Network, Stacheldraght

*스택가드(Stackguard)

  • 메모리상에서, 프로그램의 복귀 주소와 변수 사이에 특정 값을 저장해 둔다.
  • 실행중, 그 값이 변경되었을 경우, 오버플로우 상태로 가정하여, 프로그램 실행을 중단한다.

*백도어 탐지기법

  • 프로세스 및 열린 포트 확인
  • Setuid 파일 검사 : 새로 생성된 Setuid 파일이나, 변경된 파일 확인을 통해 백도어를 탐지한다.
  • 백신 및 백도어 탐지 툴 활용
  • 무결성 검사
  • 로그 분석

*키로거 공격(Key Logger Attack)

  • 키보드 움직임을 탐지해서, 중요한 정보를 몰래 빼가는 해킹 공격이다.

*제로데이 공격(Zero Day Attack)

  • 보안 취약점이 발견되어 널리 공표되기 전에, 해당 취약점을 악용하여 이루어지는 보안 공격

*웜(Worm)

  • 스스로를 복제하여, 네트워크 등의 연결을 통하여, 전파하는 악성 소프트웨어 컴퓨트 프로그램
  • 컴퓨터 바이러스와 비슷하지만, 바이러스가 다른 실행 프로그램에 기생하여 실행되는 반면, 웜은 독자적으로 실행되며, 다른 실행 프로그램이 필요하지 않다.

*랜섬웨어(Ransomware)

  • 공격자는, 인터넷 사용자의 컴퓨터에 침입해, 내부 문서 파일 등을 암호화한다.
  • 암호 해독용 프로그램의 전달을 조건으로, 사용자에게 돈을 요구한다.

*tripwire

  • 크래커가 침입하여 백도어를 만들어 놓거나, 설정파일을 변경했을 때, 분석할 수 있는 도구이다.
  • 방어용 도구이다.

*방어 관련 보안용어

  • 사이버 킬체인
  • 난독화
  • Tripwire

*서버 접근통제 유형

  • DAC, MAC, RBAC

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

  • 시스템에 대한 접근을, 사용자의 신분을 기반으로 제한하는 방법이다.
  • 사용자는 자원과 관련된 ACL(Access Control List)이 수정됨으로써, 자원에 대한 권한을 부여 받는다.

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

  • 시스템에 대한 접근을, 사용자가 갖는 접근 허가 권한을 기반으로 제한하는 방법이다.
  • 관리자가, 자원에 대한 권한을 사용자들에게 부여한다.
  • 관리자만이, 시스템 자원에 대한 권한을 할당할 수 있다.

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

  • 시스템에 대한 접근을, 사용자의 역할을 기반으로 제한하는 방법이다.
  • 관리자가, 사용자에게 역할을 할당한다.

*벨-라파듈라 모델

  • 기밀성을 중시한다
  • No read up, No write down

*비바 모델

  • 무결성을 중시한다.
  • read up, write down

*네트워크 접근 제어(NAC : Network Access Control)

  • 단말기가 내부 네트워크에 접속을 시도할 때, 이를 제어하고 통제하는 기능을 제공하는 솔루션이다.

*통합 보안 시스템(UTM : Unfied Threat Management)

  • 다양한 보안 기능을 하나의 장비로 통합하여 제공하는 시스템이다.

*가상 사설망(VPN : Virtual Private Network)

  • 이용자가 인터넷과 같은, 공중망에 사설망을 구축하여, 마치 전용망을 사용하는 효과를 갖는 보안 솔루션이다.

*보안 운영체제(Secure OS)

  • 컴퓨터 운영체제의 커널에, 보안 기능을 추가한 것이다.
  • 운영체제의 보안상 결함으로부터, 시스템을 보호하기 위하여 사용되는 것이다.

*데이터 유출 방지(DLP : Data Loss Prevention)

  • 내부의 중요 데이터가, 외부로 유출되는 것을, 탐지하고 차단한다.
  • 유출 방지를 위해, 정보의 흐름에 대한 모니터링과, 실시간 차단 기능을 제공한다.
profile
안녕하세요.

0개의 댓글