정보처리기사 필기 정리 - 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
취약점 분석
- 사이버 위협으로부터 정보시스템의 취약점을 분석 및 평가한 후 개선하는 일련의 과정
- 수행 절차 및 방법
- 취약점 분석/평가 계획 수립
- 취약점 분석/평가 대상 선별
- 취약점 분석 수행
- 취약점 평가 수행
댓글남기기