소프트웨어 개발 보안 설계 1

소프트웨어 개발 보안 설계

1. SW 개발 보안 3대 요소

3대 요소 설명
기밀성
(Confidentiality)
인가되지 않은 개인 혹은 시스템 접근에 따른 정보 공개 노출차단
무결성
(Integrity)
정당한 방법을 따르지 않고 데이터가 변경 되지 않으며, 데이터의 정확성 완전성고의/악의로 변경 or 훼손되지 않음 보장
가용성
(Availability)
권한을 가진 사용자 or 애플리케이션이 원하는 서비스를 지속해서 사용할 수 있도록 보장

 

SW 개발 보안 용어

용어 설명
자산 조직의 데이터 or 소유자가치를 부여한 대상
위협 조직 or 기업의 자산악영향을 끼칠 수 있는 시간 or 행위
취약점 위협이 발생하기 위한 사전 조건으로 시스템의 정보 보증을 낮추는 데 사용되는 약점
위험 위협이 취약점을 이용조직의 자산 손실 피해를 가져올 가능성
 

2. DoS(Denial of Service) 공격 

 - 시스템을 악의적으로 공격해당 시스템의 자원을 부족하게 하여 사용하지 못하게 하는 공격

 

3. DoS 공격 종류

공격기법 설명
SYN 플러딩
(SYN Flooding)
- 서버의 동시 가용 사용자 수 SYN 패킷만 보내 점유하여 다른 사용자가 서버를 사용하지 못하게 하는 공격
- TCP 연결 설정을 위한 3-way handshaking과정에서 half-open 연결 시도가 가능하다는 취약성을 이용하는 공격 방식

UDP 플러딩
(UDP Flooding)
- 대량의 UDP 패킷만들어 임의의 포트 번호로 전송하여 지속적으로 자원 고갈시키는 공격
스머프 / 스머핑
(Smurf / Smurfing)
- 출발지 주소공격 대상의 IP로 설정네트워크 전체에게 ICMP Echo 패킷을 직접 브로드캐스팅하여 마비시킴
죽음의 핑
(PoD : Ping of Death)
- ICMP 패킷(Ping)정상적인 크기보다 아주 크게 만들어서 전송
랜드어택
(Rand Attack)
- 출발지 IP목적지 IP같은 패킷 주소로 만들어 보내 수신자가 자기 자신에게 응답을 보내게
티어드롭
(Tear Drop)
- IP 패킷의 재조합 과정에서 잘못된 Fragment Offset 정보로 인해 수신 시스템이 문제를 발생하도록 만드는 공격
봉크 / 보잉크
(Bonk / Boink)
- 시스템의 패킷 재전송재조립과부화를 유발

 

4. DDoS 공격

 - 여러 대의 공격자를 분산 배치하여 동시에 동작하게 함으로써 특정 사이트 공격

 

5. DDoS 공격 도구

공격 도구 설명
Trinoo 많은 소스로부터 통합UDP flood 서비스 거부 공격을 유발하는데 사용
TFN
(Tribe Flood Network)
Trinoo와 비슷한 분산 도구. 많은 소스에서 하나 혹은 여러개의 목표 시스템에 대해 서비스 거부 공격
Stacheldraht 분산 서비스 거부 에이전트 역할

 

6. DRDoS (Dustributed Reflection DoS)

 - 공격자는 출발지 IP공격대상 IP로 위조하여 다수의 반사 서버로 요청 정보를 전송

 - 공격 대상자반사 서버로부터 다량의 응답을 받아 서비스 거부(DoS)가 되는 공격

 

7. 세션 하이재킹 (Session Hijacking)

 - TCP의 세션 관리 취약점을 이용한 공격기법

 - 서버와 클라이언트가 TCP 통신을 하고 있을 때, RST 패킷을 보내고 시퀀스 넘버 등을 조작해 연결을 가로채는 공격 방식

 

8. 세션 하이재킹의 탐지방법

 - 비동기화 상태 감지

 - ACK 패킷 비율 모니터링

 - 특정 세션에서 패킷 유실 재전송이 증가되는 것을 탐지

 - 기대하지 않은 접속의 리셋 탐지

 

9. 애플리케이션 공격

공격 기법 설명
HTTP GET 플러딩
(HTTP GET Fooding)
과도한 GET 메시지를 이용웹 서버의 과부하를 유발
Slowloris
(Slow HTTP Header DoS)
HTTP GET 메서드를 사용해 헤더의 최종 끝을 알리는 개행 문자열을 전송하지 않음
RUDY
(Slow HTTP POST DoS)
요청 헤더의 Content-Length를 비정상적 크기로 설정하고 메시지 바디 부분을 매우 소량으로 보내 계속 연결상태 유지키는 공격
ex) Content-Length : 999999 설정 이후, 1바이트씩 전송
Slow Read Attack TCP 윈도 크기데이터 처리율감소시킨 상태에서 다수 HTTP 패킷을 지속적으로 전송
Hulk DoS 공격자가 공격대상 웹사이트 URL을 지속적으로 변경하면서, 다량으로 GET 요청을 발생시키는 서비스 거부 공격
Hash DoS 조작된 많은 수의 파라미터를 POST 방식으로 웹 서버로 전달하여 다수의 해시 충돌을 발생

 

10. 네트워크 공격

공격기법 설명
스니핑
(Sniffing)
- 직접 공격하지 않고 데이터만 몰래 들여다보는 수동적 공격
- 네트워크 상에서 자신이 아닌 다른 상대방들의 패킷 교환을 훔쳐보는 것

