AWS의 모든 것

정보처리기사 실기 요약본

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

HOINS 2023. 3. 9. 16:34
반응형

소프트웨어 개발 보안 구축

소프트웨어 개발 보안의 3대요소 (기무가)
- 기밀성 : 인가된 사용자만 접근 가능
- 무결성 : 인가된 사용자만 접근하여 수정 가능
- 가용성 : 인가된 사용자는 언제든지 접근이 가능해야함

 

DoS 공격의 개념 : 시스템의 자원을 부족하게 만들어 의도된 용도로 사용하지 못하게 하는 공격
*특정 서버에 수 많은 접속 시도를 만들어 서비스를 이용하지 못하게하거나, TCP 연결을 소진시키는 공격

 

DoS 공격의 종류
- SYN 플러딩 : TCP 프로토콜의 구조적인 문제를 이용한 공격, ACK를 발송하지않아 계속 새로운 연결 요청
- UDP 플러딩 : 출발지 IP를 변조하여 대량의 UDP 패킷을 만들어 응답메시지ICMP를 생성하게하여 자원 고갈
- 스머프 : 출발지 주소를 공객 대상의 IP로하여 네트워크 전체에서 ICMP echo 패킷을 브로드캐스팅하여 마비
*바운스 사이트라고 불리는 제 3의 사이트를 이용하여 공격
- 죽음의핑 : ICMP 패킷을 정상적인 크기보다 아주 크게 만들어 전송하면 다수의 IP 단편화 발생
- 랜드 어택 : 출발지 IP와 도착지 IP를 같은 패킷 주소로 만들어보냄 자기 자신에게 응답
- 티어드롭 : IP 패킷의 재조합 과정에서 잘몬됫 프레그먼트 오프셋 정보로 인해 수신시스템이 문제가 발생
- 봉크/보잉크 : 프로토콜의 오류제어를 이용한 공격기법, 같은 시퀀스 번호/일정한 간격 시퀀스 번호

 

DDoS 공격의 개념 : 분산된 좀비 PC를 이용해 타겟을 공격

 

DDoS 공격 구성요소 (HAMAD)
- Handler : 마스터 시스템의 역할을 수행하는 프로그램
- Agent : 공격 대상에 직접 공격을 가하는 시스템
- Master : 공격자에게서 직접 명령을 받는 시스템, 여러 에이전트 관리
- Attacker : 공격을 주도하는 해커 컴퓨터
- Demon : 에이전트 시스템의 역할을 수행하는 프로그램

 

DRDoS 공격의 개념 : 공격자는 출발지 IP를 공격 대상 IP로 위조하여 대량의 반사 서버로 정보 요청 후 타겟은 대량의 응답을 받아 서비스가 거부되는 공격

 

애플리케이션 공격기법
- HTTP GET 플러딩 : 과도한 GET 메시지를 이용하여 웹서버 과부하를 일으키는 공격
- Slowloris : GET 메서드를 이용하여 끝을 알리는 개행문자열을 전송하지않아 연결을 장시간 지속시키는 공격
- RUDY : 요청 헤더에 Content-Length를 비정상적으로 크게 설정하여 바디를 소량으로 보내 연결 유지 공격
- Hulk DoS : 공격자가 공격대상 웹사이트 URL을 지속적으로 변경하면서 대량의 GET 요청을 발생

 

네트워크 공격기법
- 스니핑 : 데이터만 몰래 들여다보는 수동적 공격 기법
- 네트워크 스캐너 : 구성의 취약점 파악을 위해 취약점을 탐색하는 공격 도구
- 패스워드 크래킹 : 사전 크래킹(단어), 무차별 크래킹(무작위), 패스워드 하이브리드 공격(두개를 합침)
- IP 스푸핑 : 본인의 패킷 헤더를 인증된 호스트 IP 어드레스로 위조하여 타깃에 전송하는 기법
- ARP 스푸핑 : 특정 호스트 MAC 주소를 자신의 주소로 위조하여 스니핑하는 공격 기법
- 트로이목마 : 악성 루틴이 숨어 있는 프로그램

 

버퍼오버플로우 공격 : 메모리에 할당된 버퍼 크기를 초과하는 양의 데이터를 입력하여 이로 인해 프로세스의 흐름을 변경시켜서 악성코드를 실행시키는 공격 방법 *스택,힙

 

