소프트웨어 개발 보안 구성요소
- 기밀성 : 인가되지 않은 시스템 접근에 따른 정보 노출 차단
- 무결성 : 정당한 방법을 따르지 않고서는 데이터가 변경될 수 없음
- 가용성 : 권한을 가진 사용자는 지속적으로 서비스 이용 가능
SW 개발 보안 용어
- 자산 : 조직의 데이터 또는 소유자가 가치를 부여한 대상
- 위협 : 조직에 악영향을 끼칠 수 있는 행위
- 취약점 : 위협이 발생할 수 있는 사전 조건
- 위험 : 위협이 취약점을 이용하여 조직에 피해를 가져올 가능성
DOS (Denial of Service)
- 시스템의 자원을 부족하게 만들어 기능하지 못하게 하는 공격
- SYN Flooding
: 서버의 가용 사용자 수 만큼 SYN패킷만 보내는 공격
- UDP Flooding
: 대량의 UDP 패킷을 만들어 임의 포트로 전송하여 응답 메시지 생성을 유도
- Smurf
: 출발지 주소를 공격지 주소로 위장하여 네트워크 전체에 ICMP Echo패킷을 직접 브로드 캐스팅
: 다른 네트워크로의 직접 브로드 캐스팅을 금지시켜야 함
: 브로드 캐스트 주소로 전송된 ICMP Echo Request 메시지에 대한 응답을 금지
- 죽음의 핑 (Ping of Death)
: ICMP 패킷을 크게 만들어 전송
- 랜드어택
: 출발지와 목적지의 IP를 같은 패킷 주소로 만들어 보내 대상자가 자기 자신에게 응답하도록 유도
- 티어드롭
: IP Fragment Offset 값을 서로 중첩되도록 조작하여 전송
- 봉크
: 프로토콜의 오류 제어를 이용하여 패킷 재전송과 재조립을 통한 과부하 유발
DDOS (Distributed DOS)
- 여러대의 분산된 호스트를 통한 DOS 공격
- 구성요소
ㆍ핸들러 : 마스터 시스템 역할의 프로그램
ㆍ에이전트 : 직접 공격하는 시스템
ㆍ마스터 : 공격자에게서 명령을 받아 에이전트 관리
ㆍ공격자 : 공격을 주도하는 해커의 컴퓨터
ㆍ데몬 프로그램 : 에이전트 시스템 역할의 프로그램
※ 핸들러 = 마스터 / 에이전트 = 데몬 프로그램
- 도구
ㆍTrinoo
: 여러개의 서버와 클라이언트로 이루어진 UDP Flood 도구
ㆍTribe Flood Network
: UDP Flood, TCP SYN Flood, ICMP echo, Smuf 등 수행 가능한 분산 공격 도구
ㆍStacheldrahnt
: 에이전트 역할의 Linux 및 Solaris용 멀웨어 도구
: ICMP Flood, SYN Flood, UDP Flood, Smurf 공격 가능
DRDOS (Distributed Reflection DOS)
- 출발지 IP를 공격대상 IP로 위장하여 다수의 반사서버로 요청을 전송하는 공격
애플리케이션 공격
- 공격기법
ㆍHTTP GET Flooding : 과도한 GET 메시지를 보내는 공격
ㆍSloworis : GET 메서드에 최종 끝을 알리는 문자를 조작하여 연결 지속
ㆍRUDY : 요청 헤더의 Content-Length를 크게 설정하고 바디를 적게 보내 지속적인 연결 유지
ㆍSlow HTTP Read : 데이터 처리율을 감소시킨 상태에서 HTTP 패킷을 지속적으로 전송
ㆍHulk DoS : 공격대상의 URL을 지속적으로 변경시키면서 다량의 GET 요청 전송
ㆍHash DOS : 웹 클라이언트를 이용해 웹 서버에 조작된 다량의 파라미터를 POST하여 해시 충돌 유발
네트워크 공격
- 스니핑 : 데이터 몰래 들여보기
- 네트워크 스캐너 : 취약점 탐색
- 패스워드 크래킹
ㆍDictionary Cracking : ID나 PW가 될만한 단어를 파일로 만들어 대입
ㆍBrute Force Cracking : 패스워드가 될 수 있는 문자 및 숫자를 무작위로 대입
ㆍ패스워드 하이브리드 : Dictionary Cracking과 Brute Force Cracking 결합
ㆍ레인보우 테이블 : 패스워드 별로 해시 값을 미리 생성하여 해시 테이블에서 검색하여 PW 도출
- IP 스푸핑 : 인증된 호스트로 위장한 공격
- ARP 스푸핑 : 특정 호스트의 MAC주소를 자신의 MAC주소로 변경하는 공격
- ICMP Redirect : 3계층에서 스니핑 시스템을 라우터라고 속여 패킷의 흐름을 변경
- 트로이 목마 : 겉보기에 정상적인 악성 코드를 심는 공격
시스템 보안 위협
- 버퍼 오버플로우
ㆍ스택 버퍼 오버플로우
ㆍ힙 버퍼 오버플로우
ㆍ버퍼 오버 플로우 대응방안
: 스택가드
(무결성 체크용 값인 Canary를 복귀 주소와 변수 사이에 삽입하여 발생시 마다 체크)
: 스택쉴드
(함수 시작시 복귀 주소를 Global RET라는 특수스택에 저장하고 지정 값과 RET값 비교)
: ASLR
(주소 공간 배치를 난수화)
: 안전한 함수 사용
(vfscanf() 와 같은 안전함수 사용)
: 실행제한
(스택에서의 쓰기 권한 제한 및 프로그램 실행 금지)
- 백도어
: 정상적인 인증절차를 우회하는 기법
ㆍ탐지기법
: 프로세스 및 열린 포트 확인 / 탐지툴 활용
: setuid 검사 / 무결성 검사 / 로그 분석
ㆍ공격기법
: 포맷 스트링 (입출력 함수의 포맷스트링 취약점 이용)
: 레이스 컨디션 (프로세스 실행중에 끼어들어 임시파일을 심볼릭 링크)
: 키로거 (키보드 입력 탐지)
: 루트킷 (시스템 침입 후 불법행위)
피싱 관련 용어
- 스피어 피싱
: 위장한 이메일 전송하여 피싱
- 스미싱
: 문자메시지를 이용한 피싱
- 큐싱
: QR코드를 이용한 피싱
- 이블트윈
: 무선 Wifi 피싱
보안 위협 관련 용어
- 봇넷
: 네트워크로 연결된 악성 코드 감염 컴퓨터
- APT 공격
: 하나의 표적에 대해 다양한 IT기술을 활용하여 정보를 수집하고 취약점 분석하여 공격
- 공급망 공격
: SW 개발사 네트워크에 침입하여 소스코드 수정
- 제로데이 공격
: 보안취약점이 공표되기 전 악용
- 웜
: 스스로 복제하고 전파되는 악성 프로그램
- 악성봇
: 해커의 명령에 따라 원격에서 제어되는 프로그램
- 랜섬웨어
: 파일을 암호화 시키고 복호화에 돈 요구
보안 관련 용어
- 사이버 킬체인
: 록히드 마틴의 APT 공격 방어 분석 모델
- 난독화
: 코드의 가독성을 낮춰 역공학에 대해 대비
- Tripwire
: 크래커가 침입하여 백도어를 놓거나 설정 파일을 변경했을때 이를 분석하는 도구
- ping
: 접속하려는 원격 호스트의 정상여부 확인 명령어
- Tcpdump
: 네트워크 인터페이스를 거치는 패킷 내용 출력 프로그램
'Certification > 정보처리기사' 카테고리의 다른 글
소프트웨어 개발 보안 구현 (0) | 2021.04.12 |
---|---|
소프트웨어 개발 보안 설계 2 (0) | 2021.04.12 |
배치 프로그램 구현 (0) | 2021.04.11 |
공통 모듈 구현 (0) | 2021.04.11 |
개발 환경 구축 (0) | 2021.04.11 |