[1. 소프트웨어 개발 보안 구축]
Chapter01. 소프트웨어 개발 보안 설계하기
section01. 소프트웨어 개발 보안 설계
1. 소프트웨어 개발 보안
2. 소프트웨어 개발 보안의 요구사항 관리
3. 소프트웨어 개발 보안 방법론의 개념
4. SDLC 보안 적용 사례
* 기출 문제 - 2020년 4회
07. 정보보안의 목표가 되는 정보보안 3원칙은 기밀성(C), 무결성(I), 가용성(A)를 만족시키는 것이다. 정보보안의 목표 중 가용성에 대하여 간략히 설명하시오.
: 인가된 사용자가 정보를 요구할 때 적시에 제공되어야 하는 원칙으로, 사용자가 필요할 때 데이터에 접근할 수 있는 능력을 말한다. (흥달쌤)
: 가용성은 합법적 사용자가 합법적 정보를 요구할 때 적시에 제공되어야 하는 원칙을 말한다. (이기적)
5. 정보 보안의 3대 요소(CIA)
- 기밀성(Confidentiality)
- 인가받지 않는 대상에게는 정보를 공개하지 않는 것이다.
- 즉, 인가된 사용자만 정보 자산에 접근할 수 있다.
- 무결성(Integrity)
- 인가받지 않는 대상이 정보를 변경, 생성, 삭제하지 않도록 하는 것이다.
- 즉, 시스템 내의 정보는 오직 인가된 사용자가 인가된 방법으로만 수정할 수 있다.
- 가용성(Availavbility)
- 사용자가 필요할 때 데이터에 접근할 수 있는 능력을 말한다.
- 합법적 사용자가 합법적 정보를 요구할 때 적시에 제공되도록 하는 것이다.
- 인가된 사용자가 조직의 정보 자산에 적시에 접근하여 업무를 수행할 수 있도록 유지하는 것을 목표로 한다.
6. 소프트웨어 개발 보안의 위협, 자산, 취약점 개념도
7. 법률적 검토
8. 개발 보안 활동 관련 법령
9. 소프트웨어 개발 요구사항 관련 특정 정보통신기술 관련 규정/법률
10. 취약점 점검 계획서, 명세서 검토
section02. 암호화 알고리즘
1. 시큐어 코딩 가이드의 개념
2. 암호화 알고리즘
* 기출 문제 - 2021년 2/3회, 2022년 2회
06. 평문의 길이와 동일한 스트림(Stream)을 생성하여 비트 단위로 암호화하며 DES를 대신하여 새로운 표준이 된, 블록 크기는 128bit이고 키 길이는 128/192/256bit인 SPN(Substitution-Permutation Network) 구조의 비밀키 암호화 기법을 의미하는 용어를 쓰시오.
AES(Advanced Encryption Standard, 고급 암호 표준)
10. 1970년대 IBM이 개발한 대칭키 암호화 알고리즘으로 평문을 64bit로 블록화하고 실제 키의 길이는 56bit를 이용한 16라운드 Feistel 구조의 전사 공격(Brute-Force Attack)에 취약한 비밀키 암호화 기법을 의미하는 용어를 쓰시오.
DES (Data Encryption Standard)
02. 다음은 블록 암호화 방식에 대한 설명이다. 빈칸에 각각 알맞은 암호화 방식을 쓰시오.
①
|
|
②
|
|
① IDEA , ② Skipjack
* 기출 문제 - 2023년 2회
7. 대칭키와 비대칭 키 암호화 기법의 대표적인 암호화 알고리즘을 각각 <보기>에서 골라 쓰시오.
AES, ARIA, DES, ECC, RSA, SEED |
대칭키 : AES, ARIA, DES, SEED
비대칭키 : ECC, RSA
3. 비밀키(Private Key, 대칭키) 암호화 기법
- 스트림 방식
- 평문의 길이와 동일한 스트림(Stream)을 생성하여 비트 단위로 암호화한다.
- 암호화할 때 XOR 연산을 수행한다.
- 종류
- LFSR : 선형 피드백 시프트 레지스터
- RC4 : 인터넷 보안 프로토콜에서 널리 사용
- A5 : GSM 통신에서 사용
- 블록 방식
- 평문을 블록 단위로 암호화하는 대칭키 암호 시스템이다.
DES | 64비트 블록, 56비트 키, 16라운드, Feistel 구조 |
3-DES | 2개의 키, 암호화, 복호화, Feistel 구조 |
AES | 128비트 블록, 80비트 키, 32라운드, Feistel 변형구조 |
SKIPJACK | 64비트 블록, 80비트 키, 32라운드, Feistel 변형구조 |
IDEA | 64비트 블록, 128비트 키, 8라운드, Feistel+SPN구조(스위스) |
SEED | 128비트블록, 128비트 키, 16라운드, Feistel 구조(한국) |
ARIA | 128비트블록, 128/192/256비트 키, 12/14/16라운드, SPN 구조(한국) |
LEA | 128비트블록, 128/192/256비트 키, 24/28/32라운드, SPN 구조(한국, 경량) |
CRYPTON | 128비트블록, 0~256비트 키, 12라운드 |
- 스트림 방식의 비밀키 암호화 기법
DES (Data Encryption Standard) |
- 1970년대 초 IBM이 개발한 알고리즘이다. - 16라운드 Feistel 구조를 가진다. - 평문을 64bit로 블록화를 하고, 실제 키의 길이는 56bit를 이용한다. - 전사 공격(Brute-Force Attack)에 취약하다. |
AES (Advanced Encryption Standard) |
- DES를 대신하여 새로운 표준이 되었다. - 블록 크기는 128bit이고, 키 길이는 128/192/256bit이다. - SPN(Substitution_Permutation Network) 구조이다. |
4. 공개키(Public Key, 비대칭키) 암호화 기법
- 암호키와 해독키가 서로 다른 기법
- 키 분배가 비밀키 암호화 기법보다 용이하다.
- 암호화/복호화 속도가 느리고 알고리즘이 복잡하다.
- 종류
- 소인수 분해 : RSA, Rabin
- 이산대수 : Diffie-Hellman, DSA, ELGamal
- 타원곡선 : ECC
* 기출 문제 - 2023년 2회 : 해시 함수
8. 데이터를 고정된 길이의 암호화된 문자열(키)로 변경하는 복호화가 불가능한 방식의 단방향 암호화에서 사용되는 함수를 무엇이라 하는지 쓰시오.
해시 함수, 해시, Hash Function
5. 해시(HASH)
- 임의의 길이의 메시지를 입력으로 하여 고정된 길이의 출력값으로 변환하는 기법
- 주어진 원문에서 고정된 길이의 의사 난수를 생성하며, 생성된 값을 해시값(해시 함수)이라고 한다.
- 종류(단방향암호 알고리즘)
- MD5 : 빠른 계산 속도, 취약점 발견
- SHA : NIST(미국 국립표준기술연구소)에 의해 개발된 해시 함수
- HAS-160 : 한국에서 개발된 해시 함수, KCDSA(디지털서명)에 사용
- 데이터를 고정된 길이의 암호화된 문자열(키)로 변경하는 복호화가 불가능한 방식의 단방향 암호화에 사용되는 함수
- 역할 : 데이터 무결함 인증, 서명 내용 변조 방지, 빠른 데이터 비교
- 해시 함수 종류 : MD4, MD5, MD6, SHA, SHA-1, SHA-2, SHA-3, RIPEMD, WhirlPool
section03.서비스 공격 유형
* 기출 문제 - 2020년 1회 : LAND Attack, 2020년 4회 : 스니핑, 2020년 2회 : SQL 삽입, 2024년 1회 : APT, RootKit
09. 다음에 가장 부합하는 네트워크 공격 유형을 쓰시오.
|
: Land attack
06. 스니핑(Sniffing)에 대하여 간략히 서술하시오.
: 네트워크상에 통과되는 패킷들의 내용을 엿보는 행위이다. (흥달쌤)
: 스니핑은 네트워크상에 통과하는 패킷들의 내용들을 엿보는 행위이다. 이처럼 패킷을 엿봄으로써 로그인 과정 중의 계쩡명과 패스워드 정보를 비롯하여 주요 내용을 불법으로 추출할 수 있다. (이기적)
10. 보안의 취약점 중 하나인 SQL Injection(SQL 인젝션)에 대해 간략히 서술하시오.
: 웹 프로그램에 SQL 구문을 삽입하여, 서버의 데이터베이스를 공격할 수 있는 공격 방식
17. 다음 내용을 보고 보기에서 알맞은 용어를 골라 작성하시오.
- 불특정 다수가 아닌 명확한 표적을 정하여 지속적인 정보수집 후 공격감행할 수 있다. - 시스템에 직접 침투하는 것 뿐 아니라 표적 내부직원들이 이용하는 다양한 단말을 대상으로 한다. - 한가지 기술만이 아닌 Zero-day 취약점, 악성코드 등 다양한 보안 위협 공격 기술을 사용한다. - 일반적으로 공격은 침투, 검색, 수집 및 유출의 4단계로 실행되며, 각 단계별로 다양한 공격 기술을 사용한다. |
ㄱ. 사회공학 기법 ㄴ. Adware ㄷ. MITM ㄹ. XDR ㅁ. Replace attack ㅂ. Key logger attack ㅅ. APT |
ㅅ. APT
15. 다음 아래 내용을 보고 보기에서 알맞은 용어를 골라 작성하시오.
- 인터넷 공격자의 존재를 숨기면서 이 공격자에게 시스템에 대한 무제한 접근 권한을 부여하는 악성 프로그램이다. - 해커가 자신의 존재를 숨기면서 허가되지 않은 컴퓨터나 소프트웨어에 접근할 수 있도록 설계된 도구이다. - 일반적으로 펌웨어, 가상화 계층 등의 다양한 시스템 영역에서 작동하며, 운영체제의 시스템콜을 해킹하여 악성코드의 실행여부를 숨겨 안티바이러스 탐지를 우회할 수 있다. |
ㄱ. Worm ㄴ. Trojan Horse ㄷ. Backdoor ㄹ. Virus ㅁ. Ransomware ㅂ. Spyware ㅅ. Rootkit |
ㅅ. Rootkit
1. 서비스 공격 유형의 종류
- Dos(Denial of Service, 서비스 거부)
- 시스템의 자원을 보족하게 하여 원래 의도된 용도로 사용하지 못하게 하는 공격 방법
- 종류
- 스머프(Smurf), TCP SUN flooding, UDP 플러딩, Ping 플러딩, Ping of Death, 티어드랍, LAND Attack
- LAND Attack(Local Area Network Denial Attack)
- Dos(Denial of Service, 서비스 거부)의 종류, 시스템의 자원을 부족하게 하여 원래 의도된 용도로 사용하지 못하게 하는 공격 방법이다.
- IP 스푸핑을 이용한 SYN 공격이다.
- 공격자가 패킷의 출발지 주소나 포트를 임의로 변경하여 출발지와 목적지 주소를 동일하게 함으로써, 공격 대상 컴퓨터의 실행 속도가 느려지거나 동작이 마비되어 서비스 거부 상태에 빠지도록 하는 공격 방법이다.
- 패킷의 출발지와 목적지의 IP 주소를 희생자 측으로 동일하게 변조한다는 것이 핵심이다.
- LAND Attack(Local Area Network Denial Attack)
- 스머프(Smurf), TCP SUN flooding, UDP 플러딩, Ping 플러딩, Ping of Death, 티어드랍, LAND Attack
- DDoS(Distributed Denial of Service, 분산 서비스 거부) : 여러 대의 공격자를 분산 배치하여 동시에 서비스 거부 공격을 함으로써 공격 대상이 되는 시스템이 정상적인 서비스를 할 수 없도록 방해하는 공격 방법
- 피싱(Phishing) : 진짜 웹 사이트와 거의 동일하게 꾸며진 가짜 웹 사이트를 통해 개인정보를 탈취하는 수법
- 파밍(Pharming) : 도메인을 탈취하거나 악성코드를 통해 DNS의 이름을 속여 사용자가 진짜 웹 사이트로 오인하게 만들어 개인정보를 탈취하는 수법
- 스니핑(Sniffing) : 네트워크상에서 자신이 아닌 다른 상대방들의 패킷 교환을 엿듣는 것을 의미
- 스미싱(Smishing) : 수신한 메시지에 있는 인터넷 주소를 클릭하면 악성코드를 설치하여 개인 금융 정보를 빼내는 수법
- 큐싱(Qshing) : 사용자 인증 등이 필요한 것처럼 속여 QR코드를 통해 악성 앱을 내려받도록 유도하는 수법
- 랜섬웨어(Ransomware) : 인터넷 사용자의 컴퓨터에 침입해 내부 문서 파일 등을 암호화해 사용자가 열지 못하게 하는 공격
- 키 로거(Key Logger) : 컴퓨터 사용자의 키보드 움직임을 탐지해 ID, 패스워드 등 개인의 중요한 정보를 몰래 빼가는 공격
- SQL 삽입(SQL Injection) : 공격자가 악의적으로 만든 SQL 명령을 응용 프로그램이 수행하도록 하는 공격
- XSS(Cross Site Scripting) : 게시판의 글에 원본과 함께 악성코드를 삽입하여 글을 읽으면 악성코드가 실행되도록 하여 클라이언트의 정보를 유출하는 공격
- 무작위 대입 공격(Brute-Force Attack) : 패스워드에 사용될 수 있는 문자열의 범위를 정하고, 그 범위 내에서 생성 가능한 패스워드를 활용하는 공격
- 스피어 피싱(Spear Phishing) : 공격 대상이 방문할 가능성이 있는 합법적인 웹 사이트를 미리 감염시킨 뒤, 잠복하고 있다가 공격 대상이 방문하면 대상의 컴퓨터에 악성코드를 설치하는 공격 방법
- APT(Advanced Persistent Threat, 지능적 지속 위협) : 다양한 보안 위협을 만들어 침해에 성공해 정보를 유출하거나 장기간의 접속 권한을 획득하기 위해 또는 장기간의 접근을 위해 지속해서 수행되는 공격 방법
- 제로데이(Zero-day) 공격 : 조사된 정보를 바탕으로 정보 시스템, 웹 애플리케이션 등의 알려지지 않은 취약점 및 보안 시스템에 탐지되지 않는 악성코드 등을 감염시키는 것
- 백도어(Back Door) : 프로그램이나 손상된 시스템에 허가되지 않는 접근을 할 수 있도록 정상적인 보안 절차를 우회하는 악성 소프트웨어, 백도어 공격 도구로는 NetBus, Back Orifice, RootKit
- 루트킷(RootKit) : 공격자가 시스템에 접근하여 자신의 존재를 숨기고 시스템 제어 권한을 장악하도록 설계된 악성 소프트웨어
- Rainbow Table Attack : 최근 패스워크 크래킹 기법으로 패스워드별로 해시값을 미리 생성해 놓은 테이블을 사용하여 Reduction 함수의 반복 수행을 통하여 일치하는 해시값으로 패스워드를 탈취하는 기법
- CSRF(Cross Site Request Forgery) : 특정 사용자를 대상으로 하지 않고 불특정 다수를 대상으로 로그인된 사용자가 자신의 의지와 상관없이 공격자의 의도에 따라 행위를 하게 만드는 공격
- TOCTOU(Time Of Check To Time Of Use) : 병렬 시스템을 사용할 때 두 시점 사이의 타이밍을 노리는 공격 또는 그런 공격을 가능하게 하는 버그 유형
Chapter02. 소프트웨어 개발 보안 구현하기
section01. 서버 인증
1. 사용자 인증 기법
* 기출 문제 - 2023년 3회 : 접근통제 정책
5. 다음은 정보의 접근통제 정책에 대한 설명이다. 빈칸 ①~③에 각각 알맞은 용어를 영문 약어로 쓰시오.
정책 | ( ① ) | ( ② ) | ( ③ ) |
권한 부여 | 시스템 | 중앙 관리자 | 데이터 소유자 |
접근 결정 | 보안등급(Label) | 역할(Role) | 신분(Identity) |
정책 변경 | 고정적(변경 어려움) | 변경 용이 | 변경 용이 |
장점 | 안정적, 중앙 집중적 | 관리 용이 | 구현 용이, 유연함 |
(1) : MAC
(2) : RBAC
(3) : DAC
2. 서버 접근 통제(Access Control)
- 정보의 접근통제 정책은 시스템의 자원 이용에 대한 불법적인 접근을 방지하는 과정으로 비인가자가 컴퓨터 시스템에 액세스하지 못하도록 하는 것이다.
정책 | MAC(Mandatory Access Control) 강제적 접근 통제 |
DAC(Discretionary Access Control) 임의적 접근 통제 |
RBAC(Role Based Access Control) 역할 기반 접근 통제 |
권한 부여 | 시스템 | 데이터 소유자 | 중앙 관리자 |
접근 결정 | 보안등급(Label) | 신분(Identity) | 역할(Role) |
정책 변경 | 고정적(변경 어려움) | 변경 용이 | 변경 용이 |
장점 | 안정적, 중앙 집중적 | 구현 용이, 유연함 | 관리 용이 |
section02. 보안 아키텍처
1. 보안 아키텍처
2. ISO 27001
section03. 보안 솔루션
1. 방화벽(Firewall)
- 네트워크 간에 전송되는 정보를 선별하는 기능을 가진 침입 차단 시스템
2. 웹 방화벽(Web Firewall)
- 웹 기반 공격을 방어할 목적으로 만들어진 웹서버 특화 방화벽
3. IDS(Intrusion Detection System, 침입 탐지 시스템)
- 컴퓨터 시스템의 비정상적인 사용, 오용 등을 실시간으로 탐지하는 시스템
- 이상탐지, 오용탐지
4. IPS(Intrusion Prevention System, 침입 방지 시스템)
- 방화벽과 침입탐지 시스템을 결합한 것
5. DMZ(DeMilitarized Zone, 비무장 지대)
6. NAC(Network Access Control, 네트워크 접근 제어)
- 네트워크에 접속하는 내부 PC의 MAC주소를 IP관리시스템에 등록한 후 일관된 보안관리 기능을 제공하는 보안 솔루션
7. DLP(Data Loss Prevention)
- 방화벽과 침입탐지 시스템을 결합한 것
8. ESM(Enterprise Security Management, 통합 보안 관리)
- 다양한 장비에서 발생하는 로그 및 보안 이벤트를 통합관리하는 보안 솔루션
* 기출 문제 - 2022년 2회 : VPN
03. 다음 공통으로 설명하는 빈칸에 알맞은 용어를 영문 약어로 쓰시오.
( )는 인터넷과 같이 공개된 통신기반 시설을 사용하여 멀리 떨어진 사무실이나 개인 사용자에게 그들이 속한 조직의 네트워크를 안전하게 접근할 수 있도록 제공해주는 네트워크를 말한다. 한 개의 조직만이 전용할 수 있도록 구입하거나 대여받은 값비싼 시스템과 비견될 수 있다.
( )는 공중망에서 가상의 사설망을 구현하는 기술로 IPsec와 SSL ( )가 대표 기술이다. 보안 소켓 계층기반의 가상 사설망인 SSL ( )은 인터넷으로 내부 시스템 자원을 안전하게 사용할 수 있어 구축이 간편하고 비용이 적게 드는 반면 인터넷 보안 프로토콜을 이용하는 IPsec은 센터와 지점 모두 별도의 하드웨어 장비가 필요하다. |
VPN
9. VPN(Virtual Private Network, 가상 사설망)
- 개별의 망을 하나의 망처럼 사용하며, 안전하지 않은 공용 네트워크를 이용하여 사설 네트워크를 구성하는 기술이다.
- 전용선을 이용한 사설 네트워크에 비해 저렴한 비용으로 안전한 망을 구성할 수 있다.
- 공용 네트워크로 전달되는 트래픽은 암호화 및 메시지 인증 코드 등을 사용하여 기밀성과 무결성을 제공한다.
- 인터넷과 같은 공공 네트워크를 통해서 기업의 재택 근무자나 이동 중인 직원이 안전하게 회사 시스템에 접근할 수 있도록 해준다.
10. 그 외 보안 솔루션
- SIEM(Security Information&Event Management) - 빅데이터 수준의 데이터를 장시간 심층 분석한 인덱싱 기반
- SOAR(Security Orchestration, Automation and Response) - 보안 오케스트레이션, 자동화 및 대응을 통해 IT 시스템을 보호하는 솔루션
- Sandbox - 응용 프로그램이 가상 환경에서 독립적으로 실행되는 형태
- FDS(Fraud Detection System) - 전자금융거래의 이상 거래를 탐지하고 차단하는 시스템
- Proxy Server - 클라이언트를 대신하여 인터넷상의 다른 서버에 접속하며, 방화벽 및 캐시 기능을 수행
section04. 취약점 분석 및 평가
1. 취약점 분석 및 평가
2. 로그 분석
* 기출 분석 - 2021년 3회 : AAA
01. AAA, Triple-A라고 읽는 이 용어는 보안의 세가지를 합쳐 축약한 용어이다. 다음 ①~③에 해당하는 용어를 <보기>에서 찾아쓰시오.
Authentication, Application, Accounting, Ascii, Avalanche, Authorization
|
<보기>
( ① ) : 사용자가 시스템에 접근을 허용하기 전에 가입자 신분을 확인 ( ② ) : 사용자가 시스템 자원에 대한 접근 권한 유무를 판별 후 접근 허가를 결정 ( ③ ) : 사용 시간, 정보, 위치 등 정보 수집 등 시스템 자원 사용의 정보를 수집하고 관리 |
① Authentication(인증) , ② Authorization(인가) , ③ Accountin(계정관리)
3. AAA(인증, 권한 부여, 계정 관리)
- 일관된 방식을 통해 3개의 독립적인 보안 기능의 세트를 구성하기 위한 프레임워크로 서버/클라이언트 구조를 가진다.
인증(Authentication) | 망, 시스템 접근을 허용하기 전에 사용자의 신원 검증을 제공한다. |
권한 부여(Authorization) | 신원이 검증된 사용자에게 허용할 권한을 제공한다. |
계정 관리(Accounting) | 권한이 부여된 사용자의 행위를 기록하고 사용자 자원에 대한 정보를 취합하여 과금, 감사, 증설, 리포팅 등을 제공한다. |
'정보처리기사' 카테고리의 다른 글
[정보처리기사 요약정리] PART 4. 프로그래밍 언어 활용 + 기출포함 (8) | 2024.10.19 |
---|---|
[정보처리기사 요약정리] PART 3. 데이터베이스 구축 + 기출포함 (5) | 2024.10.19 |
[정보처리기사 요약정리] PART 2. 소프트웨어 개발 + 기출포함 (11) | 2024.10.19 |
[정보처리기사 요약정리] PART 1. 소프트웨어 설계 + 기출포함 (12) | 2024.10.18 |
[정보처리기사 실기 기출] 2024년 2회 (14) | 2024.10.17 |