[정보처리기사 필기] 5과목 키워드 정리

딱지의겨울

·

2021. 4. 6. 13:55

시나공 2020 정보처리기사 필기 문제집에 각 단원별 10개 키워드 정리한 내용입니다.

5. 정보시스템 구축 관리

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

에자일 방법론

- 소프트웨어 개발 방법론 중 하나.

- 소규모 프로젝트, 고도의 숙련된 개발자, 급변하는 요구사항에 적합.

- 대표적 종류: 익스트림 프로그래밍(XP), 스크럼, 칸반, 크리스탈

- 절차: 사용자 스토리 > 계획 > 계발 > 승인 테스트

 

소프트웨어 비용 결정 요소

- 프로젝트 요소: 제품 복잡도, 시스템 크기, 요구되는 신뢰도

- 자원 요소: 인적 자원, 하드웨어 자원, 소프트웨어 자원

- 생산성 요소: 개발자 능력, 개발 기간

 

델파이 기법

- 하향식 비용 산정 기법

- 전문가 감정 기법의 주관적인 편견을 보완하기 위해 많은 전문가의 의견을 종합하여 산정하는 기법.

- 한 명의 조정자와 여러 전문가로 구성되어 여러 번 익명으로 비용 산정 후 요약 및 배포를 진행한다.

 

LOC 기법

- 상향식 비용 산정 기법

- LOC(원시 코드 라인 수, source Line of Code), 예측된 총 코드 라인 수를 구하고 이를 이용하여 비용 산정하는 기법.

- 산정 공식

s 노력(인월) = 개발 기간 투입 인원 = LOC / 인당 평균 생산 코드 라인 수

s 개발 비용 = 노력(인월) 단위 가격(월평균 인건비)

s 개발 기간 = 노력(인월) / 투입 인원

s 생산성 = LOC / 노력(인월)

 

COCOMO 기법

- 보헴이 제안한 소프트웨어 종류에 따라 다르게 책정되는 LOC에 의한 비용 산정 기법.

- 같은 규모의 프로그램이라도 그 성격에 따라 비용이 다르게 선정된다.

- COCOMO의 소프트웨어 개발 유형

s 조직형(Organic Mode): 중소 규모의 소프트웨어로 일괄 자료 처리나 과학 기술 계산용으로 5만라인 이하의 SW. 사무 처리용, 업무용, 과학용 응용 SW

s 반분리형(Semi-Detached Model): 트랜잭션 처리 시스템이나 운영체제, DBMS등 30만 라인 이하의 SW. 컴파일러나 인터프리터 같은 유틸리티 개발에 적합.

s 내장형(Embedded Model): 최대형 규모의 트랜잭션 처리 시스템 30만 라인 이상의 SW. 신호기 제어 시스템, 미사일 유도 시스템, 실시간 처리 시스템에 적합.

- COCOMO 모형 종류

s 기본형(Basic): 소프트웨어 크기와 개발 유형만을 이용해서 비용 산정.

s 중간형(Intermediate): 제품의 특성(요구되는 신뢰도, 데이터베이스 크기, 제품의 복잡도), 컴퓨터의 특성(수행 시간의 제한, 기억 장소의 제한, 가상 기계의 안정성, TAT), 개발 요원의 특성(능력 및 경험), 프로젝트 특성(소프트웨어 도구의 이용, 프로젝트 개발 일정, 최신 프로그래밍 기법의 이용)

s 발전형(Detailed): 중간형의 보완형으로 개발 공정별로 자세하게 비용 산출.

 

기능 점수 모형 (FP)

- 수학식 비용 산정 기법

- 알브레히트가 제안, 소프트웨어의 기능을 증대시키는 요인별로 가중치를 부여하고, 요인별 가중치를 합산하여 총 기능 점수를 산출하여 영향도를 이용해 비용 산정하는 기법.

- 비용 산정의 자동화를 위해 개발된 도구: ESTMACS (Putnam: SLIM)

 

프로젝트 관리

- 일정 관리 / 비용 관리 / 인력 관리 / 위험 관리 / 품질 관리

 

CMMI

- 소프트웨어 개발 표준

- Capability Maturity Intergration(능력 성숙도 통합 모델): 소프트웨어 개발 조직의 업무 능력 및 조직의 성숙도를 평가하는 모델.

- CMMI의 소프트웨어 프로세스 성숙도

s 초기: 정의된 프로세스 없음, 작업자 능력에 따라 성공 여부 결정

s 관리: 규칙화된 프로세스, 특정한 프로젝트 내의 프로세스 정의 및 수행

s 정의: 표준화된 프로세스, 조직의 표준 프로세스를 활용하여 업무 수행.

s 정량적 관리: 예측 가능한 프로세스, 프로젝트를 정량적으로 관리 및 통제

