정보처리기사 필기 정리 - 5과목

업데이트:

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

1-1. 소프트웨어개발 방법론 선정

소프트웨어 생명주기 모델

  • 소프트웨어 생명 주기 모델은 소프트웨어를 어떻게 개발할 것인가에 대한 추상적 표현으로 순차적 또는 병렬적 단계로 나누어 표현하는 형태
  • 소프트웨어 생명 주기 모델의 종류
    • 폭포수 모델
    • 프로토타입 모델
    • 나선형 모델
    • 애자일 모델

소프트웨어 개발 방법론

  • 소프트웨어 개발, 유지보수 등에 필요한 여러 가지 일들의 수행방법과 이러한 일들을 효율적으로 수행하려는 과정에서 필요한 각종 기법 및 도구를 체계적으로 정리하여 표준화한 것
  • 소프트웨어 개발 방법론의 종류
    • 구조적 방법론 : 프로그램 로직(프로세스) 중심
    • 정보공학 방법론 : 자료(Data) 중심
    • 객체지향 방법론
    • 컴포넌트 기반 방법론
    • 애자일 방법론
    • 제품 계열 방법론

요구공학 방법론

  • 요구사항의 지속적인 중요성 증대와 체계적인 관리의 필요성이 대두되어 시스템 요구사항을 정의하고, 문서화하고, 관리하는 프로세스
  • 요구공학 프로세스
    • 요구사항 도출
    • 요구사항 분석
    • 요구사항 명세
    • 요구사항 확인/검증

비용산정 모델

  • 소프트웨어 개발 규모를 소요되는 인원, 자원, 기간 등으로 확인하여 실행 가능한 계획을 수립하기 위해 필요한 비용을 예측하고 과학적이고 합리적인 활동
  • 하향식 산정기법
    • 전문가 감정 기법
    • 델파이 기법
  • 상향식 산정기법
    • LOC(Line of Code) 기법
    • Effort Per Task 기법
  • 수학적 산정기법
    • COCOMO 모형 : LOC 기반
    • Putnam 모형 : LOC 기반
    • FP 모형 : Fuction Point 기반

1-2. 소프트웨어개발 방법론 테일러링

소프트웨어 개발 표준

  • 소프트웨어 개발 단계의 품질 관리에 사용되는 국제 표준
  • ISO/IEC 12207
    • 국제 표준화 기구에서 제공하는 소프트웨어 생명주기 프로세스 표준
    • 기본 생명 주기, 지원 생명 주기, 조직 생명 주기 프로세스
  • CMMI
    • 소프트웨어 개발 조직의 업무 능력 및 조직의 성숙도 평가모델
    • CMMI 성숙도 5단계
      • 초기
      • 관리
      • 정의
      • 정량적 관리
      • 최적화
  • SPICE
    • 소프트웨어 프로세스를 평가 및 개선하는 국제 표준
    • 프로세스 수행 능력 6단계
      • 불완전
      • 수행
      • 관리
      • 확립
      • 예측
      • 최적화

테일러링 기준

  • 소프트웨어 개발 방법론 테일러링은 프로젝트 상황 및 특성에 맞도록 개발 방법론의 절차, 사용기법 등을 수정 및 보완하는 작업
  • 소프트웨어 개발 방법론 테일러링 고려사항
    • 내부적 기준
      • 목표환경
      • 요구사항
      • 프로젝트 규모
      • 보유기술
    • 외부적 기준
      • 법적 제약사항
      • 표준 품질기준
  • 소프트웨어 개발 방법론 테일러링 기법
    • 프로젝트 규모와 복잡도, 프로젝트 구성원, 팀내 방법론 지원, 자동화에 따른 테일러링

소프트웨어 개발 프레임워크

  • 소프트웨어 개발에 공통적으로 사용되는 구성 요소와 아키텍처를 일반화하여 손쉽게 구현할 수 있도록 여러 가지 기능들을 제공해 주는 반제품 형태의 소프트웨어 시스템
  • 소프트웨어 개발 프레임워크 종류
    • 스프링 프레임워크
    • 전자정부 표준 프레임워크
    • 스트럿츠 프레임워크
    • 닷넷 프레임워크
    • 앵귤러 JS
    • 장고 프레임워크

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

