정보보안 3요소
- 기밀성 : 인가된 사용자에 대해서만 자원 접근이 가능하다
- 무결성 : 인가된 사용자에 대해서만 자원 수정이 가능하며 전송중인 정보는 수정되지 않는다
- 가용성 : 인가된 사용자는 가지고 있는 권한 범위 내에서 언제든 자원 접근이 가능하다
TCP Wrapper
어떤 외부 컴퓨터가 접속되면 접속 인가를 점검하여 인가된 경우에는 접속 허용,
그 반대의 경우에는 접속을 거부할 수 있는 접근제어 유틸리티
TCP/IP 통신에서 tcp는 3-way handshake를 통해 통신히 원활히 이뤄질 수 있는지 확인함
라우터(3계층 네트워크)
브리지와 같이 LAN과 LAN사이를 연결하여 데이터의 최적 경로를 선택할 수 있는 기능이 추가 된 것
라우팅 프로토콜 (라우팅 : 네트워크에서 경로 선택)
- OSFP(Open Shortest Path First) : 링크 상태 프로토콜
네트워크 변화에 신속하게 대응할 수 있다
멀티캐스팅을 지원한다
최단 경로 탐색에 Dijkstra 알고리즘을 사용한다
- RIP : 거리 벡터 프로토콜
Zing
기기를 키오스크에 갖다 대면 워하는 데이터를 바로 가져올 수 있는 기술로
10cm 이내 근접 거리에서 기가급 속도로 데이터 전송이 가능한 초고속 근접무선통신(NFC:Near Field Communication)기술
(근거리로 가까이가면 지이잉 하고 소리가 난다고 외우기 팁이래여ㅋ)
응용 프로그램의 취약점 관리를 위한 보안 설정
- 응용 프로그램의 실행 권한의 제한
- 운영체제의 접근 제한
- 정보 수집 제한
- 불필요한 서비스 및 악성 프로그램의 확인 및 제거
- 시스템 무결성 검사(주요 파일 검사하여 변경 내역 확인)
소프트웨어 개발 프레임워크
- 개발해야 할 애플리케이션 일부분이 이미 내장된 클래스 라이브러리로 구현되어있어
그 기반이 되는 이미 존재하는 부분을 확장 및 이용하는 것이다
- 이미 정해진 코드를 호출해 사용하고 자체적인 흐름을 가지고 있다
(<-> 라이브러리:사용자 코드에서 호출해서 사용하고 그에 대한 제어를 할 수 있음)
- 동작 원리를 제어 흐름이 일반적인 프로그램의 흐름과 반대로 동작한다고 해서 IoC(Inversion of Control)이라고도 한다
- 설계 관점에 개발 방식을 패턴화시키기 위한 노력의 결과물인 소프트웨어 디자인 패턴을 반제품 소프트웨어 상태로 집적화 시킨 것
- JAVA 기반 대표적 소프트웨어로는 SPRING이 있다
(프레임워크 : 특정 기능을 수행하기 위한 클래스나 인터페이스를 모아둔 집합체, 뼈대, 골조)
소프트웨어 비용 추정 모형(Estimation Models)
- COCOMO
시스템의 비용을 산정하기 위해 시스템을 구성하고 있는 모듈과 서브 시스템의 비용 합계를 계산하는 방식
- Putnam
소프트웨어 개발 주기의 간 단계별로 요구 분포를 가정하는 모델
- Function-Point
요구 기능을 증가시키는 인자별로 가치를 부여하여 기능의 점수를 계산하여 비용을 산정하는 방식
애자일(Agile)방법론의 특징
- 소프트웨어 개발에 참여하는 구성원들 간의 의사소통 중시
- 환경 변화에 즉각적인 즉시 대응
- 프로젝트 상황에 따른 주기적 조정
- 각 단계의 결과가 완전히 확인되지 않더라도 다음 단계 진행 (빠르게 빠르게)
(폭포수 모형의 특징 : 각 단계의 결과가 완전히 확인된 후 다음 단계 진행)
클라우드 기반 HSM(Cloud-based Hardware Security Module)
- 클라우드(데이터센터) 기반 암호화 키 생성, 처리, 저장 등을 하는 보안 기기이다
- 국내에서는 공인인증제 폐지와 전자서명법개정을 추진하면서 해당 용어가 자주 등장하였다
- 클라우드에 인증서를 저장하므로 기존 HSM 기기나 휴대폰에 인증서를 저장할 필요가 없다
- 하드웨어적으로 구현되므로 소프트웨어식 암호 기술에 내재된 보안 취약점을 해결할 수 있다
SDN(Software Defined Networking)
네트워크의 제어부, 데이터의 전달부로 분리하여 네트워크 관리자가 보다 효율적으로 네트워크를 제어, 관리할 수 있는 기술
기존 라우터, 스위치 등의 하드웨어에 의존하는 네트워크 체계 -> 안정성, 속도, 보안 등을 소프트웨어로 제어, 관리하기 위하여 개발됨
네트워크 장비의 펌웨어 업그레이드를 통해 사용자의 직접적인 데이터 전송 경로 관리가 가능하고,
기존 네트워크에는 영향을 주지 않으면서 특정 서비스의 전송 경로 수정을 통하여 인터넷상에서 발생하는 문제를 해결 할 수 있음
SDS(Software Defined Storage)
가상화를 적용하여 필요한 공간만큼 나눠 사용할 수 있도록 하며 서버 가상화와 유사함
컴퓨터 소프트웨어로 규정하는 데이터스토리지 체계이며, 일정 조직 내 여러 스토리지를 하나처럼 관리하고 운용하는 컴퓨터 이용 환경
스토리지 자원을 효율적으로 나누어 쓰는 방법으로 이해할 수 있다
NFS(Network File System)
네트워크상에서 공유되는 파일 시스템으로 원격 연결처럼 간단하게 접근하여 자신의 디렉토리처럼 이용 가능하다
Network Mapper
네트워크 보안을 위한 유틸리티로 물리적 연결과 어떤 서버와 운영체제가 작동 중인지 등을 조사하는 응용 프로그램
AOC Network(Activity On Edge Network)
어떤 프로젝트를 마치기까지 수행되는 작업의 각 단계를 그래프의 정점(Vertex)으로 표현하고
작업 하나가 완료되어 다음 단계로 넘어가는 시간을 간선(Edge)로 나타낸 방향 그래프
Mesh Network
- 다른 국을 향하는 호출이 중계에 의하지 않고 직접 접속되는 그물 모양의 네트워크이다
- 통신량이 많은 비교적 소수의 국 사이에 구성될 경우 매우 경제적이며 간편하지만
다수의 국 사이에서는 회선이 세분화되어 비경제적일 수 있다
- 해당 형태의 무선 네트워크의 경우 대용량을 빠르고 안전하게 전달할 수 있어 행사장이나 군 등에서 많이 활용된다
기술적 위협
방화벽 설정의 잘못된 조작으로 인한 네트워크, 서버 보안 위협
[대칭 암호 알고리즘]
비교적 실행 속도가 빠르기 때문에 다양한 암호의 핵심 함수로 사용될 수 있다
키 교환이 필요하기 때문에 키를 교환하는 도중 키가 탈취될 수 있다는 문제가 있다
(AES, IDEA)
[비대칭 암호 알고리즘 -공개키 암호 알고리즘]
자신만이 보관하는 비밀키를 이용하여 인증, 전자서명 등에 적용하여 사용한다
암호화에 쓰는 키 값과 복호화에 쓰이는 키 값이 다르다
(RSA, ElGamal, ECC, DSA)
[접근 통제(제어) 방법]
- RBAC(Role Based Access Control)
조직 내에서 직무, 직책 등 개인의 역할에 따라 결정하여 부여하는 접근 정책(역할 기반 접근 통제)
- DAC(Discretionary Access Control)
임의 접근 통제(사용자 또는 신분)
- MAC(Mandatory Access Control)
강제 접근 통제(미리 정해진 정책과 보안 등급)
- UAC(User Access Control)
사용자 계정 컨트롤(사용자가 제어할 수 있도록 도움)
- DLAC(Data-Label Access Control)
자료별 접근 통제(개별 행, 열에 대해 권한을 결정)
[접근 통제(제어) 모델]
- BLP(Bell-Lapadula Model) 기밀성 모델
군대의 보안 레벨처럼 정보의 기밀성에 따라 상하 관계가 구분된 정보를 보호하기 위해 사용
자신의 권한 보다 낮은 보안 레벨 권한을 가진 경우에는 높은 보안 레벨의 문서를 읽을 수 없고 낮은 문서만 읽을 수 있다
자신의 권한보다 높은 보안 레벨의 문서에는 쓰기가 가능하지만 보안레벨이 낮은 문서의 쓰기 권한은 제한한다
- Clark-Wilson Integrity Model 무결성 모델
비밀 노출 방지보다 자료의 변조 방지가 더 중요함 (금융, 회계관련 데이터, 기업 재무재표)
- Chinese Wall Model
충돌을 야기시키는 어떠한 정보의 흐름도 없어야한다 -> 이익의 충돌 금지
최근 일을 한 적 있는 파트너는 동일 영역에 있는 다른 회사 자료에 접근해서는 안된다
사용자 인증의 유형
- 지식 : 본인이 알고 있는 것 (Password, PIN)
- 소유 : 본인기 가지고 있는 것 (token, smartcard)
- 존재 : 본인을 나타내는 것 (홍채, 지문, 얼굴)
- 행위 : 본인이 하는 것 (서명, 움직임, 음성)
Authentication(권한부여)
자신의 신원을 시스템에 증명하는 과정으로 아이디와 패스워드를 입력하는 과정이 가장 일반적인 예시이다
GANTT 차트 = 시간선(Time-line)차트
각 작업들이 언제 시작하고 언제 종료되는지에 대한 일정을 막대 도표를 이용하여 표시
수평 막대의 길이는 각 작업의 기간을 나타낸다
PERT 차트
프로젝트 일정 관리시 사용하는 차트로 작업들 간의 상호 관련성, 결정경로, 경계시간, 자원할당 들을 제시한다
검증(Verification) 단계
1. 요구사항 분석
2. 시스템 설계
3. 아키텍처 설계
4. 모듈 설계
소프트웨어의 생명주기
1) 기본 생명 주기 프로세스
획득, 공급, 개발, 운영, 유지보스 프로세스
2) 지원 생명 주기 프로세스
품질 보증, 검증, 확인, 활동 검증, 문제 해결 프로세스
3) 조직 생명 주기 프로세스
관리, 기반 구조, 훈련, 개선 프로세스
Waterfall Model(폭포수 모델) -> 산출물 중심
소프트웨어 개발 생명주기에 기반하고 있는 개발 기법 중 하나로 각 개발 단계를 확실히 매듭 짓고 다음 단계로 넘어간다
한번 떨어지면 다시 거슬러 올라갈 수 없는 폭포수를 의미함
V 모델 -> 작업과 결과의 검증에 중심
소프트웨어 생명주기 모델 중 하나로 개발 작업과 검증 작업 사이의 관계를 명확히 놓은 폭포수 모델의 확장 된 형태
아래 방향으로 선형적으로 내려가면서 진행되는 폭포수와 달리, 코딩 단계에서 위쪽으로 꺾여 알파벳 V자 모양으로 진행된다
Perry에 의해 제안되었으며 세부적인 테스트 과정으로 구성되어 신뢰도 높은 시스템을 개발하는데 효과적이다
요구분석 및 설계단계를 거친다
나선형 모델(Spiral Model)
소프트웨어 생명주기 모델 중 하나로 소프트웨어 개발 프로세스를 위험 관리 측면에서 본 모델이다
시스템을 여러 부분으로 나누어 여러 번의 개발 주기를 거치면서 시스템이 완성된다
요구사항이나 아키텍처를 이해하기 어렵다거나 중심이 되는 기술에 문제가 있는 경우에 적합한 모델이다
개발 과정이 반복되므로 위험분석 또한 계획 수립 후 추가적으로 계속 가능 하다 (위험분석 여러번)
고가용성 솔루션 (HACMP)
각 시스템 간에 공유 디스크를 중심으로 클러스터링으로 엮여 다수의 시스템을 동시에 연결할 수 있다
조직, 기업의 기간 업무 서버 등의 안정성을 높이기 위해 사용될 수 있다
여러 가지 방식으로 구현되며 2개의 서버를 연결하는 것으로 2개의 시스템이 각각 업무를 수행하도록 하는 방식이 널리 사용된다
점대점 연결 방식(Point to Point Mode)
네트워크에 있어 물리적으로는 중개 장치를 통과하지 않고 한 지점에서 다른 지점으로 직접 가는 채널
두 스테이션간 별도의 회선을 사용하여 1대 1로 연결
전용회선이나 공중 전화 회선을 이용함
회선 구성이 간단하고 대용량 전송에 유리
별도의 회선과 포트에 따른 높은 설치비용
스턱스넷(Stuxnet)
윈도우를 통해 감염되는 웜 바이러스로 지맨스산업의 SW 및 장비 공격
루팅(Rooting)
모바일 기기에서 구동되는 안드로이드 운영체제에서 최상 권한(루트)을 얻음으로
해당 기기의 생산자 또는 판매자 측에서 걸어놓은 제약을 해제하는 행위
Switch Jamming
위조된 매체 접근 제어(MAC) 주소를 지속적으로 네트워크로 흘려보내,
스위치 MAC 주소 테이블의 저장 기능을 혼란시켜 더미 허브(Dummy Hub)처럼 작동하게 하는 공격
FTP Flooding
TCP의 3Way Handshake 취약점들을 이용해 DoS 공격으로 다량의 SYN패킷을 보내 백로그큐를 가득 채우는 공격
LAN Tapping
LAN 신호를 직접 자신에게 끌어오는 방식의 공격
Parsing
하나의 프로그램을 런타임환경이 실제 실행할 수 있는 내부 포맷으로 분석하고 변환하는 것
DAS(직접 연결 저장장치, Direct-attached Storage)
하드디스크와 같은 데이터 저장장치를 호스트 버스 어댑터에 직접 연결하는 방식
저장장치와 호스트 기기 사이에 네트워크 디바이스 없이 연결하는 방식으로 구성
NAS(Network Attaced Storage)
네트워크 결합 저장방식
NFC
근거리 무선 통신
취약점 관리를 위해 수행하는 작업
- 무결성 검사
- 응용 프로그램의 보안 설정 및 패치 적용
- 불필요한 서비스 및 악성 프로그램의 확인과 제거
- 활성화된 프로세스와 열린 포트를 위주로 확인
블루투스(Bluetooth) 공격
- 블루프린팅(BluePrinting) : 블루투스 공격 장치의 검색 활동
- 블루버그(BlueBug) : 블루투스 장비사이의 취약한 연결 관리를 악용한 공격
- 블루스나프(BlueSnarf) : 장비 파일에 접근하는 공격으로 OPP(블루투스 장치끼리 인증 없이 간편하게 정보 교환)를 사용하여 정보를 열람
- 블루재킹(BlueJacking) : 블루투스를 이용해 스팸처럼 명함을 익명으로 퍼뜨리는 공격
DoS(Denial of Service) 공격
- Ping of Death공격 : 정상 크기보다 큰 ICMP 패킷을 작은 조각으로 쪼개어 공격 대상이 조각화 된 패킷을 처리하게 만드는 방법이다
- Smurf 공격 : 로드캐스트를 활용하여 공격 대상이 네트워크의 임의의 시스템에 패킷을 보내게 만드는 공격
- SYN Flooding : 존재하지 않는 클라이언트가 서버별로 한정된 접속 가능 공간에 접속한 것처럼 속여 다른 사용자가 서비스를 사용하지 못하게 함
- Land 공격 : 패킷 전송시 출발지 IP주소와 목적지 IP주소 값을 똑같이 만들어서 공격대상에게 보내는 방법
Ransomware
개인과 기업, 국가적으로 큰 위협이 되고 있는 주요 사이버 범죄 중 하나로 Snake, Darkside 등 시스템을 잠그거나 데이터를 암호화해
사용할 수 없도록 하고 이를 인질로 금전을 요구하는 데 사용하는 악성 프로그램
하둡(Hadoop)
오픈 소스를 기반으로한 분산 컴퓨팅 플랫폼 (대형 스토리지, 빅데이터 관련)
스쿱(Sqoop) : 하둡과 RDBMS간의 데이터를 전송할 수 있도록 설계된 도구(커넥터를 이용하여 RDBMS에서 HDFS로 데이터를 수집하는 빅데이터 기술)
Map Reduce
대용량 데이터를 분산처리하기 위해 구글에 의해 개발된 프로그래밍 모델로 임의의 순서로 분산 처리 후 다시 합침
타조(Tajo)
하둡 기반 데이터웨어하우스 시스템
원 세그(One Seg)
일본과 브라질에서 상용중인 디지털 티비 전송 기술의 일종(주로 모바일 기기 대상)
포스퀘어(Foursquare)
위치 기반 소셜 네트워크 서비스
텐서플로(TensorFlow)
구글 브레인 팀이 제작하여 공개한 머신러닝을 위한 오픈소스 소프트웨어 라이브러리
PaaS-TA
한국지능정보사회진흥원(NIA)이 지원하는 개방형 클라우드 플랫폼 -> 국내 IT 서비스 경쟁력 강화 목표
Honeypot
- 비정상적인 접근의 탐지를 위해 의도적으로 설치해 둔 시스템
- 침입자를 속여 실제 공격당하는 것처럼 보여줌으로써 크래커 추적 및 공격기법의 정보를 수집한다
- 쉽게 공격자에게 노출되어야 하며 쉽게 공격이 가능한 것처럼 보여야 한다
Docker
- 컨테이너 응용프로그램의 배포를 자동화하는 오픈소스 엔진
- 소프트웨어 컨테이너 안에 응용 프로그램들을 배치시키는 일을 자동화해줌
StackGuard
스택상에 일정한 주소번지에 프로그램이 선언한 canary를 심어 두어 스택이 변조 된경우 이를 체크하여 프로그램을 비정상적으로 종료시키는 기법
Cipher Container
자바에서 암호화, 복호화 기능을 제공하는 컨테이너
Scytale
단순하게 문자열의 위치를 바꾸는 암호화 기법
간트차트(Gantt Chart)
- 프로젝트를 이루는 소작업 별로 언제 시작되고 언제 끝나야하는지를 한눈에 볼 수 있다
- 자원 배치 계획에 유용하게 사용된다
- CPM 네트워크로부터 만드는 것이 가능하다
- 수평 막대의 길이는 각 작업(Task)에 필요한 시간을 나타낸다
Scrapy
Python 기반의 웹 크롤링 프레임워크로 가볍고 빠르고 확장성이 좋다
Li-fi
스펙트럼의 빛을 이용한 5세대 통신 기술
SBAS(위성항법보강시스템)
GPS의 오차를 보정해 신뢰성과 안정성을 높인 기법
Secure코딩에서 입력 데이터의 보안 약점
- SQL 삽입 : 사용자의 입력 값 등 외부 입력 값이 SQL 쿼리에 삽입되어 공격
- 크로스사이트 스크립트 : 검증되지 않은 외부 입력 값에 의해 브라우저에서 악의적인 코드가 실행
- 운영체제 명령어 삽입 : 운영체제 명령어 파라미터 입력 값이 적절한 사전검증을 거치지않고 사용되어 공격자가 운영체제 명령어를 조작
- 자원 삽입 : 자원을 조작 할 수 있는 문자열을 삽입하여 시스템이 보호하는 자원에 임의로 접근할 수 있음
Windows 파일 시스템
FAT | NTFS |
- DOS때부터 사용되던 윈도우 파일시스템 - 저용량에 적합하고 호환성이 좋다 - 저장가능한 파일의 최대 크기가 4GB |
- FAT시스템을 대체하기 위해 개발됨 - 사용자마다 다른 보안 적용 가능 - 대용량 저장 가능 및 안정성이 뛰어남 - 저용량 볼륨에서 속도저하 있음 |
[암호화 알고리즘]
1. 양방향
- 개인키(대칭키,단일키)
암호화/복호화 속도가 빠르고 알고리즘이 단순하다
블록 : DES, SEED, AES, ARIA
스트림 : LFSR, RC4
- 공개키(비대칭)
RSA : 암호화키는 공개키를, 복호화키는 비밀키를 사용
2. 단방향
hash, Sha
DES 암호화 알고리즘 : 64bit
AES 암호화 알고리즘 : 128, 192, 256bit
리눅스의 파일 생성 권한 크기 = 666
ex. 리눅스에서 생성된 파일 권한이 644일 경우 unmask 값은? 666 - 644 = 022
wtmp
- 리눅스 시스템에서 사용자의 성공한 로그인/로그아웃 정보기록 로그파일
- 시스템의 종료/시작 시간 기록
- last 명령어 사용
- var/log/wtmp에 위치함
utmp
- 현재 사용자 상태 정보를 담고 있는 로그파일
btmp
- 실패한 로그인 정보를 담고 있는 로그파일
last log
- 마지막으로 성공한 로그인 정보를 담고 있는 로그파일
DPI(Deep Packet Inspection)
OSI 7 Layer 전 계층의 프로토콜과 패킷 내부의 컨텐츠를 파악하여 침입 시도, 해킹 등을 탐지하고 트래픽을 조정하기 위한 패킷 분석 기술
테일러링(Tailoring)
프로젝트 상황 특성에 맞게 정의된 소프트웨어 개발 방법론의 하나로 절차, 사용기법 등을 수정 및 보완하는 작업
프로젝트 수행 시 예상되는 변화를 배제하지 않는다
프로젝트에 최적화된 개발 방법론을 적용하기 위해 절차, 산출물 등을 적절히 변경하는 활동
관리 측면에서 목적 중 하나는 최단기간에 안정적인 프로젝트 진행을 위한 사전 위험을 식별하고 제거하는 것
기술적 측면에서의 목적 중하나는 프로젝트에 최적화된 기술 요소를 도입하여 프로젝트 특성에 맞게 사용하는 것
침입탐지 시스템(IDS, Intrusion Detection System)
- 이상탐지(Anomaly Detection)
잘 알려지지 않은 공격 탐지에 적합, 기존 패턴과 급격하게 다른 패턴을 발견하면 침입으로 판단
- 오용탐지(Misuse Detection)
잘 알려진 시스템의 취약점을 공격하는 패턴의 침입을 탐지 (새로운 공격 패턴을 막기 어려움)
VLAN(Virtual Local Area Network)
물리적 배치와 상관없이 논리적으로 LAN을 구성하여 Broadcast Domain을 구분할 수 있게 해주는 기술로
접속된 장비들의 성능향상 및 보안성 증대 효과가 있다
STP(Spanning Tree Protocol)
2개 이상의 스위치가 여러경로로 연결될 때, 무한 루프 현상을 막기 위해서 우선순위에 따라 1개의 경로로만 교신하도록 함
ARP(Addres Resolution Protocol)
네트워크 상에서 IP주소를 물리적 네트워크 주소로 바인딩(MAC주소로) 시키기 위해 사용되는 프로토콜
OWASP(The Open Web Application Security Project)
오픈소스 웹 애플리케이션 보안 프로젝트로서 주로 웹을 통한 정보 유출, 악성 파일 및 스크립트, 보안 취약점 등을 연구하는 곳
SAN(Storage Area Network)
여러 개의 저장장치나 백업 장비를 단일화 시킨 시스템
네트워크상에 광채널 스위치의 이점인 고속 전송과 장거리 연결 및 멀티 프로토콜 기능을 활용한다
각기 다른 운영체제를 가진 여러 기종들이 네트워크상에서 동일 저장장치의 데이터를 공유하게 함으로써,
MBR(Memory Buffer Register)
기억장치를 출입하는 데이터가 잠시 기억되는 레지스터
NAC(Network Access Control)
PC의 MAC주소를 IP관리 시스템에 등록하고 일관된 보안관리 기능을 제공
NIC
물리 계층과 데이터 계층의 서비스를 제공
SSH(Secure Shell)
기본 네트워크 포트는 22번이다
전송되는 데이터는 암호화된다
키를 통한 인증은 클라이언트의 공개키를 서버에 등록해야 한다
서로 연결되어 있는 컴퓨터 간 원격 명령실행이나 셀서비스 등을 수행한다
CBD(Component Based Development) 컴포넌트 기반의 방법론
기존의 시스템이나 소프트웨어를 구성하는 컴포넌트를 조합하여 하나의 새로운 어플리케이션을 만드는 방법론
1) 요구파악 단계
요구사항 기술서, 용어 사전, 개념 모델, 유스케이스 모델
2) 분석 및 설계
객체 모델, UI설계서, 아키텍처 기술서, 인터페이스 명세서, 컴포넌트 명세서, 컴포넌트 설계서, 데이터베이스 설계서
3) 구현
개발 표준 정의서, 플랫폼 종속적 코드
4) 테스트
테스트 계획서, 컴포넌트 테스트 보고서, 통합 테스트 보고서, 인수테스트 보고서
코드의 오류 발생 형태의 종류
- 생략 오류(Omission Error)
입력시 한자리를 빼놓고 기록한 오류 (1234 -> 123)
- 필사 오류(Transcription Error)
입력시 한자리를 잘못 기록한 오류 (1234 -> 1235)
- 전위 오류(Transposition Error)
입력시 좌우 자리를 바꾸어 기록한 오류 (1234 -> 1243)
- 이중 오류(Double Transposition Error)
전위 오류가 두 가지 이상 발생한 경우 (1234 -> 2143)
- 추가 오류(Addtion Error)
입력시 한자리를 추가로 기록한 오류(1234 -> 12345)
- 임의 오류(Random Error)
오류 형태가 두 가지 이상 결합하여 발생한 오류 (1234 -> 12367)
SPICE모델의 프로세스 수행 능력 수준의 단계
0단계 : 불안정 (구현전 or 목적 달성 전)
1단계 : 수행 (목적이 전반적으로 이뤄짐)
2단계 : 관리 (작업 산출물 인도)
3단계 : 확립 (공학 원칙을 지킴)
4단계 : 예측 (산출물의 양적 측정이 가능해져 일관된 수행이 가능)
5단계 : 최적화 (지속적으로 업무 목적 만족)
하드웨어 관련 신기술
- Memristor (Memory + Register)
전원 공급이 끊어져도 다시 전원이 공급되면 이전 상태 복원
- MEMS
센서, 엑추에이터 등 기계구조를 다양한 기술로 미세 가공 후 전기기계적 동작을 가능케하는 초미세장치
- N-Screen
N개의 서로 다른 단말기에서 동일 컨텐츠를 끊김없이 자유롭게 이용하는 서비스
IPSec(IP Security)
IP계층(3)에서 무결성과 인증을 보장하는 암호화를 이용해 양 종단 구간에 보안 서비스를 제공하는 터널링 프로토콜
- IKE(Internet Key Exchange)
보안 관련 설정들을 설정들을 생성, 형상 및 관리하는 프로토콜 (UDP 500번 포트 사용)
- ESP(Encapsulating Security Payload)
메시지 인증코드, 암호화를 이용해 인증무결성, 발신지인증, 기밀성을 제공하는 프로토콜
- AH(Authentication Header)
기밀성을 제외한 메시지 인증코드를 이용한 인증무결성, 발신지인증 제공 프로토콜
Stack Guard
메모리상에서 프로그램의 복귀 주소와 변수 사이에 특정값을 저장해두었다가 그 값이 변경되었을 경우
오버플로우 상태로 가정하여 프로그램 실행을 중단하는 기술
nmap
서버에 열린 포트 정보를 스캐닝해서 보안취약점을 찾는 데 사용하는 도구
Secure OS 보안운영체제
1. 식별 및 인증, 계정관리
2. 임의적 접근 통제
3. 강제적 접근 통제
4. 객체 재사용 방지
5. 완전한 중재 및 조정
6. 감사 및 감사기록 축소
7. 안전한 경로
8. 보안 커널 변경 방지
9. 해킹 방지
10. 통합 관리
[악성코드 공격 방법]
- Worm
악성코드의 유형 중 다른 컴퓨터의 취약점을 이용하여 스스로 전파하거나 메일로 전파되며 스스로 증식하는 것
- Rogue Ware(Rougue security software) - 가짜 백신 소프트웨어
사용자가 컴퓨터에 악성코드가 있다고 잘못 믿게하여 컴퓨터에 악성 프로그램을 설치하도록 하거나,
가짜 악성 프로그램 제거 도구에 대한 비용을 지불하도록 설득함
(공포심을 통해 사용자를 조종함)
- Adware
특정 소프트웨어를 실행할 때 또는 자동으로 활성화되는 광고프로그램으로 이 자체는 악성코드로 보기는 힘들지만
무분별한 광고 팝업을 뜨게 하는 등의 악용 위험성으로 악성코드로 분류함
- Reflection Attack(반사공격)
송신자가 생성한 메시지를 가로챈 공격자가 그 메시지를 다시 송신자에게 재전송하여 접근 권한을 얻는 형태
(암호값 -> 난수값)
[시스템 공격 방법]
- Ping of Death
시스템 공격 기법 중 하나로 허용범위 이상의 ICMP 패킷을 전송하여 대상 시스템의 네트워크를 마비시킨다
- Session Hijacking(세션 가로채기)
컴퓨터 시스템의 정보 서비스에 무단으로 접근하기 위해 유효한 컴퓨터 세션을 이용하는 것
공격자가 피공격자의 로그인 정보를 활용한다
- Piggyback Attack(피그백 공격)
공격자가 다른 사용자의 연결에서 계정을 사용하지 않는 비활성 기간(비활성 간격)을 이용하여 시스템에 액세스하는 것
간선(회선) 간 공격이라고도 부른다
- XSS(크로스 사이트 스크립팅)
웹사이트에 악성 스크립트를 삽입하는 행위로
공격자가 상대방의 브라우저에 스크립트가 실행되도록 하여 사용자의 세션을 가로채거나 웹사이트를 변조,
또는 악의적 컨텐츠를 삽입하거나, 피싱 공격을 진행하는 것
SQL Injection
- 임의로 작성한 SQL 구문을 애플리케이션에 삽입하는 공격 방식이다
- SQL Injection 취약점이 발생하는 곳은 주로 웹 애플리케이션과 데이터베이스가 연동되는 부분이다
- DBMS의 종류에 따라 공격 기법이 다르다
- 로그인과 같이 웹에서 사용자의 입력 값을 받아 데이터베이스 SQL문으로 데이터를 요청하는 경우 SQL Injection을 수행할 수 있다
COCOMO(Constructive Cost Model)
보헴이 고안한 소프트웨어 개발비용 산정 방법
프로젝트를 완성하는데 필요한 man-month(투입노력)로 산정 결과를 나타낼 수 있다
원시코드 라인 수에 의한 비용 산정 기법이다
비교적 작은 규모의 프로젝트 기록을 통계 분석하여 얻은 결과를 반영한 모델이며 중소 규모 소프트웨어 프로젝트 비용 추정에 적합
프로젝트 개발 유형에 따라 조직형(Organic), 반분리형(Semi-Detached), 내장형(Embedded) 3가지 모드로 구분한다
비용 산정 계산법
(LOC : 원시코드 라인 수)
개발기간 = 예측된 LOC / (투입인원 X 1인당 평균 LOC)
개발비용 = 개발기간 X 투입인원 X 단위비용
노력 = 개발기간 X 투입인원
생산성 = LOC / 노력(인X월)
= LOC / (투입인원 X 개발기간)
= LOC / (투입인원 X (예측된 LOC / (투입인원 X 1인당 평균 LOC)))
ex) LOC기법에 따라 예측된 총 라인수가 36000라인, 개발에 참여한 프로그래머가 6명, 프로그래머들의 평균 생산성이 월간 300라인일 때
개발에 소요되는 기간을 계산한 결과는 ?
기간 = LOC / 월간평균생산성 / 참여 프로그래머 = 36000 / 300 / 6 = 20개월
LOC예측치를 구하기 위해 필요한 항목
낙관치, 비관치, 기대치
자료 및 출처
1. 정보처리기사 필기 기출
'License' 카테고리의 다른 글
[정보처리기사실기 요약정리] 데이터 입출력 구현 (0) | 2023.06.13 |
---|---|
[정보처리기사실기 요약정리] 요구사항확인 (0) | 2023.06.07 |
[정보처리기사필기] 4과목 프로그래밍 언어 활용 기출문제 해설 요약정리 (0) | 2023.05.06 |
[정보처리기사필기] 3과목 데이터베이스 구축 기출문제 해설 요약정리 (0) | 2023.05.06 |
[정보처리기사필기] 2과목 소프트웨어 개발 기출문제 해설 요약정리 (1) | 2023.05.06 |