소프트웨어 개발의 비용 산정 기법
소프트웨어 비용 산정은 소프트웨어의 개발 규모를 소요되는 인원, 자원, 기간 등으로 확인하여 실행 가능한
계획을 수립하기 위해 필요한 비용을 산정하는 것
- 하향식 비용 산정 기법
과거의 유사한 경험을 바탕으로 전문 지식이 많은 개발자들이 참여한 회의를 통해 비용을 산정하는 비과학적인 방법
- 종류
전문가 감정기법 | 조직 내에 있는 경험이 많은 두 명 이상의 전문강게 비용 산정을 의뢰하는 기법 |
델파이 기법 | 전문가 감정 기법의 주관적인 편견을 보완하기 많은 전문가의 의견을 종합하여 산정하는 기법 |
- 상향식 비용 산정 기법
프로젝트의 세부적인 작업 단위별로 비용을 산정한 후, 집계하여 전체 비용을 산정하는 방법
- 종류
LOC(원시 코드 라인 수)기법 | 노력 = 개발 기간 X 투입 인원 = LOC / 1인당 월평균 생산 코드 라인 수 실기기출 개발 비용 = 노력 X 단위 비용(1인당 월평균 인건비) 개발 기간 = 노력 X 투입 인원 생산성 = LOC / 노력 |
개발 단계별 인월수 기법 | LOC 기법을 보완하기 위한 기법으로, 각 기능을 구현시키는데 필요한 노력을 생명 주기의 각 단계별로 산정 |
서비스 거부 공격
표적이 되는 서버의 자원을 과갈시킬 목적으로 다수의 공격자 또는 시스템에서 대량의 데이터를 한 곳의 서버에 집중적으로 전송함으로써, 표적이 되는 서버의 정상적인 방해하는 것이다.
- 서비스 거부 공격의 유형
Ping of Death ( 죽음의 핑 ) | Ping 명령을 전송할 때 패킷의 크기를 인터넷 프로토콜 허용범위이상으로 전송해서 공격 대상 네트웨크를 마비시키는 서비스 거부 공격 방법 |
Smurfing ( 스머핑 ) | 엄청난 양의 데이터를 한 사이트에 집중적으로 보냄으로써 네트워크 또는 시스템의 상태를 불능으로 만드는 공격 방법 |
SYN Flooding | 공격자가 가상의 클라이언트로 위장하여 3-way-handshake 과정을 의도적으로 중단시킴으로써 공격 대상자인 서버가 대기 상태에 놓여 정상적인 서비스를 수행하지 못하게 하는 공격 방법 |
TearDrop | 데이터 송수신 과정에서 패킷의 크기가 여러 개로 분할되어 전송될 때, 여러 개로 분할되어 전송될 때 분할 순서를 알 수 있도록 Fragment Offset값을 함께 전송하는데, 이 Offset 값을 변경시켜 수신 측에서 패킷을 재조립할 때 오류로 인한 과부하를 발생시킴으로써 시스템이 다운되도록 하는 공격 방법 |
Land 실기기출 | 패킷을 전송할 때 송신 IP 주소와 수신 IP주소를 모두 공격 대상의 IP주소로 하여 공격 대상에게 전송하는 것 이러한 패킷을 계속 전송해서 자신에 대해 무한히 응답하게 되므로 컴퓨터 실행 속도를 느리게 하거나 동작을 마비시킴 |
DDos( Distributed Denial of Service, 분산 서비스 거부 공격 ) |
여러 곳에 분산된 공격 지점에서 한 곳의 서버에 대해 분산 서비스 공격을 수행하는 것. 네트워크에서 취약점이 있는 호스트를 탐색한 후 이들 호스트들에 분산 서비스 공격용 툴을 설치하여 에이전트로 만든후 DDos 공격에 이용 |
네트워크 침해 공격 관련 용어
스미싱 ( Smishing ) | 각종 행사 안내, 경품 안내 등의 문자 메시지(SMS)를 이용해 사용자의 개인 신용 정보를 빼내는 수법 |
스피어 피싱 ( Spear Phishing ) | 특정 대상을 선정한 후 , 그 대상에게 일반적인 이메일로 위장한 메일을 지속적으로 발송, 방송 메일의 본문 링크나 첨부된 파일을 클릭하도록 유도해 사용자의 개인 정보를 탈취 |
APT ( Advanced Persistent Threats, 지능형 지속 위협 ) | 다양한 IT기술과 방식들을 이용해, 조직적으로 특정 기업이나 조직 네트워크에 침투해 활동 거점을 마련한 뒤, 때를 기다리면서 보안을 무력화 시키고 정보를 수집한 다음 외부로 빼돌리는 형태의 공격 |
무작위 대입 공격( Brute Force Attack ) | 암호화된 문서의 암호키를 찾아내기 위해 적용 가능한 모든 값을 대입하여 공격하느 방식 |
큐싱 ( Qshing ) | QR코드(Quick Response Code)를 통해 악성 앱의 다운로드를 유도하거나 악성 프로그램을 설치하도록 하는 금융사기 기법의 하나 |
SQL 삽입 공격 | 전문 스캐너 프로그램 or 봇넷 등을 이용해 웹사이트를 무차별적으로 공격하는 과정에서 취약한 사이트가 발견되면 DB 등의 데이터를 조작하는 일련의 공격 방식 |
정보 보안 침해 공격 관련 용어
좀비( Zombie ) PC | 악성코드로 감염되어 다른 프로그램이나 컴퓨터를 조종하도록 만들어진 컴퓨터 |
C&C 서버 | 해커가 원격자에서 감염된 좀비 PC에 명령을 내리고 악성코드를 제어하기 위한 용도로 사용하는 서버 |
봇넷( Botnet ) | 악성 프로그램에 감염되어 악의적인 의도로 사용될 수 있는 다수의 컴퓨터들이 네트워크로 연결된 형태 |
웜 ( Worm ) | 네트워크를 통해 연속적으로 자신을 복제하여 시스템의 부하를 높임으로써 결국 시스템을 다운시키는 바이러스 일종 |
제로 데이 공격 ( Zero Day Attack ) | 보안 취약점이 발견되었을 때 발견된 취약점의 존재 자체가 공표되기도 전에 해당 취약점을 통하여 이뤄지는 보안 공격 공격의 신속성을 의미 |
키로커 공격 ( Key Logger Attack ) | 컴퓨터 사용자의 키보드 움직임을 탐지해 ID,패스워드 계좌번호, 등 개인 중요 정보를 몰래 빼가는 해킹 공격 |
랜섬웨어 ( Ransomware ) | 인터넷 사용자의 컴퓨터에 잠입해 내부 문서나 파일 등을 암호화해 사용자가 열지 못하게 하는 프로그램 |
백도어 ( Back Door ) | 시스템 설계자가 액세스 편의를 위해 시스템 보안을 제거하여 만들어놓은 비밀 통로, 컴퓨터 범죄에 악용되기도 함 [ 기법 ] 1. 무결성 검사 2. 로그 분석 3. SetUID 파일검사 |
트로이 목마 ( Trojan Horse ) | 정상적인 기능을 하는 프로그램으로 위장하여 프로그램 내에 숨어 있다가 해당 프로그램이 동작할 때 활성화되어 부작용을 일으키는 것, 자기 복제 능력은 없다. |
Secure SDLC
보안상 안전한 소프트웨어를 개발하기 위해 SDLC에 보안 강화를 위한 프로세스를 포함한 것을 의미
SDLC( Software Development Life Cycle, 소프트웨어 개발 생명주기 )
: 소프트웨어 개발 방법론의 바탕이 되는 것. 소프트웨어 개발을 위해 정의,운용,유지보수 등의 전 과정을 각 단계별로 나눈 것
시큐어 코딩( Secure Coding )
: 소프트웨어의 구현 단계에서 발생할 수 있는 보안 취약점들을 최소화하기 위해 보안 요소들을 고려하며 코딩하는 것
보안 요소
소프트웨어 개발에 있어 충족시켜야할 요소 및 요건을 의미
기밀성 | 시스템 내의 정보와 자원은 인가된 사용자에게만 접근이 허용 |
무결성 | 시스템 내의 정보는 오직 인간된 사용자만 수정가능 |
가용성 | 인가받은 사용자는 언제라도 사용 할 수 있다 |
인증 | 시스템 내의 정보와 자원을 사용하려는 사용자가 합법적인 사용자인지 확인하는 모든 행위 |
부인 방지 | 데이터를 송수신한 자가 송수신 사실을 부인할 수 없도록 송수신 증거를 제공 |
보안 점검 - 세션 통제
세션 - 서버와 클라이언트 연결 의미
보안 점검 - 입력 데이터 검증 및 표현
- 입력 데이터 검증 및 표현의 보안 약점
크로스사이트 스크립팅(XSS) | 웹페이지에 악의적인 스크립트 삽입하여 방문자들의 정보를 탈취하거나, 비정상적인 기능 수행을 유발하는 보안 약점 |
SQL 삽입 | 입력란에 SQL을 삽입하여 무단으로 DB를 조회하거나 조작하는 보안 약점 동적 쿼리에 사용되는 입력 데이터에 예약어 및 특수문자가 입력 되지 않게 필터링하여 방지할 수 있다. |
신뢰되지 않는 URL 주소로 자동접속 연결 | 입력 값으로 사이트 주소를 받는 경우 이를 조작하여 방문자를 피싱 사이트로 유도하는 보안 약점 연결되는 외부 사이트의 주소를 화이트 리스트로 관리함으로써 방지할 수 있다. |
암호 알고리즘
패스워드, 주민번호, 은행계좌와 같은 중요정보를 보호하기 위해 평문을 암호화된 문장으로 만드는 절차 or 방법
암호 알고리즘은 해시(Hash)를 사용하는 단방향 암호화 방식과, 개인키 및 공개키로 분류되는 양방향 암호화 방식이 있다.
개인키 암호화 기법 (Private Key Encryption) |
동일한 키로 데이터를 암호화하고 복호화 한다. "대칭 암호 기법" 또는 "단일키 암호화 기법" 이라고도 한다. |
공개키 암호화 기법 (Public Key Encryption) |
데이터를 암호화할 때 사용하는 공개키는 데이터베이스 사용자에게 공개하고, 복호화할 때의 비밀키는 관리자가 관리 "비대칭 암호 기법" 이라고도 한다. |
해시(Hash) | - 임의의 길이의 입력 데이터나 메시지를 고정된 길이의 값이나 키로 변환하는 것 [ 해시함수 종류 ] - SHA 시리즈 : 1993년에 미국 NSA가 제작하고 미국 국립 표준으로 채택한 암호화 알고리즘 - MD5 : 1991년 MD4를 개선한 암호화 알고리즘, 각각의 512비트 짜리 입력 메시지 블록에 대해 차례로 동작 - SNEFRU : 1990년 R C, Mercle에 의해 제안된 128, 254비트 암호화 알고리즘 |
개인키 암호화 방식 & 공개키 암호화 방식에서 사용되는 주요 암호화 알고리즘
SEED | 1990년 KISA에서 개발한 블록 암호화 알고리즘 블록 크기는 128비트, 키 길기에 따라 128,256으로 분류 |
ARIA (Academy Research Institite Agency) |
2004년 개발한 블록 암호화 알고리즘 블록 크기는 128비트, 키 길이에 따라 128,192,256으로 분류 |
DES (Data Encryption Standard) |
1975년 미국 NBS, 개인키 암호화 알고리즘 블록 크기는 64비트, 키 길이는 56비트 |
AES (Advanced Encryption Standard) |
2001년 NIST에서 발표한 개인키 암호화 알고리즘 블록크기는 128비트, 키 길이에 따라 128,192,256으로 분류 |
RSA (Rivest Shamir Adleman) |
1978,MIT 제안한 암호화 알고리즘 소인수 분해 문제를 이용한 공개키 암호화 기법에 널리 사용 암호화 알고리즘 |
728x90
반응형
'정보처리기사 > 실기고사 이론정리' 카테고리의 다른 글
[Chapter 10] ★ 응용 SW 기초 기술 활용 [ 데이터베이스 편 ] ★ (0) | 2020.10.15 |
---|---|
[Chapter 10] ★ 응용 SW 기초 기술 활용 [ 운영체제 편 ] ★ (0) | 2020.10.15 |
[Chpater 8] ★ SQL 응용 ★ (0) | 2020.10.08 |
[Chapter 7] 애플리케이션 테스트 관리 (0) | 2020.10.08 |
[Chapter 6] 화면 설계 (0) | 2020.10.06 |