2-1. 네트워크 구축 관리

IT 신기술 및 네트워크 장비 트렌드 정보

  • 네트워크 관련 신기술
    • 애드 혹 네트워크 : 모바일 호스트만을 이용하여 구성한 네트워크
    • M2M : 무선 통신을 이용한 기계와 기계 사이의 통신
    • 메시 네트워크 : 라우터들을 기지국으로 활용하여 모든 구간을 동일한 무선망처럼 구성
    • NDN : 콘텐츠 자체의 정보와 라우터 기능만으로 데이터 전송
    • NGN : 유선망 기반의 차세대 통신망
    • 피코넷 : 블루투스 기술이나 UWB 통신 기술을 사용하여 통신망을 형성하는 무선 네트워크 기술
    • UWB : 짧은 거리에서 많은 양의 디지털 데이터를 낮은 전력으로 전송하는 무선 기술
    • SDN : 소프트웨어들로 네트워킹을 가상화하여 제어하고 관리하는 네트워크
    • SON : 주변 상황에 맞추어 스스로 망을 구성하는 네트워크
    • WBAN : 웨어러블 또는 몸에 심는 형태의 센서나 기기를 무선으로 연결하는 개인 영역 네트워킹 기술
    • 와이선(Wi-SUN) : 사물인터넷 서비스를 위한 저전력 장거리 통신 기술

네트워크 장비(라우터, 백본 스위치 등)

  • 네트워크 토폴로지 종류
    • 성형
    • 버스형
    • 링형
    • 트리형
    • 망형
  • 네트워크 분류
    • LAN : 근거리 통신망
    • MAN : 대도시 통신망
    • WAN : 광대역 통신망
    • VAN : 부가가치 통신망
  • 스위치의 분류
    • L2
    • L3
    • L4
    • L7
  • Hierarchical 3 Layer 모델
    • 액세스 계층 (L2 스위치)
    • 디스트리뷰션 계층 (라우터, L3 스위치)
    • 코어 계층 (백본스위치)

2-2. SW 구축 관리

IT 신기술 및 SW 개발 트렌드 정보

  • 소프트웨어 관련 신기술
    • 공통 평가 기준 : ISO 15408 표준으로 채택된 정보 보호 제품 평가기준
    • 복잡 이벤트 처리 : 실시간으로 발생하는 많은 사건들 중 의미가 있는 것만을 추출할 수 있도록 사건 발생 조건을 정의하는 데이터 처리 방법
    • 디지털 트윈 : 현실 속의 사물을 소프트웨어로 가상화한 모델
    • 전문가 시스템 : 특정 분야의 전문가가 수행하는 고도의 업무를 지원하기 위한 컴퓨터 응용 프로그램
    • 그레이웨이 : 유용할수도 있고 악의적일수도 있는 프로그램
    • 메시업 : 웹에서 제공하는 정보 및 서비스를 이용하여 새로운 소프트웨어나 서비스, 데이터베이스 등을 만드는 기술
    • 오픈 그리드 서비스 아키텍처 : 애플리케이션 공유를 위한 웹 서비스를 그리드 상에서 제공하기 위해 만든 개방형 표준
    • 시맨틱 웹 : 컴퓨터가 사람을 대신하여 정보를 읽고 이해하고 가공하여 새로운 정보를 만들어 낼 수 있는 차세대 지능형 웹
    • 서비스 지향 아키텍처 : 정보시스템을 공유와 재사용이 가능한 서비스 단위나 컴포넌트 중심으로 구축하는 정보기술 아키텍처

SW개발보안 정책

  • SW개발 생명주기의 각 단계에서 요구되는 보안활동을 수행해 안전한 소프트웨어를 개발하는 것이 목적임
  • SW개발 보안 관련 기관
    • 행정안전부, 한국인터넷진흥원, 발주기관, 사업자, 감리법인
  • SW개발 역할별 보안활동
    • 프로젝트 관리자, 요구사항 분석가, 아키텍트, 설계자, 구현개발자, 테스트분석가, 보안감사자
  • SW개발보안 관련 법령 및 규정
    • 개인정보 보호법
    • 정보통신망 이용촉진 및 정보보호 등에 관한 법률 등

