Chapter1. 소프트웨어 개발 보안 설계
1. SW 개발 보안
- 개념 : 소스 코드 등에 존재하는 보안 취약점을 제거하고, 보안을 고려하여 기능을 설계 및 구현하는 등 SW 개발 과정에서 지켜야 할 일련의 보안 활동을 말함
- 구성 요소 : 기밀성, 무결성, 가용성
| 요소 | 설명 |
| 기밀성 | - 인가되지 않은 개인 혹은 시스템 접근에 따른 정보 공개 및 노출을 차단하는 특성 - 인가된 사용자에 대해서만 자원 접근이 가능해야 하는 특성 |
| 무결성 | - 정당한 방법을 따르지 않고선 데이터가 변경될 수 없으며, 데이터의 정확성 및 완전성과 고의/악의로 변경되거나 훼손 또는 파괴되지 않음을 보장하는 특성 - 인가된 사용자에 대해서만 자원 수정이 가능하며 전송 중인 정보는 수정되지 않아야 하는 특성 |
| 가용성 | - 권한을 가진 사용자나 애플리케이션이 원하는 서비스를 지속 사용할 수 있도록 보장하는 특성 - 인가된 사용자는 가지고 있는 권한 범위 내에서 언제든 자원 접근이 가능해야 하는 특성 |
- 보안 용어
- 자산 : 조직의 데이터 또는 조직의 소유자가 가치를 부여한 대상
- 위협 : 조직이나 기업의 자산에 악영향을 끼칠 수 있는 사건이나 행위
- 취약점 : 위협이 발생하기 위한 사전 조건으로 시스템의 정보 보증을 낮추는데 사용되는 약점
- 위험 : 위협이 취약점을 이용하여 조직의 자산 손실 피해를 가져올 가능성
- 공격 기법
- DoS 공격
- 개념
- 시스템을 악의적으로 공격해서 해당 시스템의 자원을 부족하게 하여 원래 의도된 용도로 사용하지 못하게 하는 공격
- 특정 서버에게 수많은 접속 시도를 만들어 다른 이용자가 정상적으로 서비스 이용을 하지 못하게 하거나, 서버의 TCP 연결을 소진시키는 등의 공격
- 종류
- SYN 플러딩
- TCP 프로토콜의 구조적인 문제를 이용한 공격
- 서버의 동시 가용 사용자 수를 SYN 패킷만 보내 점유하여 다른 사용자가 서버를 사용 불가능하게 하는 공격
- 공격자는 ACK를 발송하지 않고 계속 새로운 연결 요청을 하게 되어 서버는 자원할당을 해지하지 않고 자원만 소비하여 고갈됨
- UDP 플러딩
- 대량의 UDP 패킷을 만들어 임의의 포트 번호로 전송하여 응답 메시지를 생성하게 하여 지속해서 자원을 고갈시키는 공격
- ICMP 패킷은 변조되어 공격자에게 전달되지 않아 대기함
- 스머프/스머핑
- 출발지 주소를 경격 대상의 IP로 설정하여 네트워크 전체에게 ICMP Echo 패킷을 직접 브로드캐스팅하여 마비시키는 공격
- 바운스 사이트라고 불리는 제3의 사이트를 이용해 공격
- 죽음의 핑
- ICMP 패킷을 정상적인 크기보다 더 크게 만들어 전송하면 다수의 IP 단편화가 발생하고, 수신 측에서는 단편화된 패킷을 처리하는 과정에서 많은 부하가 발생하거나, 재조합 버퍼의 오버플로가 발생하여 정상적인 서비스를 하지 못하도록 하는 공격 기법
- 랜드 어택 : 출발지 IP와 목적지 IP를 같은 패킷 주소로 만들어 보냄으로써 수신자가 자기 자신에게 응답을 보내게 하여 시스템의 가용성을 침해하는 공격 기법
- 티어 드롭
- IP 패킷 재조합 과정에서 잘못된 Fragment Offset 정보로 인해 수신시스템이 문제를 발생하도록 만드는 DoS 공격
- 공격자는 IP Fragment Offset 값을 서로 중첩되도록 조작하여 전송하고, 이를 수신한 시스템이 재조합하는 과정에서 오류가 발생, 시스템의 기능을 마비시키는 공격 방식
- 봉크(Bonk)
- 패킷을 분할하여 보낼 때 처음 패킷을 1번으로 보낸 후 다음 패킷을 보낼 때도 순서번호를 모두 1번으로 조작하여 전송하는 DoS 공격
- 똑같은 번호로 전송돼서 오류를 일으킴
- 보잉크(Boink)
- 처음 패킷을 1번으로 보낸 후 다음 패킷을 100번, 다음 패킷을 200번 등 중간에 패킷 시퀀스 번호를 비정상적인 상태로 보내서 부하를 일으키게 하는 공격 기법
- SYN 플러딩
- 개념
- DDoS 공격
- 개념
- DoS의 또 다른 형태로 여러 대의 공격자를 분산 배치하여 동시에 동작하게 함으로써 특정 사이트를 공격하는 기법
- 해커들이 취약한 인터넷 시스템에 대한 액세스가 이뤄지면, 침입한 시스템에 SW를 설치하고 이를 실행시켜 원격에서 공격 개시
- 구성 요소 : 핸들러, 에이전트, 마스터, 공격자, 데몬 프로그램
- 개념
- DRDoS 공격
- 개념 : 공격자는 출발지 IP를 공격대상 IP로 위조하여 다수의 반사 서버로 요청 정보 전송, 공격 대상자는 반사 서버로부터 다량의 응답을 받아서 서비스 거부(DoS)가 되는 공격
- 대응 방안
- ISP(인터넷 서비스 사업자)가 직접 차단
- 반사 서버에 연결을 완료하지 않은 Syn 출처 IP를 조사하여 블랙 리스트로 운용, 공격 서버를 사전에 차단
- 공격대상이 되고 있는 공격대상 서버 IP와 Port를 변경, 필터링하여 운영
- 세션 하이재킹
- 개념 : 케빈 미트닉이 사용했던 공격 방법 중 하나로 TCP 세션 관리 취약점을 이용한 공격 기법
- 탐지 방법
- 비동기화 상태 감지
- ACK 패킷 비율 모니터링
- 특정 세션에서 패킷 유실 및 재전송 증가되는 것을 탐지
- 기대하지 않은 접속의 리셋 탐지
- 애플리케이션 공격
- HTTP GET 플러딩
- Slowloris
- RUDY Attack
- Slow Read Attack
- Hulk DoS
- Hash DoS
- 네트워크 공격
- 스니핑 : 공격대상에게 직접 공격 하지 않고 데이터만 몰래 들여다보는 수동적 공격
- 네트워크 스캐너, 스니퍼 : 네트워크 HW 및 SW 구성의 취약점 파악을 위해 공격자가 취약점을 탐색하는 공격 도구
- 패스워드 크래킹 : 사전 크래킹, 무차별 크래킹, 패스워드 하이브리드 공격, 레인보우 테이블 공격
- IP 스푸핑 : 침입자가 인증된 컴퓨터 시스템인 것처럼 속여서 타깃 시스템의 정보를 빼내기 위해서 본인의 패킷 헤더를 인증된 호스트의 IP 어드레스로 위조하여 타깃에 전송하는 공격 기법
- ARP 스푸핑 : 공격자가 특정 호스트의 MAC 주소를 자신의 MAC 주소로 위조한 ARP Reply를 만들어 희생자에게 지속적으로 전송하여 희생자의 ARP Cache Table에 특정 호스트의 MAC 정보를 공격자의 MAC 정보로 변경, 희생자로부터 특정 호스트로 나가는 패킷을 공격자가 스니핑하는 공격 기법
- ICPM Redirect 공격 : 3계층에서 스니핑 시스템을 네트워크에 존재하는 또 다른 라우터라고 알림으로써 패킷의 흐름을 바꾸는 공격 기법
- 트로이 목마 : 악성 루틴이 숨어 있는 프로그램으로 겉보기에는 정상적인 프로그램으로 보이지만 실행하면 악성 코드를 실행하는 프로그램
- 시스템 보안 위협
- 버퍼 오버플로 공격
- 백도어 : 어떤 제품이나 컴퓨터 시스템, 암호시스템 혹은 알고리즘에서 정상적인 인증 절차를 우회하는 기법
- DoS 공격
2. 서버 인증 및 접근 통제
- 서버 인증 개념
- 서버 인증은 다중 사용자 시스템과 망 운영 시스템에서 접속자의 로그인 정보를 확인하는 보안 절차
- 전송된 메시지 무결성 및 송신자를 검증하는 과정이 인증에 해당, 서버에서 사용자들에게 접근 권한 부여하기 위해 신분 검증하는 과정을 로그인이라 함
- 유형 : 지식기반 인증, 소지기반 인증, 생체기반 인증, 특징기반 인증
- 서버 접근 통제
- 개념 : 사람 또는 프로세스가 서버 내 파일 읽기, 쓰기, 실행 등의 접근 여부를 허가하거나 거부하는 기능(기밀성, 무결성, 가용성 보장)
- 용어 : 주체(행위자), 객체(제공자), 접근
- 유형
- DAC(임의적 접근 통제) : 주체나 그룹의 신분에 근거하여 객체에 대한 접근을 제한하는 방법(신분 기반 접근통제 정책)
- MAC(강제적 접근 통제) : 객체에 포함된 정보의 허용등급과 접근 정보에 대하여 주체가 갖는 접근 허가 권한에 근거하여 객체에 대한 접근을 제한하는 방법(규칙 기반 접근통제 정책)
- RBAC(역할 기반 접근 통제) : 중앙 관리자가 사용자와 시스템의 상호관계를 통제하며 조직 내 맡은 역할에 기초하여 자원에 대한 접근을 제한하는 방법(역할 기반)
- 접근 통제 보호 모델
- 벨-라파듈라 모델 : 미 국방부 지원 보안 모델, 기밀성 강조, 강제적 정책에 의해 접근 통제(No Read Up, No Write Down)
- 비바 모델 : 벨-라파듈라 모델의 단점 보완한 무결성 보장하는 최초 모델(No Read Down, No Wirte Up)
- 3A
- 인증(Authentication) : 접근 시도하는 가입자 또는 단말에 대한 식별 및 신분을 검증(주체 신원 검증 위한 활동)
- 권한 부여(Authorization) : 검증된 가입자나 단말에게 어떤 수준의 권한과 서비스를 허용(인증된 주체에게 접근 허용)
- 계정 관리(Accounting) : 리소스 사용에 대한 정보를 수집하고 관리하는 서비스(주체의 접근을 추적, 행동을 기록)
- 인증 관련 기술
- SSO(Single Sign On) : 커버로스에서 사용되는 기술로 한 번의 인증 과정으로 여러 컴퓨터상의 자원을 이용할 수 있도록 해주는 인증 기술
- 커버로스 : 1980년대 MIT의 Ahtena 프로젝트의 일환으로 개발되었고, 클라이언트/서버 모델에서 동작하고 대칭 키 암호기법에 바탕을 둔 티켓 기반의 프로토콜
- OAuth : 사용자가 비밀번호를 제공하지 않고 다른 웹사이트나 애플리케이션의 접근 권한을 부여할 수 있게 하는 개방형 표준 기술
3. SW 개발 보안을 위한 암호화 알고리즘
- 암호 알고리즘 방식
- 양방향 방식
- 대칭 키 암호 방식
- 암호화와 복호화에 같은 암호 키를 사용
- 비밀키 전달을 위한 키 교환 필요, 암호화 속도 빠름
- 블록 암호화(DES, AES, SEED), 스트림 암호화(RC4) 알고리즘으로 나뉨
- 비대칭 키 암호 방식(=공개키 암호 방식)
- 공개키와 개인키가 존재
- 공개키로 암호화된 메시지는 반드시 개인키로 복호화해야 함
- RSA, ECC, ElGamal, 디피-헬만 방식 존재
- 대칭 키 암호 방식
- 일방향 암호 방식(해시 암호 방식) : 임의 길이 정보를 입력받아, 고정된 길이의 암호문을 출력하는 암호 방식
- 양방향 방식
- 암호 알고리즘 상세
- 대칭 키 암호화 알고리즘
| 종류 | 설명 |
| DES | 1975년 IBM에서 개발, 미국 연방 표준국(NIST)에서 발표한 디칭 키 기반의 블록 암호화 알고리즘(블록 크기 64비트) |
| SEED | 1999년 한국인터넷진흥원이 개발한 블록 암호화 알고리즘 |
| AES | 2001년 미국 표준 기술 연구소(NIST)에서 발표한 블록 암호화 알고리즘, DES 개인 키에 대한 전사적 공격 가능해지고, 3 DES의 성능 문제 극복 위해 개발됨 |
| ARIA | 2004년 국정원과 산학연구협회가 개발한 블록 암호화 알고리즘, 경량 환경 및 하드웨어에서 효율성 향상 위해 개발됨, 대부분의 연산은 XOR과 같은 단순한 바이트 단위 연산으로 구성 |
| IDEA | DES 대체하기 위해 스위스 연방기술 기관에서 개발한 블록 암호화 알고리즘 |
| LFSR | 시프트 레지스터의 일종, 레지스터에 입력되는 값이 이전 상태 값들의 선형 함수로 계산되는 구조로 되어 있는 스트림 암호화 알고리즘 |
| Skipjack | 미 국가안보국(NSA)에서 개발한 Clipper 칩에 내장된 블록 알고리즘 |
- 비대칭 키 암호화 알고리즘
| 종류 | 설명 |
| 디피-헬만 | 최초의 공개키 알고리즘, 두 사용자 간에 공통의 암호화 키를 안전하게 공유할 방법 제시 |
| RSA | 3명의 MIT 교수가 고안한 큰 인수의 곱을 소인수 분해하는 수학적 알고리즘을 이용하는 공개키 암호화 알고리즘 |
| ECC | RSA 암호 방식에 대한 대안으로 제안한 공개키 암호화 알고리즘, 유한체 위에서 정의된 타원곡선 군에서의 이산대수의 문제에 기초한 알고리즘 |
| ElGamal | 이산대수의 계산이 어려운 문제를 기본 원리로 하고 있음, RSA와 유사하게 전자서명과 데이터 암,복호화에 사용 가능 |
- 해시 암호화 알고리즘
| 종류 | 설명 |
| MD5 | MD4를 개선한 암호화 알고리즘, 프로그램이나 파일의 무결성 검사에 사용 |
| SHA-1 | 1993년 NSA에서 미 정부 표준으로 지정되었고, DSA에서 사용 |
| SHA-256/384/512 | SHA의 한 종류로서 256비트의 해시값 생성하는 해시 함수, AES의 키 길이인 128, 192, 256비트에 대응하도록 출력 길이 늘인 해시 알고리즘 |
| HAS-160 | 국내 표준 서명 알고리즘 KCDSA를 위하여 개발된 해시함수, MD5와 SHA1의 장점을 취하여 개발됨 |
| HAVAL | 메시지를 1024비트 블록으로 나누고 128, 160, 192, 224, 256 비트인 메시지 다이제스트를 출력하는 해시 알고리즘 |