백도어 : 정상적인 인증 절차를 우회하는 기법, 허가받지 않고 시스템에 접속하는 권리를 얻는 공격

 

주요 시스템 보안 공격기법
- 포맷스트링 공격 : 포맷 스트링을 인자로 하는 함수의 취약점을 이용한 공격
- 레이스 컨디션 : 둘 이상의 프로세스나 스레드가 공유자원을 동시에 접근할 때 접근 순서에 따라 비정성적인 결과
- 키로거 공격 : 사용자의 키보드 움직임을 탐지해서 저장하고 ID/PW 개인의 중요 정보를 빼가는 공격
- 루트킷 : 시스템 침입 후 차후의 침입을 위한 불법적인 해킹에 사용되는 기능을 제공하는 프로그램 모음

- 봇넷 : 악성 프로그램에 감염되어 있는 다수의 컴퓨터들이 네트워크로 연결된 상태
- APT 공격 : 특정 타깃을 목표로 한 지속적이고 지능적인 맞춤형 공격 기법
- 제로데이 공격 : 보안 취약점이 발견되어 널리 공표되기 전에 해당 취약점을 이용하여 공격
- 웜 : 스스로 복제하여 네트워크 등의 연결을 통하여 전파하는 악성 프로그램
- 이블 트윈 : 무선 Wifi 피싱 기법
- Tripwire : 백도어 탐지 분석 도구
- Tcpdump : 네트워크 인터페이스를 거치는 패킷의 내용을 출력해주는 프로그램

 

인증 기술의 유형 (지소생특)
- 지식기반 : 사용자가 기억하고 있는 지식 , ID/PW
- 소지기반 : 소지하고 있는 물품, 공인인증서,OTP
- 생체기반 : 지문, 홍채
- 특징기반 : 서명,발걸음

 

서버 접근 통제 유형
- DAC : 시스템에 대한 접근을 신분 기반으로 제한하는 방법
- MAC : 시스템 정보의 보안등급을 기준으로 사용자가 갖는 등급에 근거하여 제한하는 방법
- RBAC : 조직 내 맡은 역할에 기초하여 자원에 대한 접근을 제한

 

접근 통제 기법
- 식별 : 자신이 누구인지 시스템에 밝히는 행위, 주체가 객체에게 자신의 정보를 제공하는 행위
- 인증 : 주체의 신원을 검증하기 위한 활동, 주체의 신원을 객체가 인증해주는 행위
- 인가 : 인증된 주체에게 접근을 허용하는 행위, 특정 업무를 수행할 권리를 부여하는 행위
- 책임추적성 : 주체의 접근을 추척하고 행동을 기록하는 행위

 

접근 통제 용어
- 주체 : 행위자
- 객체 : 제공자

 

벨-라파둘라 모델 (미 국방부) : 기밀성
- No Read Up : 낮은 주체는 높은 객체를 읽을수 없음
- No Write Down : 높은 주체는 낮은 객체에 쓰면 안됨

 

비바 모델 : 벨-라파둘라 모델의 단점을 보완한 무결성
- No Read Down : 높은 주체는 낮은 객체를 읽을 수 없음
- No Write Up : 낮은 주체는 높은 객체에 쓸 수 없음

 

양방향 암호 방식 (대칭 키 / 비대칭 키)

 

대칭 키 암호 방식 : 암호화와 복호화에 같은 암호화 키를 쓰는 알고리즘
- 블록 암호 방식 : 긴 평문을 암호화하기 위해 고정 길이의 블록을 암호화하는 방식
- 스트링 암호 방식 : 매우 긴 주기의 난수열을 발생시켜 평문과 더불에 암호문을 생성하는 방식
*RC4

 

비대칭 키 암호 방식 : 사전에 개인 키를 나눠 가지지 않은 사용자들이 안전하게 통신하는 방식
- 공개키로 암호화된 메시지는 반드시 비밀키로 복호화

 

일방향 암호 방식 (해시 암호 방식) : 임의 길이의 정보를 입력받아, 고정된 길이의 암호문을 출력하는 방식
- 해시 암호화 알고리즘은 복호화가 불가능

 

