[정보처리기사] 정보 시스템 구축 관리 - 5과목 정리

2025. 1. 30. 16:52·📜 Certs/정보처리기사

 

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

1) 소프트웨어 개발 방법론

(1) 구조적 방법론

  • 정형화된 분석 절차에 따라 사용자 요구사항을 파악하여 문서화
  • 처리 중심의 방법론
  • 60년대까지 가장 많이 적용된 방법론
  • 목적: 쉬운 이해, 검증 가능한 프로그램 코드 생성
  • 분할과 정복 기법 사용

(2) 정보공학 방법론

  • 계획, 분석, 설계, 구축에 정형화된 기법을 상호 연관성 있게 통합·적용
  • 자료 중심
  • 대규모 정보 시스템 구축에 적합

(3) 컴포넌트 기반 방법론

  • 이미 만들어진 컴포넌트를 조합하여 하나의 애플리케이션 완성
  • 컴포넌트 재사용으로 유지보수 비용 최소화, 생산성과 품질 향상
  • 새 기능 추가가 간단하므로 확장성 보장

절차

  1. 개발 준비
  2. 분석
  3. 설계
  4. 구현
  5. 테스트
  6. 전개
  7. 인도

2) 소프트웨어 재사용

정의

  • 이미 개발된 소프트웨어를 다른 소프트웨어 개발에 사용하는 것
  • 품질과 생산성을 높이는 효과

이점

  • 개발 시간과 비용 단축
  • 소프트웨어 품질 향상
  • 개발 생산성 향상
  • 실패 위험 감소
  • 시스템 구축 지식 공유
  • 시스템 명세, 설계, 코드 등 문서 공유

방법

  • 합성 중심: 블록(모듈)들을 맞춰서 새로운 소프트웨어를 구성
  • 생성 중심: 추상화 형태로 쓰인 명세를 구체화하여 패턴을 구성하고 구현

3) 소프트웨어 재공학

  • 새로운 요구에 맞도록 기존 시스템을 활용해 더 나은 시스템을 구축하는 것
  • 새 기능을 추가하여 성능을 개선하는 작업
  • 유지보수 비용이 소프트웨어 개발 비용의 대부분을 차지 → 기존 것 개조/개선으로 유지보수성과 품질을 향상
  • 유지보수성 향상 → 소프트웨어 위기 해결에 도움이 됨
  • 자동화 도구 사용 과정을 포함
  • 소프트웨어 수명 연장, 기술 향상, 개발 기간 단축, 오류 감소, 비용 절감

주요 활동

  1. 분석: 기존 명세서를 확인해 시스템 동작을 이해하고, 재공학 대상을 선정
  2. 재구성: 코드만 재구성하며 기능/동작은 수정하지 않음
  3. 역공학: 기존 소프트웨어를 분석해 개발 과정, 데이터 처리 과정을 재발견/재창조 (설계도를 추출하는 등)
  4. 이식: 다른 OS나 하드웨어에서도 사용할 수 있도록 시스템을 옮기는 것

4) CASE

Computer Aided Software Engineering

  • 요구분석, 설계, 구현, 검사/디버깅을 소프트웨어 도구로 자동화
  • 다양한 시스템에서 활용되는 자동화 도구(CASE Tool) 제공
  • 소프트웨어, 하드웨어, 데이터베이스, 테스트 등을 통합해 소프트웨어 개발 환경을 조성
  • 소프트웨어 개발도구 + 방법론을 정형화된 구조와 방법으로 결합 → 생산성 향상

주요 기능

  • 소프트웨어 생명주기 전체 단계를 연결하고, 다양한 개발 모형 지원
  • 그래픽 지원

5) 비용 산정 기법

LOC(원시 코드 라인 수) 기법: 상향식

  • 각 기능의 원시 코드 라인수에 대한 비관치, 낙관치, 기대치를 측정 후 예측치를 계산하고 비용을 산정
  • 측정이 용이하고 이해하기 쉬워 가장 많이 사용

예측치 = (a + 4m + b) / 6
(a: 낙관치, b: 비관치, m: 기대치)

산정공식

  • 노력(인월) = LOC / (1인당 월평균 생산 코드 라인 수)
  • 개발 비용 = 노력(인월) × 단위 비용(1인당 월 인건비)
  • 개발 기간 = 노력(인월) / 투입 인원
  • 생산성 = LOC / 노력(인월)

