Secure SDLC
- 보안상 안전한 소프트웨어를 개발하기 위해 SDLC에 보안 강화를 위한 프로세스를 포함한 것을 의미
- 요구사항 분석, 설계, 구현, 테스트, 유지 보수 등 SDLC 전체 단계에 걸쳐 수행되어야 할 보안 활동을 제시
요구사항 분석 단계에서의 보안 활동
- 보안 항목에 해당하는 요구사항을 식별하는 작업을 수행
- 전산화되는 정보가 가지고 있는 보안 수준을 보안 요소별로 등급을 구분하여 분류
- 조직의 정보보호 관련 보안 정책을 참고하여 소프트웨어 개발에 적용할 수 있는 보안 정책 항목들의 출처, 요구 수준, 세부 내용 등을 문서화
설계 단계에서의 보안 활동
- 식별된 보안 요구사항들을 소프트웨어 설계서에 반영하고, 보안 설계서를 작성
- 소프트웨어에서 발생할 수 있는 위협을 식별하여 보안대책, 소요예산, 사고 발생 시 영향 범위와 대응책 등을 수립
구현 단계에서의 보안 활동
- 표준 코딩 정의서 및 소프트웨어 개발 보안 가이드를 준수하며 설계서에 따라 보안 요구사항들을 구현
- 지속적인 단위 테스트를 통해 소프트웨어에 발생할 수 있는 보안 취약점을 최소화
- 코드 점검 및 소스 코드 진단 작업을 통해 소스 코드의 안정성을 확보
테스트 단계에서의 보안 활동
- 설계 단계에서 작성한 보안 설계서를 바탕으로 보안 사항들이 정확히 반영되고 동작되는지 점검
유지보수 단계에서의 보안 활동
- 이전 과정을 모두 수행하였음에도 발생할 수 있는 보안사고들을 식별하고, 사고 발생 시 이를 해결하고 보안 패치를 실시
보안요소
기밀성(Confidentiality) | - 시스템 내의 정보와 자원은 인가된 사용자에게만 접근이 허용 - 정보가 전송 중에 노출되더라도 데이터를 읽을 수 없음 |
무결성(Integrity) | - 시스템 내의 정보는 오직 인가된 사용자만 수정할 수 있음 |
가용성(Availability) | - 인가받은 사용자는 언제라도 사용할 수 있음 |
인증(Authentication) | - 시스템 내의 정보와 자원을 사용하려는 사용자가 합법적인 사용자인지를 확인하는 모든 행위 - 대표적 방법으로는 패스워드, 인증용 카드, 지문 검사 등이 있음 |
부인 방지(Non-Repudiation) | - 데이터를 송·수신한 자가 송·수신 사실을 부인할 수 없도록 송·수신 증거를 제공 |
입력 데이터 검증 및 표현
- 입력 데이터로 인해 발생하는 문제들을 예방하기 위해 구현 단계에서 검증해야 하는 보안 점검 항목
SQL 삽입(SQL Injection)
- 입력란에 SQL을 삽입하여 무단으로 DB를 조회하거나 조작하는 보안 약점
- 동적 쿼리에 사용되는 입력 데이터 예약어 및 특수문자가 입력되지 않게 필터링 되도록 설정하여 방지
경로 조작 및 자원 삽입
- 데이터 입출력 경로를 조작하여 서버 자원을 수정·삭제할 수 있는 보안 약점
- 사용자 입력값을 식별자로 사용하는 경우, 경로 순회 공격을 막는 필터를 사용하여 방지할 수 있음
크로스 사이트 스크립팅(XSS)
- 웹페이지에 악의적인 스크립트를 삽입하여 방문자들의 정보를 탈취하거나, 비정상적인 기능 수행을 유발하는 보안 약점
- HTML 태그의 사용을 제한하거나 스크립트에 삽입되지 않도록 '<' , '>' , '&' 등의 문자를 다른 문자로 치환함으로써 방지할 수 있음
운영체제 명령어 삽입
- 외부 입력값을 통해 시스템 명령어의 실행을 유도함으로써 권한을 탈취하거나 시스템 장애를 유발하는 보안 약점
- 웹 인터페이스를 통해 시스템 명령어가 전달되지 않도록 하고 외부 입력값을 검증 없이 내부 명령어로 사용하지 않음으로써 방지할 수 있음
위험한 형식 파일 업로드
- 악의적인 명령어가 포함된 스크립트 파일을 업로드함으로써 시스템에 손상을 주거나, 시스템을 제어할 수 있는 보안 약점
- 업로드 되는 파일의 확장자 제한, 파일명의 암호화, 웹사이트와 파일 서버의 경로 분리, 실행 속성을 제거하는 등의 방법으로 방지할 수 있음
신뢰되지 않는 URL 주소로 자동접속 연결
- 입력 값으로 사이트 주소를 받는 경우 이를 조작하여 방문자를 피싱 사이트로 유도하는 보안 약점
- 연결되는 외부 사이트의 주소를 화이트 리스트로 관리함으로써 방지할 수 있음
암호 알고리즘
- 패스워드, 주민번호, 은행계좌와 같은 중요정보를 보호하기 위해 평문을 암호화된 문장으로 만드는 절차 또는 방법을 의미
개인키 암호화 기법
- 동일한 키로 데이터를 암호화하고 복호화 함
- 대칭 암호 기법 또는 단일키 암호화 기법이라고도 함
- 블록 암호화 방식 : DES, SEED, AES, ARIA
- 스트림 암호화 방식 : LFSR, RC4
공개키 암호화 기법
- 데이터를 암호화할 때 사용하는 공개키는 데이터베이스 사용자에게 공개하고, 복호화할 때의 비밀키는 관리자가 비밀리에 관리
- 비대칭 암호 기법이라고도 하며 대표적으로는 RSA 기법이 있음
해시
- 임의의 길이의 입력 데이터나 메시지를 고정된 길이의 값이나 키로 변환하는 것을 의미
- 해시 알고리즘을 해시 함수라고 부르며 해시 함수로 변환된 값이나 키를 해시값 또는 해시키라고 부름
- 해시 함수의 종류에는 SHA 시리즈, MD5, N-NASH, SNEFRU 등이 있음
서비스 거부(DoS, Denial of Service) 공격의 개념
- 표적이 되는 서버의 자원을 고갈시킬 목적으로 다수의 공격자 또는 시스템에서 대량으 데이터를 한 곳의 서버에 집중적으로 전송함으로써, 표적이 되는 서버의 정상적인 기능을 방해하는 것
- Ping of Death, Smurf attack, SYN Flooding, TearDrop, Land attack, DDoS 등이 있음
Ping of Death
- Ping 명령을 전송할 때 패킷의 크기를 인터넷 프로토콜 허용 범위 이상으로 전송하여 공격 대상의 네트워크를 마비시키는 서비스 거부 공격 방법
Smurf attack
- IP나 ICMP의 특성을 악용하여 엄청난 양의 데이터를 한 사이트에 집중적으로 보냄으로써 네트워크를 불능 상태로 만드는 공격 방법
- 공격자는 송신 주소를 공격 대상지의 IP 주소로 위장하고 해당 네트워크 라우터의 브로드캐스트 주소를 수신지로 하여 패킷을 전송하면 라우터의 브로드캐스트 주소로 수신된 패킷은 해당 네트워크 내의 모든 컴퓨터로 전송 됨
- 해당 네트워크 내의 모든 컴퓨터는 수신된 패킷에 대한 응답 메시지를 송신 주소인 공격 대상지로 집중적으로 전송하게 되는데 이로 인해 공격 대상지는 네트워크 과부하로 인해 정상적인 서비스를 수행할 수 없게 됨
- Smurf attack을 대비하는 방법 중 하나는 각 네트워크 라우터에서 브로드캐스트 주소를 사용할 수 없게 설정
SYN Flooding
- TCP는 신뢰성 있는 전송을 위해 3way-handshake를 거친 후에 데이터를 전송하게 되는데 SYN Flooding은 공격자가 가상의 클라이언트로 위장하여 3way-handshake 과정을 의도적으로 중단시킴으로써 공격 대상지인 서버가 대기 상태에 놓여 정상적인 서비스를 수행하지 못하게 하는 공격 방법
- SYN Flooding을 대비하는 방법은 백로그 큐 늘리기, syncookies 기능 활성화 등이 있음
TearDrop
- 데이터의 송·수신 과정에서 패킷의 크기가 커 여러 개로 분할되어 전송될 때 분할 순서를 알 수 있도록 Fragment Offset 값을 함께 전송하는데 TearDrop은 이 Offset 값을 변경시켜 수신 측에서 패킷을 재조립할때 오류로 인한 과부하를 발생시킴으로써 시스템이 다운되도록 하는 공격 방법
- TearDrop을 대비하는 방법은 Fragment Offset이 잘못된 경우 해단 패킷을 폐기하도록 설정
Land attack
- 패킷을 전송할때 송신 IP 주소와 수신 IP 주소를 모두 공격 대상의 IP 주소로 하여 공격 대상에게 전송하는 것으로 이 패킷을 받은 공격 대상은 송신 IP 주소가 자신이므로 자신에게 응답을 수행하게 되는데 이러한 패킷이 계속해서 전송될 경우 자신에 대해 무한히 응답하게 하는 공격
- Land attack을 대비하는 방법은 송신 IP 주소와 수신 IP 주소의 적절성을 검사해야 함
DDoS
- 여러 곳에 분산된 공격 지점에서 한 곳의 서버에 대해 분산 서비스 공격을 수행하는 것으로 네트워크에서 취약점이 있는 호스트들을 탐색한 후 이들 호스트들에 분산 서비스 공격용 툴을 설치하여 에이전트로 만든 후 DDoS 공격에 이용
네트워크 침해 공격 관련 용어
스미싱
- 문자 메시지를 이용해 사용자의 개인 신용 정보를 빼내는 수법
스피어 피싱
- 사회 공학의 한 기법으로 특정 대상을 선정한 후 그 대상에게 일반적인 이메일로 위장한 메일을 지속적으로 발송하여 발송 메일의 본문 링크나 첨부된 파일을 클릭하도록 유도해 사용자의 개인 정보를 탈취
APT
- 다양한 IT 기술과 방식들을 이용해 조직적으로 특정 기업이나 조직 네트워크에 침투해 활동 거점을 마련한 뒤 때를 기다리면서 보안을 무력화시키고 정보를 수집한 다음 외부로 빼돌리는 형태의 공격
Brute Force
- 암호화된 문서의 암호키를 찾아내기 위해 적용 가능한 모든 값을 대입하여 공격하는 방식
큐싱
- QR코드를 통해 악성 앱의 다운로드를 유도하거나 악성 프로그램을 설치하도록 하는 금융사기 기법의 하나로 QR코드와 개인정보 및 금융정보를 낚는다는 의미의 합성 신조어
SQL Injection
- 전문 스캐너 프로그램 혹은 봇넷 등을 이용해 웹사이트를 무차별적으로 공격하는 과정에서 취약한 사이트가 발견되면 데이터베이스 등의 데이터를 조작하는 일련의 공격 방식
XSS
- 웹페이지에 악의적인 스크립트를 삽입하여 방문자들의 정보를 탈취하거나, 비정상적인 기능 수행을 유발하는 보안 약점
정보 보안 침해 공격 관련 용어
좀비 PC
- 악성코드에 감염되어 다른 프로그램이나 컴퓨터를 조종하도록 만들어진 컴퓨터로 C&C 서버의 제어를 받아 주로 DDoS 공격 등에 이용
C&C 서버
- 해커가 원격지에서 감염된 좀비 PC에 명령을 내리고 악성코드를 제어하기 위한 용도올 사용하는 서버
봇넷
- 악성 프로그램에 감염되어 악의적인 의도로 사용될 수 있는 다수의 컴퓨터들이 네트워크로 연결된 형태를 말함
웜
- 네트워크를 통해 연속적으로 자신을 복제하여 시스템의 부하를 높임으로써 결국 시스템을 다운시키는 바이러스의 일종으로 분산 서비스 거부 공격, 버퍼 오버플로우 공격, 슬래머 등이 웜 공격의 한 형태
제로 데이 공격
- 보안 취약점이 발견되었을 때 발견된 취약점의 존재 자체가 널리 공표되기도 전에 해당 취약점을 통하여 이루어지는 보안 공격으로 공격의 신속성을 의미
키로거 공격
- 컴퓨터 사용자의 키보드 움직임을 탐지해 ID, 패스워드, 계좌번호, 카드번호 등과 같은 개인의 중요한 정보를 몰래 빼가는 해킹 공격
랜섬웨어
- 인터넷 사용자의 컴퓨터에 잠입해 내부 문서나 파일등을 암호화해 사용자가 열지 못하게 하는 프로그램으로 암호 해독용 프로그램의 전달을 조건으로 사용자에게 돈을 요구하기도 함
백도어
- 시스템 설계자가 서비스 기술자나 유지 보수 프로그램 작성자의 액세스 편의를 위해 시스템 보안을 제거하여 만들어놓은 비밀 통로로 컴퓨터 범죄에 악용되기도 함
트로이 목마
- 정상적인 기능을 하는 프로그램으로 위장하여 프로그램 내에 숨어 있다가 해당 프로그램이 동작할 때 활성화되어 부작용을 일으키는 것으로 자기 복제 능력은 없음
'1. 자격증 > 정보처리기사' 카테고리의 다른 글
정보처리기사 필기 3회 A형 가답안(20년08월22일) (0) | 2020.08.22 |
---|---|
정보처리기사 필기 4회 시행 확정 (0) | 2020.08.18 |
[정보처리기사 필기] 5과목 정보시스템 구축 관리 - 3 (0) | 2020.08.14 |
[정보처리기사 필기] 5과목 정보시스템 구축 관리 - 2 (0) | 2020.08.13 |
[정보처리기사 필기] 5과목 정보시스템 구축 관리 - 1 (0) | 2020.08.11 |