s 최적화: 지속적 개선 프로세스, 프로세스 역량 향상을 위해 지속적인 프로세스 개선

 

SPICE

- 소프트웨어 개발 표준

- 소프트웨어 처리 개선 및 능력 평가 기준(Software Process Improvement and Capability dEtermination): 소프트웨어 품질 및 생산성 향상을 위해 소프트웨어 프로세스를 평가 및 개선하는 국제 표준. 공식 명칭은 ISO/IEC 15504

- 목적: 프로세스 개선을 위해 개발 기관이 스스로 평가하는 것.

- 5개의 프로세스 범주

s 고객-공급자 프로세스: 고객에게 전달하는 것 지원

s 공학 프로세스: 시스템 명세화, 구현, 유지보수

s 지원 프로세스: 생명주기에서 다른 프로세스에 의해 이용되는 프로세스

s 관리 프로세스: 생명주기에서 프로젝트 관리자에 의해 사용되는 프로세스

s 조직 프로세스: 조직의 업무 목적 수립과 조직의 업무 목표 달성

- 프로세스 수행 능력 단계: 불완전, 수행, 관리, 확립, 예측, 최적화

 

닷넷 프레임워크

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

- 윈도우즈 프로그램의 개발 및 실행 환경을 제공하는 프레임워크로 Microsoft사에서 동합 인터넷 전략을 위해 개발.

- 코드 실행을 관리하는 CLR(Common Language Runtime, 공용 언어 런타임)이라는 이름의 가상머신 상에서 작동함.

- 메모리 관리, 유형 및 메모리 안정성, 보안, 네트워크 작업 등 여러 서비스 제공.

 

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

네트워크 관련 신기술

- IoT(Internet of Things, 사물 인터넷)

- M2M(Machine to Machine, 사물 통신)

- 클라우드 컴퓨팅: 중앙의 대형 데이터 센터의 컴퓨팅 자원을 필요한 순간에 빌려주는 방식.

- 그리드 컴퓨팅: 수많은 컴퓨터를 하나의 컴퓨터처럼 묶어 분산처리하는 방식으로 기상 예측과 같은 대규모 연산에 사용.

- 인터클라우드 컴퓨팅: 연동 / 동적 할당

- 메시 네트워크: 대규모 디바이스(건물 자동화)의 네트워크 생성에 최적화. 무선 랜의 한계를 극복하기 위해 라우터를 기지국으로 활용.

- 와이선(Wi-Sun)

 

네트워크 설치 구조

- 성형(Star, 중앙 집중형): 포인트 투 포인트 방식으로 회선 연결. 단말장치의 추가와 제거가 쉬움. 중앙 컴퓨터가 고장나면 전체 네트워크 기능 정지. 교환 노드 수 제일 적음.

- 링형(Ring, 루프형): 분산 및 집중 제어 모두 가능, 추가/제거 기밀 보호 어려움. 전송 지연 발생할 수 있음. 단방향 링에서는 하나라도 고장나면 전체 통신망에 영향.

- 버스형: 근거리 통신망에서 주로 사용. 단말 장치의 추가와 제거 용이. 고장나도 영향 없어서 신뢰성. 회선의 길이에 제한있음.

- 계층형(분산형): 분산 처리 시스템 구성하는 방식

- 망형(Mesh): 많은 단말장치로부터 많은 양의 통신을 필요로 할 때 유리. 공중 데이터 통신망에서 사용. 노드 수가 n개 일때 n(n-1)/2개의 회선 필요.

 

스위치

- LAN과 LAN을 연결하여 더 큰 LAN을 만드는 장치.

- 종류

s L2: OSI 데이터 링크 계층에 속함. MAC 주소 기반으로 프레임 전송. 동일 네트워크 간의 연결만 가능.

s L3: 네트워크 계층에 속함. 라우터 기능이 추가. IP주소 기반으로 서로 다른 네트워크 간 연결 가능.

s L4: 전송 계층에 속함. 로드 벨랜서가 IP 주소 및 TCP/UDP 기반으로 사용자 요구를 서버 부하 적은 곳에 배분.

s L7: IP주소 + TCP/UDP + 패킷 내용까지 참조하여 세밀하게 로드 밸런싱.

- 스위칭 방식: Store and Forwarding(모두 받은 후 스위칭), Cut-through(주소만 확인하고 바로 스위칭), Fragment Area(두 방식 결합)

- 백본 스위치: 중추적인 역할을 하는 네트워크의 스위칭 장비. 주로 L3 스위치가 사용.

- Hierarchical 3 Layer 모델

s 엑세스 계층(L2): 사용자가 최초로 연결되는 지점. 성능은 낮아도 되지만 포트 수는 사용자만큼 있어야 함.

s 디스트리뷰션 계층(L3): 엑세스 계층에서 오는 통신을 코어 계층으로 전송. LAN간의 라우딩 기능 수행.