수학적 산정 기법: 상향식

  • 경험적 추정 모형, 실험적 추정 모형
  • 개발 비용 산정을 자동화
  • 유사 프로젝트를 기반으로 비용공식을 경험적으로 유도
  • COCOMO, Putnam, 기능점수(FP) 모형 등이 대표적

COCOMO 모형

  • COnstructive COst MOdel
  • 보헴(Bohem)이 제안
  • LOC 기반 비용 산정 기법
  • LOC 예측 후 SW 종류에 따른 방정식에 대입해 비용 산정
  • 중소 규모 프로젝트 추정에 적합
  • 결과: 프로젝트를 완성하는 데 필요한 노력(Man-Month)

COCOMO 소프트웨어 개발 유형

  1. 조직형
    • 기관 내부에서 개발된 중소규모 SW (4만 라인 이하)
    • 업무용, 과학기술 계산 등
  2. 반분리형
    • 조직형과 내장형 중간, 30만 라인 이하
    • OS/DB 관리 시스템, 컴파일러, 인터프리터 등
  3. 내장형
    • 30만 라인 이상, 초대형 규모
    • 미사일 유도, 신호기 제어 시스템 등 실시간 처리 시스템

Putnam 모형

  • SW 생명주기 전 과정에 사용될 노력이 시간에 따라 어떻게 분포되는지 가정
  • 생명주기 예측 모형이라 불림
  • Rayleigh-Norden 곡선의 노력분포도를 기초로 함
  • 대형 프로젝트에 적합

기능 점수(FP) 모형

  • 알브레히트(Albrecht)가 제안
  • SW 기능 증대 요인별 가중치를 부여해 총 기능점수를 산정
  • 총 기능 점수와 영향도를 통해 최종 FP를 구함
  • 기능 증대 요인: 자료 입력(입력 양식), 정보 출력(보고서), 명령어(사용자 질의 수), 데이터 파일, 외부 루틴과의 인터페이스

자동화 추정 도구

  • SLIM: Putnam 예측 모델에 기초한 자동화 측정 도구
  • ESTIMACS: 기능점수(FP)에 기초한 자동화 측정 도구

6) PERT

Program Evaluation and Review Technique

  • 프로젝트에 필요한 전체 작업의 상호관계를 표시하는 네트워크 기법
  • 각 작업별 낙관적/가능성 있는/비관적인 경우로 나누어 종료 시기를 결정
  • 과거 경험이 없어 소요 기간 예측이 어려운 소프트웨어 프로젝트에서 주로 사용
  • 노드와 간선으로 이루어진 네트워크로, 노드에는 작업, 간선에는 낙관치·기대치·비관치를 표시
  • 결정 경로, 작업 경계 시간, 상호 관련성을 파악 가능

작업 예측치 = (비관치 + 4 × 기대치 + 낙관치) / 6
평방 편차 = [(비관치 - 낙관치) / 6]²


7) CPM (임계 경로 기법)

  • 작업을 나열하고 소요 기간을 예측하는 기법
  • 노드(작업), 간선(전후 의존관계)으로 구성
  • 원형 노드에는 작업(이름, 소요시간), 박스 노드에는 이정표(예상 완료 시간)
  • 임계 경로(Critical Path)는 프로젝트 전체를 결정짓는 최장 경로

8) 간트 차트

  • 각 작업의 시작/종료를 막대 도표로 표시하는 프로젝트 일정표
  • 일명 시간선 차트
  • 중간 목표 미달성 시 그 이유나 기간 예측을 할 수 있음
  • 예산 초과 지출 관리 가능
  • 자원 배치와 인원 계획에 유용하게 사용
  • 작업 경로 표시가 되지 않고, 계획 변경 시 다소 번거롭다는 단점
  • 작업 일정, 기간, 산출물 등을 표시
  • 수평 막대의 길이로 작업 기간을 가시화

9) ISO/IEC 12207

  • ISO 표준 소프트웨어 생명주기 프로세스
  • 기본 생명주기 프로세스: 획득, 공급, 개발, 운영, 유지보수
  • 지원 생명주기 프로세스: 품질보증, 검증, 확인, 활동 검토, 감사, 문서화, 형상관리, 문제해결
  • 조직 생명주기 프로세스: 관리, 기반구조, 훈련, 개선

