정보처리기사

[정보처리기사] 정보 보안 (1)

hminor 2023. 7. 10. 19:13

SW개발 보안 설계

  • 정보보안
    • 개념
      • 기업의 정보 및 정보 시스템에 대해서 허가되지 않은 접근, 변경, 삭제 등으로부터 보호
    • 정보보안의 3요소
      • 기밀성(Confidentiality)
        • 인가된 사용자만 정보 자산에 접근할 수 있도록 한다.
      • 무결성(Integrity)
        • 적절한 권한을 가진 사용자가 인가된 방법으로만 정보를 변경할 수 있도록 접근 통제한다
      • 가용성(Availability)
        • 원하는 시점에 언제든 정보 자산에 접근이 가능하도록 한다
    • 정보보안의 AAA
      • 인증(Authentication)
      • 인가, 권한부여(Authorization)
      • 계정관리(Accounting)
    • 정보보안의 거버넌스
      • 정의
        • 정보의 무결성, 서비스의 연속성, 정보자산의 보호를 위한 것
        • 정보 보안을 하기 위한 활동에 대한 것을 의미
      • 정보보안 거버넌스의 3요소
        • 정보자산의 보호(기밀성)
        • 데이터 무결성(무결성)
        • 서비스 연속성(가용성)
    • 인증제도
      • ISMS(정보보호 관리체계 인증)
        • 정보통신망의 안전성 확보를 위하여 수립하는 기술적, 물리적, 관리적 보호조치 등 종합적인 정보보호 관리체계에 대한 인증제도
      • PIMS(개인정보보호 관리체계)
        • 기관 및 기업이 개인정보보호 관리체계를 갖추고 체계적, 지속적으로 보호 업무를 수행하는지에 대해 객관적으로 심사하여 기준 만족 시 인증 부여
      • ISMS-P(정보보호 및 개인정보보호 관리체계 인증)
        • 정보보호 및 개인정보보호를 위한 일련의 조치와 활동이 인증기준에 적합함을 인터넷진흥원 또는 인증기관이 증명하는 제도
      • ITSEC
        • 유럽에서 만든 고유의 보안성 평가 기준서 개발
      • TCSEC
        • 미국의 신뢰성 있는 컴퓨터 시스템 평가기준
      • CC
        • 국가마다 상이한 평가 기준을 연동시키고, 평가결과를 상호 인증하기 위해 제정된 국가 평가기준
  • Secure SDLC
    • 개념
      • 보안상 안전한 소프트웨어를 개발하기 위해 SDLC에 보안 강화를 위한 프로세스를 포함한 것
      • Secure + SDLC
    • Secure SDLC 방법론
      • CLASP
        • SDLC의 초기 단계에서 보안을 강화하기 위해 개발된 방법론
      • MS-DLC
        • MS사에서 만든 기존의 SDLC를 개선한 방법론
      • Seven Touch Points
        • 소프트웨어 보안의 모범사례를 SDLC에 통합한 방법론
  • Secure Coding(시큐어 코딩)
    • OWASP(The Open Web Application Security Project)
      • 오픈소스 웹 애플리케이션 보안 프로젝트
      • OWASP Top 10
        • 웹 애플리케이션 취약점 중 빈도가 많이 발생하고, 보안상 영향을 줄 수 있는 10가지를 선정하여 발표
    • 시큐어 코딩 가이드(입보시에코캡아)
      • OWASP Top 10 을 기반으로 한국의 KISA에서 보안 가이드를 내놓는 것
      • 입력 데이터 검증 및 표현
        • 프로그램 입력값에 대한 검증 누락 또는 부적절한 검증, 데이터 형식을 잘못 지정하여 발생하는 보안 약점
        • 종류
          • SQL Injection
          • XSS
          • 자원 삽입
          • 위험한 형식 파일 업로드
          • 명령 삽입
          • 메모리 버퍼 오버플로
      • 보안 기능
        • 보안 기능을 부적절하게 구현하는 경우 발생할 수 있는 보안 약점
        • 종류
          • 적절한 인증 없이 중요기능 허용
          • 부적절한 인가
          • 최약한 암호화 알고리즘 사용
          • 하드코딩된 패스워드
          • 패스워드 평문 저장
          • 취약한 패스워드 허용
      • 시간 및 상태
        • 동시 수행을 지원하는 병렬 시스템이나 하나 이상의 프로세스가 동작하는 환경에서 시간 및 상태를 부적절하게 관리하여 발생할 수 있는 보안 약점
        • 종류
          • 경쟁 조건
          • 종료되지 않는 반복문 또는 재귀함수
      • 에러 처리
        • 에러를 처리하지 않거나 불충분하게 처리하여 에러 정보에 중요 정보가 포함될 때 발생할 수 있는 보안 약점
        • 종류
          • 오류 메시지 정보 노출
          • 오류 상황 대응 부재
          • 부적절한 예외 처리
      • 코드 오류
        • 개발자가 범할 수 있는 코딩 오류로 인해 유발되는 보안 약점
        • 종류
          • 널 포인터 역참조
          • 부적절한 자원 해제
          • 해제된 자원 사용
          • 초기화되지 않은 변수 사용
      • 캡슐화
        • 중요한 데이터 또는 기능성을 불충분하게 캡슐과하거나 잘못 사용해 발생하는 보안 약점
        • 종류
          • 잘못된 세션에 의한 정보 노출
          • 제거되지 않은 디버그 코드
          • 시스템 정보 노출
          • 잘못된 접근 지정자
      • API 오용
        • 의도된 사용에 반하는 방법으로 API를 사용하거나 보안에 취약한 API를 사용하여 발생할 수 있는 보안 약점
        • 종류
          • DNS에 의존한 보안 결정
          • 취약한 API 사용
    • 시큐어 코딩
      • 시큐어 코딩 가이드를 기반으로 코딩을 하는 것
  • 백업과 복구
    • 재난 복구 전략 시 지표
      • RP
        • 실제 업무 기능 복구까지 걸린 시간
      • RTO
        • 업무 중단 시점부터 복구되어 가동 될 때까지 시간 목표
        • 시스템 장애 시 비즈니스가 감당할 수 있는 최대의 시간
      • RPO
        • 재해 발생 시 데이터 손실을 감당할 수 있는 데이터의 양
        • 허용 가능한 복구할 데이터의 양
      • MTD(Maximum Tolerable Downtime)
        • 비즈니스 연속성 관리에서 사용되는 지표
        • 장애 시 업무가 정지 상태를 허용하는 최대 시간
    • 백업과 복구를 위한 전략
      • 풀-이미지-백업: 가장 오랜 시간이 걸린다.
      • 차등 백업: 마지막 풀-이미지-백업 이후부터 발생한 모든 변경 사항을 백업
      • 증분 백업: 마지막 풀-이미지-백업 이후 발생한 변경 사항만 백업
      • 실시간 백업: 실시간
      • 합성 백업: 풀-이미지-백업 + 증분 백업