s 코어 계층(백본 스위치): 인터넷에 연결하는 계층.

 

경로 제어 프로토콜

- 효율적인 경로 제어를 위해 네트워크 정보를 생성, 교환, 제어하는 프로토콜을 총칭.

- IGP(Interior Gateway Protocol, 내부 게이트웨이 프로토콜)

s 하나의 자율 시스템(AS) 내의 라우팅에 사용됨.

s RIP(Routing Information Protocol): 가장 널리 사용되는 라우팅 프로토콜로, 소규모의 동종 네트워크 내에서 효율적인 방법. 최대 홉(데이터가 목적지까지 전달되는 과정에서 거치는 네트워크 수)를 15로 제한 함.

s OSPF(Open Shortest Path First Protocol): 대규모 네트워크에서 많이 사용.

- EGP(Exterior Gateway Protocol, 외부 게이트웨이 프로토콜): 게이트웨이간 라우팅에 사용되는 프로토콜.

- BGP(Border Gateway Protocol, 내부 게이트웨이 프로토콜): EGP의 단점을 보완하기 위해 만들어짐. 초기에 연결될 때 전체 제어 경로표(라우팅 테이블)을 교환하고 이후에는 변화된 정보만을 교환함.

 

SW 관련 신기술

- 인공지능: 인간의 두뇌와 같이 컴퓨터 스스로 추론, 학습.

- 뉴럴링크: 피질 직결 인터페이스, 테슬라, 신경 레이스.

- 딥 러닝: 인공 신경망 기반 기계학습 기술. 많은 데이터를 학습하여 스스로 필요한 데이터 수집, 분석, 고속 처리.

- 전문가 시스템: 지식베이스 DB + 추론 기구

- 증강 현실: 실제 촬영 + 가상의 정보 부가

- 블록 체인: 거래 정보 분산 저장해서 안정성 향상.

- 분산 원장 기술(ALT): P2P 망 내의 참여자에게 분산 저장.

- 해시(Hash): 데이터를 키 값으로 변환, 무결성 검증 방법으로 사용. 대칭, 비대칭 암호화 기법과 함께 전자 화폐 등 활용.

- 양자 암호 키 분배(QKD): 얽힘 상태 광자.

- 프라이버시 강화 기술(PET): 개인정보 위험 관리 기술

- 디지털 저작권 관리(DRM)

- 공통 평가 기준 (Common Criteria; CC): 정보화 제품의 정보보호 기능과 이에 대한 사용 환경 등급 정한 기준.

- 개인 정보 영향 평가 제도 (PIA): 미리 사생활에 미칠 영향을 분석 및 평가.

- 그레이 웨어: 에드에어, 트랙(스파이)웨어

- 매시업(Mahup): 있는 컨텐츠를 활용하여 서비스 추가.

- 리치 인터넷 어플리케이션: 플래시 웹 페이지.

- 시맨틱 웹(Semantic Web): 자동화 지능형 웹.

- 증발품(Vaporware): 출시한다고 했는데 배포 안한 앱.

- 오픈 그리드 서비스 아키텍쳐(OGSA): 웹 서비스를 그리드 상에서 제공하기 위한 개방형 표준.

- 서비스 지향 아키텍쳐(SOA): 컴포넌트 중심으로 구축하는 정보 기술 아키텍쳐. 단순 객체 접근 프로토콜(SOAP) 기반.

- 서비스형 소프트웨어(SaaS): 이용한 만큼 돈 지불.

- 소프트웨어 에스크로(임치): 소스 프로그램과 기술 정보를ㄹ 저작권 보호 받고 사용자가 유지보수 받을 수 있도록 제 3기관에 보관.

- 복잡 이벤트 처리(CEP): 의미 있는 것만 추출할 수 있도록 사건 발생 조건을 정의하는 데이터 처리 방법. 실시간 대응 위해 개발된 기술.

- 디지털 트윈: 현실 속 사물을 소프트웨어로 가상화. 오믜 실험 용도.

 

트래픽 제어

- 네트워크 보호, 성능 유지, 네트워크 자원의 효율적인 이용을 위해 전송되는 패킷의 흐름과 양을 조절하는 기능

- 흐름 제어(Flow Control)

s 네트워크 내의 원활한 흐름을 위해 송, 수신 측 사이에 전송되는 패킷의 양이나 속도를 규제하는 기능

s 정지-대기(Stop-and-Wait): 수신 측의 확인 신호를 받은 후에 다음 패킷을 전송하는 방식. 한 번에 하나의 패킷만 전송 가능.

s 슬라이딩 윈도우(Sliding Window): 확인 신호를 이용하여 송신 데이터의 양을 조절. 수신측의 확인 신호를 받지 않더라도 미리 정해진 패킷 수 만큼 연속적으로 전송할 수 있어 전송 효율이 좋음. 패킷의 최대치 약속 = 윈도우 크기를 의미. 긍정 수신 받으면 윈도의 크기 증가, 부정 수신 응답 받으면 윈도우 크기 감소.