10) CMMI

Capability Maturity Model Integration

  • 개발 조직의 업무 능력과 조직의 성숙도를 평가하는 모델

성숙도 단계

  1. 초기: 정의된 프로세스 없음, 작업자 능력에 따라 성공 여부 결정
  2. 관리: 특정 프로젝트 내에서 규칙화된 프로세스 정의·수행
  3. 정의: 조직 차원에서 표준화된 프로세스 활용
  4. 정량적 관리: 정량적으로 프로세스를 관리 및 통제해 예측 가능
  5. 최적화: 지속적인 개선을 통해 프로세스를 최적화

11) SPICE

Software Process Improvement and Capability dEtermination

  • 소프트웨어 프로세스 평가, 개선 표준 (ISO/IEC 15504)
  • 5개의 프로세스 범주와 40개의 세부 프로세스로 구성
  • 프로세스 수행 능력 단계를 총 6단계로 분류
    • 불완전: 프로세스 구현이 없거나 목적 달성 못함
    • 수행: 프로세스 수행으로 목적 달성
    • 관리: 정의된 자원 범위 내에서 작업 산출물 인도
    • 확립: 소프트웨어 공학 원리에 기반을 둔 프로세스 수행
    • 예측: 프로세스가 통제되고 양적 측정을 통해 일관적으로 수행
    • 최적화: 프로세스 지속 개선으로 업무 목적을 충족

12) 소프트웨어 개발 방법론 테일러링

  • 정의된 개발 방법론을 프로젝트 상황과 특성에 맞도록 수정·보완하는 작업
  • 고려사항
    • 내부적 기준: 목표 환경, 요구사항, 프로젝트 규모, 보유 기술
    • 외부적 기준: 법적 제약, 표준 품질 기준

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

  • 공통 요소와 아키텍처를 일반화한 소프트웨어 시스템
  • 표준화된 개발 기술을 통해 특정 벤더 종속성을 해소
  • 예외처리, 트랜잭션, 메모리 공유, 데이터 소스 관리, 서비스 관리, 쿼리 서비스, 로깅 서비스, 사용자 인증 서비스 등을 제공

종류

  • 스프링 프레임워크: 자바 플랫폼을 위한 오픈소스 경량형 프레임워크
  • 전자정부 프레임워크: 우리나라 공공부문 정보화 사업 표준 프레임워크
  • 닷넷(.NET): Windows 기반 프로그램 개발/실행 프레임워크

특성

  • 모듈화: 캡슐화를 통해 변경 영향 최소화
  • 재사용성: 재사용 가능한 모듈 제공
  • 확장성: 다형성을 통한 인터페이스 확장
  • 제어의 역흐름(IoC): 프레임워크가 프로그램의 제어 흐름 주도

14) 소프트웨어 정의 기술 (SDE, SDx)

Software-Defined Everything

  • 네트워크, 데이터 센터 등 자원을 가상화해 개별 사용자에게 할당하고, 중앙에서 통합적으로 제어

소프트웨어 정의 네트워킹(SDN)

  • Software Defined Networking
  • 하드웨어에 의존적인 기존 네트워크보다 효율적 제어/관리 가능
  • 특정 서비스 트래픽 경로 수정이 용이

소프트웨어 정의 데이터 센터(SDDC)

  • 데이터센터의 모든 자원을 가상화
  • 인력 개입 없이 소프트웨어 조작만으로 관리/제어 가능

소프트웨어 정의 스토리지(SDS)

  • 물리적 데이터 스토리지를 가상화
  • 여러 스토리지를 하나로 묶거나, 하나의 스토리지를 여러 개처럼 사용 가능

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

1) 네트워크 관련 신기술

  • IoT(사물인터넷)
  • 메시 네트워크: 대규모 디바이스에서 네트워크 생성에 최적
  • 피코넷: 블루투스, UWB 등을 활용해 통신망 형성
  • 파장 분할 다중화(WDM): 광섬유에서 서로 다른 파장의 신호가 간섭 없이 동시 전송
  • 클라우드 기반 HSM: 클라우드로 인증서를 저장하고, 암호화 키는 하드웨어적으로 분리해 보안성 강화
  • 파스-타(PaaS-TA): 우리나라의 개방형 클라우드 컴퓨팅 플랫폼
  • 징(Zing): 초고속 근접 무선통신(NFC) 기술
  • SSO(Single Sign On): 한 번 로그인으로 여러 시스템에 자동 접속
  • 스마트 그리드: 전력선 기반 모든 통신/정보/애플리케이션 인프라를 하나의 시스템으로 통합 관리

