정보처리기사 2020 필기 1,2회 81~100번 문제
Technique정보처리기사 2020 필기 1,2회 81~100번 문제 해설
- 수제비 2020 정보처리기사 필기 도서와 수제비 카페 자료를 통해 작성
81. 언어
언어 | 설명 |
---|---|
JSON | 자바스크립트(JavaScript)를 토대로 개발되었으며, 웹과 컴퓨터 프로그램에서 용량이 적은 데이터를 교환하기 위해 데이터 객체를 속성-값의 쌍 형태로 표현하는 형식 |
Python | 다양한 플랫폼에서 사용 가능하고, 라이브러리가 풍부. 유니코드 문자열을 지원하며 다양한 언어의 문자 처리 가능. 들여쓰기를 사용하여 블록을 구분하는 문법 사용. 다른 언어로 쓰인 모듈 연결 기능 보유 |
XML (Extensible Markup Language) | W3C에서 개발 다른 특수한 목적을 갖는 마크업 언어를 만드는데 사용하도록 권하는 다목적 마크업 언어 |
82. 라우팅 프로토콜(Routing Protocol)
최종 목적지까지 패킷을 최소 비용 또는 최소 홉수를 알고리즘을 통해 적절한 경로를 설정해주는 프로토콜
RIP (Routing Information Protocol)
- 개념: AS(Autonomous System, 자치 시스템, 자율 시스템) 내에서 사용하는 거리벡터 알고리즘에 기초하여 개발된 내부 라우팅 프로토콜
- 방식: 거리 벡터 라우팅 기반 메트릭(metric) 정보를 인접 라우터와 주기적으로 교환하여 라우팅 테이블을 갱신하고 라우팅 테이블을 구성/계산하는데 Bellman-Ford 알고리즘을 사용하는 내부 라우팅 프로토콜
- 특징: 최대 홉 수(Hop Count)를 15개로 제한. 사용 포트로는 UDP를 사용 (UDP 포트번호 520 사용). 매 30초 마다 전체 라우팅 정보를 브로드캐스팅
OSPF (Open Shortest Path First)
- 개념: 규모가 크고 복잡한 TCP/IP 네트워크에서 RIP의 단점을 개선하기 위해 자신을 기준으로 하여 링크상태 알고리즘 기반으로 최단 경로를 찾는 라우팅 프로토콜
- 방식: Link State 라우팅 기반 메트릭(metric)정보를 한 지역(Area)내 모든 라우터에 변경이 발생했을 때만 보내(Flooding)고 라우팅 테이블을 구성/계산하는데 다익스트라(Dijkstra) 알고리즘을 사용하는 내부 라우팅 프로토콜
- 특징: 최소 지연, 최대 처리량 등 관리자가 라우팅 메트릭 지정 AS를 지역(Area)으로 나누어 라우팅을 효과적으로 관리 가능(하나의 백본을 경유하는 여러 개의 Area로 구성됨). 홉 카운트에 대한 제한이 없음
구분 | RIP | OSPF |
---|---|---|
라우팅 방식 | Distance Vector | Link State |
라우팅 정보 | 모든 라우터까지의 거리 정보 | 모든 라우터까지의 Link 정보 |
라우팅 테이블 전송시기 | 일정주기(30초) | 변화 발생시에만 |
경로선택 알고리즘 | Bellman-Ford | Dijkstra |
최대 지원 네트워크 크기 | 15개 | 255개 |
83,87,92. 공격 기법
공격기법 | 설명 |
---|---|
Ransomware (랜성웨어) | 인터넷 사용자의 컴퓨터에 침입해 내부 문서 파일 등을 암호화하여 사용자가 열지 못하게 하는 공격 암호 해독용 프로그램의 전달을 조건으로 사용자에게 돈을 요구하기도 함 |
웜(Worm) | 네트워크 등의 연결을 통하여 자신의 복제품을 전파하는 바이러스 - 특징: 자가복제, 네트워크를 통한 전파 |
악성 봇 (Malicious Bot) | 스스로 실행되지 못하고, 해커의 명령에 의해 원격에서 제어 또는 실행이 가능한 프로그램 혹은 코드 주로 취약점이나 백도어 등을 이용하여 전파되며, 스팸 메일 전송이나 분산 서비스 거부 공격(DDoS) 등에 악용됨 사용자들에게 잘 알려진 '좀비PC'는 악성 봇에 의해 감염된 것 |
트로이목마 (Trojan) | 정상 파일을 가장하거나, 정상 파일 안에 삽입되어 사용자의 설치를 유도한 후, 사용자 PC에 있는 정보를 해커에게 유출하는 악성 행위를 하는 프로그램 - 일반적인 기능: 원격 조정, 패스워드 가로채기, 키보드 입력 가로채기, 시스템 파일 파괴 |
키로그 공격 (Key Logger Attack) | 컴퓨터 사용자의 키보드 움직임을 탐지해 ID나 패스워드, 계좌 번호, 카드 번호 등과 같은 개인의 중요한 정보를 몰래 빼가는 해킹 공격 |
키로그 프로그램 | 설치된 컴퓨터에서 키보드로 입력한 정보를 로그로 남기는 프로그램 기능이 업데이트된 키로그 프로그램은 키보드 입력뿐만 아니라 윈도우를 이용한 프로그램 사용, 인터넷 익스플로러를 이용한 인터넷 접속 정보 등도 로그로 남김 로그 파일을 실시간으로 공격자에게 전송하거나, 설정된 메일 및 메신저로 지정된 시간에 로그 파일을 자동 전송하는 기능도 있음 |
CSRF (Cross-Site Request Forgery) | 사이트 간 요청 위조 공격
공격자가 웹 서버의 취약점을 이용하여 악성 스크립트 구문을 삽입하고, 정상적인 사용자로 하여금 자신의 의지와는 무관하게 공격자가 의도한 행위(수정, 삭제, 등록 등)를 특정 웹 사이트에 요청하게 하는 공격기법 |
XSS (Cross-Site Scripting) | 공격자가 게시판에 악성 스크립트를 작성, 삽입하여 사용자가 그것을 보았을 때 이벤트 발생을 통해 사용자의 쿠키정보, 개인 정보 등을 특정 사이트로 전송하는 공격기법 |
SQL Injection | 응용 프로그램의 보안 취약점을 이용하여 악의적인 SQL 구문을 삽입, 실행시켜서 데이터베이스(DB)의 접근을 통해 정보를 탈취하거나 조작 등의 행위를 하는 공격기법 조작한 입력으로 데이터베이스를 인증 절차 없이 접근 및 자료를 무단 유출하거나 변조 가능 |
Dos 공격 | 설명 |
---|---|
TearDrop | IP 패킷의 재조합 과정에서 잘못된 fragment offset 정보로 인해 수신시스템이 문제를 발생하도록 만드는 Dos 공격 공격자는 IP fragment offset값을 서로 중첩되도록 조작하여 전송하고 이를 수신한 시스템이 재조합하는 과정에서 오류가 발생, 시스템의 기능을 마비시키는 공격 방식 |
Smurfing | ICMP Echo Request 메시지(Ping 요청)의 송신자 주소(IP)를 희생자의 주소(IP)로 스푸핑한 후 이를 증폭 네트워크에 직접 브로드캐스트(Directed Broadcast)하여 외부의 ICMP Echo Reply(Ping 응답)를 발생시켜 희생자에게 대량의 트래픽을 발생시키는 Dos 공격 |
DDoS 공격 도구 | 설명 |
---|---|
Trinoo | 많은 소스로 부터 통합된 UDP flood 서비스 거부 공격을 유발하는데 사용되는 도구 Trinoo 공격은 몇 개의 서버들(혹은 마스터들)과 많은 수의 클라이언트들(데몬들)로 이루어 짐 |
Tribe Flood Network | trinoo와 거의 유사한 분산 도구로 많은 소스에서 하나 혹은 여러 개의 목표 시스템에 대해 서비스 거부 공격을 수행할 수 있는 도구 TFN 서비스 거부공격은 공격자가 클라이언트(혹은 마스터) 프로그램이 공격 명령을 일련의 TFN서버들(혹은 데몬들)에게 보냄으로써 이루어 짐 UDP flood 공격뿐만 아니라 TCP SYN flood 공격, ICMP echo 요청 공격, ICMP 브로드캐스트 공격(smurf 공격) 수행 가능 |
Stacheldraht | 분산 서비스 거부 에이전트 역할을 하는 Linux 및 Solaris 시스템용 멀웨어 도구 ICMP flood, SYN flood, UDP flood와 Smurf 등의 공격에 의해서 DDoS 공격 가능 |
피싱 공격 | 설명 |
---|---|
Smishing (SMS phishing, 스미싱) | SMS(문자메시지)와 피싱(Phising, 사이버 사기)의 합성어 문자 메시지를 이용하여 신뢰할 수 있는 사람 또는 기업이 보낸 것처럼 가장하여 개인 비밀정보를 요구하거나 휴대폰 소액 결제를 유도하는 피싱 공격 |
Qshing
(큐싱) | 큐알 코드(QR코드)와 피싱(Phising)의 합성어 스마트폰을 이용하여 금융 업무를 처리하는 사용자에게 인증 등이 필요한 것처럼 속여 QR코드(Quick Response Code)를 통해 악성 앱을 내려받도록 유도, 금융 정보 등을 빼내는 피싱 공격 최근 제로페이 확산에 따라 피해가 증가하고 있음 |
84. 소프트웨어 개발 표준
CMMI(Capability Maturity Model Integration)
- 소프트웨어 개발 및 전산 장비 운영 업체들의 업무 능력 및 조직의 성숙도를 평가하기 위한 모델
- 기존 능력 성숙도 모델(CMM)을 발전시킨 것
- 제품 및 서비스의 개발과 유지보수, 획득 능력을 향상시키기 위해 카네기 멜론 대 소프트웨어 공학연구소(SEI)가 소프트웨어와 시스템 영역의 여러 역량 평가모델을 하나로 통합하고, 업무 절차들을 체계화하는 만든 역량 성숙도 평가 모델
모델 | 설명 |
---|---|
단계적 모델 (State) | 조직의 성숙도 측정 모형 조직의 전체적인 성숙도 확인을 위해 CMMI 평가를 5단계의 성숙도 레벨로 정의하고 성숙 수준 기반으로 평가하는 모델 - 성숙도 레벨: 초기화(Initial), 관리(Managed), 정의(Defined), 정량적 관리(Quantitativaly Managed), 최적화(Optimized) |
연속적 모델 (Continuous) | 프로세스 영역별로 성숙도 평가 모델 조직의 비즈니스 목적을 충족시키고, 위험 요소를 완화하는 데 중요한 개선사항의 순서를 정하여 적용할 수 있고, 능력 레벨을 이용하여 프로세스 영역별로 성속도 평가가 가능한 모델 |
구분 | 설명 |
---|---|
SW-CMM | 소프트웨어 능력 성숙도 모델 |
SE-CMM | 시스템 엔지니어링 능력 모델 |
IPD-CMM | 통합 제품 개발 능력 성숙도 모델 |
85. 무선 통신 기술
기술 | 설명 |
---|---|
Wi-SUN (Wireless Smart Utility Network) | 스마트 그리드(Smart Grid) 서비스를 제공하기 위한 Wi-Fi 기반의 저전력 장거리 통신 기술 스마트 그리드와 연계하여 전기, 수도, 가스 등의 공급자와 사용자가 무선 네트워크를 이용하여 효율적으로 관리할 수 있도록 활용하는 IEEE 802.15.4 표준 기반의 무선 통신 기술 저가격 및 저전력(8mA), 통신사 제공 서비스 아닌 자체 자가망 구축 형태의 비면허대역(900 MHz)을 사용 |
NFC (Near Field Communication) | 근거리 무선 통신 가까운 거리에서 무선 데이터를 주고 받는 기술 RFID기반의 10cm 이내의 거리에서 저전력으로 단말기간 데이터를 전송하는 비접촉 방식의 근거리 무선통신 기술 |
스몰 셀 (Small Cell) | 기존의 높은 전송파워와 넓은 커버리지를 갖는 매크로 셀(Macro Cell)과 달리 낮은 전송파워와 좁은 커버리지를 가지는 소형 기지국 안테나당 10W 급 이하의 소 출력 기지국 장비나 피코 셀, 펨토 셀 등을 통칭 기존의 매크로 셀과 다양한 스몰 셀 (피코 셀, 펨토 셀 등) 및 Wi-Fi 등으로 구성된 네트워크로 사용자 수와 트래픽 수요에 따라 스몰 셀을 배치하여 셀 용량과 커버리지 증대에 활용 |
블루투스 (Bluetooth) | 2.4Ghz ISM 주파수 대역을 이용하여 10m 이내의 근거리 디바이스간 통신을 지원하기 위한 무선 접속 규격 (IEEE802.15.1)
- 블루투스 네트워크 구성: Piconet, Scatternet |
피코넷 (Piconet) | 여러 개의 독립된 통신장치가 UWB(Ultra-Wideband) 기술 또는 블루투스 기술을 사용하여 통신망을 형성하는 무선 네트워크 기술 블루투스는 일단 마스터(Master)-슬레이브(Slave) 방식으로 링크를 설정 그리고 한 대의 마스터는 7대까지의 슬레이브를 연결하여 네트워크를 구성할 수 있음 하나의 피코넷은 1개의 Master와 7개까지의 활성 Slave를 지원 |
스캐터넷 (Scatternet) | 피코넷이 여러개 모여서 형성된 계층적이고 규모가 큰 네트워크 2개 이상의 피코넷으로 구성되며 100개까지의 피코넷을 연결 할 수 있음 |
86,88,89. 비용산정 모델 (Estimation Models)
분류 | 설명 | 종류 |
---|---|---|
하향식 산정방법 | 경험이 많은 전문가에게 비용 산정을 의뢰하거나 여러 전문가와 조정자를 통해 산정하는 방식 | 전문가 판단 델파이 기법 |
상향식 산정방법 | 세부적인 요구사항과 기능에 따라 필요한 비용을 계산하는 방식 | 코드 라인 수(LOC) Man Month COCOMO 모형 Putnam 모형 FP(Function Point) 모형 |
종류 | 설명 |
---|---|
전문가 판단 | 조직 내 경험있는 전문가 두 명 이상에게 비용 산정 의뢰 |
델파이 기법 | 전문가의 경험적 지식을 통한 문제 해결 및 미래 예측을 위한 기법 전문가 합의법 |
종류 | 설명 |
---|---|
LOC (Lines of Code) | 소프트웨어 각 기능의 원시 코드 라인 수의 비관치, 낙관치, 기대치를 측정하여 예측치를 구하고 이를 이용하여 비용을 산정 측정이 쉽고 이해하기 쉬워 많이 사용 예측치 = (낙관치 + (4 * 중간치) + 비관치) / 6 - 비관치 : 가장 많이 측정된 코드 라인 수 - 중간치: 측정된 모든 코드 라인 수의 평균 - 낙관치: 가장 적게 측정된 코드 라인 수 |
Man Month | 한 사람이 1개월 동안 할 수 있는 일의 양을 기준으로 프로젝트 비용을 산정 Man Month = LOC / 프로그래머의 월간 생산성 프로젝트 기간 = Man Month / 프로젝트 인력 - 1개월당 개발 라인수: 평균생산성 x 프로그래머수 - 개발 소요 시간: 예상 총 라인수 / 1개월당 개발 라인수 |
COCOMO | Constructive Cost Model의 약자 보헴(Bohem)이 제안한 모형으로 프로그램 규모에 따라 비용을 산정 개발 노력 승수를 경정 규모에 따라 단순형, 중간형, 임베디드형으로 나뉨 |
푸트남(Putnam) 모형 | 소프트웨어 개발 주기 간 단계별로 요구할 인력의 분포를 가정하는 모형 자동화 추정 도구로 SLIM이 있음 시간에 따른 함수로 표현되는 Rayleigh-Norden 곡선의 노력 분포도를 사용 대형 프로젝트에서 이용하며, 개발 기간이 늘어날수록 프로젝트 적용 인원의 노력이 감소 |
기능 점수 (FP: Function Point) 모형 | 요구 기능을 증가시키는 인자별로 가중치를 부여하여 기능의 점수를 계산하여 비용을 산정 |
유형 | 설명 |
---|---|
단순형 (Organic Mode) | 기관 내부에서 개발된 중소규모의 소프트웨어로 일괄 자료 처리나 과학 기술 계산용, 비즈니스 자료 처리 개발에 적용 5만(50KDSI)라인 이하의 소프트웨어를 개발하는 유형 |
중간형 (Semi-Detached Mode) | 단순형과 임베디드형의 중간형 트랜잭션 처리 시스템이나 운영체제, DBMS 개발에 적용 30만(30KDSI)라인 이하의 소프트웨어를 개발하는 유형 |
임베디드형 (Embedded Mode) | 초대형 규모의 트랜잭션 처리 시스템이나 운영체제 개발에 적용 30만(30KDSI)라인 이상의 소프트웨어를 개발하는 유형 |
- KDSI: 전체 소스 코드 라인수를 1,000 라인으로 묶은 단위
90. 암호 알고리즘(Encryption Algorithm)
데이터의 무결성 및 기밀성 확보를 위해 정보를 쉽게 해독할 수 없는 형태로 변환하는 기법
구분 | 대칭 키 암호 방식 | 비대칭 키 암호 방식 |
---|---|---|
키 | 비밀키 | 공개키, 사설키 |
키의 관계 | 암호화 키 = 복호화 키 | 암호화 키 ≠ 복호화 키 |
암호 알고리즘 | 공개 | 공개 |
장점 | 계산 속도가 빠름 | 암호화 키 사전 공유 불필요 |
단점 | 키 분배 및 관리의 어려움 기밀성만 보장 | 계산 속도 느림 |
알고리즘 | 블록 암호 방식: DES, AES, SEED 스트림 암호 방식: RC4 | RSA, 디피-헬만 |
종류 | 설명 |
---|---|
DES (Data Encryption Standard) | 56bit의 키를 이용 65bit의 평문 블록을 64bit의 암호문 블록으로 만드는 블록 암호 방식의 미국표준(NIST) 암호화 알고리즘 |
AES (Advanced Encryption Standard) | 고급 암호화 표준 DES를 대체한 암호 알고리즘이며 암호화와 복호화 과정에서 동일한 키를 사용하는 대칭 키 암호화 알고리즘 |
SEED | KISA, ETRI에서 개발하고 TTA에서 인증한 안전성, 신뢰성 우수한(3DES보다) 고속 블록 단위의 128bit 대칭 키 암호화 알고리즘 |
- ECC (Elliptic Curve Cryptosystem): 타원곡선 암호체계. 1985년 N.Koblitz와 V.S.Miller가 RSA암호화 방식에 대한 대안으로 처음 제안한 후 보안시스템 및 전자상거래 솔루션업체들에 의해 폭넓게 채용됨
종류 | 설명 |
---|---|
RSA (Rivest Shamir Adleman) | 소인수 분해의 어려움을 이용한 방식 현재 비대칭 키 암호방식 중 가장 널리 쓰이는 방법 |
디피-헬만 (Diffie-Hellman) | 암호 키를 교환하는 방법 두 사람이 암호화되지 않은 통신망을 통해 공통의 비밀 키를 공유할 수 있도록 하는 방식 |
91,99. 소프트웨어 생명주기(SDLC: Software Development Life Cycle)
프로세스 | 설명 | 활동 |
---|---|---|
1. 요구사항 분석 | 다양한 이해관계자의 상충할 수도 있는 요구사항을 고려하여 새로운 제품이나 변경된 제품에 부합하는 요구와 조건을 결정하는 단계 개발할 소프트웨어의 기능과 제약조건, 목표 등을 소프트웨어 사용자와 함께 명확히 하는 단계 | 기능 요구사항 비기능 요구사항 |
2. 설계 | 시스템 명세 단계에서 정의한 기능을 실제 수행할 수 있도록 수행 방법을 논리적으로 결정하는 단계 | 시스템 구조 설계 프로그램 설계 사용자 인터페이스 설계 |
3. 구현 | 설계 단계에서 논리적으로 결정한 문제 해결 방법을 특정 프로그래밍 언어를 사용하여 실제 프로그램을 작성하는 단계 프로그래밍 언어 선택, 기법, 스타일, 순서 등을 결정하는 단계 | 인터페이스 개발 자료 구조 개발 오류 처리 |
4. 테스트 | 시스템이 정해진 요구를 만족하는지, 예상과 실제 결과가 어떤 차이를 보이는지 검사하고 평가하는 단계 | 단위 테스트 통합 테스트 시스템 테스트 인수 테스트 |
5. 유지보수 | 시스템이 인수되고 설치된 후 일어나는 모든 활동 | 예방, 완전, 교정, 적응 유지보수 |
종류 | 설명 | 특징 | 장점 | 단점 |
---|---|---|---|---|
폭포수 모델
(Waterfall Model) | 순차적인 소프트웨어 개발 프로세스 적용 사례와 성공 사례가 많음 단계별로 정의가 분명하고 산출물이 명확함 요구사항 수집/분석/설계 반영 이후에는 요구사항의 변경이 쉽지 않다 | 순차적 접근 | 이해가 용이 관리가 편리 | 초반 요구 분석 어려움 |
프로토타이핑 모델 (Prototyping Model) | 최종 결과물이 만들어지기 전에 의뢰자가 최종 결과물의 일부 또는 모형 확인 가능 발주자나 개발자 모두에게 공동의 참조 모델을 제공 구현 단계의 구현 골격 고객이 요구한 주요 기능을 프로토타입(Prototype)으로 구현하여, 고객의 피드백을 통해 개선, 보완하여 완성 소프트웨어를 만들어가는 모델 | 프로토타입 개발 | 요구분석 용이 타당성 검증 가능 | 프로토타입 폐기에 따른 비용 증가 |
나선형 모델 (Spiral Model) | 시스템 개발 시 위험을 최소화하기 위해 점진적으로 완벽한 시스템으로 개발해 나가는 모델 | 위험분석 반복 개발 | 위험성 감소 변경에 유연한 대처 | 단계 반복에 따른 관리 어려움 |
반복적 모델 (Iteration Model) | 구축 대상을 나누어 병력적으로 개발 후 통합하거나, 반복적으로 개발하여 점증 완성시키는 SDLC 모델 사용자의 요구사항 일부분 혹은 제품 일부분을 반복적으로 개발하여 최종 시스템으로 완성하는 모델 | 증분방식으로 병행 개발 | 병행 개발로 인한 일정 단축 가능 | 병행 개발에 따른 관리 비용 증가 |
93. 백도어(Backdoor)
- 어떤 제품이나 컴퓨터 시스템, 암호시스템 혹은 알고리즘에서 정상적인 인증 절차를 우회하는 방법론
- 허가받지 않고 시스템에 접속하는 권리를 얻기 때문에 대부분 은밀하게 작동
- 어떤 고정된 형태가 없고 프로그램 일부로 감춰져 있을 수도 있고, 독자적인 프로그램이나 하드웨어 모습을 갖기도 함
- 백도어를 통해서 해커가 이용자 몰래 컴퓨터에 접속하여 악의적인 행위를 하기도 함
탐지기법 | 설명 |
---|---|
현재 동작중인 프로세스 및 열린 포트 확인 | TCPView로 열린 포트 확인
리눅스에서는 ps -ef 명령어(동작중인 프로세스 확인), netstat -an(열린 포트 확인)를 통해 확인 |
Setuid 파일 검사 | 새로 생성된 setuid 파일이나 변경된 파일 확인 가능 |
백신 및 백도어 탐지 툴을 이용하여 확인 | 백신 프로그램 및 백도어 탐지 툴을 이용해서 의심 프로그램 및 백도어 유무 검출 가능 |
무결성 검사 | 리눅스에서 Tripwire 툴을 이용한 무결성 검사 실시 - "No such file or directory"라는 에러 메세지 출력되면 정상 |
로그 분석 | wtmp, secure, lastlog, pacct, history, messages 사용 로그 파일 위치: /var/log, /var/adm, /usr/adm |
도구 | 설명 |
---|---|
Tripwire | 크래커가 침입하여 시스템에 백도어를 만들어 놓거나 설정 파일을 변경해 놓았을 때 이러한 사실을 알 수 있게 분색해 주는 강력한 도구 시스템 내의 지정한 중요한 디렉토리와 파일에 대한 데이터베이스를 생성한 후에 Tripwire를 실행할 때 새로 생성된 데이터 베이스와 비교하여 그 차이점을 보고해 줌으로써 시스템 관리자가 시스템 내에서 어떠한 변화가 있는지 감지할 수 있게 해주는 도구 |
94. 버퍼 오버플로우 공격
- 정해진 메모리의 범위를 넘치게 해서 원래 리턴 주소를 변경시켜 임의의 프로그램이나 함수를 실행시키는 시스템 해킹 기법
- 스택 영역에 할당된 버퍼 크기를 초과하는 양의 데이터(실행 가능 코드)를 입력하여 복귀 주소를 변경하고 공격자가 원하는 임의의 코드를 실행하게 됨
- 프로그램 실행 시 힙 영역에 할당된 버퍼 크기를 초과하는 양의 데이터(실행 가능 코드)를 입력하여 메모리의 데이터와 함수 주소 등을 변경하여 공격자가 원하는 임의의 코드를 실행하게 됨
대응방안 | 설명 |
---|---|
스택가드 (Stackguard) | 카나리(canary)라고 불리는 무결성 체크용 값을 복귀주소와 변수 사이에 삽입 버퍼 오버플로 시 카나리값이 변하게 되는데, 이 경우 복귀주소를 호출하지 않음 |
스택쉴드 (Stack Shield) | 함수 시작 시 복귀주소를 Global RET라는 특수 스택에 저장 함수 종료 시 저장된 값과 스택의 RET값을 비교해 다를 경우 오버플로우로 간주하고 프로그램 실행을 중단함 |
ASLR (Address Space Layout Randomization) | 메모리 공격을 방어하기 위해 주소 공간 배치를 난수화함 실행 시 마다 메모리 주소를 변경시켜 버퍼 오버플로우를 통한 특정주소 호출을 차단 |
안전한 함수 사용 | 버퍼 오버플로우에 취약한 함수들 : strcat(), strcpy(), gets(), scanf(), sscanf(), vscanf(), vsscanf(), sprintf(), vsprintf(), gethostbyname()
대신 사용이 권장되는 함수들 : strncat(), strncpy(), fgets(), fscanf(), vfscanf(),snprintf(), vsnprintf() |
실행 제한 | 스택에서의 쓰기 권한 제한
스택에서의 프로그램 실행금지 가능성이 있는 SUID 프로그램 제한 |
95. 프레임워크(Framework)
소프트웨어의 구체적인 부분에 해당하는 설계와 구현을 재사용이 가능하게끔 일련의 협업화된 형태로 클래스들을 제공하는 틀
재사용이 가능하도록 소프트웨어 구성에 필요한 기본을 제공
정보 시스템의 개발 및 운영을 지원하는 도구 및 가이드 등을 포함
적용 시 기대 효과: 품질 보증, 개발 용이성, 변경 용이성, 시스템 복잡도 감소
특징 | 설명 |
---|---|
모듈화 (Modularity) | 프레임워크는 구현을 인터페이스 뒤에 감춰 모듈화를 강화 설계와 구현 변경에 따르는 영향을 최소화 |
재사용성 (Reusability) | 인터페이스를 통해 여러 애플리케이션에서 반복적으로 사용하는 일반적 컴포넌트를 정의하여 재사용성을 높임 |
확장성 (Extensibility) | 다형성을 통해 애플리케이션이 프레임워크의 인터페이스를 확장 |
제어의 역행 (Inversion of Control) | 프레임워크 코드가 전체 애플리케이션의 처리 흐름을 제어 외부의 이벤트에 대해 애플리케이션이 어떤 메서드를 수행해야할지 결정 |
구성요소 | 설명 |
---|---|
개발환경 | 설계, 구현, 테스트 등 개발에 필요한 지원 도구 모음 |
실행환경 | 자바 기반 응용 시스템 개발 시 필수적 기능을 패턴화해 미리 구현해둔 라이브러리 코드 모음 |
운영환경 | 표준 프레임워크 기반 개발 시스템에 대한 운영 시 필요한 의사소통 및 모니터링 도구 모움 |
관리환경 | 표준 프레임워크에 대한 기술 지원, 업그레이드 등 관리하기 위한 내부 업무 시스템 |
96. 데이터베이스 보안
외부자나 내부자가 DB 내에 저장된 주요기밀 정보에 불법적으로 접근하는 것을 막는 것
DB 내에 저장된 데이터를 비인가된 변경, 파괴, 노출 및 비일관성 등을 발생시키는 사건이나 위협들로부터 보호하는 것
3대 요소 | 설명 |
---|---|
기밀성 (Confidentiality) | 선별적인 접근 체계를 만들어 인가되지 않은 개인이나 시스템에 의한 접근에 따른 정보 공개/노출을 차단 인가된 사용자에게만 정보가 공개되는 성질 |
무결성 (Integrity) | 정당한 방법에 의하지 않고선 데이터가 변경될 수 없으며, 데이터의 정확성 및 안전성과 고의/악의로 변경되거나 훼손 또는 파괴되지 않음을 보장 적절한 권한을 가진 사용자에 의해 인가된 방법으로만 정보를 변경할 수 있도록 하는 성질 |
가용성 (Availability) | 정당한 권한을 가진 사용자나 애플리케이션에 대해 원하는 데이터에 대한 원활한 접근을 제공하는 서비스를 지속할 수 있도록 보장 필요한 시점에 시스템이나 정보를 사용할 수 있도록 하는 성질 |
97. 신기술
신기술 | 설명 |
---|---|
하둡(Hadoop) | 오픈 소스를 기반으로 한 분산 컴퓨팅 플랫폼 일반 PC급 컴퓨터들로 가상화된 대형스토리지를 형성 다양한 소스를 통해 생성된 빅데이터를 효율적으로 저장하고 처리 |
비컨(Beacon) | 위치정보를 전달하기 위해 어떤 신호 를주기적으로 전송하는 기기 |
포스웨어(Foursquare) | 포스퀘어(Foursquare)사의 위치 기반 소셜 네트워킹 서비스 |
멤리스터(Memristor) | 메모리(Memory)와 레지스터(resistor)의 합성어 이전 상태를 모두 기억하는 메모리 소자를 뜻함 전원 공급이 끊어졌을 때도 직전에 통과한 전류의 방향과 양을 기억하기 때문에 다시 전원이 공급되면 기존의 상태가 그대로 복원됨 |
98.
답안지 | 설명 |
---|---|
trace | tracert, trace route 목적지까지 통과하는 경로들 정보와 각 경로에서 지연된 시간을 추적하는 명령어 |
tripwire | 크래커가 침입하여 시스템에 백도어를 만들어 놓거나 설정 파일을 변경해 놓았을 때 이러한 사실을 알 수 있게 분석해주는 강력한 도구 시스템의 특정한 파일의 변화를 모니터링하고 알림을 해주는 유용한 보안, 무결정 도구이며 자유 소프트웨어임 |
tcpdump | 네트워크 인터페이스를 거치는 패킷의 내용을 출력해주는 프로그램 스니핑 도구의 일종으로 자신의 컴퓨터로 들어오는 모든 패킷의 내용을 도청할 수 있으며, 공격자에 대한 추적 및 공격 유형 분석을 위한 패킷 분석 시 활용할 수 있는 도구 |
cron | 유닉스 계열 컴퓨터 운영체제의 시간 기반 잡 스케줄러 |
100. 테일러링(Tailoring)
조직의 표준 프로세스를 커스터마이징하여 프로젝트의 비즈니스적으로 또는 기술적인 요구에 맞게 적합한 프로세스를 얻는 과정
테일러링 프로세스
- 프로젝트 특징 정의: 작업 시작 - 프로젝트 프로파일 파악 - 프로젝트 특징 파악
- 표준 프로세스 선정 및 검증: 표준 프로세스 선정 - 표준 프로세스 검증
- 상위 수준의 커스터마이징: 프로젝트 생명주기 정의 - 프로젝트 스테이지 조정
- 세부 커스터마이징: 세부 WBS 적용 - Activity 수정 - 일정 계획 수집(단계적 반복)
- 테일러링 문서화: 결정 사항 문서화 - 검토 및 승인 - 작업 종료
고려사항 | 설명 |
---|---|
프로젝트 특성 측면 | 프로젝트 범위, 규모/기간, 튜입 인력, 사용자 |
프로젝트 관리 측면 | 프로젝트 조직 규모(대규묘, 소규모), 조직원(비경험자, 경험자), 프로젝트 위험(위험의 높고 낮음) |
기술적 측면 | 분산시스템 도입 여부, 데이터 전환 필요성 여부, 비즈니스 프로세스 전환 필요성 여부, 기술 혁신, 시스템 연계 |
테일러이 개발 방법론 내부 기준: 납기/비용, 기술환경, 구성원 능력