- 폭주(혼잡) 제어(Congestion Control)

s 패킷 수를 조절하여 오버플로우 방지

s 느린 시작: 2배씩 증가시키는 것처럼 초기에는 느리지만 나중엔 빨라짐. 임계갑에 도달하면 혼잡 회피 단계로 넘어감.

s 혼잡 회피: 윈도우 크기를 1씩 선형적으로 증가시켜 혼잡을 예방하는 방식.

- 교착 상태(Dead Lock) 방지: 기억 공간이 꽉 차있을 때 무한정 기다리는 현상. 패킷 버퍼를 폐기함.

 

HW 관련 신기술

- 고가용성(HA: High Availability): 긴 시간동안 안정적인 서비스 운영을 위해 장애 발생 시 즉시 다른 시스템으로 대체 가능한 환경을 구축하는 메커니즘. 클러스터 / 이중화

- 4D printing: 특정 시간이나 환경 조건이 갖추어지면 스스로 형태를 변화시키거나 자가조립 기술이 적용된 제품을 3D 프린팅 하는 것. 다양한 에너지원에 자극받아 변화하는 스마트 소재 필요, 형상 기억합금이나 나노기술을 통해 전기 회로 내장.

- RAID(Redundant Array of Inexpensive/Independent Disk): 여러 개의 하드디스크로 디스크 배열을 구성하여 데이터 블록들을 분산 저장한 후 여러 디스크에서 동시에 읽거나 쓸 수 있게 하여 속도를 향상시키는 기술. 한 디스크에만 결함이 발생해도 전체 데이터에 파일이 손상되는 문제 발생.

- 컴패니언 스크린(Companion Screen): 앤 스크린의 한 종류, 세컨드 스크린이라고도 불리며 IP망을 통해 시청중인 컨텐츠 외에 다른 기능 수행 가능(sns 등)

- 신 클라이언트 PC (Thin Client PC): 하드 디스크나 주변장치 없이 기본적인 메모리만 갖추고 서버와 네트워크로 운용되는 개인용 컴퓨터. 프로그램이 필요할 때마다 서버에 접속하여 내려받고 데이터는 서버 측에서 한꺼번에 관리함.

- 멤스(MEMS; Micro-Electro Mechanical Systems): 초정밀 반도체 제조 기술을 바탕으로 기계 구조를 미세 가공하는 장치. 마이크로 시스템에서 사용.

- 트러스트존 기술(TrustZone Technology): 하나의 프로세서 내에 일반 앱을 처리하는 일반 구역과 보안이 필요한 앱을 처리하는 보안 구역으로 분할하여 관리하는 하드웨어 기반 보안 기술.

- 엠디스크(Millennial Disk): 한 번의 기록만으로 자료를 영구 보관할 수 있는 광 저장 장치. 레이저를 이용해 데이터를 조각해서 외부요인에 영향받지 않음 (블루레이 디스크)

- 멤리스터(Memristor): 메모리와 레지스터의 합성어로 전류의 방향 등 기존의 경험을 모두 기억하는 특별한 소자. 네 번째 전자회로 구성 요소라고도 불림. 전원 공급이 끊어져도 직전에 통과한 전류의 방향을 기억해서 그대로 보존.

- 기타: 4K 해상도, 앤 스크린(n개의 서로 다른 단말기에서 같은 컨텐츠를 끊김없이 볼 수 있음), 패블릿(5인치 이상 폰과 테블릿 합성어), C형 USB

 

Secure OS

- 기존 운영체제에 내재된 보안 취약점을 해소하기 위해 보안 기능을 갖춘 커널을 이식해서 보호하는 OS

- 보안 커널: TCB(Trust Computing Base)기반으로 참조 모니터의 개념을 구현하고 집행. 보호 대상으로는 메모리, 보조기억장치, 저장된 데이터, 하드웨어 장치, 자료구조, 명령어, 각종 보호 메커니즘이 있음.

- 참조 모니터(Reference Monitor)

s 보호 대상의 객체에 대한 접근 통제를 수행하는 추상 머신. 보안 커널 데이터베이스(SKDB)를 참조하여 객체에 대한 접근 허가 여부를 결정.

s 세 가지 특징: 격리성(Isolation; 부정 조작이 불가능해야 함), 검증가능성(Verifiability; 적절히 구현되었다는 것을 확인할 수 있어야 함), 완전성(Completeness; 우회가 불가능해야 함)

- 구현 복잡도에 따른 분리 방법(내림차 순)

s 암호적 분리: 내부 정보를 암호화.

s 논리적 분리: 프로세스의 논리적 구역을 지정하여 구역을 벗어나는 행위를 제한.