2) 네트워크 설치 구조

  • 성형(Star, 중앙 집중형)
    • 중앙 컴퓨터와 각 단말 장치가 포인트 투 포인트로 연결
    • 관리가 용이하지만 중앙 장치 장애 시 전체 영향
  • 링형(Ring, 루프형)
    • 이웃 단말끼리 포인트 투 포인트로 연결
    • 데이터 단방향/양방향 전송 가능
  • 버스형
    • 하나의 통신 회선에 여러 단말 장치가 연결
    • 물리적 구조가 간단, 단말 추가/제거가 쉬움
    • 하나의 단말 고장 시 전체 영향 없음
  • 계층형(Tree, 분산형)
    • 중앙 컴퓨터와 일부 단말 장치는 단일 통신 회선으로 연결
    • 그 외 단말들은 중간 단말을 통해 연결
  • 망형(Mesh)
    • 모든 지점이 서로 연결
    • 노드 수가 n개이면 연결선은 n(n-1)/2, 노드 하나당 n-1개의 포트 필요
    • 신뢰성이 높지만 설치 비용이 큼

3) VLAN

  • 물리적 배치와 상관없이 논리적으로 네트워크 구역을 나눠서 관리하는 기술
  • 성능과 보안 향상

4) LAN의 표준안 (IEEE 802)

  • 유선 LAN은 802.3(Ethernet)
  • 무선 LAN은 802.11 시리즈 (a/b/g/n/ac 등)

5) CSMA/CA

Carrier Sense Multiple Access / Collision Avoidance

  • 무선 랜에서 충돌을 피하기 위해 매체가 비어있는지 확인 후, 일정 시간 뒤 데이터 전송
  • 충돌 회피에 특화된 기법

6) 경로 제어 프로토콜 (Routing Protocol)

IGP (Interior Gateway Protocol)

  • 하나의 자율 시스템(AS) 내에서 사용하는 라우팅 프로토콜
  • RIP
    • 소규모 동종 네트워크에서 가장 널리 사용
    • 벨만-포드 알고리즘
    • 최대 홉 수 15로 제한
  • OSPF
    • RIP 단점 보완, 대규모 네트워크에 적합
    • 다익스트라(Dijkstra) 알고리즘으로 최단 경로 산출
    • 라우팅 정보 변화 시 전체 라우터에 전달

EGP (Exterior Gateway Protocol)

  • 자율 시스템 간 라우팅 용 프로토콜
  • BGP(Border Gateway Protocol)
    • EGP를 보완한 프로토콜
    • AS 간 경로 제어

7) 흐름 제어

송·수신 측 사이에서 데이터 전송량과 속도를 규제

  • 정지-대기(Stop-and-Wait)
    • 매 데이터 전송 후 ACK(확인 신호) 받아야 다음 데이터 전송
  • 슬라이딩 윈도우
    • 미리 설정된 윈도우 크기만큼은 ACK 없이도 연속 전송 가능
    • 전송 효율성이 좋음

8) SW 관련 용어

매시업

  • 웹에서 제공하는 정보나 서비스를 조합해 새로운 SW, 서비스, DB를 만드는 기술
  • 여러 정보원에서 제공받은 콘텐츠를 조합해 하나의 서비스로 만드는 것

서비스 지향 아키텍처(SOA)

  • 기업 내부 애플리케이션을 공유/재사용 가능한 서비스 중심으로 구성하는 아키텍처
  • 표현 계층, 서비스 중간 계층, 애플리케이션 계층, 데이터 계층으로 구성

디지털 트윈

  • 현실 속 사물을 SW로 가상화하여 시뮬레이션하는 기술
  • 자동차, 항공, 에너지, 국방, 헬스케어 등 다양한 분야에서 활용

텐서플로(TensorFlow)

  • 구글 브레인 팀이 개발한 오픈소스 머신러닝/딥러닝 라이브러리
  • 데이터 흐름 그래프(그래프 계산)를 활용

Docker

  • 애플리케이션을 컨테이너 형태로 패키징해 배포·실행하는 자동화 기술

