2022. 4. 23. 21:05ㆍ정보처리기사/실기
소프트웨어 개발 보안 설계
SW 개발 보안의 개념
- 개발과정에 지켜야 할 일련의 보안 활동 : 요구 사항 명세 -> 설계 -> 구현 -> 테스트 -> 유지 보수
구성요소
- 3대 요소 : 기밀성, 무결성, 가용성
- 보안 용어 : 자산, 위협, 취약점, 위험
보안을 위한 공격기법의 이해
(1) 도스 공격 : 악의적으로 공격해 시스템 자원 고갈시키는 것, TCP 연결을 소진시키는 공격
- SYN 플러딩 : TCP 구조적 문제를 이용, SYN 패킷만 보내 점유해 사용자가 서버 사용 불가능하게 만듬, 공격자는 ACK 발송하지 않고 새로운 연결 요철을 하게 되어 자원만 소비 고갈
- UDP 플러딩 : 대량의 UDP 만들어 임의의 포트 번호로 전송해 응답 메시지 생성하게 해 지속적 자원 고갈, ICMP 패킷은 변도되어 공격자에게 전달 되지 않아 대기함
- 스머핑 : 출발지 주소를 공격 대상의 IP로 설정 네트워크 전체에 ICMP echo 패킷을 직접 브로드캐스팅해 마비, 바운스 사이트로 제 3의 사이트 이용 공격
- Ping of Death : ICMP 패킷 정상적인 크기보다 크게 만들어 전송, 다수의 IP 단편화가 발생, 단편된 패킷을 처리하는 과정에 과부화 발생, 재조합 버퍼의 오버플로우가 발생해 정상적인 서비스를 하지 못하도록 하는 공격 기법
- 랜드 어택 : 출발지와 목적지를 동일 IP로 설정해 스스로 가용성 침해
- 티어 드롭 : IP 헤더가 조작된 일련의 패킷 조각들을 전송
- 봉크/보잉크 : 프로토콜 오류 제어 이용한 공격 기법으로 시스템의 패킷 재전송과 재조립이 과부하 유발
- 예 : 봉크 : 같은 시퀀스 번호 계속 보냄, 보잉크 : 일정한 간격으로 시퀀스 번호에 빈 공간 생성
(2) 디도스 공격 : 도스와 달리 분산 배치해 동시에 동작하게 함으로 사이트 공격, 취약 컴퓨터 액세스해 원격으로 공격 개시
- 공격 요소
- 핸들러 : 마스터 시스템 역할
- 에이전트 : 공격 대상에 직접 공격
- 마스터 : 직접 명령 받는 시스템, 여러대 에이전트 관리
- 공격자 : 공격 주도 해커
- 데몬 프로그램 : 에이전트 시스템의 역할 수행
- 공격 도구
- Trinoo : 통합된 UDP flood 서비스 거부 공격을 유발해 사용, 몇 개의 서버들과 많은 수의 클라이언트들로 이뤄짐
- Tribe Flood Network : 위와 비슷하고 분산 도구로 많은 소스에서 하나 혹은 여러 개의 목표 시스템에 대해 서비스 거부 공격, 공격자가 마스터를 통해 명령을 일련의 TFN 서버들에게 보냄, Flood 뿐 아니라 SYN, ICM공격 또한 수행
- Stacheldrant : 에이전트 역할 하는 리눅스 및 솔라리스 용 멀웨어 도구
- 대응 방안 : 차단 정책 업데이트, 좀비PC IP 확보, 보안 솔루션 운영, 홈페이지 보안 관리, 시스템 패치
- 공격 종류
- 대역폭 소진 공격 (3~4 계층)
- UDP/ICMP Traffic Flooding : UDP/ICMP, DNS Query Flooding
- TCP Traffic Flooding : SYN, SYN+ACK Flooding
- IP Flooding : LAND Attack, Teardrop
- 서비스 마비 공격 (7계층)
- HTTP Traffic Flooding : GET Flooding, GET with Cache-Control
- HTTP Header / Option Spoofing : Slowris, Slowloris, Slow HTTP Read Dos
- Other L7 Service Flooding : Hash Dos, Hulk Dos, FTP/SMTP Attack
- 대역폭 소진 공격 (3~4 계층)
(3) DRDos 공격 : 출발지 IP를 공격 대상으로 위조해 다수의 반사 서버로 요청 정보를 전송, 공격 대상자는 반사 서버로부터 다량의 응답을 받아 서비스 거부 공격
- 절차
- 출발지 IP 변조 : 공격대상자로 설정 Spoofin해 SYN 패킷 공격 경유지 서버로 전송
- 공격 대상자 서버로 응답 : Sppofing 된 IP로 SYN/ACK 전송
- 서비스 거부 : 수 많은 응답을 받아 서비스 거부
- 대응 방안 : ISP가 직접 차단, 연결을 완료하지 않은 SYN 출처 IP 조사해 블랙리스트, 필터링해 운영
(4) 세션 하이재킹 : TCP 세션 관리 취약점을 이용한 공격 기법
- 특징
- 보안상 취약점 발견, 빅팀과 서버 사이의 패킷을 스니핑해 시퀀스 넘버 획득하고, 공격자는 전송준인 빅팀과 서버 사이 비동기 상태로 강제, 스니핑해 얻은 클라이언트 시퀀스 넘버 이용해 공격
- 비동기 상태 패킷이 유실시 재전송 패킷이 증가
- ACK Strom 증가, 네트워크 과부하 발생
- 탐지 방법
- 비동기 상태 탐지, ACK 패킷 비율 모니터링, 특정 세션에서 패킷 유실 및 재전송 증가 탐지, 기대하지 않은 접속의 리셋 탐지
(5) 애플리케이션 공격
- HTTP GET Flooding, Slowloris, RUDY, Slow HTTP Read Dos, Hulk Dos, Hash Dos
(6) 네트워크 공격
- 스니핑, 네크워크 스캐너 혹 스니퍼, 패스워드 크래킹(사전 크래킹, 무차별 크래킹, 패스워드 하이브리드 공격, 레인보우 테이블 공격), IP 스푸핑, ARP 스푸핑, ICMP Redirect 공격, 트로이 목마
(7) 시스템 보안 위협
- 버퍼 오버플로우 공격 : 할당된 버퍼 크기 초과하는 데이터 입력, 흐름 변경시켜 악성 코드 실행
- 스택 버퍼 오버플로우 공격, 힙 버퍼 오버플로우 공격
- 대응 방법 : 스택가드, 스택쉴드, ASLR, 안전한 함수 활용
- 백도어 : 정상적인 인증 절차 우회, 허가 받지 않고 시스템에 접속하는 권리 얻기 때문에 은밀히 작동
- 탐지 기법 : 프로세스 및 열린 포트 확인, Setuid 파일 검사, 백신 및 백도어 탐지 툴 활용, 무결성 검사, 로그 분석
- 주요 시스템 보안 공격 기법
- 포맷 스트링 공격, 레이스 컨디션 공격, 키로거 공격, 루트 킷
(8) 보안 관련 용어
- 스피어피싱, 스미싱, 큐싱, 봇넷, APT 공격, 공급망 공격, 제로데이 공격, 웜, 악성 봇, 사이버 킬체인, 랜섬웨어, 이블 트윈 공격
서버 인증 및 접근 통제
(1) 개념 : 다중 사용자 시스템과 망 운영 시스템에서 접속자의 로그인 정보 확인하는 보안 절차, 무결성과 인증
(2) 기능 : 스니핑 방지, 피싱 방지, 데이터 변조 방지, 기업 신뢰도 향상
(3) 인증 기술의 유형 : 지식기반, 소지기반, 생체기반, 특징기반 인증
(4) 서버 접근 통제
- 개념 : 프로세스가 서버 내 파일 CRUD 접근 여부 허가하거나 거부하는 기능
- 목적 : 비인가로 부터 기밀성 무결성 가용성 보장
- 용어 : 주체, 객체, 접근
- 통제 기법 : 식별, 인증, 인가, 책임추적성
- 서버 접근 통제 유형 : 임의적 접근 통제, 강제적 접근 통제, 역할 기반 접근 통제
- 3A : 인증 Authentication, 권한 부여 Authorization, 계정 관리 Accounting
(5) 접근 통제 보호 모델
- 벨 라파듈라 모델 : 미 국방부 지원, 기밀성 강조 : No Read Up, No write Down
- 비바 모델 : 위 모델 단점 보완, 무결성 보장 : No Read Down, No Write up
SW 개발 보안을 위한 암호화 알고리즘
(1) 개념 : 무결성 및 기밀성 확보 위해 정보를 쉽게 해독할 수 없는 형태로 변환
- 평문, 암호문, 암호화, 복호화, 키, 치환 암호, 전치 암호
(2) 방식
- 양방향 방식
- 대칭키 암호 방식 : 암 복호화에 같은 암호 키 사용
- 블록 암호 방식 : 고정 길리 블록을 암호화하는 방법 : DES, AES, SEED
- 스트링 암로 방식 : 난수열 발생시켜 평문과 더불어 암호문 생성 : RC4
- 키의 갯수 : n(n-1)/2
- 계산 속도가 빠름, 키분배나 관리가 어렵다, 기밀성만 보장함
- 비대칭 키 암로 방식 : 공개 키는 누구나 알지만 그에 대응하는 개인 키는 소유자만 알고 있다, 공개키로 암호화하면 반드시 개인 키로 복호화해야 한다.
- RSA, ECC, ElGamal, Diffie-Helman
- 키 갯수 : 2n
- 암호화 키 사전 공유 불필요, 키 수가 적다, 계산 속도 느림
- 대칭키 암호 방식 : 암 복호화에 같은 암호 키 사용
- 일방향 방식
- 임의 길이 정보 입력 받아, 고정된 길이의 암호문 출력, 해시 알고리즘 적용된 경우 복호화 불가능
- 해쉬 함수 기반은 MAC과 MDC 존재
- MAC : 키를 사용하는 메시지 인증코드 메시지의 무결성과 송신자의 인증 보장 : HMAC, NMAC
- MDC : 키를 사용하지 않는 변경 감지 코드 메시지의 무결성 보장 : MD5, SHA
(3) 종류
- 대칭키 암호화 : DES, SEED, AES, ARIA, IDEA, LFSR
- 비대칭키 암호화 : Diffie-Hellman, RSA, ECC, ElGamal
- 해쉬 암호화 : MD5, SHA-1, SHA-256/384/512, HAS-160, HAVAL
안전한 전송을 위한 데이터 암호화 전송
- IPSec : 3계층에서 무결성과 인증을 보장하는 인증 헤더와 기밀성을 보장하는 암호화 이용한 보안 프로토콜
- 기능 : 기밀성, 비연결형 무결성, 인증, 재전송 공격 방지, 접근 제어
- 동작 모드 : 전송 모드, 터널 모드
- 프로토콜 : 인증 프로토콜 AH, 암호화 프로토콜 ESP, 키 관리 프로토콜 IKE
- SSL/TLS : 4와 7계층 사이의 클라이언트와 서버 간의 웹 데이터 기밀성, 상호 인증 및 전송 시 데이터 무결성 보장하는 보안 프로토콜
- 특징 : Netscape 사가 개발, 다양한 암호 통신 방법 활용, 특정 암호 기술에 의존 하지 않음
- 기능 : 기밀성, 상호인증, 메시지 무결성
- 구성요소 : Change Cipher Spec Protocol, Alert Protocol, Hearbeat Protocol, HandShake Protocol, Record Protocol
- SHTTP : 웹상에서 네트워크 트래픽을 암호화, 클라와 서버 간 모든 메시지 각 암호화, HTTP 사용하는 앱에서만 가능
자산에 대한 보안 항목 식별
(1) 용어 : 자산, 사용자, 소유자, 관리자
(2) 정보 자산의 식별 : 중요 자산을 보호하기 위해 자산의 식별과 평가 수행, 중복 누락을 최소화하여 자산 목록 작성
(3) 분류 기준 : 소프트웨어, 하드웨어, 데이터, 문서, 시설, 지원 설비, 인력
'정보처리기사 > 실기' 카테고리의 다른 글
[정보처리기사 실기] 10장 애플리케이션 테스트 관리 - 테스트 케이스 설계 (0) | 2022.04.24 |
---|---|
[정보처리기사 실기] 9장 소프트웨어 개발 보안 구축 - 소프트웨어 개발 보안 구현 (0) | 2022.04.23 |
[정보처리기사 실기] 8장 서버 프로그램 구현 - 서버와 배치 프로그램 구현 (0) | 2022.04.23 |
[정보처리기사 실기] 8장 서버 프로그램 구현 - 공통 모듈 구현 (0) | 2022.04.23 |
[정보처리기사 실기] 8장 서버 프로그램 구현 - 개발 환경 구축 (0) | 2022.04.23 |