s 시간적 분리: 동일 시간에 하나의 프로세스만 수행되도록 하여 동시 실행으로 발생하는 보안 취약점을 제거.

s 물리적 분리: 사용자 별로 특정 장비만 사용하도록 제한.

- 보안 기능

s 식별 및 인증: 각 주체에 대한 고유한 식별 기능

s 임의적 접근 통제: 부여된 권한에 따라 접근을 통제. DAC 또는 신분 기반 정책.

s 강제적 접근 통제: 접속 단말 및 접속 방법 등 여러 보안 속성이 고려된 규칙에 따라 강제적으로 접근 통제. MAC 또는 규칙 기반 정책.

s 객체 재사용 보호: 메모리에 기존 데이터 남아있지 않도록 초기화

s 완전한 조정: 우회할 수 없도록 모든 접근 경로 통제.

s 신뢰 경로: 보안 작업을 위한 안전한 경로 제공.

s 감사 및 감사 기록 축소: 모든 작업 기록 후 보호.

 

병행 제어

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

- 목적: 데이터베이스 공유 최대화 / 시스템 활용도 최대화 / 데이터베이스 일관성 유지 / 응답시간 최소화

- 병행 제어 기법 미 적용 시 문제점

s 갱신 분실(Lost Update)

s 비완료 의존성(Uncommitted Dependency): 하나의 트랜잭션이 실패한 후 회복되기 전에 실패한 결과를 다른 트랜잭션이 참조하는 현상. 임시 갱신

s 모순성(Inconsistency): 원치 않은 자료를 이용해서 발생하는 문제. 불일치 분석.

s 연쇄 복귀(Cascading Rollback): 하나에 문제가 생겨 롤백할때 다른 트랜잭션도 함께 롤백하는 현상.

 

데이터 표준화

- 시스템을 구성하는 데이터 요소의 명칭, 정의, 형식, 규칙에 대한 원칙을 수립하고 적용하는 것. 사용자가 데이터를 정확하게 이해하고 활용할 수 있도록 직관적이고 공통적인 의미로 전달되도록 표준 항목명을 부여해야 한다.

- 구성요소: 데이터 표준, 데이터 관리 조직, 데이터 표준화 절차

- 데이터 표준의 종류

s 표준 단어: 업무에서 사용하고 일정한 의미를 갖고 있는 최소 단어를 의미. (회원, 구분, …)

s 표준 도메인: 문자형, 숫자형, 날짜형, 시간형과 같이 컬럼의 성질에 따라 그룹핑한 개념. (데이터 타입)

s 표준 코드: 선택할 수 있는 값을 정형화하기 위해 기준에 맞게 이미 정의된 코드 값. 도메인의 한 유형. (회원 구분 코드 01- 정회원 …)

s 표준 용어: 단어, 도메인, 코드 표준이 정의되면 이를 바탕으로 표준 용어를 구성. 위에 세 개 조합.

- 데이터 관리 조직

s 데이터 표준 원칙 준수 여부를 관리하는 사람.

s 데이터 관리자 (DA): 데이터 모델, 각종 표준 관리. 데이터에 대한 정의, 체계화 등의 업무. 메타 데이터 정의. 추가, 수정 등 사용자의 요구사항을 데이터에 반영. 데이터 표준 관리 및 적용.

s 데이터베이스 관리자(DBA): 데이터베이스 관리, 데이터의 정합성 관리.

- 데이터 표준화 절차

s 데이터 표준화 요구사항 수집: 시스템별 데이터 표준 수집, 표준화 현황 진단

s 데이터 표준 정의: 표준 원칙 등 정의

s 데이터 표준 확정: 검토 및 확정

s 데이터 표준 관리: 데이터 표준 적용, 준수 검사등 관리 절차 수립. 표준 이행

- 데이터 표준화 대상

s 데이터 명칭: 데이터를 유일하게 구별할 수 있는 유일성, 의미 전달의 충분성, 업무적 보편성을 갖는 이름으로 정의해야 한다.

s 데이터 정의: 데이터가 의미하는 범위 및 자격 요건을 규정.

s 데이터 형식: 유사한 데이터에 대해 일관적으로 형식 정의함으로서 오류 위험 최소화

s 데이터 규칙: 발생할 수 있는 데이터 값을 사전에 지정해서 데이터의 정합성 및 완전성을 향상시킴.

5.3 소프트웨어 개발 보안 구축

보안 요소

- 기밀성(Confidentiality): 시스템 내의 정보와 자원은 인가된 사용자에게만 접근이 허용됨. 정보가 전송 중에 도출되더라도 데이터를 읽을 수 없음.

- 무결성(Integrity): 시스템 내의 정보는 인가된 사용자만 수정할 수 있음.

- 가용성(Availability): 인가 받은 사용자는 언제라도 사용할 수 있음.