스크래피(Scrapy)

  • 파이썬 기반 웹 크롤링 및 스크레이핑 프레임워크

9) 보안 관련 용어

서비스형 블록체인(BaaS)

  • Blockchain as a Service
  • 블록체인 개발 환경을 클라우드 기반으로 제공
  • 노드 추가/삭제 등이 간편

OWASP

  • Open Web Application Security Project
  • 웹 취약점을 연구하는 비영리 단체
  • 3~4년 주기로 10대 웹 취약점을 발표

TCP 래퍼

  • 외부 컴퓨터의 접속을 확인해 허용/거부하는 보안 도구

허니팟

  • 비정상적인 접근을 탐지하기 위해 공격자를 유인하는 시스템
  • 공격 정보를 수집하고, 공격 기법 분석 가능

DPI (Deep Packet Inspection)

  • OSI 7계층까지 패킷 내부 콘텐츠를 분석해 해킹·침입 시도를 탐지/차단

10) HW 관련 신기술

고가용성(HA)

  • High Availability
  • 장애 발생 시 다른 시스템으로 즉시 대체 가능한 이중화 환경(클러스터 등)

RAID

  • Redundant Array of Inexpensive Disk
  • 여러 물리 디스크를 병렬로 묶어 속도와 안정성을 높임

앤 스크린(N-Screen)

  • 다양한 기기(N개의 디바이스)에서 동일 콘텐츠를 자유롭게 이용

MEMS

  • Micro-Electro Mechanical Systems
  • 미세전자기계시스템

트러스트존(TrustZone)

  • 하나의 프로세서에서 일반 구역과 보안 구역을 분할 관리
  • 하드웨어 기반 보안 기술

멤리스터(Memristor)

  • 메모리 + 레지스터
  • 전류 흐름 이력을 기억해 스위치처럼 동작

11) Secure OS

  • 기존 OS에 보안 커널을 이식해 외부 침입에서 시스템을 보호하는 운영체제
  • 주소 저장 스택 등에서 발생하는 보안 약점을 완화
  • 구현이 복잡하지만 보안성이 높음

보안 기능

  • 식별, 인증
  • 임의적 접근통제(DAC)
  • 강제적 접근통제(MAC)
  • 객체 재사용 보호 (메모리 초기화)
  • 완전한 조정 (우회 불가)
  • 신뢰 경로 (비밀번호, 권한 설정 등 안전 경로 제공)
  • 감사 및 감사기록 축소 (로그 기록 및 보호)

12) DB 관련 신기술

하둡(Hadoop)

  • 오픈소스 분산 컴퓨팅 플랫폼
  • 일반 PC로 구성된 분산 환경에서 대규모 데이터 세트를 병렬 처리

맵리듀스(MapReduce)

  • 하둡 기반 대용량 데이터 분산 처리 프로그래밍 모델
  • Map 단계에서 데이터를 분산 처리 후, Reduce 단계에서 결과를 합침

타조(Tajo)

  • 하둡 기반 분산 데이터웨어하우스 프로젝트 (국내 개발)

데이터 마이닝

  • 대량의 데이터 집합에서 유용한 정보를 발견하는 기법
  • 데이터에 내재된 변수 간 상호관계를 찾고 패턴화

OLAP

  • Online Analytical Processing
  • 다차원 데이터로부터 통계적 요약 정보를 분석해 의사결정에 활용
  • 대표 연산: Roll-up, Drill-down, Drill-through, Slicing, Dicing 등

13) 회복

  • 트랜잭션 장애로 DB가 손상됐을 때 이전 상태로 복구

회복 기법

  • 연기 갱신 기법: 트랜잭션이 완료될 때까지 DB 갱신을 미룸 (redo만 필요)
  • 즉각 갱신 기법: 트랜잭션 도중에도 DB에 반영 (redo/undo 모두 필요)
  • 그림자 페이지 기법: 복사본(그림자 페이지) 유지 → 롤백 시 그림자 페이지로 교체 (로그 불필요)
  • 검사점 기법: 검사점에 관련 정보를 로그로 보관 → 장애 발생 시 검사점 이후만 복구

14) 병행 제어

  • 다수 트랜잭션이 동시에 DB에 접근할 때 상호 간섭을 막고 일관성을 유지

