1. Secure SDLC(Software Development Life Cycle) : SDLC에 보안강화 버전
* SDLC(Software Development Life Cycle) : 소프트웨어 개발 방법론에 바탕
1) 대표적 방법론
- CLASP : SDLC의 초기단계, 보안강화 위한 방법론
- SDL : 마이크로소프트사에서 SDLC개선한 방법론
- Seven Touchpoints : 보안 모범사례를 SDLC에 통합한 방법론
2) 단계별 보안활동
- 요구사항 분석 > 설계 > 구현 > 테스트 > 유지보수
3) 보안 요소
** 보안은 기무대 가야지 **
- 기밀성 : 인가된 사용자만, 데이터 못 읽음
- 무결성 : 정보는 인가된 사용자만 수정
- 가용성 : 인가된 사용자는 언제든 사용
4) 시큐어 코딩 : 보안 요소 고려해 코딩
2. 세션 통제 : 연결로 인해 발생하는 정보 관리
* 세션(Session) : 서버와 클라이언트의 연결
1) 보안약점
- 불충분한 세션 관리 : 규칙있는 세션ID, 길게 설정된 타임아웃
- 잘못된 세션 정보 노출 : 다중 스레드 환경에서 멤버 변수에 정보 저장
2) 고려사항
- 모든 페이지에서 로그아웃 UI
- 로그아웃 시 세션 완전히 제거
- 타임아웃 설정~
- 세션 미종료 시 새 세션 생성 안되게
3) 세션ID 관리방법
- 최소 128비트 길이
- 난수 알고리즘 적용
- URL Rewrite 기능 사용하지 않게
* URL Rewrite : URL에 세션ID 포함하는 것
- 장시간 접속 시 주기적 재할당
3. 입력 데이터 검증 및 표현
1) 보안약점
- SQL삽입
#약점 : SQL을 삽입해 내부 DB서버의 데이터를 유출, 관리자 인증 우회
#방지 : 동적 쿼리 입력데이터에 예약어, 특수문자 입력 되지 않게
- 크로스사이트 스크립팅(XSS)
#약점 : 웹 페이지에 스크립트 삽입
#방지 : 태그 사용 제한, 다른 문자로 치환
- 메모리 버퍼 오버플로
#약점 : 자료를 읽거나 쓰려고 할 때
#방지 : 설정된 범위의 메모리 내에서 올바르게 읽고쓰기
2) 보안기능
- 적절한 인증없이 중요 기능 허용
#약점 : 보안 검사를 우회, 인증과정 없이 중요 기능 접근
#방지 : 중요 기능 재인증
- 부적절한 인가
#약점 : 접근 제어 기능이 없는 실행경로로 정보 탈취
#방지 : 모든 실행경로 검사
- 중요한 자원에 대한 잘못된 권한 설정
#약점 : 권한 설정이 잘못된 자원에 접근, 자원 임의 사용
#방지 : 중요 자원 접근 여부 검사
- 취약한 알고리즘 암호화 사용
#약점 : 암호화된 환경설정 파일 해독, 중요정보 탈취
#방지 : 암호모듈을 사용
- 중요정보 평문 저장 및 전송
#약점 : 평문 데이터 탈취, 중요정보 획득
#방지 : HTTPS, SSL 보안채널 이용
* SSL(Secure Sockets Layer) : 인증, 암호화, 무결성 보장 업계 표준 프로토콜
- 하드코드 된 암호화 키
#약점 : 무차별 대입 공격
#방지 : 암호화 키 생성 모듈 사용
4. 암호 알고리즘

1) 개인키 암호화 기법 : 동일키로 데이터 암호화, 복호화 기법 / 속도 빠름, 관리할 키 많음
- 스트림 방식(Stream)
- 블록 방식(Block)
2) 공개키 암호화 기법 : 암호화는 공개키는 공개키, 복호화키는 비밀키 관리자가 관리 / 비대칭 암호화
/ 속도 느림, 관리할 키 적음
3) 양방향 알고리즘 종류
- SEED : KIAS개발(블록방식), 크기 128비트, 길이에 따라 128, 256분류
- ARIA : 국정원 산학엽협회 개발(블록)
- DES : 64비트
- AES : 128비트, DES 단점 보완
- RSA : MIT 3명의 사람이 개발, 큰 숫자를 소인수분해하기 어렵다는 것에서 출발
4) 해시 : 고정된 길이의 값, 키로 변환 / 데이터 무결성 검증
- SHA : NSA
- MD5 : MD4 보안, 크기 512비트, 길이 128비트
- N-NASH : NNT에서 발표, 크기/길이 128비트
- SNEFRU : 32비트 프로세서에서 구현 용이 목적
5. 서비스 거부 공격
- DOS공격 : 대량 데이터 한 곳 집중 전송, 서버의 정상기능 방해
- Ping of Death : 명령 프로토콜 허용 범위 초과해서 전송, 네트워크 마비 서비스 거부 공격
- SMURFING(스머핑) : IP나 ICMP의 특성 악용, 한 사이트에 대량의 데이터 전송, 네트워크 마비
- SYN Flooding : 3-way-handshake 과정 의도적 중단, 공격 대상자인 서버가 정상 작동 못 하게
- TearDrop : 패킷 재조립 시 오류로 과부하 발생, 시스템 다운 유도
- LAN ATTACK : 자신에게 무한히 응답, IP주소를 공격자에게 전송
- DDOS(분산 서비스 공격) : 분산되어 공격 지점에 서비스 공격
6. 네트워크 침해 공격
- 스미싱 : 메시지 이용 개인정보 빼내는 수법
- 스피어 피싱 : 특정 대상 선정, 지속적 연락
- APT : 기업, 조직의 네트워크 침투, 보안 무력화, 해킹
- 무작위 대입 공격 : 암호키를 찾기 위해 모든 값 대입
- 큐싱 : QR코드 활용, 악성 앱 다운유도
- SQL 삽입공격 : 봇넷을 이용 웹 사이트를 공격 중 취약한 사이트발견하면 공격
- XSS : 스크립트 취약점을 악용한 해킹
- 스니핑 : 네트워크 중간, 패킷 정보 해킹
- 좀비PC : 악성코드 감염, 다른 프로그램 / 컴퓨터 조종
- C&C 서버 : 좀비PC를 위해 사용되는 서버
- 봇넷 : 악용하기 위한 컴퓨터들의 네트워크
- 웜 : 네트워크를 통해 연속적으로 자신을 복제, 부하 높임, 버퍼 오버플로우
- 제로데이 공격 : 소프트웨어 취약점에 대한 패치 안 나온 시점에서 공격
- 키로거 공격 : 사용자의 키보드 움직임 탐지, 개인 정보 해킹
- 랜섬웨어 : 사용자 컴퓨터 잠입, 내부 문서, 파일 등 암호화, 사용자에게 돈을 요구
- 백도어 : 시스템 설계자가 편의를 위해 보안요소 없이 만들어둔 비밀 통로
- 트로이 목마 : 정상적 프로그램으로 위장, 해당 프로그램 동작 할 때 활동
'자격증 준비 > 정보처리기사' 카테고리의 다른 글
3장 통합 구현 (0) | 2022.05.01 |
---|---|
11장 응용SW기초기술활용 (0) | 2022.04.27 |
7장 어플리케이션 테스트 관리 (0) | 2022.04.17 |
6장 화면설계 (0) | 2022.04.08 |
5장 인터페이스 구현 (0) | 2022.04.06 |