Notice
Recent Posts
Recent Comments
Link
관리 메뉴

코딩두의 포트폴리오

[실기] 9장. 소프트웨어 개발 보안 구축 본문

정보처리기사

[실기] 9장. 소프트웨어 개발 보안 구축

코딩두 2025. 10. 18. 00:22

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를 사용 -> 자신에게 접근 권한 부여