대칭 키 암호화 알고리즘 종류
- DES : 미국 연방 표준국, 블록 암호화 알고리즘, DES를 3번 적용한 3DES가 있다
- AES : DES의 대체 키 이며 3DES의 성능 문제를 국복하기 위해 개발
- SEED : 한국인터넷진흥원이 개발한 블록 암호화 알고리즘
- ARIA : 국정원에서 개발한 블록 암호화 알고리즘, XOR 연산
- IDEA : DES를 대체하기 위한 스위스에서 개발한 블록 암호화 알고리즘

 

비대칭 키 암호화 알고리즘 종류
- 디퍼-헬만 : 최초의 공개키 알고리즘, 이산대수의 어려운 문제를 기본 원리
- RSA : MIT, 소인수 분해 문제의 어려움에 근거
- ECC : RSA의 대안, 타원곡선 군에서 이산대수의 문제에 기초한 알고리즘
- EIGamal : 이산대수의 계산이 어려운 문제를 기본 원리, RSA와 유사하게 사용 가능

 

해시 암호화 알고리즘
- MD5 : MD4를 개선한 알고리즘
- SHA-1 : NSA 미국 정부 표준
- SHA-256
- HAS-160 : 국내 표준 서명 알고리즘 , MD5&SHA1의 장점을 결합

 

IPSec 개념 : IP 계층에서 인증헤더(AH)와 암호화(ESP)를 이용한 IP 보안프로토콜이다

 

IPSec 프로토콜
- 인증(AH) 프로토콜 : 무결성과 인증을 제공
- 암호화(ESP) 프로토콜 : 기밀성,무결성, 인증 제공
- 키관리(IKE) 프로토콜 : 키를 주고 받는 알고리즘

 

SSL/TLS 개념 : 전송계층 4계층 응용계층 7계층 사이에서 클라이언트와 서버 간 웹 데이터 암호화
*클라이언트와 서버 간의 상호 인증, 암호 방식에 대한 협상을 거치는 특징이 있음, Https://, 443 포트 사용

 

S-HTTP : 웹상에서 네트웨크 트래픽을 암호화하는 주요 방법 클라이언트와 서버간 전송되는 메세지를 각각 암호화 HTTP를 사용하는 애플리케이션에서만 사용가능, shttp:// 사용

소프트웨어 개발 보안 구현

시큐어 코딩 가이드 (입보시에코캡아)
- 입력데이터 검증 및 표현 : 입력값에 대한 검증 누락, 부적절한 검증, 잘못된 형식 지정
- 보안 기능 : 인증, 접근제어, 기밀성, 암호화, 권한 관리의 부적절한 구현
- 시간 및 상태 : 거의 동시에 수행하는 병렬 시스템 환경에서 시간 및 상태의 부적절한 관리
- 에러 처리 : 에러 미처리, 불충분한 처리로 에러 메시지에 중요 정보 포함
- 코드 오류 : 개발자의 코딩 오류
- 캡슐화 : 기능성이 불충분한 캡슐화로 인해 인가되지 않은 사용자에게 데이터 누출
- API 오용 : 의도된 사용에 반하는 방법으로 사용하거나, 보안에 취약한 API 사용

 

입력 데이터 검증 및 표현 취약점
- XSS : 사용자가 해당 웹페이지를 열람함으로써 웹페이지에 포함된 부적절한 스크립트가 실행되는 공격
- CSRF : 사용자의 의지와는 무관하게 공격자가 의도한 행위를 특정 웹사이트에 요청하게 하는 공격
- SQL 인젝션 : 악의적인 SQL문을 삽입, 실행시켜 DB에 접근하여 정보를 훼손하는 공격

 

보안 기능 취약점
- 취약한 암호화 알고리즘 사용 : 암호화된 환경파일을 해독하여 중요 정보 탈취
- 중요 정보 평문 저장 및 전송 : 암호화 되지 않은 평문 데이터 탈취
- 하드 코드된 비밀번호 : 코드 내부에 패스워드 포함

 

코드 오류 취약점
-초기화되지 않은 변수 사용 : 변수 선언 후 값이 부여되지 않은 변수를 사용할 때 발생

 

VPN : 인터넷과 같은 공중망에서 사설망을 구축하여 전용망을 사용하는 효과를 가지는 보안솔루션

RTO : 재해 목표 복구 시간 RPO : 재해 목표 복구 지점

반응형