5 분 소요

정보처리기사를 취득하기 위해 공부하는 과정에 작성한 ‘정보 시스템 구축 관리’ 관련 정리이다.

소프트웨어 개발 생명 주기

프로젝트 관리 도구

  • CPM (임계 경로법) : 프로젝트 완성에 필요한 작업을 나열해 작업 소요 기간 예측
    • 작업을 표시하는 노드와 전후 의존 관계를 표시하는 간선으로 구성
    • 프로젝트 중간 점검을 뜻하는 박스 노드에 예상 완료 시간 표시
    • 박스 노드 도달 이전 작업이 완료되야 다음 작업 진행
  • 간트 차트 : 각 작업들의 일정을 막대로 표시하는 시간선 차트
  • WBS (작업 분해) : 프로젝트 작업을 계층적으로 분해 및 구조화

소프트웨어 개발 방법론

  • 소프트웨어 개발 방법론 : 소프트웨어 개발 생명주기에 소프트웨어 공학 원리를 적용
    • 구조적 방법론 : 정형화된 분석 절차에 따라 구조적으로 사용자 요구 파악
    • 정보 공학 방법론 : 정보 시스템 개발의 관리 절차 체계화 (구조적 방법론의 거시적 관점 부재에 등장)
    • 컴포넌트 기반 개발 방법론 (CBD) : 재사용 가능한 컴포넌트를 조합해 어플리케이션을 개발
      • CBD 특징 : 점진적 개발, 컴포넌트 설계서 사용, 재사용 가능, 높은 확장성
  • 소프트웨어 재사용 : 소프트웨어의 전체 혹은 일부분을 다른 소프트웨어 개발 및 유지에 사용
    • 소프트웨어 재사용 접근 : 합성 중심 (블록 구성), 생성 중심 (템플릿·프레임워크 등 패턴 사용)

비용 산정 모델

  • 비용 산정 모델 : 프로젝트 특성 및 요구사항을 고려해 소프트웨어 개발 비용 산정
    • 델파이 기법 : 산정 요원 및 조정에 의해 단계별로 전문가들의 견해를 조정자가 조정해 최종 결정
    • LOC 기법 : 소프트웨어 각 기능 구현 시 작성될 원시 코드 라인 수로 예측치 추정
    • COCOMO 기법 : 소스 코드 규모에 따른 비용을 예측해 Man-Month로 나타냄
      • COCOMO 모형 종류 : Basic COCOMO (프로젝트 크기를 코드 라인 수로 측정), Intermediate COCOMO (개발자 경험 수준, 신뢰성 요구사항을 고려해 보정 계수 적용), Detailed COCOMO
      • COCOMO 개발 유형 : 단순형 (5만 라인 이하), 중간형 (30만 라인 이하), 임배디드형 (30만 라인 이상)
    • Putnam 모델 : 소프트웨어 개발 생명 주기 내 노력 분포 예측 (크기, 생산성, 기술 요소)
    • 기능 점수 : 시스템 구현 기술에 의존적이고 개발자에 식별된 기능 기반해 시스템 크기 측정
      • 기능 점수 비용 산정 요소 : 코드 라인 수, 데이터 파일 수, 문서 수, 입력 유형 수, 보고서 수

소프트웨어 개발 표준

  • ISO/IEC 25000 : 소프트웨어 품질 평가 및 절차 모델
    • ISO/IEC 9126ISO/IEC 14598 통합
    • 2501n : 품질 모형, 2503n : 품질 측정
  • SPICE, ISO/IEC 15504 : 소프트웨어 프로세스 평가 및 개선
    • ISO/IEC 12207 개선
    • SPICE 모델 범주 : 고객-공급자 프로세스, 공학 프로세스, 지원 프로세스, 관리 프로세스, 조직 프로세스
    • SPICE 모델 레벨 : 레벨5, 최적 / 레벨4, 예측 / 레벨3, 확립 / 레벨2, 관리 / 레벨1, 수행 / 레벨0, 불완전
  • CMM : 조직 업무 능력 평가 기준을 세우기 위한 능력 성숙도 모델
    • CMM 모델 레벨 : 레벨5, 최적 / 레벨4, 관리 / 레벨3, 정의 / 레벨2, 반복 / 레벨1, 초보

테일러링과 프레임워크

  • 테일러링 : 기존 개발 방법론을 프로젝트 상황 (요구사항 및 조건)에 맞게 수정해 개발 프로세스 최적화
    • 테일러링 절차 : 프로젝트 특정 정의 → 표준 프로세스 선정·검증 → 상위 레벨 커스터마이징 → 세부 커스터마이징 → 문서화
  • 소프트웨어 프레임워크 : 비슷한 유형의 응용 프로그램을 위해 아키턱처, 산출물의 통합된 집합
  • 라이브러리 : 단순 활용될 수 있는 도구들의 집합 (차이점? : 프레임워크는 전체적인 흐름을 자체적으로 가짐)
  • 소프트웨어 개발 프레임워크 : 소프트웨어 개발을 돕는 재사용 가능한 클래스·패턴의 집합
    • 소프트웨어 개발 프레임워크 장점 : 개발 용이, 시스템 복잡도의 감소, 이식성, 품질 보증, 운영 용이, 개발 코드 간소화, 변경 용이성, 설계 및 코드의 재사용성 증가

신기술 용어

네트워크, 소프트웨어, 하드웨어 관련 신기술