2-3. HW 구축 관리

IT 신기술 및 서버장비 트렌드 정보

  • 엠디스크 : 한 번의 기록만으로 자료를 영구 보관할 수 있는 광 저장장치
  • 멤리스트 : 메모리와 레지스터의 합성어
  • 멤스 : 초정밀 반도체 제조 기술을 바탕으로 동작하는 초미세 장치
  • RAID : 여러 개의 하드디스크로 디스크 배열을 구성하여 파일을 구성하고 있는 데이터 블록들을 서로 다른 디스크들에 분산 저장
  • 신 클라이언트 PC : 서버 기반 컴퓨팅과 관련되어 기본적인 메모리만 갖추고 서버와 네트워크로 운용되는 개인용 컴퓨터
  • 트러스트존 기술 : 일반구역과 보안구역으로 분할하여 관리하는 하드웨어 기반의 보안 기술

서버장비 운영(Secure-OS, 운영체제, NAS, DAS, SAN, 고가용성 등)

  • 서버 장비 운영 요소
    • 서버 장비 뿐만 아니라 스토리지, 운영 체제, 고가용성 장비, 보안 솔루션 등 정보 시스템 운영에 필요한 모든 것들을 포함
  • 저장 장치(스토리지 시스템)
    • DAS, NAS, SAN
  • Secure OS
    • 기존의 운영체제에 내재된 보안 취약점을 해소하기 위해 보안 기능을 갖춘 커널을 추가한 운영체제
  • 고가용성
    • 안정적인 서비스 운영을 위해 장애 발생시 즉시 다른 시스템으로 대체 가능한 환경을 구축하는 매커니즘

2-4. DB 구축 관리

IT 신기술 및 데이터베이스 기술 트렌드 정보

  • 브로드 데이터 : 다양한 채널에서 소비자와 상호 작용을 통해 생성된 데이터

  • 디지털 아카이빙 : 디지털 정보 자원을 장기적으로 보존하기 위한 작업

  • 데이터 다이어트 : 데이터를 삭제하는 것이 아닌 압축하고, 중복을 배제하고 새로운 기준에 따라 나누어 저장하는 작업

  • 타조 : 하둡 기반의 분산 데이터 웨어하우스 프로젝트로 우리나라가 주도하여 개발하고 있음

데이터베이스 관리기능

  • 데이터베이스 회복

    • 트랜잭션들을 수행하는 도중에 장애가 발생하여 데이터베이스가 손상되었을 때 손상되기 이전의 정상 상태로 복구하는 작업
  • 병행제어

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

데이터베이스 표준화

  • 데이터 표준화는 시스템을 구성하는 데이터 요소의 명칭, 정의, 형식, 규칙에 대한 원칙을 수립하고 적용하는 것

  • 데이터베이스 표준화 구성요소

    • 데이터 표준, 데이터 관리 조직, 데이터 표준화 절차

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

3-1. SW개발 보안 설계

암호 알고리즘

  • 주민번호, 패스워드, 은행계좌 등 중요 정보를 보호하기 위해 평문을 암호문으로 만드는 절차 또는 방법
  • 해시(HASH)를 사용하는 단방향 암호화 방식과 개인키와 공개키로 분류되는 양방향 암호화 방식으로 구분됨

코드오류

  • 코드 오류는 소프트웨어 구현 단계에서 개발자들이 코딩 중 실수하기 쉬운 형(Type) 변환, 자원 반환 등의 오류를 예방하기 위한 보안 점검 항목들임
  • 보안 약점의 종류
    • 널(Null) 포인터 역참조
    • 부적절한 자원 해제
    • 해제된 자원 사용
    • 초기화되지 않은 변수 사용

캡슐화

  • 캡슐화의 보안점검은 정보 은닉이 필요한 중요한 데이터와 기능을 불충분하게 캡슐화하거나 잘못 사용함으로써 발생할 수 있는 문제 예방
  • 캡슐화 보안 약점의 종류
    • 잘못된 세션에 의한 정보 노출
    • 제거되지 않고 남은 디버그 코드
    • 시스템 데이터 정보 노출
    • Public 메소드로부터 반환된 Private 배열
    • Private 배열에 Public 데이터 할당