- 인증(Authentication): 시스템 내의 정보와 자원을 사용하려는 사용자가 합법적인 사용자인지 확인하는 모든 행위

- 부인 방지(NonRepudiation): 데이터를 송, 수신한 자가 해당 사실을 부인할 수 없도록 증거 제공.

 

시큐어 코딩(Secure Coding)

- SW 구현 단계에서 발생할 수 있는 보안 취약점을 최소화하기 위해 보한 요소를 고려하며 코딩하는 것.

- 보안 취약점을 사전에 대응하여 안정성, 신뢰성 확보.

- 보안 정책을 바탕으로 시큐어 코딩 가이드 작성, 교육 실시해야 함.

 

세션 통제

- 세션(서버와 클라이언트 연결) 통제: 세션의 연결로 인해 발생하는 정보 관리하는 것.

- 소프트웨어 개발 과정 중 요구사항 분석 및 설계 단계에서 진단하는 보안 점검 내용.

- 세션 통제의 보안 약점

s 불충분한 세션 관리: 일정한 규칙이 존재하는 세션ID가 발급되거나, 타임아웃이 너무 길게 설정되어 있는 경우 발생할 수 있음. 세션 하이재킹(클라이언트의 세션 정보를 가로채는 공격 기법)과 같은 공격을 통해 시스템의 중요한 정보에 접근할 수 있음,

s 잘못된 세션에 의한 정보 노출: 다중 스레드 환경에서 맴버 변수에 정보를 저장할 때 발생하는 보안 약점. 싱글톤 패턴에서 발생하는 레이스 컨디션으로 인해 동기화 오류가 발생하거나 멤버 변수의 정보가 노출될 수 있음. 멤버 변수보다 지역 변수를 활용하여 변수의 범위를 제한함으로써 방지 가능.

 

레이스 컨디션

- 두 개 이상의 프로세스가 공동 자원을 획득하기 위해 경쟁하고 있는 상태.

- 보안 점검 내용 중 시간 및 상태에서 TOCTOU Race Condition(경쟁 조건)이란 검사 시점과 사용 시점을 고려하지 않고 코딩하는 경우 발생하는 보안 약점이다. 코드 내에 동기화 구문을 사용하여 해당 자원에는 하나의 프로세스만 접근 가능하도록 구성함으로서 방지할 수 있다.

 

SQL 삽입

- 입력 데이터 검증 및 표현의 보안 약점 중 입력란에 SQL을 삽입하여 무단으로 DB를 조회하거나 조작하는 보안 약점

- 동적 쿼리에 사용되는 입력 데이터에 예약어 및 특수문자가 입력되지 않게 필터링 되도록 설정하여 방지할 수 있음.

 

널 포인터 역참조

- 보안 점검 내용 중 코드 오류로 발생할 수 있는 보안 약점

- 널 포인터가 가리키는 메모리에 어떠한 값을 저장할 때 발생하는 보안 약점.

- 널 값을 포인터로 참조하는 경우 발생.

- 대부분의 운영체제에서 널 포인터는 메모리의 첫 주소를 가리키며, 해당 주소를 참조할 경우 소프트웨어가 비정상적으로 종료될 수 있다.

- 널이 될 수 있는 포인터를 이용하기 전에 널 값을 가지고 있는지 검사함으로써 방지할 수 있음.

 

API 오용

- 소프트웨어 구현 단계에서 API 오용으로 발생할 수 있는 보안 약점.

- DNS Lookup에 의존한 보안 결정: 도메인명에 의존하여 보안 결정을 내리는 경우 동일한 도메인에 속한 서버인 것처럼 위장하여 조작할 수 있음. IP 주소를 직접 입력하여 접근함으로써 방자할 수 있음.

- 취약한 API 사용: C언어의 strcpy(), sprintf() 등이 보안 문제로 금지됨. 안전함 함수로 대체.

 

개인키 암호화 기법

- 동일한 키로 데이터를 암호화하고 복호화하는 양방향 암호화 방식.

- 대칭 암호 기법 혹은 단일키 암호화 기법

- 종류

s 블록 암호화 방식: 한 번에 하나의 데이터 블록을 암호화 하는 방식.

◆ DES: 미 표준국에서 채택, 블록 크기: 64비트, 키 길이: 56비트

◆ SEED: 한국 인터넷 진흥원, 블록 크기 128비트, 키: 길이에 따라 128, 256으로 분류.

◆ AES, ARIA

s 스트림 암호화 방식: 평문과 동일한 길이의 스트림을 생성하여 비트 단위로 암호화 하는 방식. LFSR, RC4

- 장점: 암호화/ 복호화 속도가 빠르고 알고리즘이 단순. 파일의 크기가 비교적 작다.

- 단점: 사용자의 증가에 따라 관리해야 할 키의 수가 상대적으로 많아진다.

 