네트워크
스캐너(Scanner),
스니퍼(Sniffer)
- 네트워크 HW, SW 구성의 취약점을 탐색하는 공격 도구
패스워드 크래킹
(Password Cracking)
- 사전(Dictionary) 크래킹 : ID패스워드될 가능성이 있는 단어파일로 만들어 놓음
- 무차별(Brute) 크래킹 : 패스워드로 사용될 수 있는 글자무작위로 패스워드 자리에 대입
- 패스워드 하이브리드 공격 : 사전 + 무차별
- 레인보우 테이블 공격 : 패스워드 별로 해시 값을 미리 생성해서 역으로 패스워드를 찾음
IP 스푸핑
(IP Spoofing)
- 침입자가 인증된 컴퓨팅 시스템인 것처럼 속이기 위해서 본인의 패킷 헤더인증된 호스트의 IP로 위조 타깃에 전송
ARP 스푸핑
(ARP Spoofing)
- 공격자가 특정 호스트의 MAC 주소 자신의 MAC 주소로 위조ARP Reply를 만들어 특정 호스트의 MAC 정보공격자의 MAC 정보로 변경
ICMP Redirect - 스니핑 시스템네트워크에 존재하는 또 다른 라우터라고 알림으로써 패킷의 흐름을 바꿈
- Redirect 메시지공격자가 원하는 형태로 만들어서 공격
트로이 목마 - 겉보기에는 정상적인 프로그램으로 보이지만, 실행하면 악성 코드를 실행하는 프로그램

 

11. 블루투스 공격 기법

용어 설명
블루재킹 블루투스를 이용하여 스팸메일처럼 메시지를 익명으로 퍼뜨리는 공격
블루프린팅
(Blueprinting)
블루투스 공격 장치 검색 활동
블루스나프
(Bluesnarf)
블루투스의 취약점을 이용하여 장비의 임의 파일에 접근하는 공격
블루버그 블루투스 장비 간 취약한 연결 관리를 악용한 공격

 

12. 버퍼 오버플로우 공격(Buffer Overflow)

 - 메모리에 할당된 버퍼크기를 초과하는 양의 데이터를 입력해 공격

 

13. 버퍼 오버플로우 공격 유형

 - 스택 버퍼 오버플로우

 - 버퍼 오버플로우

 

14. 대응 방안

대응 방안 설명
스택가드 활용
(Stackguard)
버퍼 오버플로우 발생 시, 카나리 값을 체크
스택쉴드 활용
(Stack Shield)
함수 시작 시, 복귀 주소를 Global RET에 저장해 두고 함수 종료 시, 저장된 값 스택의 RET값을 비교해서 다를 경우, 프로그램 중단
ASLR 활용
(Address Space
Layout Randomization)
주소 공간 배치를 난수화. 리눅스에서 설정가능

 

15. 백도어

 - 어떤 제품이나 컴퓨터 시스템, 암호 시스템, 알고리즘에서 정상적인 인증 절차를 우회하는 기법

 

16. 주요 시스템 보안 공격기법

공격 기법 설명
포맷 스트링 공격 외부로부터 입력된 값을 검증하지 않고 그대로 사용하는 경우, 발생하는 취약점 공격법
레이스 컨디션 공격
(Race Condition
Attack)
실행되는 프로세스가 임시파일을 만드는 경우, 악의적인 프로그램을 통해 프로세스의 실행 중에 끼어들어 임시파일을 심볼릭 링크하는 공격기법
키로거 공격
(Key Logger
Attack)
사용자의 키보드 움직임을 탐지해서 개인의 중요한 정보를 몰래 빼가는 해킹공격
루트킷
(Rootkit)
시스템 침입 후, 사실을 숨긴 채 차후의 침입을 위해 불법적인 해킹기능을 제공하는 프로그램의 모음
크라임웨어
(Crimeware)
해커가 시스템의 민감한 정보를 수집하거나, 네트워크상의 다른 시스템을 공격 or 추적 회피를 위한 중간 지점으로 이용하더라도 로그를 지워 버릴수 있어 탐지하기 어려운 도구

 

17. 보안 관련 용어

용어 설명
스피어피싱
(Spear Phishing)
메일을 이용한 공격
스미싱
(Smishing)
문자메시지를 이용한 공격
큐싱
(Qushing)
QR코드를 이용한 공격
APT 공격
(Advanced Persistent
Threat)
특정 타깃을 목표로 하여 다양한 수단을 통해 지속적이고 지능적 맞춤형 공격기법
공급망 공격
(Supply Chain Attack)
SW 개발사의 네트워크에 침투하여 소스 코드를 수정하여 악의적인 코드를 삽입해 공격
제로데이 공격
(Zero Day Attack)
보안 취약점이 발견되어 널리 공표되기 전에 해당 취약점을 악용하여 공격
스스로 복제하여 네트워크로 전파하는 악성 SW 컴퓨터 프로그램
악성 봇
(Malicious Bot)
스스로 실행되지 못하고 해커에 의해 제어, 실행
사이버 킬체인 7단계 프로세스별 APT 공격 방어 분석모델
랜섬웨어
(Ransomware)
몸값을 요구하는 악성 SW
이블 트윈 공격
(Evil Twin)
무선 Wifi 피싱 기법
해시 함수
(Hash Function)
임의의 길이를 갖는 값을 입력받으면, 고정된 길이의 값을 출력하는 함수
SET
(Secure Electronic
Transaction)
온라인상의 안전한 거래를 위해 Visa Master Card에서 개발한 프로토콜
 

'정보처리기사 > DB' 카테고리의 다른 글

SW 개발 보안 구현  (0) 2023.04.04
소프트웨어 개발 보안 설계 2  (0) 2023.04.03
공통 모듈 구현  (0) 2023.03.31
개발환경 구축  (0) 2023.03.30
집계성 SQL 작성  (0) 2023.03.29