기법 종류

  1. 로킹(Locking)
    • 공유 자원에 배타적 접근을 설정
  2. 타임 스탬프 순서
    • 트랜잭션마다 타임스탬프를 부여해 순서를 결정
    • 교착상태 발생이 없음
  3. 낙관적(검증) 기법
    • 대부분 읽기 전용이면 병행 제어 없이 진행 후 마지막에 검증
  4. 다중 버전 기법
    • 각 데이터에 여러 버전을 유지하며 타임스탬프로 관리

로킹 단위

  • 한 번에 로킹할 수 있는 데이터 객체의 크기(DB, 파일, 레코드 등)
  • 단위가 크면 관리가 쉽지만 병행성↓
  • 단위가 작으면 관리가 복잡하지만 병행성↑

15) 교착상태(Deadlock)

  • 둘 이상의 프로세스가 서로 자원을 점유한 상태에서, 상대가 점유한 자원을 요구하며 무한정 대기

필요충분 조건

  1. 상호 배제 (한 번에 한 프로세스만 자원 사용)
  2. 점유와 대기 (자원을 이미 점유한 상태에서 다른 자원을 기다림)
  3. 비선점 (자원을 강제로 빼앗을 수 없음)
  4. 환형 대기 (자원-프로세스가 원형으로 얽혀 있음)

해결 방법

  • 예방 기법: 교착상태 4가지 조건 중 하나를 제거 (자원 낭비 심함)
  • 회피 기법: 교착 가능성 있으면 우회 (은행원 알고리즘)
  • 발견 기법: 교착상태를 탐지(자원할당 그래프 등)
  • 회복 기법: 교착상태에 빠진 프로세스 종료나 자원 선점으로 복구

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

1) Secure SDLC

  • SDLC 각 단계에 보안 강화를 포함한 소프트웨어 개발 생명주기
  • 운영 단계에서 보안 이슈 해결 시 비용이 크므로, 초기에 보안을 설계하는 기법

방법론

  • CLASP(Secure Software)
    • 초기 단계에서 보안 강화, 활동 중심·역할 기반 프로세스
    • 현재 운용 중인 시스템에 적용하기 적합
  • SDL(마이크로소프트)
    • 나선형 모델 기반
  • Sevel Touchpoints
    • 소프트웨어 보안 모범사례를 SDLC에 통합
    • 모든 산출물에 대해 위험 분석과 테스트 수행

2) 보안 요소

3대 요소

  1. 기밀성(Confidentiality): 인가된 사용자만 데이터 접근
  2. 무결성(Integrity): 인가된 사용자만 데이터 변경
  3. 가용성(Availability): 인가된 사용자는 언제라도 자원 사용 가능

추가 요소

  • 인증(Authentication)
  • 부인 방지(Non-repudiation)

3) 세션 하이재킹

  • 클라이언트와 서버 사이에 맺어진 세션을 탈취해 불법적 접근
  • 정상 연결을 RST 패킷 등으로 끊고 재연결을 공격자가 가로채는 방식
  • 시퀀스 번호를 동기화해 두었던 점을 악용

4) 입력 데이터 검증 및 표현의 보안 약점

  • SQL 삽입: 쿼리문에 임의 문자열 삽입 → 필터링 필요
  • 경로 조작 및 자원 삽입: 파일 경로를 조작해 자원에 무단 접근
  • 크로스 사이트 스크립팅(XSS): 웹페이지에 스크립트를 삽입해 방문자 정보를 탈취
  • 운영체제 명령어 삽입: 외부 입력값을 통해 시스템 명령어 실행
  • 위험한 형식 파일 업로드: 스크립트 파일 등을 업로드해 서버를 공격
  • 신뢰되지 않은 URL 자동 연결: 피싱 사이트로 유도
  • 메모리 버퍼 오버플로: 배열 크기를 벗어나 시스템 메모리 침범

5) 보안 기능의 보안 약점

  • 적절한 인증 없이 중요 기능 허용: 재인증 과정 필요
  • 부적절한 인가: 접근제어 누락된 실행 경로로 정보 탈취
  • 잘못된 권한 설정: 중요 자원의 권한이 잘못 부여
  • 취약한 암호화 알고리즘 사용: 강력한 알고리즘으로 교체 필요
  • 중요정보 평문 저장 및 전송: 암호화 처리 필요
  • 하드코드된 비밀번호: 외부 설정값으로 전환