SW개발 보안 구현

  • 암호 알고리즘
    • 양방향 암호
      • 대칭키 암호: 많은 양, 빠른 속도
        • Stream
          • RC4: 로널드 라이베스트, 각 단계에서 키스트림 한 바이트를 생성
          • LFSR: 블록 암호에 비해 경량 및 고속 동작이 용이
          • A5: GSM 휴대폰 체계에 사용
        • Block
          • AES: 128bit 평문을 128, 192, 256bit 로 암호화, 키 크기에 따라 10/12/14 Round,
            SPN 암호 방식 사용
          • DES: 64bit 블록, 56bit 암호화 키, 16Round, Feistel 암호 방식
          • 3DES: DES 3번
          • SEED: 순수 국내기술, 128, 256bit 대칭 키 블록 암호 알고리즘
          • ARIA: 국내 암호화 알고리즘, AES 알고리즘과 똑같이 128, 192, 256bit 암호화키
          • IDEA: 스위스, 128bit 키, 64bit 블록, 8Round, feistel & SPN 중간 형태
          • SKIPJACK: 미국, 64bit 입출력, 80bit 키 , 32Round
      • 비대칭키 암호: 적은 양, 느린 속도, (개인키로 편지, 공개키로 편지박스 암호화)
        • 소인수분해
          • RSA: 대표적인 공개키 암호 알고리즘
          • RR: RSA 보다 빠르다
        • 이산대수
          • Elgamal: 같은 평문에서 다른 암호문의 생성이 가능
          • Diffie-Hellman: 키관리 센터 없이 공개키 전달 가능
          • KCDSA: KISA에서 개발한 인증서 기반 부가형 전자서명 알고리즘
          • DSA: 미국의 전자서명 표준
        • 타원곡선: ECC: 타원 곡선상의 이산대수를 이용
    • 단방향 암호(Hash)
      • 해시 함수 특성
        • 역상 저항성
        • 제 2 역상 저항성(약한 충돌 저항성)
        • 충돌 저항성
      • 종류
        • SHA-1
        • MD5
        • HAS-160 (우리나라)
      • 암호학적 해시 함수의 결점
        • 무차별 대입 공격
        • Rainbow Table 공격
      • 암호학적 해시 함수의 보완
        • 키 스트레칭
          • 무차별 대입 공격을 방지
          • 해시 암호화를 여러 번 반복하여 암호학적 문제가 발생하는 점을 줄일 수 있다.
        • Salting
          • Rainbow Table 공격을 방지
          • 데이터의 앞/뒤에 임의의 값을 넣어 해시값을 만들기.
  • 암호 알고리즘
    • 암호화 프로토콜
      • PGP: Phil zimmermann에 의해 개발, 전자우편의 암호화, 받은 전자우편의 암호 해석
      • PEM: PGP와 같이 메시지를 암호화, 특정 키가 있어야만 내용 확인 가능, 기밀성, 메시지 무결성, 사용자 인증, 부인방지 기능 제공
      • S/MINE: MINE Type은 파일, 첨부물에 대한 보안이 목적
      • DKIM: 메일 발신자가 발송 정보를 위장할 수 없도록 하는 기술 표준
  • 코드 오류
    • 코드의 유형
      • 순차 코드
      • 블록 코드
      • 10진 코드
      • 그룹 분류 코드
      • 연상 코드: 해당 코드를 보면 어떤 것을 의미하는지 알 수 있도록
      • 표의 숫자 코드: 가로, 세로, 높이, 중량에 따라 코드
      • 합성 코드
    • 코드 오류의 유형
      • 생략 오류
      • 필사 오류
      • 전위 오류
      • 이중 오류
      • 추가 오류
      • 임의 오류