API 오용

  • 소프트웨어 구현 단계에서 API를 잘못 사용하거나 보안에 취약한 API를 사용하지 않도록 하기 위한 보안 검증 항목들
  • API 오용의 보안 약점
    • DNS lookup에 의존한 보안 결정
    • 취약한 API 사용

3-2. SW개발 보안 구현

Secure SDLC(Software Development Life Cycle)

  • Secure SDLC는 보안상 안전한 소프트웨어를 개발하기 위해 소프트웨어 개발 생명 주기에 보안 강화를 위한 프로세스를 포함한 것
  • 요구사항 분석, 설계, 구현, 테스트, 유지보수 등 SDLC 전체 단계에 걸쳐 수행되어야 할 보안 활동 제시
  • 보안 필수 요소
    • 기밀성
    • 무결성
    • 가용성

입력데이터 검증 및 표현

  • 폼 양식의 입력란을 통해 입력되는 데이터로 인해 발생하는 문제들을 예방하기 위해 구현 단계에서 검증해야 하는 보안 점검 항목들
  • 보안 약점 종류
    • SQL 삽입
    • 크로스 사이트 스크립트(XSS)
    • 위험한 형식 파일 업로드
    • 경로 조작 및 자원 삽입

보안기능(인증, 접근제어, 기밀성, 권한 관리 등)

  • 소프트웨어 개발의 구현 단계에서 코디앟는 기능인 인증, 접근제어, 기밀성, 암호화 등을 올바르게 구현하기 위한 보안 점검 항목들
  • 보안 약점 종류
    • 적절한 인증 없이 중요기능 허용
    • 중요한 자원에 대한 잘못된 권한 설정
    • 부적절한 인가
    • 하드코드된 비밀번호
    • 취약한 암호화 알고리즘 사용
    • 중요정보 평문저장 및 전송

에러처리

  • 소프트웨어 실행 중 발생할 수 있는 오류들을 사전에 정의하여 오류로 인해 발생할 수 있는 문제들을 예방하기 위한 보안 점검 항목들
  • 보안 약점의 종류
    • 오류 메시지를 통한 정보노출
    • 오류 상황에 대한 대응 부재
    • 부적절한 예외처리

세션통제

  • 세션은 서버와 클라이언트의 연결을 의미하고 세션통제는 세션의 연결과 연결로 인해 발생하는 정보를 관리하는 것

  • 보안 약점의 종류

    • 불충분한 세션 관리
    • 잘못된 세션에 의한 정보 노출
  • 세션 설계 시 고려사항과 세션ID의 관리방법

4. 시스템 보안 구축

4-1. 시스템 보안 설계

서비스 공격 유형

  • 서비스 거부 공격의 종류
    • Ping Flood : 매우 많은 요청을 통해 시스템 자원을 모두 사용
    • Ping of Death : 허용 범위를 초과하는 패킷으로 네트워크 마비
    • Smurfing : 엄청난 양의 데이터를 한 사이트에 집중해서 네트워크 불능
    • SYN Flooding : 공격 대상지에 SYN 신호를 보냄
    • TearDrop : 패킷을 재조립할 때 오류 발생시킴
    • Land : 무한 응답하게 하는 공격
    • DDoS : 분산된 공격 지점에서 한 곳의 서버에 대해 공격
  • 네트워크 침해 공격
    • Smishing : 문자, 메일 등을 통한 악성코드 배포
    • APT(지능형 지속 위협) : 조직에 침투해 보안 무력화하여 외부로 빼돌림
    • Spear Phishing : 특정 대상 선정 후 유도
    • Qshing : QR을 통해 악성코드 배포

