-
(정보처리기사 실기) 소프트웨어 개발 보안 구축정보처리기사/실기 2020. 7. 22. 23:34
소프트웨어 개발 보안 설계
소프트웨어 개발 보안 : 보안 취약점을 제거하고 보안을 고려하여 기능 설계 및 구현
소프트웨어 보안의 구성요소
-기밀성 : 인가되지 개인이나 시스템에게 정보 공개 및 노출 차단
-가용성 : 권한을 가진 사용자나 애플리케이션이 서비스를 지속 사용할 수 있도록 보장
-무결성 : 정당한 방법이 아니면 데이터가 변경되지 않고 고의/악의로 데이터가 훼손되지 않음
소프트웨어 개발 보안 용어
- 자산 : 조직의 데이터 또는 조직의 소유자가 가치를 부여한 대상
-위협 : 조직이나 기업의 자산에 악영향을 끼칠 수 있는 사건이나 행위
-취약점 : 위협이 발생하기 위한 사전 조건에 따른 상황
-위험 : 위협이 취약점을 이용하여 자산 손실 피해를 가져올 가능성
소프트웨어 개발 보안을 위한 공격 기법의 이해
DoS 공격
-시스템을 악의적으로 공격해 시스템의 자원을 부족하게 하여 사용하지 못하게 하는 것
-수많은 접속 시도를 만들어 자원을 부족하게 하여 사용하지 못하게 하는 것
DoS 공격 종류
-지역 시스템 공격
-원격 네트워크 공격
DDos공격 : 여러대의 공격자를 분산 배치하여 동시에 동작하게 하여 공격
DDos공격 구성요소
-Handler : 마스터 시스템 역할
-Agent : 공격 대상에게 직접 공격
-Master : 공격자에게 명령을 받는 시스템
-Attacker : 공격을 주도하는 해커의 컴퓨터
-Daemon 프로그램 : 에이전트 시스템의 역할 수행
DDos공격 대응 방안
-차단 정책 업데이트
-좀비 PC IP 확보
-보안 솔루션 운영
-홈페이지 보안 관리
-시스템 패치
자원 고갈 공격 : 공격이 임계치에 도달하면 사용자들은 네트워크에 접속 할 수 없다.
-SYN 플러딩 : SYN 패킷만 보내 점유하여 다른 사용자가 서버 사용 불가능하게 함
-UDP 플러딩 : 대량의 UDP 패킷을 만들어 자원 고갈 시킴
-스머프 : 출발지 주소를 공격 대상의 IP로 설정하여 네트워크 전체에게 브로드캐스트 하여 마비
-PoD : 큰 사이즈의 패킷을 의도적으로 발생시켜 서비스 마비
애플리케이션 공격
-HTTP GET 플러딩 : Http 캐시 옵션을 조작하여 캐싱 서비스가 아닌 웹 서버가 직접 처리하도록 하여 웹서버 자원 소진
-Slowloris : 헤더의 최종 끝을 알리는 개행문자열(\r\n\r\n)을 전송하지 않아서 웹서버와 연결 상태를 장시간 지속 시켜서 자원 소진
-RUDY : 요청 헤더의 Content-length를 비정상적으로 크게 설정하고 메시지 바디 부분을 매우 소량으로 보내 계속 연결 시키는 공격
네트워크 서비스 공격
-네트워크 스캐너 : 네트워크의 취약점을 파악하기 위해 공격하는 도구
-패스워드 크래킹 : 사전 크래킹, 무차별 크래킹을 이용하여 패스워드 탐색
-IP 스푸핑 : 서버에 대한 인증되지 않은 액세스 권한 입수
-트로이 목마 : 겉보기에는 정상 프로그램이지만 실행하면 악성 코드 실행
취약점 공격
-랜드 어택 : 출발지 IP 와 목적지 IP 를 같은 패킷 주소로 만들어 보냄으로서 수신자가 자기 자신에게 응답을 보내게 하여 시스템의 가용성을 침해하는 기법
-봉크 / 보잉크 : 시스템의 패킷 재전송과 재조립의 과부하를 유발하는 공격
-티어 드롭 : IP패킷의 재조합 과정에서 Fragment Offset 정보로 인해 수신 시스템이 문제를 일으키게 하는 Dos공격
암호 알고리즘 방식
대칭키 방식 : 암호화와 복호화에 같은 암호키 사용
-블록 암호 방식 : 고정 길이의 블록을 암호화 - DES, AES, SEED
-스트림 암호 방식 : 난수열을 발생시켜 암호문 생성 - RC4
비대칭키 방식 : 암호키와 복호키가 서로 다름, 공개키를 사용해 암호화하고 개인키를 통해 복호화 - 디피헬만, RSA
해시 방식 : 단방향 알고리즘, 해시 함수를 사용해 원본 데이터 유추가 힘들다. -SHA, MD5
DES : 64bit의 평문 블록을 암호 블록으로 만드는 미국 표준 암호화 알고리즘
AES : DES를 대체한 알고리즘, 대칭키 알고리즘
SEED :ETRI에서 개발한 128bit 대칭키 암호화 알고리즘
디피헬만: 두 사람이 암호화 되지 않은 통신망을 통해 공통의 비밀키를 공유 하는 방식
RSA : 소인수 분해를 사용한 방식, 가장 널리 쓰인다
SHA : NASA가 설계한 미국 표준 해시 암호화 알고리즘
MD5 : MD4를 대체하기 위한 128bit 암호화 알고리즘
정보에 대한 보안 항목 식별
법규
-개인 정보 보호법
-정보통신망 법
-신용 정보법
개인 정보 보호법 주요 내용
-고유 식별 정보의 처리 제한 : 고유식별 번호(주민등록번호, 여권번호, 운전면허증번호, 외국인 등록번호)
-안전조치 의무화 : 개인정보가 분실, 도난, 유출, 변조, 훼손되지 않게 관리
-개인 정보의 안전성 확보 조치
정보통신망법 주요 내용
-개인정보의 보호조치 : 바이오 정보의 일방향 암호화, 개인정보 취급시 분실, 변조, 훼손 방지를 위해 기술적, 관리적 조치
-개인정보의 암호화 : 주민번호, 신용카드 번호, 계좌 번호에 대해 암호화 알고리즘사용, 서버는 SSL 인증서를 통해 송수신
SSL : 웹 데이터 암호화 및 전송시 기밀성을 보장하는 공개키 기반 보안 프로토콜
정보자산 주요 용어 : 자산, 사용자, 소유자, 관리자
정보자산 분류 기준
-소프트웨어
-하드웨어
-데이터
-문서
-시설
-지원설비
-인력
솔트 : 일방향 해시 함수에서 다이제스트를 생성할때 추가되는 바이트 단위의 임의의 문자열
세션 하이재킹 : 세션을 가로채어 정상적인 인증과정을 무시하고 불법적으로 시스템에 접근
소프트웨어 개발 보안 적용 사례
-MS-SDL
Seven Touchpoints
CLASP
무차별 공격 : 특정 패스워드를 풀기 위해 임의 문자 조합을 하나씩 대입
난수 발생 시드 : 컴퓨터가 정해진 알고리즘에 의해 마치 난수 처럼 보이는 수열을 생성
스니핑 : 직접 공격하지 않고 데이터만 몰래 들여다 보는 기법
경쟁 조건 : 메모리가 공유되는 하나의 객체에 두개 이상의 스레드가 동시에 값을 변경하려고 할때 발생하는 성능 저하
에러처리 보안 약점의 유형
-오류 메시지 정보 노출
-오류 메시지 대응 부재
-부적절한 예외 처리
코드 오류 보안 약점
- 널 포인터 역참조
-부적절한 자원 해제
-해제된 자원 사용
-초기화 되지 않은 변수 사용
캡슐화 보안 약점 유형
-잘못된 세션에 의한 정보 노출 -> 싱글톤 패턴 사용시 변수 적용 범위 주위
-제거 되지 않은 디버그 코드
-시스템 정보 노출
싱글톤 패턴 : 전역 변수를 사용하지 않고 객체를 생성하여 어디서든지 객체를 참조 할 수 있게 하는 패턴
API 오용
-DNS에 의존한 보안 결정
-취약한 API 사용
'정보처리기사 > 실기' 카테고리의 다른 글
(정보처리기사 실기) SQL 응용 (0) 2020.07.22 (정보처리기사 실기) 애플리케이션 테스트 관리 (0) 2020.07.22 (정보처리기사 실기) 화면 설계 (0) 2020.07.21 (정보처리기사 실기) 인터페이스 구현 (0) 2020.07.21 (정보처리기사 실기) 서버 프로그램 구현 (0) 2020.07.20