SW개발 보안 설계
- 정보보안
- 개념
- 기업의 정보 및 정보 시스템에 대해서 허가되지 않은 접근, 변경, 삭제 등으로부터 보호
- 정보보안의 3요소
- 기밀성(Confidentiality)
- 인가된 사용자만 정보 자산에 접근할 수 있도록 한다.
- 무결성(Integrity)
- 적절한 권한을 가진 사용자가 인가된 방법으로만 정보를 변경할 수 있도록 접근 통제한다
- 가용성(Availability)
- 원하는 시점에 언제든 정보 자산에 접근이 가능하도록 한다
- 기밀성(Confidentiality)
- 정보보안의 AAA
- 인증(Authentication)
- 인가, 권한부여(Authorization)
- 계정관리(Accounting)
- 정보보안의 거버넌스
- 정의
- 정보의 무결성, 서비스의 연속성, 정보자산의 보호를 위한 것
- 정보 보안을 하기 위한 활동에 대한 것을 의미
- 정보보안 거버넌스의 3요소
- 정보자산의 보호(기밀성)
- 데이터 무결성(무결성)
- 서비스 연속성(가용성)
- 정의
- 인증제도
- ISMS(정보보호 관리체계 인증)
- 정보통신망의 안전성 확보를 위하여 수립하는 기술적, 물리적, 관리적 보호조치 등 종합적인 정보보호 관리체계에 대한 인증제도
- PIMS(개인정보보호 관리체계)
- 기관 및 기업이 개인정보보호 관리체계를 갖추고 체계적, 지속적으로 보호 업무를 수행하는지에 대해 객관적으로 심사하여 기준 만족 시 인증 부여
- ISMS-P(정보보호 및 개인정보보호 관리체계 인증)
- 정보보호 및 개인정보보호를 위한 일련의 조치와 활동이 인증기준에 적합함을 인터넷진흥원 또는 인증기관이 증명하는 제도
- ITSEC
- 유럽에서 만든 고유의 보안성 평가 기준서 개발
- TCSEC
- 미국의 신뢰성 있는 컴퓨터 시스템 평가기준
- CC
- 국가마다 상이한 평가 기준을 연동시키고, 평가결과를 상호 인증하기 위해 제정된 국가 평가기준
- ISMS(정보보호 관리체계 인증)
- 개념
- Secure SDLC
- 개념
- 보안상 안전한 소프트웨어를 개발하기 위해 SDLC에 보안 강화를 위한 프로세스를 포함한 것
- Secure + SDLC
- Secure SDLC 방법론
- CLASP
- SDLC의 초기 단계에서 보안을 강화하기 위해 개발된 방법론
- MS-DLC
- MS사에서 만든 기존의 SDLC를 개선한 방법론
- Seven Touch Points
- 소프트웨어 보안의 모범사례를 SDLC에 통합한 방법론
- CLASP
- 개념
- 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 사용
- 시큐어 코딩
- 시큐어 코딩 가이드를 기반으로 코딩을 하는 것
- OWASP(The Open Web Application Security Project)
- 백업과 복구
- 재난 복구 전략 시 지표
- RP
- 실제 업무 기능 복구까지 걸린 시간
- RTO
- 업무 중단 시점부터 복구되어 가동 될 때까지 시간 목표
- 시스템 장애 시 비즈니스가 감당할 수 있는 최대의 시간
- RPO
- 재해 발생 시 데이터 손실을 감당할 수 있는 데이터의 양
- 허용 가능한 복구할 데이터의 양
- MTD(Maximum Tolerable Downtime)
- 비즈니스 연속성 관리에서 사용되는 지표
- 장애 시 업무가 정지 상태를 허용하는 최대 시간
- RP
- 백업과 복구를 위한 전략
- 풀-이미지-백업: 가장 오랜 시간이 걸린다.
- 차등 백업: 마지막 풀-이미지-백업 이후부터 발생한 모든 변경 사항을 백업
- 증분 백업: 마지막 풀-이미지-백업 이후 발생한 변경 사항만 백업
- 실시간 백업: 실시간
- 합성 백업: 풀-이미지-백업 + 증분 백업
- 재난 복구 전략 시 지표
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
- AES: 128bit 평문을 128, 192, 256bit 로 암호화, 키 크기에 따라 10/12/14 Round,
- Stream
- 비대칭키 암호: 적은 양, 느린 속도, (개인키로 편지, 공개키로 편지박스 암호화)
- 소인수분해
- 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)
- 사용자의 역할에 기반을 두고 접근을 통제하는 모델.
- 강제적 접근통제(MAC)
- 접근 통제 모델
- 벨-라파둘라 모델(BLP): 기밀성, no read up no write down
- 비바 모델: 무결성, no read down no write up
- 클락 윌슨 모델: 무결성 중심의 상업용 모델
- 만리장성 모델: 충돌을 야기하는 어떠한 정보의 흐름도 차단해야하는 것으로 이익 충돌 회피를 위한 모델
- 개념
'정보처리기사' 카테고리의 다른 글
[정보처리기사] C 언어 정리 (0) | 2023.07.12 |
---|---|
[정보처리기사] 정보 보안 (2) (0) | 2023.07.11 |
[정보처리기사] C 언어 정리 (0) | 2023.07.10 |
[정보처리기사] 네트워크 (0) | 2023.07.08 |
[정보처리기사] 운영체제 (0) | 2023.07.07 |