| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
- git
- VSCode
- Docker
- C언어
- 크롤링 개발
- 인터넷의이해
- Resnet
- Powershell
- Rocky Linux
- Database
- GoogleDrive
- KAKAO
- 코딩도장
- API
- cloud
- rnn
- colab
- ChatGPT
- ICT멘토링
- Machine Learning
- LINUX MASTER
- suricata
- Spring Boot
- 국가과제
- 고등학생 대상
- Python
- OSS
- Web
- Github
- Spring
- Today
- Total
코딩두의 포트폴리오
[실기] 9장. 소프트웨어 개발 보안 구축 본문

109(B) Secure SDLC
Secure SDLC: 보안상 안전한 sw를 개발하기 위해 SDLC에 보안 강화를 위한 프로세스를 포함한 것
<Secure SDLC의 대표적인 방법론>
Seven Touchpoints: SW 보안의 모범사례를 SDLC에 통합한 방법론
<SW 개발 보안 요소>
| 기밀성 (Confidentiality) |
시스템 내의 정보와 자원은 인가된 사용자에게만 접근이 허용됨 정보가 전송 중에 노출되더라도 데이터를 읽을 수 없음 |
| 무결성 (Integrity) |
시스템 내의 정보는 오직 인가된 사용자만 수정할 수 있음 |
| 가용성 (Availabilty) |
인가받은 사용자는 시스템 내의 정보와 자원을 언제라도 사용할 수 있음 |
110(B) 입력 데이터 검증 및 표현
입력 데이터 검증 및 표현은 입력 데이터로 인해 발생하는 문제들을 예방하기 위해 구현 단계에서 검증해야 하는 보안 점검 항목들
<입력 데이터 검증 및 표현의 보안 약점>
| SQL 삽입 (Injection) |
웹 응용 프로그램에 SQL을 삽입 -> 내부 DB 서버의 데이터를 유출 및 변조, 관리자 인증을 우회 동적 쿼리에 사용되는 입력 데이터에 예약어 및 특수문자가 입력되지 않게 필터링 되도록 설정하여 방지 |
| 경로 조작 및 자원 삽입 |
데이터 입출력 경로를 조작 -> 서버 자원 수정, 삭제 사용자 입력값을 식별자로 사용하는 경우, 경로 순회 공격을 막는 필터를 사용하여 방지 |
| 크로스사이트 스크립팅 (XSS) | 웹페이지에 악의적 스크립트를 삽입 -> 방문자들 정보 탈취, 비정상적인 기능 수행 유발 HTML 태그의 사용 제한, 스크립트에 삽입되지 않도록 '<', '>', '&' 등 문자를 다른 문자로 치환하여 방지 |
| 운영체제 명령어 삽입 |
외부 입력값을 통해 시스템 명령어의 실행을 유도 -> 권한 탈취, 시스템 장애 유발 웹 인터페이스를 통해 시스템 명령어가 전달되지 않도록, 외부 입력값을 검증 없이 내부 명령어로 사용하지 X |
| 메모리 버퍼 오버플로 |
연속된 메모리 공간을 사용하는 프로그램에서 할당된 메모리의 범위를 넘어선 위치에서 자료를 읽거나 쓸 때 발생 메모리 버퍼 사용 경우 적절한 버퍼 크기 설정, 설정된 범위의 메모리 내에서 올바르게 읽거나 쓸 수 있도록 함 |
111(D) 보안 기능
112(C) 코드 오류
113(C) 캡슐화
114(A) 암호 알고리즘
개인키 암호화(Private Key Encryption) 기법
- 동일한 키로 데이터를 암호화하고 복호화
- 대칭 암호 기법 or 단일키 암호화 기법이라고도 함
- 암호화/복호화 속도가 빠르지만, 관리해야 할 키 수가 많음
공개키 암호화(Public Key Encryption) 기법
- 데이터를 암호화할 때 사용하는 공개키는 사용자에게 공개 / 복호화할 때의 비밀키는 관리자가 비밀리에 관리
- 비대칭 암호 기법이라고도 함
- 관리해야 할 키 수가 적지만, 암호화/복호화 속도가 느림
- 대표적으로 RSA와 ECC 기법
<양방향 알고리즘의 종류>
| ARAI | 2004년 국가정보원과 산학연협회가 개발한 블록 암호화 알고리즘 |
| AES | 2001년 미국 표준 기술 연구소(NIST)에서 발표한 개인키 암호화 알고리즘 DES를 보완 / 블록 크기: 128비트 |
| RSA | 1978년 MIT의 라이베스트, 새미르, 애들먼에 의해 제안된 공개키 암호화 알고리즘 큰 숫자를 소인수분해 하기 어렵다는 것에 기반하여 만들어짐 |
| ECC | 1985년 RSA 암호 방식의 대안으로 제안 이산대수 문제를 타원곡선으로 옮겨 기밀성과 효율성을 높인 암호화 알고리즘 |
| IDEA | 스위스의 라이와 메시가 1990년에 개발한 PES를 개선한 알고리즘 블록 크기: 64비트, 키 길이: 128비트 |
| Skipjack | 국가 안전 보장국(NSA)에서 개발한 암호화 알고리즘 클리퍼 칩이라는 IC 칩에 내장되어 있음 블록 크기: 64비트, 키 길이: 80비트 |
| TKIP | 무선랜 보안에 사용된 WEP을 보완한 데이터 보안 프로토콜, 임시 키 무결성 프로토콜이라고도 함 WEP 취약점 보안을 위해 암호 알고리즘의 입력 키 길이를 128비트로 늘리고 패킷당 키 할당, 키값 재설정 등 관리 방식 개선 |
해시(Hash): 임의의 길이의 입력 데이터나 메시지를 고정된 길이의 값이나 키로 변환하는 것
- MD5: 1991년 R.Rivest가 MD4를 대체하기 위해 고안한 암호화 해시 함수 (블록 크기: 512비트, 키 길이: 128비트)
115(A) 서비스 공격 유형
서비스 거부 공격: 대량의 데이터를 한 곳의 서버에 집중적으로 전송 -> 서버의 정상적인 기능을 방해
<주요 서비스 거부 공격 유형>
| Ping of Death (죽음의 핑) |
Ping 명령어 전송 시 패킷 크기를 인터넷 프로토콜 허용 범위 이상으로 전송 -> 네트워크를 마비 전송된 각각의 패킷들의 ICMP Ping 메시지에 대한 응답 처리 |
| SUMRFING (스머핑) |
IP나 ICMP의 특성을 악용하여 엄청난 양의 데이터를 한 사이트에 집중적으로 보냄 -> 네트워크 불능 상태 스머핑 무력화 방법: 각 네트워크 라우터에서 브로드캐스트 주소를 사용할 수 없게 미리 설정 |
| SYN Flooding | 공격자가 가상의 클라이언트로 위장하여 3-way-handshake 과정을 의도적으로 중단 -> 서버가 대기 상태 대비를 위해 수신지의 'SYN' 수신 대기 시간 줄이거나, 침입 차단 시스템 활용 |
| LAND ATTACK(Local Area Network Denial Attack) |
패킷을 전송할 때 송신 IP 주소와 수신 IP 주소를 모두 공격 대상의 IP 주소로 하여 대상에게 전송 패킷이 계속해서 전송될 경우 자신에 대해 무한히 응답하게 하는 공격 대비를 위해 송수신 IP 주소의 적절성 검사 |
| DDos (Disributed Denial as Service) |
여러 곳에 분산된 공격 지점에서 한 곳의 서버에 대해 서비스 거부 공격을 수행 취약점 있는 호스트들에 분산 서비스 공격용 툴 설치하여 에이전트로 만든 후 공격 데몬: 에이전트의 역할을 수행하도록 설계된 프로그램 ex) TNF: UDP Flooding 뿐만 아니라 TCP SYN Flood 공격, ICMP 응답 요청, 스머핑 공격 등 수행 |
<네트워크 침해 공격 관련 용어>
| 세션 하이재킹 | 세션 정보를 가로채는 공격 기법, 위장하여 서버 자원이나 데이터를 무단으로 사용 TCP 3-Way-Handshake 과정에 끼어들어 시퀀스 번호 가로챔 (TCP 새선 하이재킹이 대표적) |
| ARP 스푸핑 | ARP의 취약점을 이용, 물리적 주소(MAC)를 공격대상으로 변조하여 대상에게 도달해야 하는 데이터 패킷을 가로채거나 방해 |
| 사회 공학 | 컴퓨터 보안에 있어, 인간 상호 작용의 깊은 신뢰를 바탕으로 사람들을 속여 정상 보안 절차를 깨트리기 위한 비기술적 시스템 침입 수단 |
| 다크 데이터 | 특정 목적을 가지고 데이터를 수집하였으나, 이후 활용되지 않고 저장만 되어있는 대량의 데이터를 의미 |
| 타이포스쿼팅 | 사이트에 접속할 때 주소를 잘못 입력하거나 철자를 빠뜨리는 실수를 이용하기 위해 유사 유명 도메인을 미리 등록함 (=URL 하이재킹) |
| APT | 1. 다양한 IT 기술과 방식들을 이용해 조직적으로 특정 기업이나 조직 네트워크에 침투해 활동 거점을 마련 2. 보안을 무력화, 정보 수집 -> 외부로 빼돌림 |
| 스니핑 | 네트워크의 중간에서 남의 패킷 정보를 도청하는 해킹 유형의 하나로 수동적 공격에 해당함 |
<정보 보안 침해 공격 관련 용어>
| 워터링홀 | 자주 방문하는 웹 사이트를 사전에 감염 -> 방문 시 악성 코드에 감염되게 하는 웹 기반 공격 |
| 웜 | 네트워크를 통해 연속적으로 자신을 복제하여 시스템의 부하를 높임 -> 시스템을 다운 ex) 분산 서비스 거부 공격, 버퍼 오버플로 공격, 슬래머(SQL 허점) |
| 키로거 공격 | 키보드 움직임 탐지 -> ID, PW, 계좌번호, 카드번호 등 중요 정보를 몰래 빼감 |
| 랜섬웨어 | 컴퓨터에 잠입해 내부 문서, 파일 등을 암호화해 열지 못하게 함 암호 해독용 프로그램의 전달을 조건으로 사용자에게 돈을 요구하기도 함 |
| 백도어 | 시스템 설계자가 서비스 기술자나 유지 보수 프로그램 작성자의 액세스 편의를 위해 시스템 보안을 제거하여 만들어놓은 비밀 통로, 컴퓨터 범죄에 악용되기도 함 탐지 방법: 무결성 검사, 열린 포트 확인, 로그 검사, SetUID 파일 검사 |
| 트로이 목마 | 정상적인 기능을 하는 프로그램으로 위장하여 프로그램 내에 숨어 있다가 해당 프로그램이 동작할 때 활성화되어 부작용을 일으킴, 자기 복제 능력은 없음 |
| Rootkit | 시스템 침입 후 백도어, 트로이목마를 설치하고 불법적인 해킹에 사용되는 기능들을 제공 os에서 실행 파일과 프로세스를 숨김으로써 os 검사 및 백신 프로그램 탐지 피할 수 있음 |
116(B) 서버 인증
인증(Authentication): 다중 사용자 컴퓨터 시스템이나 네트워크 시스템에서 로그인을 요청한 사용자의 정보를 확인하고 접근 권한을 검증하는 보안 절차
<인증의 주요 유형>
| 지식 기반 인증 | Something You Know | 사용자가 기억하고 있는 정보를 기반으로 인증을 수행 |
| 소유 기반 인증 | Something You Have | 사용자가 소유하고 있는 것을 기반으로 인증을 수행 |
<기타 인증 방법>
행위 기반 인증 (Something You Do) - 사용자의 행동 정보를 이용해 인증 수행 (서명, 동작)
117(A) 보안 솔루션
보안 솔루션: 접근 통제, 침입 차단 및 탐지 등을 수행하여 외부로부터의 불법적인 침입을 막는 기술 및 시스템
| 침입 탐지 시스템 (IDS) |
컴퓨터 시스템의 비정상적인 사용, 오용, 남용 등을 실시간으로 탐지 - 오용 탐지: 미리 입력해 둔 공격 패턴이 감지되면 이를 알려줌 - 이상 탐지: 평균적인 시스템의 상태를 기준으로 비정상적인 행위나 자원의 사용이 감지되면 이를 알려줌 |
| VPN (가상 사설 통신망) |
통신 사업자의 공중 네트워크와 암호화 기술을 이용하여 사용자가 마치 자신의 전용 회선을 사용하는 것처럼~ - SSL VPN: PC에 VPN Client 프로그램 설치하여 VPN 서버에 접속, 암호화를 위해 SSL 프로토콜 사용 - IPSec VPN: VPN 서버가 설치된 각각의 네트워크를 서로 연결, 암호화를 위해 IPSec 프로토콜 사용 |
| SIEM | 다양한 장비에서 발생하는 로그 및 보안 이벤트를 통합하여 관리하는 빅 데이터 기반의 보안 솔루션 - 방화벽, IDS, IPS, 웹 방화벽, VPN 등에서 발생한 로그 및 보안 이벤트를 통합하여 관리 - 장기간의 로그 및 보안 이벤트를 수집 및 검색할 수 있는 빅데이터 기반의 통합 로그 수집 시스템 |
| SSH (Secure SHell) |
다른 컴퓨터에 로그인, 원격 명령 실행, 파일 복사 등을 수행할 수 있도록 다양한 기능을 지원하는 프로토콜 - 데이터 암호화와 강력한 인증 방법으로 보안성이 낮은 네트워크에서도 안전하게 통신 가능 - 키를 통한 인증 방법을 사용하려면 사전에 클라이언트의 공개키를 서버에 등록해야 함 - 기본적으로는 22포트 사용 |
| 템퍼 프루핑 | SW의 위변조가 발생할 경우 SW를 오작동하게 만들어 악용을 방지 해시 함수, 핑거 프린트, 워터마킹 등의 보안 요소를 생성하여 SW에 삽입, 실행코드 난독화하며, 실행 시 원본 비교 및 데이터 확인을 수행함 -> SW를 보호 |
| OAuth (공개 인증) |
인터넷 애플리케이션에서 사용자 인증에 사용되는 표준 인증 방법, 공개 API (OpenAPI)로 구현됨 - 사용자가 웹사이트나 애플리케이션에 비밀번호를 제공하지 않고 OAuth를 사용 -> 자신에게 접근 권한 부여 |
'정보처리기사' 카테고리의 다른 글
| [실기] 11장. 응용 SW 기초 기술 활용 (1) | 2025.10.20 |
|---|---|
| [실기] 10장. 프로그래밍 언어 활용 (0) | 2025.10.19 |
| [실기] 8장. SQL 응용 (0) | 2025.10.12 |
| [실기] 7장. 애플리케이션 테스트 관리 (0) | 2025.10.10 |
| [실기] 6장. 화면 설계 (0) | 2025.10.10 |
