66. 소프트웨어 개발 방법론 활용
1) 소프트웨어 개발 생명주기 모형
프로토타입 모형
폭포수 모형(waterfall)
나선형 모형(위험 관리, 반복)
CPM(Critical Path Method) - 작업의 총 소요 시간 예측하는 방법(가장 긴 기간으로)
구조적 방법론
=> 데이터 흐름 다이어그램, 설계 구조도
객체지향 방법론
=> 객체, 클래스, 메세지로 구성됨
캡슐화, 정보 은닉, 추상화, 상속, 다형성
컴포넌트 기반 개발 방법론
=> 컴포넌트로 조합해서 개발한다.
소프트웨어 재사용
합성 중심(모듈을 만들어 끼움)/생성 중심(추상화 형태로 쓰여진 명세를 구체화)
68. 비용 산정 모델
1) 비용 산정 모델 종류
전문가 감정 기법, 델파이 기법, LOC 기법, COCOMO 모델 등등등...
델파이: 산정 요원과 조정자에 의하 산정됨 (전문가가 독단적으로 감정할 때 발생하는 문제 방지)
LOC: 제일 많이 쓰임. 코드가 몇 줄이냐에 따라서 비용 산정
COCOMO: 소스 코드의 규모에 의한 비용 예측(5만 이하는 단순형/30만 이하 중간형/30만 이상 임베디드형)
Putnam: Rayleigh-Norden 곡선의 노력 분포도를 이용함. 이를 기초로 해서 만든 자동화 추정 도구: SLIM
기능 점수: 기능에 점수 매겨서 측정함(입력, 출력, 명령어, 데이터 파일, 출력 보고서 등등...)
69. 소프트웨어 개발 표준
ISO/IEC 12119: 제품 품질 요구사항 및 테스트를 위한 국제 표준. 25051로 대체됨
ISO/IEC 12207: 프레임워크 관련. 생명주기 프로세스 국제 표준 (획득, 공급, 개발, 운영, 유지 보수)
SPICE: 소프트웨어 프로세스를 평가/개선하는 국제 표준(12207의 단점 해결. 여러 프로세스가 있음... + 6레벨이 있음)
불완전 단계 -> 수행 -> 관리 -> 확립 -> 예측 -> 최적화
CMM: 조직 업무 능력 평가 기준 표준 (초보 -> 반복 -> 정의 -> 관리 -> 최적)
CMMI: 소프트웨어, 시스템, 프로덕트 3분야 통합 평가 (4개 범주)
70. 테일러링과 프레임워크
테일러링: 기존 개발 방법론을 프로젝트 상황에 맞게 수정하는 작업
내부적 요건/외부적 요건 일반적으로 생각해보면 됨... :)
소프트웨어 개발 프레임워크
개발 용이성, 시스템 복잡도 감소, 이식성, 품질 보증, 운영 용이성, 개발 코드 최소화 등등...
스프링 프레임워크, 전자정부 표준 프레임워크, 닷넷 프레임워크 이런 게 있다.
71. 네트워크 구성
1) 네트워크 구성
성형: 중앙에 호스트 컴퓨터가 있고 중심으로 터미널이 연결됨
링형: 서로 이웃한 노드끼리
버스형: 하나의 길에 각각 단말기가 연결됨
트리형: 트리처럼 생김
망형: n개의 노드를 망형으로 구성하면 n(n-1)/2개의 회선이 필요함
2) 네트워크 장비
허브: 여러 개의 입출력 포트. 다른 포트에서 수신된 신호를 다른 포트로 재전송함
브리지: 데이터 링크 계층에서 동작. MAC 프로토콜을 사용하는 근거리 통신망 사이를 연결하는 통신 장치
스위치: 브리지처럼 두 개 이상의 랜을 연결해 하나의 네트워크를 만듬. 보안/트래픽 관리 기능도 제공
(L2, 3, 4(로드 밸런서), 7까지 분류됨)
라우터: 네트워크 계층에서 동작. 네트워크상 최적의 IP 경로를 설정해 전송함
게이트웨이: 서로 다른 통신 프로토콜을 사용하는 네트워크 사이를 연결해 데이터를 교환할 수 있도록 함
VLAN: 물리적 배치와 상관없이 논리적으로 LAN을 구성해 사용함
리피터(앰프): 디지털 신호를 증폭시킴(신호가 감쇠되므로 다시 전송해서 튕겨줌)
72. 네트워크 관련 신기술
RIP(Routing Information Protocol)
최단 경로 탐색에 Bellman-Ford 알고리즘을 사용한 거리 벡터 라우팅 프로토콜
최적의 경로를 산출하기 위한 정보로 홉만을 고려해 RIP를 선택한 경로가 최적의 경로가 아닌 경우가 있을 수 있음
최대 홉 카운트를 15홉 이하로 한정함
소규모 네트워크 환경에 적합
OSPF(Open Shortest Path First Protocol)
대표적인 링크 상태 라우팅 프로토콜
IP 패킷에서 89번 프로토콜을 사용해 라우팅 정보를 전송
안정되고 다양한 기능으로 가장 많이 사용하는 것은 IGP(Interior Gateway Protocol)
MQTT(Message Queuing Telemetry Transport)
IBM이 주도해 개발한 기술로 대역폭이 제한된 통신 환경에 최적화해 개발
푸시 기술 기반의 경량 메세지 전송 프로토콜
TCP/IP 기반 네트워크에서 동작하는 발행-구독 기반의 메세징 프로토콜 (최근 IoT 환경에서 자주 쓰임)
UNS... 클라우팅 컴퓨팅(IasS, PaaS, SaaS. PaaS-TA: 개방형 클라우드 컴퓨팅 플랫폼)
그리드 컴퓨팅(하둡 같은 거), RFID(전자 태그가 부착된 IC칩과 무선통신기술을 이용한 센서 기술)
NFC, WPAN(무선 통신 규격), PICONET(피코넷: 여러 개의 독립된 통신 장치가 UWB 또는 블루투스 기술로 통신망 형성)
스마트 그리드(에너지 효율을 극대화하는 전력망 시스템), 비컨(차세대 스마트폰 근거리 통신 기술)
포스퀘어(스마트폰에 탑재된 GPS를 활용해 위치 정보 수집), ZigBee(저전력 센서 네트워크 구현하는 PAN 기술)
Mesh Network(기존 무선 랜의 한계 극복), WDM(파장 분할 다중화: 레이저 빛으로 신호 전송하는 기술)
73. 소프트웨어/하드웨어 관련 신기술
1) 소프트웨어 관련 신기술
소프트웨어 정의 데이터 센터(SDDC)
가상 데이터 센터라고 하며 인프라를 가상화하는 데이터 센터
인력 개입 없이 소프트웨어 조작만으로 자동 제어 관리
텐서 플로우
구글이 개발한 AI 응용 프로그램 개발용 오픈소스 프레임워크
신경망의 합성곱 신경망 모델 주로 사용
머신 러닝
컴퓨터가 일반적인 패턴을 찾는 것
딥 러닝
머신 러닝보다 더 깊은 신경망 계층 구조 이용
디지털 트윈
물리적인 사물과 컴퓨터에 동일하게 표현되는 가상 모델
HMD
머리에 착용하는 형태의 디스플레이
블록 체인
공공 거래 장부...
하나의 블록은 트랜잭션의 집합과 헤더로 이루어져 있고 한 블록에는 앞 블록에 대한 정보가 있음
따라서 앞 블록의 내용을 바꾸면 뒤에 이어지는 블록도 변경되어야 함
BaaS(Backend as a Service)
블록체인 개발 환경을 클라우드로 서비스하는 개념
분산 원장 기술, 증강 현실(AR), 양자 암호(양자 역학의 특성으로 정보 보호 - 양자 암호키 분해)
매시업(기존에 있는 서비스를 이용해 새 서비스 만드는 기술. 구글 하우징 맵스)
2) 하드웨어 관련 신기술
양자 컴퓨터(양자역학 현상을 이용해 연산 수행하는 컴퓨터. 큐비트의 상태를 제어해서 수행함)
4D 프린팅, N-Screen(동일 콘텐츠를 다양한 디지털 정보기기에서 자유롭게 이용)
74. 데이터베이스 관련 기술 용어
RAID(한 개의 데이터를 여러 디스크에 저장해 데이터 안정성을 향상시킴)
웨어러블 컴퓨팅, 멤리스터(메모리+레지스터), 직접 연결 저장 장치(호스트 버스 어댑터에 직접 연결)
SAN(Storage Area Network: 고속 전송 + 장거리 연결 + 멀티 프로토콜 기능으로 다른 운영체제의 여러 기종에 데이터 공유)
NAS(컴퓨터에 직접 연결하지 않고 네트워크를 통해 데이터를 주고 받는 저장 장치)
Software Defined Storage(가상화를 적용한 가상 서버 같은 거), 데이터웨어하우스, 데이터 마트...
빅데이터, 데이터 마이닝, 디지털 아카이빙
하둡(오픈소스 기반 분산 컴퓨팅 플랫폼. 자바 기반. Sqoop: 하둡과 관계형 DB 간 데이터 전송을 위해 설계된 도구)
맵리듀스(하둡의 핵심 구성 요소. 대용량 데이터 분산 처리를 위한 프로그래밍 모델. 구글이 개발)
75. 소프트웨어 개발 보안
SecureOS
버퍼 오버플로우 대응방안 중 스택 가드
프로그램의 복귀 주소/변수 사이 특정 값을 저장하고 그 값이 변경될 때 오버플로우로 가정해 프로그램 중단하는 기술
76. 소프트웨어 개발 보안 방법론
Seven Touchpoints
공통 위험 요소 파악 및 안전한 소프트웨어 만들기 위한 표 같은 것...
실무적으로 검증된 개발 보안 방법론 중 하나
SW 보안의 모범 사례를 SDLC에 통합한 소프트웨어 개발 보안 생명주기 방법론
정보 보안의 3대 요소
기밀성: 인가된 사용자만 정보 자산에 '접근' 가능. 일반적인 보안 의미 (방화벽, 패스워드 등)
무결성: 시스템 내 정보는 오직 인가된 사용자가 인가된 방법으로만 '수정' 가능
가용성: 사용자가 필요할 때 데이터에 접근할 수 있는 능력(DoS에 의해 위협 받을 수 있음)
OWASP(오픈소스 웹 애플리케이션 보안 프로젝트)
취약점 10개에 대한 대응
77~78. 시큐어 코딩 가이드 1~2
입력 데이터 검증 및 표현
외부에서 데이터 읽는 형태로 공격 받음(보안 약점: 입력 데이터 검증)
SQL Injection: 검증되지 않은 외부 입력값이 SQL 쿼리문에 삽입되는 공격
XXS(corss site script): 악의적인 스크립트 실행시키기
XPath 삽입, LDAP 삽입
하드코드된 비밀번호(노출 위험 있음)
시간 및 상태
경쟁 조건(검사 시점과 사용 시점이 달라서 발생하는 오류. TOCTOU)
종료되지 않는 반복문 또는 재귀함수
기본적으로 읽어보면 이해됨
79. 암호와 알고리즘
1) 암호 알고리즘
평문을 암호문으로 바꾸고 암호문을 평문으로 바꾸는 알고리즘
암호화와 복호화
암호키
암호화 방식: 양방향(비밀키-스트림&블록, 공개키)/단반향(해시)
공개키(비대칭키)
암호화 키와 해독키가 서로 다름
그래서 공개되어도 상관 없음
RSA(큰 수를 소인수 분해하기 어렵다는 것에 기반), EIGama(이산 대수)가 대표적
비밀키(대칭키)
암호화 키와 해독키가 서로 같음 (그래서 대칭)
하나만 공개되어도 다 보이니까 공개되면 안됨 그래서 비밀임
스트림 방식(XOR 방식, RC4)과 블록 방식(DES, AES, SEED, ARIA)이 있음
해시 암호화 방식
디지털 서명에 이용돼 데이터 무결성 제공
블록 체인에서 체인 형태로 사용돼 데이터 신뢰성 보장
주어진 원문에서 고정된 길이의 의사 난수를 생성함
SHA
Salt
시스템에 저장되는 패스워드들은 해시 또는 암호화 알고리즘의 결과값으로 저장되는데 공격 당하지 않게 다른 암호값으로 저장되게 추가되는 값(소금 친다고 생각하면 됨)
80. 서비스 공격 유형
DoS(Denial of Service: 서비스 거부)
가용성을 위협하는 행위. 과부하를 유발시킴
스머프: 공격 대상의 IP 주소를 근원지로 대량의 ICMP(인터넷 컨트롤 메세지 프로토콜) 응답 패킷을 전송해 서비스 거부 유발시킴
SYN 플러딩(3way handshaking 과정에서의 취약성을 이용함-half open)
UDP 플러딩(대량의 UDP 패킷을 만들어 공격)
Ping 플러딩(ICMP Echo를 보내 시스템 자원을 다 쓰게 해버려서 시스템 동작 못하게 함!)
Ping of Death(비정상적인 ICMP 패킷을 보내 시스템 성능 저하)
티어드랍(패킷 재조합 문제를 악용해 조작된 패킷 조각을 보내 자원 고갈 시킴)
랜드(패킷 출발지나 포트를 임의로 변경해 출발지와 목적지 주소를 동일하게 해 속도 느리게 함)
DDoS(Distributed...: 분산 서비스 거부)
공격용 도구: Trinoo, TFN, TFN2K, Stacheldraht 등
피싱: 낚시질 하는거(진짜 웹사이트와 동일하게 꾸민 가짜 웹사이트로 개인정보 탈취)
이블 트윈 공격(피싱의 무선 버전), 파밍(도메인 탈취, DNS 이름을 속여 진짜 웹사이트로 오인하게 함)
랜섬웨어(주요 사이버범죄 중 하나로 Snake, Darkside 등 시스템을 잠그거나 데이터를 암호화해 못 쓰게 함)
키 로거: 키보드 움직임을 탐지해 중요 정보를 빼가는 공격 방법
무작위 대입 공격(비밀번호에 사용되는 문자열 범위를 정하고 그 범위 내에서 생성 가능한 패스워드 활용하는 공격)
APT, 제로 데이 공격, 백도어(트랩 도어라고도 함. 정상적 보안 절차를 우회하는 악성 소프트웨어)
TCP 세션 하이재킹(3way handshaking 단계의 취약점을 이용. 세션 탈취해서 인증 회피. 동기/비동기)
80. 서버 인증 및 서버 접근
1) 서버 인증
사용자 인증(Authentication) 기법
1. 지식 기반: 사용자가 기억하는 지식을 기초로 사용자 인증(아이디, 비밀번호, PIN 번호 등)
2. 소유 기반: 사용자가 소유하는 인증 토큰을 기반으로 사용자 인증. 지식 기반보다 보안성이 높음 (OTP 카드, 공인인증서 등)
3. 생체 기반: 지문, 홍채, 정맥, 음성 등
2) 서버 접근 통제
접근 통제: 시스템 자원에 대해 불법 접근을 방지하는 과정
종류: 강제적 접근 통제, 임의적 접근 통제, 역할 기반 접근 통제 3가지
접근 통제 요소
식별, 인증, 인가
대표적 접근 통제 모델
벨라파듈라 모델: 군대 보안 레벨처럼 정보 기밀성에 따라 상하 관계가 구분된 정보 보호
SSO: 스템이 몇 대가 되어도 하나의 시스템에서 인증 성공 시 다른 시스템에 대한 접근 권한도 얻음
Biba Integrity Model, CWM...
강제적 접근 통제
중앙에서 모든 정보를 관리함 (다단계 보안 모델)
BLP, Biba, 만리장성 모델 등
임의적 접근 통제
정보 소유자가 보안 레벨을 결정하고 이에 대해 접근 제어를 설정
역할 기반 접근 통제
직책에 대해 권한을 부여해 효율적인 권한 관리
보안 아키텍쳐(보안 설계 감독을 위한 원칙과 보안 시스템 모든 양상에 대한 세부사항. 구성 방법에 대한 세부사항)
보안 프레임워크(뼈대. 기술적, 관리적, 물리적 보안)
82. 보안 솔루션과 보안 아키텍처
IDS(Intrusion Detection System: 침입 탐지 시스템)
호스트 기반(HIDS), 네트워크 기반(NIDS)이 있음
침입 탐지 기법
오용 탐지(이미 발견돼 알려진 공격 패턴과 일치하는지 검사), 이상 탐지(통계적으로 침입 탐지)
방화벽(상태 검사, 응용 레벨 게이트웨이, 회선 레벨 게이트웨이...)
5가지 구성 형태
스크리닝 라우터, 이중 홈 게이트웨이, 듀얼 홈드 호스트, 단일 홈 게이트웨이, 스크린된 호스트 게이트웨이
IPSec
통신 세션의 각 IP 패킷을 암호화하고 인증
암호화 수행 시 양방향 암호화 지원
ESP는 발신지 인증, 데이터 무결성, 기밀성 모두 보장함
운영 모드는 터널 모드와 전송 모드로 분류됨
AH는 발신지 호스트를 인증하고 IP 패킷의 무결성을 보장함
VPN(가상 사설망)
ESM(방화벽, 침입 탐지 시스템, 가상 사설망 등 보안 솔루션을 하나로 모은 통합 보안 관리 시스템)
참고: https://www.youtube.com/watch?v=LC3TWc_j6n4&list=PL6i7rGeEmTvqEjTJF3PJR4a1N9KTPpfw0&index=6
'✏️ 정보처리기사' 카테고리의 다른 글
[정보처리기사: 필기] 2022년 1회 정보처리기사 문제풀이 (0) | 2024.02.14 |
---|---|
[정보처리기사: 필기] 2022년 2회 정보처리기사 문제풀이 (1) | 2024.02.13 |
[정보처리기사: 필기] 4. 프로그래밍 언어 활용 문제 풀이 (0) | 2024.02.11 |
[정보처리기사: 필기] 4. 프로그래밍 언어 활용 (0) | 2024.02.11 |
[정보처리기사: 필기] 3. 데이터베이스 구축 문제 풀이 (0) | 2024.02.09 |