서버 인증

  • 보안 서버는 인터넷을 통해 개인정보를 암호화하여 송수신할 수 있는 기능을 갖춘 서버
  • 인증은 다중 사용자 컴퓨터 시스템이나 네트워크 시스템에서 로그인을 요청한 사용자의 정보를 확인하고 접근 권한을 검증하는 보안 절차
  • 인증의 종류
    • 지식 기반 인증 : 아이디/비밀번호, 아이핀
    • 소유 기반 인증 : 신분증, 스마트 카드, OTP
    • 생체 기반 인증 : 지문, 홍채/망막, 얼굴, 음성
    • 행위 기반 인증 : 서명, 동작
    • 위치 기반 인증 : GPS, IP주소

서버 접근통제

  • 접근통제는 사용자 및 장비의 접근 필요성에 따라 정보자산에 대한 접근 권한을 부여함으로써 비인가지의 무단 접근을 제한
  • 접근통제의 3요소
    • 접근통제 정책
    • 접근통제 메커니즘
    • 접근통제 보안모델
  • 접근통제 정책 종류
    • 임의적 접근통제 : 접근 주체의 권한에 따른 통제
    • 강제적 접근통제 : 주체와 객체의 등급을 비교하여 통제
    • 역할기반 접근통제 : 임의적 접근통제의 단점을 보완
    • 접근통제 행렬 : 주체와 객체를 테이블로 관리
    • 접근 제어(AC) : 사용자에 따라 권한 제어

보안 아키텍처

  • 정보 시스템의 무결성, 가용성, 기밀성을 확보하기 위해 보안 요소 및 보안 체계를 식별하고 이들 간의 관계를 정의한 구조
  • 보안 아키텍처를 통해 관리적, 물리적, 기술적 보안 개념의 수립, 보안 관리 능력의 향상, 일관된 보안 수준의 유지를 기대할 수 있음
  • 보안 아키텍처는 보안 수준에 변화가 생겨도 기본 보안 아키텍처의 수정 없이 지원할 수 있어야 함
  • 보안 아키텍처는 보안 요구사항의 변화나 추가를 수용할 수 있어야 함

보안 Framework

  • 프레임워크는 ‘뼈대’, ‘골조’를 의미하는 용어이며, 보안 프레임워크는 안전한 정보시스템 환경을 유지하고 보안 수준을 향상시키기 위한 체계
  • ISO 27001은 정보보안 관리를 위한 국제 표준으로, 일종의 보안 인증이자 가장 대표적인 보안 프레임워크임

4-2. 시스템 보안 구현

로그 분석

  • 로그는 시스템 사용에 대한 모든 내역을 기록해 놓은 것으로 로그를 분석하여 시스템에 대한 침입 흔적이나 취약점 확인 가능

  • 리눅스의 주요 로그 파일

    로그 파일명 데몬 내용
    커널 로그 /dev/console kernel 커널에 관련된 내용을 관리자에게 알리기 위해 파일로 저장하지 않고 지정된 장치에 표시
    부팅 로그 /var/log/boot.log boot 부팅 시 나타나는 메시지들을 기록
    크론 로그 /var/log/cron crond 작업 스케줄러인 crond의 작업 내역을 기록
    시스템 로그 /var/log/messages syslogd 커널에서 실시간으로 보내오는 메시지들을 기록
    보안 로그 /var/log/secure xinetd 시스템의 접속에 대한 로그를 기록
    FTP 로그 /var/log/xferlog ftpd FTP로 접속하는 사용자에 대한 로그를 기록
    메일 로그 /var/log/maillog sendmail popper 송수신 메일에 대한 로그를 기록

보안 솔루션

  • 접근 통제, 침입 차단 및 탐지 등을 수행하여 외부로부터의 불법적인 침입을 막는 기술 및 시스템
  • 주요 보안 솔루션
    • 방화벽
    • 침입 탐지 시스템
    • 침입 방지 시스템 : 방화벽 + 침입 탐지 시스템
    • 데이터 유출 방지
    • 웹 방화벽
    • VPN
    • NAC
    • ESM

취약점 분석

  • 사이버 위협으로부터 정보시스템의 취약점을 분석 및 평가한 후 개선하는 일련의 과정
  • 수행 절차 및 방법
    • 취약점 분석/평가 계획 수립
    • 취약점 분석/평가 대상 선별
    • 취약점 분석 수행
    • 취약점 평가 수행

댓글남기기