본문 바로가기
자격증 준비/정보처리기사

9장 소프트웨어 개발 보안 구축

by 박살낼겨 2022. 4. 20.

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