1. 보안 요소
- 기밀성(Confidentiality): 시스템 내의 정보와 자원은 인가된 사용자에게만 접근이 허용됨. 정보가 전송 중에 도출되더라도 데이터를 읽을 수 없음.
- 무결성(Integrity): 시스템 내의 정보는 인가된 사용자만 수정할 수 있음.
- 가용성(Availability): 인가 받은 사용자는 언제라도 사용할 수 있음.
- 인증(Authentication): 시스템 내의 정보와 자원을 사용하려는 사용자가 합법적인 사용자인지 확인하는 모든 행위
- 부인 방지(NonRepudiation): 데이터를 송, 수신한 자가 해당 사실을 부인할 수 없도록 증거 제공.
2. 시큐어 코딩(Secure Coding)
- SW 구현 단계에서 발생할 수 있는 보안 취약점을 최소화하기 위해 보한 요소를 고려하며 코딩하는 것.
- 보안 취약점을 사전에 대응하여 안정성, 신뢰성 확보.
- 보안 정책을 바탕으로 시큐어 코딩 가이드 작성, 교육 실시해야 함.
3.세션 통제
- 세션(서버와 클라이언트 연결) 통제: 세션의 연결로 인해 발생하는 정보 관리하는 것.
- 소프트웨어 개발 과정 중 요구사항 분석 및 설계 단계에서 진단하는 보안 점검 내용.
- 세션 통제의 보안 약점
*불충분한 세션 관리: 일정한규칙이 존재하는 세션ID가 발급되거나,타임아웃이 너무 길게 설정되어 있는 경우 발생할 수 있음. 세션 하이재킹(클라이언트의 세션 정보를 가로채는 공격 기법)과 같은 공격을 통해 시스템의 중요한 정보에 접근할 수 있음,
*잘못된 세션에 의한 정보 노출:다중 스레드환경에서맴버 변수에 정보를 저장할 때 발생하는 보안 약점.싱글톤 패턴에서 발생하는레이스 컨디션으로 인해 동기화 오류가 발생하거나 멤버 변수의 정보가 노출될 수 있음. 멤버 변수보다지역 변수를 활용하여 변수의 범위를 제한함으로써 방지 가능.
4. 레이스 컨디션
- 두 개 이상의 프로세스가 공동 자원을 획득하기 위해 경쟁하고 있는 상태.
- 보안 점검 내용 중 시간 및 상태에서 TOCTOU Race Condition(경쟁 조건)이란 검사 시점과 사용 시점을 고려하지 않고 코딩하는 경우 발생하는 보안 약점이다. 코드 내에 동기화 구문을 사용하여 해당 자원에는 하나의 프로세스만 접근 가능하도록 구성함으로서 방지할 수 있다.
5. SQL 삽입
- 입력 데이터 검증 및 표현의 보안 약점 중 입력란에 SQL을 삽입하여 무단으로 DB를 조회하거나 조작하는 보안 약점
- 동적 쿼리에 사용되는 입력 데이터에 예약어 및 특수문자가 입력되지 않게 필터링 되도록 설정하여 방지할 수 있음.
6. 널 포인터 역참조
- 보안 점검 내용 중 코드 오류로 발생할 수 있는 보안 약점
- 널 포인터가 가리키는 메모리에 어떠한 값을 저장할 때 발생하는 보안 약점.
- 널 값을 포인터로 참조하는 경우 발생.
- 대부분의 운영체제에서 널 포인터는 메모리의 첫 주소를 가리키며, 해당 주소를 참조할 경우 소프트웨어가 비정상적으로 종료될 수 있다.
- 널이 될 수 있는 포인터를 이용하기 전에 널 값을 가지고 있는지 검사함으로써 방지할 수 있음.
7. API 오용
- 소프트웨어 구현 단계에서 API 오용으로 발생할 수 있는 보안 약점.
- DNS Lookup에 의존한 보안 결정: 도메인명에 의존하여 보안 결정을 내리는 경우 동일한 도메인에 속한 서버인 것처럼 위장하여 조작할 수 있음. IP 주소를 직접 입력하여 접근함으로써 방자할 수 있음.
- 취약한 API 사용: C언어의 strcpy(), sprintf() 등이 보안 문제로 금지됨. 안전함 함수로 대체.
8. 개인키 암호화 기법
- 동일한 키로 데이터를 암호화하고 복호화하는 양방향 암호화 방식.
- 대칭 암호 기법 혹은 단일키 암호화 기법
- 종류
*블록 암호화방식: 한 번에 하나의 데이터 블록을 암호화 하는 방식.
= DES: 미 표준국에서 채택, 블록 크기: 64비트, 키 길이: 56비트
= SEED: 한국 인터넷 진흥원, 블록 크기 128비트, 키: 길이에 따라 128, 256으로 분류.
= AES, ARIA
*스트림 암호화 방식: 평문과 동일한 길이의 스트림을 생성하여 비트 단위로 암호화 하는 방식.LFSR, RC4
- 장점: 암호화/ 복호화 속도가 빠르고 알고리즘이 단순. 파일의 크기가 비교적 작다.
- 단점: 사용자의 증가에 따라 관리해야 할 키의 수가 상대적으로 많아진다.
9. 공개키 암호화 기법
- 데이터를 암호화할 때 사용하는 공개키는 데이터베이스 사용자에게 공개하고, 복호화할 때의 비밀키는 관리자가 비밀리에 관라히는 양방향 암호화 방식.
- 비대칭 암호 기법, 대표적으로는 RSA기법.
- 장점: 키의 분배가 용이하고 관리해야할 키의 개수가 적다.
- 단점: 암호화/ 복호화 속도가 느리며, 알고리즘이 복잡하고, 개인키 암호화 기법보다 파일 크기가 크다.
10. 해시
- 임의의 길이의 데이터나 메세지를 고정된 길이의 값이나 키로 변환하는 것.
- 해시 알고리즘을 해시 함수로 부르며, 해시 함수로 변환된 값이나 키를 해시 키(값)으로 부름.
- 데이터의 암호화, 무결성 검증을 위해 사용될 뿐만 아니라 정보보호의 다양한 분야에서 활용됨.
- SHA 시리즈, MD5, N-NASH, SNEFRU
'집에서 하는 공부 > 정보처리기사' 카테고리의 다른 글
[정보처리기사]2022년 정보처리기사 실기 2회 가답안 (0) | 2022.07.25 |
---|---|
[정보처리기사]프로젝트 정보 시스템 구축 관리 (0) | 2022.06.13 |
[정보처리기사]시스템 보안 구축 (0) | 2022.06.09 |
[정보처리기사]인터페이스 구현 검증 도구 (0) | 2022.06.08 |
[정보처리기사]인터페이스 기능 구현 (0) | 2022.06.07 |