자격증/정보처리기사 인강 - 필기

제5과목 정보시스템 구축 관리

kms152000 2024. 5. 17. 04:01

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

1-1. 소프트웨어 개발 방법론 선정(암기)

 

비용 산정 모델

  • 하향식 방법
    • 전문가의 감정에 의한 방법: 2인 이상의 전문가에 비용 산정을 의뢰하여 산출
    • 델파이 방법: 전문가가 독자적으로 감정할 때, 발생할 수 있는 편차를 줄이기 위해 단계별로 전문가들의 견해를 조정자가 조정하여 최종 견적을 결정하는 방법
  •  상향식 방법
    • 원시 코드 라인 수(LOC)기법: 소프트웨어 각 기능의 원시 코드 라인 수의 비관치, 낙관치, 기대치를 측정하여 예측치를 구하고 이를 이용하여 비용을 산정하는 방법
    • 개발 단계별 노력기법(M/M): LOC를 보완한 것.Man/Month
  • 수학적 방법
    • COCOMO 모형: 보헴이 제안. 원시 프로그램의 라인 수에 따라 비용 산정
      • Organic(5만 라인 이하), Semi-Detached(30만 라인 이하), Embedded(그 이상)
      • LOC(Lines of code)기법 사용
      • 예상 비용 = (낙관 정도 + 4*기대 정도 + 비관 정도)/6
    • 생명주기 예측 모형(푸트남 모형): 소프트웨어 개발 주기의 각 단계마다 비중을 다르게 하여 비용을 산출하는 방법
      • 대형 프로젝트의 노력 분포 산정에 이용
      • 개발 기간이 늘어날수록 프로젝트 적용 인원이 노력이 감소한다.
    • 펑션 포인트(FP) 모형: 각 기능에 따라 가중치를 부여하여 소프트웨어의 규모나 복잡도, 난이도 산출
      • FP = 전체 기능 점수 * [0.65 + (0.1*총 영향 정도)
      • 자료입력, 정보출력, 명령어, 데이터 파일, 필요한 외부 루틴과의 인터페이스

 

자동화 추정 도구

  • SLIM: Rayleigh-Norden 곡선과 Putnam예측 모델이 기초
  • ESTIMACS: 다양한 프로젝트와 개인별 요소를 수용하도록 FP모형 기초

 

 

 

품질 관리는 국제 표준으로 정한다.

 

  1. ISO12207 표준
    • 소프트웨어와 관련된 조직과 사람, 소프트웨어 획득자, 공급자, 개발자, 운영자, 유지보수자, 품질보증 관리자, 사용자등의 이해관계자들이 각자의 입장에서 할 일을 정의하고 지속적으로 개선시키기 위한 활동
      • 기본 공정 프로세스
      • 지원 공정 프로세스
      • 조직 공정 프로세스
  2. CMMI(CMM과 동일)
    • 소프트웨어의 개발 공정 및 조직의 성숙도를 초기, 반복, 정의, 관리, 최적화 등의 5개로 나누어 조직의 공정 개선 활동 지원 모델
    • 등급이 올라갈수록 품질이 올라감
      • 성숙단계
        1. 초기단계
        2. 반복단계
        3. 정의단계
        4. 관리단계
        5. 최적단계 
  3. SPICE 모델
    • 소프트웨어 프로세스 평가를 위한 국제 표준을 제정하는 프로젝트
    • 개발 기관이 프로세스 개선을 위하여 스스로 평가
    • 기관에서 정한 요구 조건을 만족하는지 개발 조직 스스로 평가
    • 계약을 맺기 위하여 수탁 기관의 프로세스를 평가
      • CMM의 단점 개선
      • CMM은 조직을 평가하므로 제품의 품질과 연관이 없다.
      • CMM은 조직 전체에 대한 등급 판정이 비효율적, 비현실적이다.
      • CMM은 소규모 업체에서는 적용이 곤란하다.

 

 

 

 

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

테일러링: 해당 과제에 딱 맞는 최적화된 결과를 얻기 위해, 맞지 않는 일반적인 방법론이아 산출물 목록은 제거하고, 꼭 필요한 방법론과 산출물만 남기는 작업

 

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

 

 

 

 

 

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

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

 

신기술 용어

  • VPN: 가상사설망
  • Mesh Network: 홈 네트워킹, 공공 안전 등 특수한 목적 
  • PICONET: 블루투스
  • 와이선: 사물인터넷 저전력 장거리 통신기술
  • SDN: 소프트웨어들로 네트워킹을 가상화하여 제어하고 관리하는 네트워크 

 

 

  1. 네트워크 설치 구조
    1. 버스(bus)형 구조: 하나의 통신 회선에 여러 대의 컴퓨터가 멀티 포인터로 연결되어 있는 구조 형태
      • 장점
        • 구조가 간단하여 설치가 용이, 저비용
      • 단점
        • 컴퓨터를 무분별하게 추가할 경우 통신 성능 저하됨
        • 일부분에 고장이 나면 전체 네트워크 영향
    2. 트리(tree)형 구조: 각 컴퓨터가 계층적으로 연결되어 있는 구성 형태, 나뭇가지
      • 장점
        • 허브만 준비되어 있다면 많은 단말 노드 쉽게 연결 가능
      • 단점
        • 모든 통신이 허브를 통해 이루어지므로 허브가 고장 나면 연결된 단말 노드는 통신 제한
    3. 링(ring)형 구조: 컴퓨터 등 단말 노드가 양쪽의 컴퓨터와 점 대 점으로 연결되어 고리처럼 순환형으로 구성된 형태
      • 장점
        • 단말 노드 추가, 삭제 등 네트워크 재구성이 용이
      • 단점
        • 링의 한 부분에 문제가 생기면 전체 네트워크에 영향
    4. 성(star)형 구조: 각 단말 노드가 허브라는 네트워크 장비에 점 대 점으로 연결되어 있는 구성 형태
      • 장점
        • 소규모 네트워크 설치 및 재구성이 간편
      • 단점
        • 중앙 허브가 고장 나면 전체 네트워크에 영향
  2. 네트워크 장비 유형
    1. 스위칭/라우팅 장비
      • 스위치: 네트워크에서 전달 경로를 찾는 기능
        • 스위치: OSI 2계층(데이터링크계층), 네트워크 내
      • 라우터: OSI 3계층(네트워크계층), 네트워크 간
    2. 광전송 장비: 네트워크의 스위칭 노드를 묶어주는 시스템(암기)
      1. SONET: 동기식 광통신망
      2. SDH: ITU 국제표준
      3. DWDM: 파장 분할 다중, 하나의 광섬유에 여러 개의 빛 파장을 동시에 전송
      4. CET: 고속 전송
    3. 엑세스 장비
    4. 이동 통신 장비
      • 기지국(BTS): 교환기에 제공
      • 제어국(BSC): 기지국 제어, 교환기와 연동
      • 교환기(MSC): 서비스 제어, 연동 기능

 

 

 

 

2-2. SW 구축 관리

신기술 용어

  • 스택가드: 특정 함수 실행 하면 이전 함수로 돌아가기 위한 주소가 기록된다. 카나리에 저장, 보안 강화 기법
  • 뉴럴링크: 뇌 연구 스타트업
  • 딥러닝: 인공지능 > 머신러닝 > 딥러닝
  • 블록체인: 암호화폐 거래에 사용
  • 증강현실: 가상 현실

 

 

소프트웨어 개발보안 적용 사례

  1. MS-SDL
  2. Seven Touchpoints: 실무적으로 검증됨, 개발 라이프사이클에 통합
  3. CLASP: 이미 운영중인 곳에 적용하기 좋음 

 

 

 

 

2-3. HW 구축 관리

서버 장비 운영 요소

  1. 서버 탑재 SW
  2. 저장 장치(스토리지 시스템)
    • DAS: 서버 장비에 직접 연결, 구성이 용이함
    • NAS: 서버와 저장 장치를 네트워크로 연결, 구성 설정 간편, 서버 한 곳에서 관리해서 스토리지 및 파일 공유 용이
    • SAN: DAS의 빠른처리와 NAS의 공유 장점을 합침. 광케이블(FC)

 

 

신기술 용어

  • KDD: 기계 학습 등을 통해 DB에서 지식을 자동으로 발견하려는 시도
  • Data Mining: 많은 데이터 가운데 숨겨져 있는 유용한 상관관계를 발견하고 아용하는 과정
  • 하둡: 대량의 자료를 처리하는 큰 컴퓨터 클러스터에서 동작하는 분산 응용 프로그램을 지원
  • MapReduce: 구글에서 대용량 데이터 처리를 분산 병렬 컴퓨팅에서 처리하기 위한 목적으로 제작
  • Mashup: 웹으로 제공하는 정보와 서비스를 융합하여 새로운 것을 만드는 것

 

 

 

 

 

2-4. DB 구축 관리

필요하면 찾아보기

 

 

 

 

 

 

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

3-1. SW개발 보안 설계

SW개발보안의 3요소

  • 기밀성(confidentiality): 승인된 주체들에게만 접근 허용
  • 무결성(integrity): 승인된 방법에 의해서만 변경 허용
  • 가용성(availability): 승인된 사용자들이 적시에 사용 가능하도록 함.

 

 

SQL 삽입 공격

크로스 사이트 스크립트(XSS) 공격

 

 

3-2. SW개발 보안 구현

 암호 알고리즘

  1. 비밀키(대칭 키) 암호
    1. 치환 암호
    2. 전치 암호: 위치를 바꿈
    3. DES(Data Encryption Standard)
      • 데이터 암호화 표준은 블록 암호의 일종
      • 대칭키
      • 64비트 키 중 56비트의 키는 암호화 복호화에 사용, 나머지 8비트는 키 블록의 parity check용으로 사용
    4. AES(Advanced Encryption Standard)
      • DES의 보안성 때문에 보완한 알고리즘
      • 128비트, 192비트, 256비트 등의 형태
      • 블록 암호 방식
    5. SEED
      • 한국 개발 액티브X, 128비트 및 256비트 대칭 키 블록 암호 알고리즘
  2. 공개키 (비대칭 키) 암호
    1. RSA 암호
      • 암호문과 비밀키는 별개
      • 매우 큰 수의 소인수 분해가 어렵다.
      • 주요 연산 곱셈
    2. Diffie-Hellmon(디피-헬만)
      • 키의 분배 및 교환에 주로 사용되는 알고리즘
    3. 엘가말(ElGamal)
      • 키 길이는 RSA와 비슷
      • 이산대수의 문제에 기반
      • 난수 발생을 필요로 해서 다른 공개키 시스템에 비해 느린편에 속한다.
    4. ECC(타원곡선알고리즘)
      • 이산대수의 문제에 기반
      • 기존 공개키 보다 작은 키 길이를 사용하면서 비슷한 성능
      • 주요 연산 덧셈

 

 

 개발자가 범할 수 있는 코딩오류로 인한 보안약점

  • Null Pointer  역참조
  • 부적절한 자원 해제
  • 해제된 자원 사용
  • 초기화되지 않은 변수 사용

 

 캡슐화

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

 

 

 

4. 시스템 보안 구축

4-1. 시스템 보안 설계

시스템 보안 설계 대상

  • 계정 관리
  • 패스워드 관리
  • 세션관리
  • 접근통제
  • 권한관리
  • 취약점관리

 

 

서비스 공격 유형

  1. 수동적 공격
    • 스니핑
      • 다른 이의 대화를 엿듣는 것
      • 도청(Evaesdropping)
      • 전기적 신호를 분석해 정보를 찾아내는 것
  2. 능동적 공격
    • 세션 가로채기 공격 
      • IP Spoofing: 다른 컴퓨팅 시스템인 것처럼 가장 하기 위해 거짓 소스 IP주소로 인터넷 프로토콜 패킷을 만드는 일.
      • DNS Spoofing: 실제 도메인 네임 시스템 서버 해킹
    • DoS(Denial of Service)
      • Teardrop: IP 패킷 조각 전송, 컴퓨터의 OS다운
      • Smurf 공격: 브로드캐스트하는 분산 서비스 거부 공격
      • TCP SYN Flooding 공격: 연결설정 취약점을 이용
    • DDoS(Distributed DoS): 여러 대의 공격자를 분산적으로 배치
      • 트리누 공격
      • TFN 공격
      • Stacheldraht 공격
      • TFN2K 공격

 

 

정보 보안 침해 공격 관련 용어(암기)

  • 웜: 네트워크에서 연속적인 복사 기능으로 자가 증식해 기억장치 소모 혹은 저장된 데이터 파괴 
  • 랜섬웨어: 중요 파일에 대한 접근 차단하고 금품을 요구
  • 백도어: 네트워크 관리자가 외부에서도 시스템 점검을 하려고 빈틈을 만들었는데 악용 됨.
    • 백도어 탐지 기법
    • tripwire: 크래커가 침입하여 백도어를 만들어 놓거나, 설정 파일을 변경했을 때 분석하는 도구 
      • 현재 동작중인 프로세스 및 열린 포트 확인
      • SetUID 파일 검사
      • 바이러스 및 백도어 탐지 툴 사용
      • 무결성 검사
      • 로그 분석
  • 트로이 목마: 컴퓨터에 숨어있다가 사용자의 정보를 몰래 유출하는 악성코드

 

 

시스템 인증

  • DAC
    • 임의적 접근 통제
    • 정보 소유자
    • 중앙 집중화된 정보 관리가 어렵다.
  • MAC
    • 강제적 덥근 통제
    • 중앙 집중화된 정보 관리
    • B로 시작하는 모델 2개
  • RBAC(Role-Based)
    • 역할 기반 접근 통제
    • 사람이 아닌 직책에 따라 권한 부여

 

 

 

4-2. 시스템 보안 구현

시스템 보안 구현 도구

  • MBSA: 보안 관련 설정 확인 기능
  • Nmap: 포트 열려있는지 확인
  • NBTScan: 네트워크 점검
  • RIP:
    • 벡터 방식을 사용하는 내부 라우팅 프로토콜
    • 최대 홉 카운트와 흡수가 15
    • 소규모 네트워크 환경에 적합
    • 최단경로탐색에는 Bellman-Ford 알고리즘 사용