1. 소프트웨어 개발 보안 설계
- SW 개발 보안 3대 요소 (기무가)
기밀성(Confidentiality) | 인가되지 않은 개인 혹은 시스템 접근에 따른 정보 공개 및 노출을 차단하는 특성 |
무결성(Integrity) | 정당한 방법을 따르지 않고서는 데이터가 변경될 수 없으며, 데이터의 정확성 및 완전성과 고의/악의로 변경되거나 훼손 또는 파괴되지 않음을 보장하는 특성 |
가용성(Availability) | 권한을 가진 사용자나 애플리케이션이 원하는 서비스를 지속해서 사용할 수 있도록 보장하는 특성 |
- SW 개발 보안 용어
자산(Assets) | 조직의 데이터 또는 조직의 소유자가 가치를 부여한 대상 예) 서버의 하드웨어, 기업의 중요 데이터 |
위협(Threat) | 조직이나 기업의 자산에 악영향을 끼칠 수 있는 사건이나 행위 예) 해킹, 삭제, 자산의 불법적인 유츌, 위/변조, 파손 |
취약점(Vulnerability) | 위협이 발생하기 위한 사전 조건으로 시스템의 정보 보증을 낮추는 데 사용되는 약점 예) 평문 전송, 입력값 미검증, 비밀번호를 공유 |
위험(Risk) | 위협이 취약점을 이용하여 조직의 자산 손실 피해를 가져올 가능성 |
- DoS 공격 : 시스템을 악의적으로 공격해 해당 시스템의 자원을 부족하게 하여 원래 의도된 용도로 사용하지 못하게 하는 공격
- DoS 공격의 종류 : SYN 플러딩, UDP 플러딩, 스머프, 죽음의 핑(PoD), 랜드어택, 티어드롭, 봉크, 보잉크
- SYN 플러딩 : 서버의 동시 가용 사용자 수를 SYN패킷만 보내 점유하여 다른 사용자가 서버를 사용 불가능하게 하는 공격
- UDP 플러딩 : 대량의 UDP 패킷을 만들어 임의의 포트 번호로 전송하여 응답 메시지를 생성하게 하여 지속해서 자원을 고갈시키는 공격 (ICMP Destination Unreachable) (피해서버 IP로 변조, UDP 전송 -> 내가 보낸거 아닌데??)
- 스머프/스머핑 : 출발지 주소를 공격 대상의 IP로 설정하여 네트워크 전체에게 ICMP Echo 패킷을 직접 브로드캐스팅(Directed Broadcasting)하여 마비시키는 공격
- 죽음의 핑(PoD) : ICMP 패킷(Ping)을 아주 크게 만들어 전송 시 다수의 IP 단편화가 발생하고 재조합 시 부하가 발생하여 정상적인 서비스를 하지 못하도록 하는 공격기법
- 랜드 어택 : 출발지(Source) IP와 목적지(Destination) IP를 같은 패킷 주소로 만들어 보냄으로써 수신자가 자기 자신에게 응답을 보내게 하여 시스템의 가용성을 침해하는 공격기법
- 티어 드롭 : IP 패킷의 재조합 과정에서 잘못된 Fragment Offset정보로 인해 수신시스템이 문제를 발생하도록 만드는 DoS 공격
- DDoS 공격 : DoS의 또 다른 형태로 여러 대의 공격자를 분산 배치하여 동시에 동작하게 함으로써 특정 사이트를 공격하는 기법
- DDoS 공격의 종류 : 대역폭 소진 공격, 서비스 마비 공격
- DRDoS 공격 : 공격자는 출발지 IP를 공격대상 IP로 위조하여 다수의 반서 서버로 요청 정보를 전송, 공격 대상자는 반사 서버로부터 다량의 응답을 받아서 서비스 거부(DoS)가 되는 공격
- 세션 하이재킹(Session Hijacking) : '세션을 가로채다'라는 의미로 정상적 연결을 RST패킷을 통해 종료시킨 후 재연결 시 희생자가 아닌 공격자에게 연결하는 TCP의 세션관리 취약점을 이용한 공격기법
- 애플리케이션 공격 : DDoS를 통한 서비스 마비 공격
- 애플리케이션 공격 기법
HTTP GET 플러딩 | 과도한 Get 메시지를 이용하여 웹 서버의 과부하를 유발시키는 공격 |
Slowloris | HTTP GET 메서드를 사용하여 헤더의 최종 끝을 알리는 개행 문자열인 \r\n\r\n(Hex: 0d 0a 0d 0a)을 전송하지 않고, \r\n(Hex: 0d 0a)만 전송하여 대상 웹 서버와 연결상태를 장시간 지속시키고 연결 자원을 모두 소진시키는 서비스 거부 공격 |
RUDY | 요청 헤더의 Content-Length를 비정상적으로 크게 설정하여 메시지 바디 부분을 매우 소량으로 보내 계속 연결상태를 유지시키는 공격 |
- 네트워크 공격
스니핑(Sniffing) | 공격대상에게 직접 공격을 하지 않고 데이터만 몰래 들여다보는 수동적 공격 기법 |
IP 스푸핑(IP Spoofing) | 침입자가 패킷 헤더 수정을 통해 인증된 호스트의 IP 어드레스를 위조하여 서비스에 대한 인증되지 않은 액세스 권한을 입수하는데 사용되는 기법 |
ARP 스푸핑 | 공격자가 의도대로 희생자의 특정 호스트의 MAC정보를 공격자의 MAC 정보로 변경하여 특정 호스트로 나가는 패킷을 스니핑하는 기법 |
ICMP Redirect | 3계층에서 스니핑 시스템을 네트워크에 존재하는 또 다른 라우터라고 알림으로써 패킷의 흐름을 바꾸는 공격 |
- 버퍼 오버플로우 공격의 대응기법
- 스택가드
- 스택쉴드
- ASLR
- 안전한 함수 활용
- 보안 관련 용어
- 스피어피싱(Spear Phishing) : 사회공학의 한 기법으로, 특정 대상에게 일반메일로 위장한 악성메일을 지속적으로 발송하여, 클릭하도록 유도하여 사용자의 개인정보를 탈취하는 공격기법
- 스미싱(Smishing) : 문자메시지를 이용하여 신뢰할 수 있는 사람 또는 기업이 보낸 것처럼 가장하여 개인 비밀정보를 요구하거나 휴대폰 소액 결제를 유도하는 피싱 공격
- 큐싱(Qshing) : 스마트폰을 이용하여 금융 업무를 처리하는 사용자에게 인증 등이 필요한 것처럼 속여 QR 코드를 통해 악성 앱을 내려받도록 유도, 금융 정보 등을 빼내는 피싱 공격
- APT 공격(Advanced Persistent Threat) : 특정 타깃을 목표로 하여 다양한 수단을 통한 지속적이고 지능적인 맞춤형 공격기법
- 공급망 공격(Supply Chain Atack) : 소프트웨어 개발사 배포 서버에 접근하여 설치파일을 악의적인 파일로 변경하여 설치 시 자동 감염되도록하는 공격
- 제로데이 공격 : 보안 취약점이 발견되어 널리 공표되기 전에 해당 취약점을 악용하여 이루어지는 보안 공격
- 웜(Worm) : 스스로를 복제하여 네트워크 등의 연결을 통하여 전파하는 악성 소프트웨어 컴퓨터 프로그램
- 악성 봇(Malicious Bot) : 스스로 실행되지 못하고, 해커의 명령에 의해 원격에서 제어 또는 실행이 가능 한 프로그램 혹은 코드
- 사이버 킬체인(Cyber Kill Chain) : 록히드 마틴의 공격형 방위 시스템으로 지속적 사이버 공격에 대해 7단계 프로세스별 공격분석 및 대응을 체계화한 APT 공격 방어분석 모델
- 랜섬웨어(Ransomware) : 악성코드의 한 종류로 감염된 시스템의 파일들을 암호화하여 복호화 할 수 없도록 하고, 피해자에게 암호화된 파일로 몸값을 요구하는 악성 소프트웨어
- 이블 트윈(Evil Twin)공격 : 무선 wifi 피싱 기법으로 공격자는 합법적인 wifi 제공자처럼 행세하며 노트북이나 휴대전화로 핫스팟에 연결한 무선 사용자들의 정보를 탈취하는 무선 네트워크 공격기법
- 서버접근통제 : 사람 또는 프로세스가 서버 내 파일에 읽기, 쓰기, 실행 등의 접근 여부를 허가하거나 거부하는 기능
- 서버 접근 통제의 유형(댁맥알백)
임의적 접근 통제(DAC; Discretionary Access Control) | 시스템에 대한 접근을 사용자/그룹의 신분 기반으로 제한하는 방법 |
강제적 접근 통제(MAC; Mandatory Access Control) | 시스템 정보의 허용등급을 기준으로 사용자가 갖는 접근 허가 권한에 근거하여 시스템에 대한 접근을 제한하는 방법 |
역할기반 접근 통제(RBAC; Role Based Access Control) | 중앙 관리자가 사용자와 시스템의 상호관계를 통제하며 조직 내 맡은 역할(Role)에 기초하여 자원에 대한 접근을 제한하는 방법 |
- 3A
인증(Authentication) | 접근을 시도하는 가입자 또는 단말에 대한 식별 및 신분을 검증 |
권한(Authorization) | 검증된 가입자나 단말에게 어떤 수준의 권한과 서비스를 허용 |
계정관리(Accounting) 서비스 | 리소스 사용에 대한 정보를 수집하고 관리하는 서비스 |
'정보처리기사 > Ⅸ. 소프트웨어 개발 보안 구축' 카테고리의 다른 글
Chapter 02. 소프트웨어 개발 보안 구현 (0) | 2022.04.26 |
---|---|
Chapter 01. 소프트웨어 개발 보안 설계(2) (0) | 2022.04.18 |