6) 스택 가드(Stack Guard)

  • 스택 상에 복귀주소와 지역변수 사이에 특정 값을 저장해 메모리 변조를 방지
  • 값이 변경되면 오버플로우로 판단하고 프로그램 중지

7) 접근 제어자, 접근 지정자

구분 클래스 내 동일 패키지 하위 클래스 외부 패키지

public O O O O
protected O O O X
(default) O O X X
private O X X X

8) 암호화

개인키 암호화 기법

  • 대칭 암호화
  • 암호화와 복호화에 동일한 키 사용
  • 블록 암호: DES, SEED, AES, ARIA 등
  • 스트림 암호: RC4 등

공개키 암호화 기법

  • 비대칭 암호화
  • 암호화 키는 공개, 복호화 키는 비밀
  • RSA가 대표적

양방향 알고리즘 종류

  • SEED: KISA에서 개발한 블록 암호, 128비트 블록, 128·256비트 키
  • ARIA: 국정원, 산학협력으로 개발된 블록 암호, 128비트 블록, 128·192·256비트 키
  • DES: 1975년 NBS에서 발표한 개인키 암호, 64비트 블록, 키 길이 56비트
  • 3DES: DES를 3번 반복 적용
  • AES: NIST에서 발표, 128비트 블록, 128·192·256비트 키
  • RSA: 공개키 방식, 큰 수의 소인수분해가 어렵다는 난해성 기반

9) 해시

  • 임의 길이 데이터를 고정 길이로 매핑하는 함수
  • 무결성 검증, 정보 보호 등에 활용

해시 함수 종류

  • SHA 시리즈(SHA-0, SHA-1, SHA-2, SHA-256, 등): NSA·NIST
  • MD5: Rivest가 MD4를 개선, 128비트
  • N-NASH: 일본 NTT, 128비트
  • SNEFRU: R.C.Merkle, 128 또는 256비트

10) 솔트(Salt)

  • 사용자 비밀번호가 같아도 암호화하면 결과가 동일해지는 문제를 방지
  • 암호화하기 전에 무작위 문자열(솔트)을 추가해 해시 생성
  • 무차별 대입 공격, 무작위 대입 공격에 대한 방어 효과

4. 시스템 보안 구축

1) DDoS(분산 서비스 거부) 공격

  • 취약한 호스트를 에이전트(공격 도구 설치)로 만든 후 다수의 에이전트가 동시에 공격
  • 에이전트를 관리하는 마스터(핸들러) 시스템을 두어 공격을 총괄 지휘

분산 서비스 공격 툴

  • Trin00: UDP Flooding
  • TFN: UDP Flooding, TCP SYN Flood, ICMP 공격 등
  • TFN2K: TFN 확장판
  • Stacheldraht: 이전 툴 기능 + 암호화 통신 + 자동 업데이트

2) 네트워크 침해 공격 관련 용어

  • Ping of Death: 허용 범위보다 큰 패킷을 전송해 대상 네트워크 마비
  • SMURFING: IP, ICMP 특성을 악용해 다량의 패킷을 증폭·전송
  • Smishing: 문자메시지(SMS)로 개인정보 탈취
  • Phishing: 공공기관 등을 사칭해 개인정보 탈취
  • Ping Flood: 대량의 ICMP Echo Request로 트래픽 유발
  • Evil Twin Attack: 동일 SSID의 악성 무선 AP로 접속을 유도
  • 스위치 재밍: 위조된 MAC 주소 다량 전송 → 스위치를 허브처럼 동작하게 만듦

3) 블루투스 관련 공격

  • 블루버그(BlueBug): 취약점을 이용해 휴대폰을 원격 조종, 통화 감청
  • 블루스나프(BlueSnarf): 파일 접근 취약점
  • 블루프린팅(BluePrinting): 공격 대상 장비 검색
  • 블루재킹(Bluejacking): 블루투스 메시지 스팸

4) 정보 보안 침해 공격 관련 용어

  • 웜(Worm): 네트워크를 통해 자기 복제 → 시스템 부하 유발
  • 제로 데이 공격: 보안 취약점이 공개되기도 전에 공격
  • 키로거: 키보드 입력 정보를 몰래 빼감
  • 랜섬웨어: 파일을 암호화하고 복호화 대가로 금전 요구
  • 백도어(Backdoor): 시스템 보안을 무력화하는 비밀 통로