공개키 암호화 기법

- 데이터를 암호화 할 때 사용하는 공개키는 데이터베이스 사용자에게 공개하고, 복호화 할 때의 비밀키는 관리자가 비밀리에 관라히는 양방향 암호화 방식.

- 비대칭 암호 기법, 대표적으로는 RSA기법.

- 장점: 키의 분배가 용이하고 관리해야할 키의 개수가 적다.

- 단점: 암호화/ 복호화 속도가 느리며, 알고리즘이 복잡하고, 개인키 암호화 기법보다 파일 크기가 크다.

 

해시

- 임의의 길이의 데이터나 메세지를 고정된 길이의 값이나 키로 변환하는 것.

- 해시 알고리즘을 해시 함수로 부르며, 해시 함수로 변환된 값이나 키를 해시 키(값)으로 부름.

- 데이터의 암호화, 무결성 검증을 위해 사용될 뿐만 아니라 정보보호의 다양한 분야에서 활용됨.

- SHA 시리즈, MD5, N-NASH, SNEFRU

 

5.4 시스템 보안 구축

서비스 거부(DoS; Denial of Service) 공격

- 서버의 자원을 고갈시킬 목적으로 다수의 공격자가 대량의 데이터를 한 곳의 서버에 집중적으로 전송함으로써, 표적이 되는 서버의 정상적인 기능을 방해하는 것.

- 종류: Ping of Death, SMURFING, SYN Flooding, TearDrop, Land, DDoS

- Ping of Death(죽음의 핑)

s Ping 명령을 전송할 때 패킷의 크기를 인터넷 프로토콜의 허용범위 이상으로 전송하여 마비시키는 방법.

s 공격에 사용되는 큰 패킷은 수 백개의 패킷으로 분할되어 전송되는데 이를 재조립해야 한다는 부담과 각각의 패킷의 ICMP Ping 메세지(해당 IP의 노드가 현재 운영 중인지 확인을 요청하는 메시지)에 대한 응답을 처리하느라 시스템이 다운 됨.

s ICMP Ping 메세지가 전송되지 못하도록 방화벽에서 차단하는 기술 개발

- SMURFING(스머핑)

s IP나 ICMP의 특성을 악용하여 엄청난 양의 데이터를 한 사이트에 집중적으로 보냄으로써 네트워크를 불능 상태로 만드는 공격 방법.

s 공격자는 송신 주소를 공격 대상지의 IP 주소로 위장하고 해당 네트워크 라우터의 주소를 수신지로 해서 패킷을 전송하면 해당 네트워크 내의 모든 컴퓨터로 전송된다. 네트워크 과부화 옴.

s 각 네트워크 라우터에 브로드캐스트 주소를 사용할 수 없게 미리 설정해놓아서 막을 수 있음.

- SYN Flooding

s TCP는 신뢰성 있는 전송을 위해 3-way-handshake(SYN, ACK 패킷 전송으로 통신 확인)를 거친 후에 데이터를 전송하는데, 공격자가 가상의 클라이언트로 위장해서 의도적으로 과정을 중단시켜서 서버가 대기상태에 놓여 정상적인 서비스를 수행하지 못하게 하는 공격 방법

s 공격자는 사용할 수 없는 IP 주소를 이용해 가상의 클라이언트로 위장하여 서버로 반복적인 3-way-handshake 과정을 요청하면 서버는 메모리 공간을 확보한 상태로 대기상태로 채워짐.

s 수신지의 ‘SYN’ 수신 대기 시간을 줄이거나 침입 차단 시스템을 활용

- TrearDrop

s 데이터 패킷이 여러 개로 분할되어 전송될 때 분할 순서를 알 수 있도록 Fragment Offset 값을 전송하는 데 TearDrop은 이 오프셋 값을 변경시켜서 오류로 인한 과부화를 발생시킴.

s Fragment Offset이 잘못된 경우 해당 패킷을 패기하도록 설정.

- Land

s 패킷을 전송할 때 송, 수신 IP 주소를 공격 대상의 서버 주소로 설정하여 전송해서, 계속해서 자기 자신에게 응답을 무한히 수행하도록 하는 공격 방법.

s 송신 IP 주소와 수신 IP 주소의 적절성을 검사함.

 

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

- Distributed Denial of Service

- 여러 곳에 분산된 공격 지점에서 한 곳의 서버에 대해 분산 서비스 공격을 수행하는 것으로, 네트워크 취약점이 있는 호스트를 탐색한 후 호스트들에 분산 서비스 공격 툴(데몬: Trin00, TFN, Stacheldraht)을 설치하여 에이전트로 만든 후 공격에 이용.

- 공격의 범위를 확대하기 위해 일부 호스트에 다수의 에이전트를 관리할 수 있는 핸들러 프로그램을 설치하여 마스터로 지정한 후 공격에 이용하기도 함.

 