인증과 접근통제

  • 인증과 인가
    • 인증
      • 개념
        • 로그인을 요청한 사용자의 정보를 확인하고 접근 권한을 검증하는 보안 절차
      • 인증 유형
        • 지식 기반 인증: ID, PWD
        • 소유 기반 인증: OPT, 사원 카드
        • 생체 기반 인증: 지문, 홍체
        • 행위 기반 인증: 사인, 행동
        • 위치 기반 인증: IP, 위치
    • 인가
      • 개념
        • 로그인 후, 인증된 사용자에게 권한을 부여
    • 인증방식
      • 계정 정보를 요청 헤더에 넣는 방식
      • Cookie/Session 방식
      • 토큰 기반 인증 방식(JWT)
      • SSO
      • 커버로스
      • 아이핀
  • 접근 통제
    • 개념
      • 정당한 사용자에게는 권한을 부여하고 그 외의 다른 사용자는 거부
    • 접근 통제 과정 (= 정보보호의 AAA와 유사)
      • 식별
      • 인증
      • 인가
    • 접근 통제 원칙
      • 최소 권한의 원칙
      • 직무 분리
    • 접근 통제 정책
      • 강제적 접근통제(MAC)
        • 자원의 보안 레벨과 사용자의 보안 취급인자를 비교하여 접근 제어
        • 기밀성이 강조되는 조직에서 사용
      • 임의적 접근통제(DAC)
        • 주체가 속해 있는 그룹의 신원에 근거하여 객체에 대한 접근을 제한
        • 자원의 소유권을 가진 사람이 다른 사람의 접근을 허용하거나 제한할 수 있다.
      • 역할기반 접근통제(RBAC)
        • 사용자의 역할에 기반을 두고 접근을 통제하는 모델.
    • 접근 통제 모델
      • 벨-라파둘라 모델(BLP): 기밀성, no read up no write down
      • 비바 모델: 무결성, no read down no write up
      • 클락 윌슨 모델: 무결성 중심의 상업용 모델
      • 만리장성 모델: 충돌을 야기하는 어떠한 정보의 흐름도 차단해야하는 것으로 이익 충돌 회피를 위한 모델