5) 인증(Authentication)

  • 지식 기반: 사용자가 알고 있는 것(패스워드 등)
  • 소유 기반: 사용자가 소유한 것(토큰, 스마트카드 등)
  • 생체 기반: 지문, 홍채, 안면 인식
  • 위치 기반: 위치정보(GPS 등)

6) 관리적·물리적·기술적 보안

  • 관리적 보안: 조직의 정책, 인적 보안, 보안 교육 등
  • 물리적 보안: 출입 통제, 재해 복구 센터 등
  • 기술적 보안: 인증, 접근 제어, 시스템·네트워크 보안 설정 등

7) 리눅스 커널 로그

  • /dev/console: 커널 관련 메시지를 콘솔에 직접 출력
  • /var/log/wtmp: 로그인/로그아웃, 시스템 시작/종료 로그
  • /var/run/utmp: 현재 로그인 상태 기록
  • /var/log/btmp: 실패한 로그인 시도 로그
  • /var/log/lastlog: 마지막 로그인에 대한 기록

8) 침입 탐지 시스템(IDS)

Intrusion Detection System

  • 비정상적 사용, 오용, 남용 등을 실시간 탐지
  • 방화벽만으로 내부 사용자의 불법 행위를 제어하기 어려움

종류

  • HIDS(Host-Based IDS): 호스트 내부에서 동작
    • OSSEC, md5deep, AIDE 등
  • NIDS(Network-Based IDS): 네트워크 트래픽 분석
    • Snort, Zeek

설치 위치

  • 패킷이 라우터로 들어오기 전
  • 라우터 뒤
  • 방화벽 뒤
  • 내부 네트워크
  • DMZ 등

9) VPN

Virtual Private Network

  • 공중망을 암호화해 마치 전용선을 쓰는 것처럼 안전하게 통신

10) SSH(시큐어 셸)

  • 원격 로그인, 명령어 실행, 파일 복사 등을 안전하게 수행하는 프로토콜
  • 데이터 암호화와 강력한 인증 방식 제공
  • 보통 22번 포트 사용

 

'📜 Certs > 정보처리기사' 카테고리의 다른 글

[정보처리기사] 프로그래밍 언어 활용 - 4과목 정리  (2) 2025.01.28
[정보처리기사] 데이터베이스 구축 - 3과목 정리  (3) 2025.01.28
[정보처리기사] 소프트웨어 개발 - 2과목 정리  (2) 2025.01.23
[정보처리기사] 소프트웨어 설계 - 1과목 정리  (3) 2025.01.22
'📜 Certs/정보처리기사' 카테고리의 다른 글
  • [정보처리기사] 프로그래밍 언어 활용 - 4과목 정리
  • [정보처리기사] 데이터베이스 구축 - 3과목 정리
  • [정보처리기사] 소프트웨어 개발 - 2과목 정리
  • [정보처리기사] 소프트웨어 설계 - 1과목 정리
hjwjo
hjwjo
백엔드 및 풀스택 개발에 관심 있는 초보 개발자의 개발 블로그입니다.
  • hjwjo
    Jeongwoo's Devlog
    hjwjo
  • 전체
    오늘
    어제
    • Devlog
      • 🗄️ Backend
        • Java
        • Spring
        • JPA
        • SQL
        • JSP
        • AWS
        • GCP
        • Linux
        • GitHub
        • ML
        • Security
      • 🖥️ Frontend
        • React
        • CSS
      • 🏅 Project
        • Hackathon
        • Team Project
      • 📊 Algorithm
        • BOJ
      • 📜 Certs
        • ADsP
        • SQLD
        • 정보처리기사
      • 📖
        • JavaScript
      • 일상
        • 면접후기
  • 블로그 메뉴

    • 홈
    • Devlog
    • 태그
    • 방명록
  • 링크

    • GitHub
  • 공지사항

  • 인기 글

  • 태그

    java
    정보처리기사
    AWS
    백엔드
    스프링
    DML
    GCP
    Spring
    jsp
    스프링부트
    SQL
    http
    정처기
    쿼리
    자바
    java기초
    백준
    springboot
    ADsP
    데이터베이스
  • 최근 댓글

  • 최근 글

hjwjo
[정보처리기사] 정보 시스템 구축 관리 - 5과목 정리
상단으로

티스토리툴바