보안 서버

- 인터넷을 통해 개인정보를 암호화하여 송 수신 할 수 있는 기능을 갖춘 서버

- ‘개인 정보의 기술적 관리적 보호조치 기준’: 서버에 SSL(Secure Socket Layer) 인증서를 설치하여 전송 정보를 암호화 하는 기능 + 서버에 암호화 응용 프로그램을 설치하고 전송 정보를 암호화하여 송, 수신하는 기능

- 스니핑을 이용한 정보 유출, 피싱을 이용한 위조 사이트 등에 대비하기 위해 보안 서버 구축이 필요함.

 

인증

- 다중 사용자 컴퓨터 시스템이나 네트워크 시스템에서 로그인을 요청한 사용자의 정보를 확인하고 접근 권한을 검증하는 보안 절차.

- 네트워크를 통해 컴퓨터에 접속하는 사용자 등록 여부를 확인하는 것, 전송된 메시지의 위, 변조 여부를 확인하는 것.

- 주요 유형: 지식 기반 인증, 소유 기반 인증, 생체 기반 인증, 위치 기반 인증

- 지식 기반 인증 (Something You Know)

s 사용자의 기억 기반, 관리 비용이 저렴.

s 고정된 패스워드

s 패스 프레이즈: 기억하기 쉬운 문장을 활용하여 비밀번호 구성하는 방법

s 아이핀: 인터넷에서 주민등록번호 대신 쓸 수 있도록 만든 사이버 주민등록번호

- 소유 기반 인증 (Something you Have): 신분증, 메모리카드(토큰), 스마트 카드, OTP

- 생체 기반 인증 (Something You Are): 지문, 홍체, 얼굴

- 기타 인증 방법: 행위 기반, 위치 기반(콜백, IP주소 등)

 

보안 아키텍쳐

- 정보 시스템의 무결성, 가용성, 기밀성을 확보하기 위한 보안 요소 및 보안 체계를 식별하고 이들간의 관계를 정의한 구조.

 

보안 프레임워크

- 안전한 정보 시스템 환경을 유지하고 보안 수준을 향상시키기 위한 체계.

 

로그

- 시스템 사용에 대한 모든 내역을 기록해 놓은 것. 시스템 침해 사고 발생시 해킹 흔적이나 공격 기법을 파악할 수 있음.

 

리눅스 로그

- 시스템의 모든 로그를 var/log 디렉토리에서 기록하고 관리.

 

윈도우 로그

- 이벤트 로그 형식으로 시스템 로그 관리

- 응용 프로그램, 보안, 시스템, Setup, Forwarded Events

 

보안 솔루션

- 접근 통제, 침입 차단 및 탐지 등을 수행하여 외부로부터의 불법적인 침입을 막는 기술 및 시스템.

- 방화벽 (Firewall)

s 기업이나 조직 내부의 네트워크와 인터넷 간에 전송되는 정보를 선별하여 수용, 거부, 수정하는 기능을 가진 침입 차단 시스템

s 내부 네트워크에서 외부로 나가는 패킷은 그대로 통과시키고, 외부에서 내부 네트워크로 들어오는 패킷은 엄밀히 체크해서 인증된 패킷만 통과시키는 구조.

- 침입 탐지 시스템(IDS; Intrusion Detection System)

s 오용 탐지: 미리 입력해둔 공격 패턴 방견되면 이를 알려줌.

s 이상 탐지: 평균적인 시스템의 상태를 기준으로 비정상적인 행위나 자원의 사용이 감지되면 알려줌.

s 위치: 패킷이 라우터로 들어오기 전, 라우터 뒤, 방화벽 뒤, 내부 네트워크, DMZ

- 침입 방지 시스템(IPS; Intrusion Prevention System): 방화벽 + 침입 탐지 시스템

- 데이터 유출 방지(DLP; Data Leakage/Loss Prevention)

- 웹 방화벽(Web Firewall): SQL 삽입 공격/XSS 등의 웹 기반 공격을 방어할 목적으로 만들어진 방화벽.

- VPN(Virtual Private Network, 가상 사설 통신망)

s 공중 네트워크 암호화 기술을 이용하여 사용자가 마치 자신의 전용 회선을 사용하는 것처럼 해주는 보안 솔루션.

s 암호화된 규격을 통해 인터넷망을 전용선의 사설망을 구축한 것처럼 이용하므로 비용 부담을 줄일 뿐 아니라 지역적인 제한 없이 업무 수행 가능.

- NAC(Network Access Control): 네트워크에 접속하는 내부 PC의 MAC 주소를 IP 관리 시스템에 등록한 후 일관된 보안 관리 기능을 제공하는 보안 솔루션.

- ESM(Enterprise Security Management): 다양한 장비에서 발생하는 로그 및 보안 이벤트 통합해서 관리.