정보처리기사 2020 실기

[정보처리기사실기] 9.소프트웨어 개발 보안 구축 / 핵심 용어 정리

자바칩 프라푸치노 2020. 10. 15. 16:16

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

1. sw개발 보안

소스 코드 등에 존재하는 보안 취약점을 제거하고, 보안을 고려하여 기능을 설계 및 구현하는 등 소프트웨어 개발 과정에서 지켜야할 일련의 보안활동

 

2. sw개발 보안 생명주기

명설구테유

요구사항 명세 -> 설계 -> 구현 -> 테스트 -> 유지보수

 

3. sw개발 보안의 3대 요소

기가무

기밀성 무결성 가용성

 

4. sw개발 보안 용어

자산 - 조직의 데이터 또는 조직의 소유자가 가치를 부여한 대상

위협 - 조직이나 기업의 자산에 악영ㅇ향을 끼칠 수 있는 사건이나 행위

취약점 - 위협이 발생하기 위한 사전 조건에 따른 상황

위험 - 위협이 취약점을 이용하여 조직의 자산 손실 피해를 가져올 가능성

 

5. Dos공격

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

 

6. DoS 공격의 종류

지역 시스템 공격

원격 네트워크 공격

 

7. DDoS공격

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

 

8. DDoS 구성 요소

핸들러

에이전트

마스터

공격자

데몬 프로그램

 

9. DDoS공격 대응 방안

차단 정책 업데이트

좀비 PC IP확보

보안 솔루션 운영

홈페이지 보안 관리

시스템 패치

 

10. 자원 고갈 공격

서버 간 핸드세이크를 통해 통신이 연결되는 정상 트래픽과 달리 DoS 공격은 항상 정상 접속을 시도하는 오픈된 소켓에 트래픽을 집중 시킨다.

 

11. 자원 고갈 공격 기법

SYN플러딩 - TCP프로토콜의 구조적인 문제를 이용한 공격

서버의 동시 가용 사용자수를 SYN패킷만 보내 점유하여 다른 사용자가 서버를 사용 불가능하게 하는 공격

UDP플러딩 - 대량의 UDP패킷을 만들어 임의의 포트 번호로 전송하여 응답 메시지를 생성하게 하여 지속해서 자원을 고갈 시키는 공격

스머프 - 출발지 주소를 공격 대상의 IP로 설정하여 네트워크 전체에게 ICMP Echo패킷을 직접 브로드캐스팅하여 마비시키는 공격

PoD - 큰 사이즈의 패킷을 의도적으로 목표 시스템으로 발생시켜 시스템이 서비스할 수 없는 상태로 만드는 공격

 

12. 애플리케이션 공격

HTTP GET 플러딩 - Http 캐시 옵션을 조작하여 캐싱 서버가 아닌 웹서버가 직접 처리하도록 유도, 웹서버 자원을 소진시키는 서비스 거부 공격

Slowloris - HTTP GET메소드를 사용하여 헤더의 최종 끝을 알리는 개행 문자열을 전송하지 않아서 장시간 연결상태를 지속시키고 연결 자원을 모두 소진시키는 서비스 거부 공격

RUDY - 요청 헤더의 Content length를 비정상적으로 크게 설정하여 메시지 바디 부분을 매우 소량으로 보내 게속 연결 상태를 유지시키는 공격

 

13. 네트워크 서비스 공격

네트워크 스캐너, 스니퍼

패스워드 트래킹

ip스푸핑

트로이목마 - 악성루틴이 숨어있는 프로그램

 

14. 취약점 공격

랜드어택 - 출발지 ip와 목적지 ip를 같은 패킷 주소로 만들어 보냄으로써 수신자가 자기 자신에게 응답을 보내게 하여 시스템의 가용성을 침해하는 공격 기법

봉크/보잉크 - 프로토콜의 오류 제어를 이용한 공격 기법으로서 시스템의 패킷 재전송과 재조립이 과부하를 유발

티어드롭 - ip패킷의 재조합 과정에서 잘못된 fragment offset 정보로 인해 수신 시스템이 문제를 발생하도록 만드는 Dos공격

 

15. 암호 알고리즘

대칭키 암호 방식 - DES, AES, SEED

비대칭 키 암호 방식 - 디피 - 헬만, RSA

해시 방식 - SHA, MD5

 

16. DES( Data Encryption Standard)

56bit의 키를 이용 , 64bit 의 평문 블록을 64bit의 암호문 블록으로 만드는 블록 암호 방식의 미국표준 암호화 알고리즘

 

17. AES(Advanced Encryption Standard)

고급 암호화 표준

 

18. SEED

128bit 대칭 키 암호화 알고리즘

 

19. 정보자산 

자산 

사용자

소유자 

관리자

 

20. LDAP

사용자 정보를 유지를 위한 질의 및 디렉터리 서비스를 수정하기 위한 인터넷 프로토콜

 

21. salt

일방향 해시 함수에서 다이제스트를 생성할때 추가되는 바이트 단위의 임의의 문자열

 

22. 세션 하이재킹

TCP신뢰성 기반의 연결을 이용한 공격 방법, 통신 내용을 엿보거나, 세션을 가로채어 정상적인 인증과정을 무시하고 불법으로 시스템에 접근할 수 있는 공격

 

 


■소프트 웨어 개발 보안 구현

1. 시큐어 코딩 가이드

입아보시 에코캡

입력 데이터 검증 및 표현

API오용

보안 기능

시간 및 상태

에러 처리

코드 오류

캡슐화

 

2.SQL삽입 공격

웹 애플리케이션에서 입력 데이터에 대한 유효성 검증을 하지 않을 경우, 공격자가 입력 창 및 URL에 SQL문을 삽입하여 DB로부터 정보를 열람 조작할 수 있는 취약점 공격기법

 

3. XSS

웹 페이지에 악의적인 스크립트를 포함해 사용자 측에서 실행되게 유도할 수 있는 공격기법

 

4. 스니핑

공격대상에게 직접 공격을 하지 않고 데이터만 몰래 들여다보는 수동적 공격기법

 

5. 시간 및 상태 보안 약점 유형

경쟁 조건

종료되지 않은 반복문 또는 재귀함수

 

6. 코드 오류 보안 약점 유형

널 포인터 역참조

부적절한 자원 해제

해제된 자원 사용

초기화 되지 않은 변수 사용

 

7. 인증 관련 보안 약점

적절한 인증 없는 주요 기능 허용

반복된 인증시도 제한 기능부재

취약 패스워드 허용

 

 

8. 암호화 보안 약점 유형

취약 암호화 알고리즘 사용

충분하지 않은 키 길이 사용

하드 코딩된 비밀번호

부적절한 난수 사용

솔트 없는 일방향 해시 함수 사용

 

9. DNS

도메인 이름과 IP주소를 서로 변환하는 역할을 수행하는 서비스

 

10. API

프로그램을 작성하기 위한 일련의 서브 프로그램. 프로토콜등을 정의하여 상호 작용을 하기 위한 인터페이스 사양

 

11. 소프트웨어 개발 보안 테스트

정적 분석 - SW개발 단계

동적 분석 - SW시험 단계

 

 

 

728x90