중복 출제된 내용만 정리

  • 프로토콜 관련
    • RIP : 최단 경로 탐색, Bellman-Ford, 벡터 라우팅 프로토콜
    • MQTT : IBM, 대역폭 제한, TCP/IP, IoT
  • 모바일 관련
    • Mesh : 무선 랜 한계, 대규모 디바이스 네트워크 생성 최적화, 차세대 이동 통신
  • 하드웨어 관련
    • 고가용성 솔루션 (HACMP) : 공유 디스크, 클러스터링
    • 직접 연결 저장 장치 (DAS) : 호스트 버스 어댑터, 네트워크 디바이스 없이 직접 연결

소프트웨어 개발 보안

소프트웨어 개발 보안 개요

  • 시큐어 OS : 컴퓨터 운영체제에 보안 기능을 추가
    • 시큐어 OS 접근 통제 종류 : 강제적, 임의적, 역할 기반
  • 스택 가드 : 메모리 상에 프로그램 복귀 주소와 변수 사이에 특정 값 (카나리)를 저장했다가, 그 값이 변경되면 오버플로우 상태로 가정해 프로그램 실행 중단

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

  • 정보 보안 3대 요소 : 기밀성 (인가 사용자만 접근), 무결성 (인가 방법으로만 수정), 기용성 (인가 사용자 업무 수행 유지)

시큐어 코딩 가이드

  • 입력 데이터 검증 및 표현의 보안 약점 종류 : SQL Injection, 자원 삽입, 크로스 사이트 스크립트 (XSS)
  • 보안 기능의 보안 약점 종류 : 하드 코드된 비밀번호

암호화 알고리즘

  • 암호 알고리즘 : 평문을 암호문으로 (암호화), 암호문을 평문으로 (복호화) 바꿀 때 암호 키를 통해 사용되는 알고리즘
  • 공개 키 : 암호 키와 해독 키가 다름 (비대칭 키 암호화), 쉬운 키 분배, 느린 속도, 복잡한 알고리즘, RSA
  • 비밀 키 : 암호 키와 해독 키가 같음 (대칭 키 암호화), 어려운 키 분배, 빠른 속도, 쉬운 알고리즘, DES/AES
  • 해시 암호화 : 임의 길이의 메시지를 입력하면 고정 길이의 출력값으로 변환 (디지털 서명에 활용 → 데이터 무결성 제공)
    • 해시 3저항성 : 역상 저항성, 제2 역상 저항성, 충돌 저항성

서버 인증과 접근 통제

서버 인증 및 서버 통제 개요

  • 사용자 인증 : 지식 기반 인증 (ID/PW), 소유 기반 인증 (토큰), 생체 기반 인증, 다중 인증
  • 접근 통제 : 시스템 자원 이용에 대한 불법적인 접근 방지
    • 접근 통제 요소 → AAA (인증 권한 검증 계정 관리)
    • 강제적 접근 통제 : 중앙에서 정보 수집 및 분류하여 보안 레벨 결정
    • 임의적 접근 통제 : 정보 소유자가 보안 레벨 및 접근 제어 설정
    • 역할 기반 접근 통제 : 사람이 아닌 직책에 대해 권한을 부여
  • 벨 라파둘라 모델 (BLP) : 정보의 기밀성에 따라 상하 관계가 구분된 정보의 보호를 위해 자신의 권한보다 낮은 수분의 문서만을 읽을 수 있게 함 (다중 마스터 복제 방식 기반, 데이터 복제·분산 처리에 효과적)

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

  • IDS (침입 탐지 시스템) : 외부 침입 공격에 대해 탐지하는 네트워크 보안 시스템
    • 침입 탐지 기법 : 오용 탐지, 이상 탐지,
  • IPSec (IP Security) : 통신 세션의 각 IP 패킷을 암호화하고 인증하는 인터넷 프로토콜
  • 가상 사설망 : 이용자가 공중망에 사설망을 구축해 전용망을 사용하는 듯한 효과를 가짐

공격 유형

서비스 공격 유형

  • 스머프 공격 : 공격 대상 주소에 근원지로 대량의 ICMP 응답 패킷을 전송해 서비스 거부 유발
  • Ping of Death : 비정상적인 ICMP 패킷으로 시스템 성능 저하
  • Ping 플러딩 : Ping 테스트로 공격자가 공격 대상 컴퓨터 확인
  • DDos : 여러 대의 공격자를 분산 배치 및 동시에 서비스 거부 공격
  • TCP 세션 하이재킹 : 서버와 클라이언트가 TCP로 통신할 때, RST 패킷을 보내 세션을 끊고 세션을 탈취
  • 피싱 : 가짜 웹사이트로 개인 정보를 탈취
  • 랜섬웨어 : 시스템을 잠그거나 데이터를 암호화해 이를 인질로 금전 요구
  • 키 로거 : 키보드 움직임을 탐지해 개인정보 탈취
  • APT (지능적 지속 위협) : 다양한 보안 위협을 만드렁 정보 유츌
  • 백도어 : 프로그램이나 손상된 시스템에 허가되지 않은 접근을 가능하게 정상적인 보안 절차를 우회
    • Tripwire : 크래커가 백도어를 만들거나, 설정 파일을 변경했을 때 분석하는 도구
  • Switch Jamming 스위치 허브의 기능을 방해해 스위치를 더미 허브처럼 작동시킴

공격 탐지 및 방지

  • Honeypot : 침입자를 속여 실제 공격당하는 것처럼 보여주어 크래커 추적 및 공격 기법 정보 수집
  • DPI : 전 계층 프로토콜과 패킷 내부 컨텐츠를 파악하는 패킷 분석 기술
  • HSM : 암호화 키를 생성 및 저장하는 전용 하드웨어 장치
  • TCP Wrapper : 외부 컴퓨터가 접속되면 접속 인가 여불를 점검해 접속 허용
  • HSM : 네트워크를 제어부, 데이터 전달부로 분리해 네트워크를 제어 및 관리