4. 데이터베이스 암호화 기법
- API 방식, Plug-in 방식, TDE 방식, Hybrid 방식(API 방식과 Plug-In 방식 결합)
5. 안전한 전송을 위한 데이터 암호화 전송
- PPTP(Point to Point Tunnel Protocol)
- 마이크로소프트사가 개발한 프로토콜로 IP, IPX 페이로드를 암호화하고, IP 헤더로 캡슐화하여 전송하는 프로토콜
- 하나의 터널에 하나의 연결만 지원하여 일대일 통신만 가능
- 데이터 링크 계층(2계층)에서 사용하는 보안 프로토콜
- L2F(Layer 2 Forwarding)
- 시스코에서 개발한 프로토콜로 하나의 터널에 여러 개의 연결을 지원하여 다자간 통신이 가능하도록 하는 프로토콜
- 전송 프로토콜로 TCP가 아닌 UDP를 사용
- 데이터 링크 계층(2계층)에서 사용하는 보안 프로토콜
- L2TP(Layer 2 Tunneling Protocol)
- L2F와 PPTP의 결합한 방법, 호환성이 뛰어난 프로토콜
- UDP 포트가 사용되고 터널링에 대한 인증 수행함
- IPSec 기술과 함께 사용
- 데이터 링크 계층에서 사용하는 보안 프로토콜
- IPSec
- 개념 : IP 계층(3계층)에서 무결성과 인증을 보장하는 인증 헤더와 기밀성을 보장하는 암호화를 이용한 IP 보안 프로토콜
- 기능 : 기밀성, 비 연결형 무결성, 인증, 재전송 공격 방지, 접근 제어
- 동작 모드 : 전송 모드, 터널 모드
- 프로토콜 : 인증 프로토콜, 암호화 프로토콜, 키 관리 프로토콜
- SSL/TLS
- 개념 : 전송계층(4계층)과 응용계층(7계층) 사이에서 클라이언트와 서버 간의 웹 데이터 암호화, 상호 인증 및 전송 시 데이터 무결성을 보장하는 보안 프로토콜
- 보안 기능 : 기밀성, 상호인증, 메시지 무결성
- S-HTTP : 웹상에서 네트워크 트래픽을 암호화하는 주요 방법 중하나, 클라이언트와 서버 간 전송되는 모든 메시지를 각각 암호화하여 전송하는 기술
Chapter2. 소프트웨어 개발 보안 구현
1. SW 개발 보안 구현
- 시큐어 코딩 가이드 : 설계 및 구현 단계에서 해킹 등의 공격을 유발할 가능성 있는 잠재적인 보안 취약점을 사전에 제거하고, 외부 공격으로부터 안전한 SW를 개발하는 기법
- 입력 데이터 검증 및 표현
- 개념 : 입력 데이터로 인해 발생하는 문제들을 예방하기 위해 구현 단계에서 검증해야 하는 보안 점검 항목들
- 취약점
- XSS : 검증되지 않은 외부 입력 데이터가 포함된 웹페이지가 전송되는 경우, 사용자가 해당 웹페이지를 열람함으로써 웹페이지에 포함된 부적절한 스크립트가 실행되는 공격
- CSRF : 사용자가 자신의 의지와는 무관하게 공격자가 의도한 행위를 특정 웹사이트에 요청하게 하는 공격
- SQL 삽입 : 응용 프로그램의 보안 취약점을 이용해서 악의적인 SQL 구문을 삽입, 실행시켜서 데이터베이스의 접근을 통해 정보를 탈취하거나 조작 등의 행위를 하는 공격
2. 시스템 보안 구현
- 보안 솔루션
- 네트워크 보안 솔루션
| 솔루션 | 설명 |
| 방화벽 | 기업 내부, 외부 간 트래픽을 모니터링하여 시스템의 접근을 허용하거나 차단하는 시스템 |
| 웹 방화벽 | 일반적인 네트워크 방화벽과 달리 웹 애플리케이션 보안에 특화된 장비 |
| 네트워크 접근 제어 (NAC) |
단말기가 내부 네트워크 접속을 시도할 때 이를 제어하고 통제하는 기능을 제공하는 솔루션 |
| 침입 탐지 시스템 | 네트워크에서 발생하는 이벤트를 모니터링하고 비인가 사용자에 의한 자원접근과 보안정책 위반 행위를 실시간으로 탐지하는 시스템 |
| 침입 방지 시스템 | 네트워크에 대한 공격이나 침입을 실시간적으로 차단하고, 유해 트래픽에 대한 조치를 능동적으로 처리하는 시스템 |
| 무선 침입 방지 시스템 | 인가되지 않은 무선 단말기의 접속을 자동으로 탐지 및 차단하고 보안에 취약한 무선 공유기를 탐지하는 시스템 |
| 통합 보안 시스템 | 방화벽, 침입 탐지 시스템, VPN 등 다양한 보안 장비 기능을 하나의 장비로 통합하여 제공하는 시스템 |
| 가상 사설망 (VPN) |
인터넷과 같은 공중망에 인증, 암호화, 터널링 기술을 활용하여 마치 전용망을 사용하는 효과를 가지는 보안 솔루션 |
| SIEM | 다양한 보안 장비와 서버, 네트워크 장비 등으로부터 보안 로그와 이벤트 정보를 수집한 후 정보 간 연관성을 분석하여 위협 상황을 인지하고, 침해사고에 신속하게 대응하는 보안 관제 솔루션 |
- 시스템 보안 솔루션 : 스팸 차단 솔루션, 보안 운영체제
- 콘텐츠 유출 방지 보안 솔루션
3. SW 개발 보안 테스트와 결함 관리
- 개념 : SW 보안 요구사항이 반영되어 있음을 보증하고, 취약점을 발견하고 개선하여 안전한 SW를 개발하기 위한 활동
- 테스트 유형
| 구분 | 설명 | 특징 |
| 정적 분석 | - SW를 실행하지 않고 보안 약점 분석 - SW 개발 단계에서 주로 사용 |
- 취약점 초기 발견으로 수정비용 절감 - 컴포넌트 간 발생할 수 있는 통합된 취약점 발견에 제한적 - 설계, 구조 관점의 취약점은 식별 가능 |
| 동적 분석 | - SW 실행환경에서 보안 약점 분석 - SW 시험 단계에서 주로 사용 |
- 소스 코드 필요 X - 정확도와 커버리지 향상 - 구조 관점의 보안 약점은 식별 불가 |
'자격증 > 정보처리기사' 카테고리의 다른 글
| [정처기 개념] 10. 애플리케이션 테스트 관리 (0) | 2025.07.04 |
|---|---|
| [정처기 개념] 7. SQL 응용 ~ 8. 서버 프로그램 구현 (0) | 2025.07.03 |
| [정처기 개념] 4. 통합 구현 ~ 5. 인터페이스 구현 (0) | 2025.07.02 |
| [정처기 개념] 3. 데이터 입출력 구현 (0) | 2025.07.01 |
| [정처기 개념] 2. 화면 설계 (0) | 2025.07.01 |