정보처리기사
정보처리기사(실기) - 소프트웨어 개발 보안 구축
내이름효주
2024. 4. 17. 22:34
📑 소프트웨어 개발 보안 설계
- SW 개발 보안: 소스 코드 등에 존재하는 보안 취약점을 제거하고, 보안을 고려하여 기능을 설계 및 구현하는 등 소프트웨어 개발 과정에서 지켜야 할 일련의 보안 활동
요구사항 명세 > 설계 > 구현 > 테스트 > 유지보수 - SW 개발 보안의 3대 요소
- 기밀성: 인가된 사용자에 대해서만 자원 접근이 가능
- 무결성: 인가된 사용자에 대해서만 자원 수정이 가능, 전송 중인 정보는 수정되지 않아야함
- 가용성: 인가된 사용자는 가지고 있는 권한 범위 내에서 언제든 자원 접근이 가능
- SW 개발 보안을 위한 공격기법의 이해
- DoS 공격: 시스템을 악의적으로 공격해서 해당 시스템의 자원을 부족하게 하여 원래 의도된 용도로 사용하지 못하게 하는 공격(직접 공)
- 종류: SYN플러딩, UDP 플러딩ㅣ, 스머프/스머핑(직접 브로드캐스팅하여 마비시키는 공격), 죽음의 핑(ICMP 패킷을 정상적인 크기보다 아주 크게 만들어 전송), 랜드 어택(출발지 IP와 목적지 IP를 같은 패킷 주소로 만들어 보냄 -> 자신에게 응답을 보내게 함)
- DDoS 공격: 여러 대의 공격자를 분산 배치하여 동시에 동작하게 함으로써 특정 사이트를 공격(공격 지시)
- DRDoS 공격: 출발지 IP를 공격대상 IP로 위조하여 다수의 반사 서버로 요청 정보를 전송(DDoS보다 근원지 파악이 어렵다)
- DoS 공격: 시스템을 악의적으로 공격해서 해당 시스템의 자원을 부족하게 하여 원래 의도된 용도로 사용하지 못하게 하는 공격(직접 공)
- 세션 하이재킹: TCP의 세션 관리 취약점을 이용한 공격기법
- 네트워크 공격
- 스니핑: 데이터만 몰래 들여다보는 수동적 공격
- 네트워크 스캐너/스니퍼: 공격자가 취약점을 탐색하는 공격 도구
- 패스워드
- 트로이 목마: 겉보기에는 정상 실행하면 악성 코드를 실행
- 서버 인증 및 접근 통제
- 3A: 인증, 권한부여, 계정관리
- 암호 알고리즘: 데이터의 무결성 및 기밀성 확보를 위해 정보를 쉽게 해독할 수 없는 형태로 변환하는 기법
- 양방향 방식
- 대칭키 암호 방식: 암호화와 복호화에 같은 암호 키를 쓰는 알고리즘
- DES, SEED, AES, ARIA, IDEA, LFSR, Skipjack
- 비대칭키 암호 방식(공개키 암호 방식): 사전에 개인 키를 나눠 가지지 않은 사용자들이 안전하게 통신하는 방식
- RSA, ECC, EIGamal
- 대칭키 암호 방식: 암호화와 복호화에 같은 암호 키를 쓰는 알고리즘
- 일방향 암호 방식(해시 암호 방식): 임의 길이의 정보를 입력받나 고정된 길이의 암호문을 출력하는 암호 방식
- MD5, SHA-1, SHA-256/384/512, HAS-160, HAVAL
- 양방향 방식
- 데이터베이스 암호화 기법
- API, Plug-In, TDE, Hybrid 방식
📑 소프트웨어 개발 보안 구현
- 입력데이터 검증 및 표현 취약점
- XSS: 검증되지 않은 외부 입력 데이터가 포함된 웹페이지가 전송
- 사이트 간 요청 위조: 자신의 의지와는 무관하게 공격자가 의도한 행위를 특정 웹사이트에 요청하게 하는 공격
- SQL 삽입: 보안 취약점을 이용해서 악의적인 SQL 구문을 삽입, 정보를 탈취하거나 조작 등의 행