일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 그리디 알고리즘
- I/O장치
- 동적계획법
- 다이나믹 프로그래밍
- 다이나믹프로그래밍
- 운영체제
- DirectX 12
- 쓰레드
- 렌더링 파이프라인
- 파일시스템 구현
- Direct12
- 자료구조
- 타입 객체
- codility
- 멀티쓰레드
- OS
- 알고리즘
- 멀티프로세서
- directx
- 그리디알고리즘
- 스케줄링
- 병행성 관련 오류
- 프로그래머스
- DirectX12
- 백준
- 컨디션 변수
- 락
- 영속성
- 디자인패턴
- 병행성
- Today
- Total
목록자격증공부/정보처리기사_필기 (166)
기록공간

암호 알고리즘은 패스워드, 주민번호, 은행계좌와 같은 중요정보를 보호하기 위해 평문을 암호화된 문장으로 만드는 절차 또는 방법을 의미한다. 암호 방식 분류 개인키 암호화(Private Key Encryption) 기법 동일한 키로 데이터를 암호화하고 복호화한다. 데이터베이스 사용자는 평문의 정보 M을 암호화 알고리즘 E와 개인키 K를 이용하여 암호문 C로 바꾸어 저장시켜 놓으면 사용자는 그 데이터베이스에 접근하기 위해 복호화 알고리즘 D와 개인키 K를 이용하여 다시 평문의 정보 M으로 바꾸어 이용하는 방법이다. 개인키 암호화 기법은 대칭 암호 기법 또는 단일키 암호화 기법이라고도 한다. 개인키 암호화 기법은 한 번에 하나의 데이터 블록을 암호화 하는 블록 암호화 방식과, 평문과 동일한 길이의 스트림을 생..
API 오용은 소프트웨어 구현 단계에서 API를 잘못 사용하거나 보안에 취약한 API를 사용하지 않도록 하기 위한 보안 검증 항목들이다. DNS Lookup에 의존한 보안 결정 도메인명에 의존하여 인증이나 접근 통제 등의 보안 결정을 내리는 경우 발생하는 보안 약점이다. DNS 엔트리를 속여 동일한 도메인에 속한 서버인 것처럼 위장하거나, 사용자와 서버 간의 네트워크 트래픽을 유도하여 악성 사이트를 경유하도록 조작할 수 있다. 공격자는 DNS lookup을 악용하여 인증이나 접근 통제를 우회하는 수법으로 권한을 탈취한다. DNS 검색을 통해 도메인 이름을 비교하지 않고 IP 주소를 직접 입력하여 접근함으로써 방지할 수 있다. 취약한 API 사용 보안 문제를 사용이 금지된 API를 사용하거나, 잘못된 방식..
캡슐화는 정보 은닉이 필요한 중요한 데이터와 기능을 불충분하게 캡슐화하거나 잘못 사용함으로써 발생할 수 있는 문제를 예방하기 위한 보안 점검 항목들이다. 잘못된 세션에 의한 정보 노출 다중 스레드 환경에서 멤버 변수에 정보를 저장할 때 발생하는 보안 약점이다. 싱글톤 패턴에서 발생하는 레이스컨디션으로 인해 동기화 오류가 발생하거나, 멤버 변수의 정보가 노출될 수 있다. 멤버 변수보다 지역 변수를 활용하여 변수의 범위를 제한함으로써 방지할 수 있다. 제거되지 않고 남은 디버그 코드 개발 중 버그 수정이나 결과값 확인 위해 남겨둔 코드들로 인해 발생하는 보안 약점이다. 소프트웨어 제어에 사용되는 중요한 정보가 디버그 코드로 인해 노출될 수 있다. 디버그 코드에 인증 및 식별 절차를 생략하거나 우회하는 코드가..
코드 오류는 소프트웨어 구현 단계에서 개발자들이 코딩 중 실수하기 쉬운 형변환, 자원 반환 등의 오류를 예방하기 위한 보안 점검 항목들이다. 널 포인터(Null Pointer) 역참조 널 포인터가 가리키는 메모리에 어떤 값을 저장할 때 발생하는 보안 약점이다. 많은 라이브러리 함수들이 오류가 발생할 경우 널 값을 반환하는데, 이 반환값을 포인터로 참조하는 경우 발생한다. 대부분의 운영체제는 널 포인터는 메모리의 첫 주소를 가리키며, 해당 주소를 참조할 경우 소프트웨어가 비정상적으로 종료될 수 있다. 공격자가 널 포인터 역참조로 발생하는 예외 상황을 악용할 수 있다. 널이 될 수 있는 포인터를 이용하거 전에 널 값을 갖고 있는지 검사함으로써 방지할 수 있다. 부적절한 자원 해제 자원을 반환하는 코드를 누락..
에러처리는 소프트웨어 실행 중 발생할 수 있는 오류들을 사전에 정의하여 오류로 인해 발생할 수 있는 문제들을 예방하기 위한 보안 점검 항목들이다. 각 프로그래밍 언어의 예외처리 구문을 통해 오류에 대한 사항을 정의한다. 예외처리 구문으로 처리하지 못한 오류들은 중요정보를 노출시키거나, 소프트웨어의 실행이 중단되는 등 예기치 못한 문제를 발생시킬 수 있다. 에러처리 미비로 인한 코딩이 유발하는 보안 약점에는 오류 메시지를 통한 정보 노출, 오류 상황 대응 부재, 부적절한 예외처리가 있다. 오류 메시지를 통한 정보노출 오류 발생으로 실행 환경, 사용자 정보, 디버깅 정보등의 중요 정보를 소프트웨어가 메시지로 외부에 노출하는 보안 약점이다. 오류 메시지를 통해 노출되는 경로 및 디버깅 정보는 해커의 악의적인 ..
시간 및 상태는 동시 수행을 지원하는 병렬 처리 시스템이나 다수의 프로세스가 동작하는 환경에서 시간과 실행 상태를 관리하여 시스템이 원할하게 동작되도록 하기 위한 보안 검증 항목들이다. 이를 점검하지 않은 코딩이 유발하는 보안 약점에는 TOCTOU 경쟁 조건, 잘못된 반복문 재귀함수 등이 있다. 시간 및 상태의 점검 미비로 발생하는 각종 오류들은 공격자에 의해 악용될 수 있다. TOCTOU 경쟁 조건 TOCTOU 경쟁 조건은 검사 시점(Time Of Check)과 사용 시점(Time Of Use)을 고려하지 않고 코딩하는 경우 발생하는 보안 약점이다. 검사 시점에는 사용이 가능했던 자원이 사용 시점에는 사용할 수 없게 된 경우에 발생한다. 프로세스가 가진 자원 정보와 실제 자원 상태가 일치하지 않는 동기..
보안 기능은 소프트웨어 개발의 구현 단계에서 코딩하는 기능인 인증, 접근제어, 기밀성, 암호화 등을 올바르게 구현하기 위한 보안 점검 항목들이다. 각 보안 기능들은 서비스 환경이나 취급 데이터에 맞게 처리될 수 있도록 구현해야 한다. 소프트웨어의 기능 또는 데이터에 접근하려는 사용자별로 중요도를 구분하고, 차별화된 인증 방안을 적용한다. 인증된 사용자가 이용할 기능과 데이터에 대해 개별적으로 접근 권한을 부여하여 인가되지 않은 기능과 데이터로의 접근을 차단한다. 개인정보나 인증정보와 같은 중요한 정보의 변조, 삭제, 오남용 등을 방지하기 위해 안전한 암호화 기술을 적용한다. 보안 기능의 보안 약점 보안 기능에 대한 점검을 수행하지 않을 경우 인증 없이 중요한 기능을 허용하거나 비밀번호가 노출되는 등 다음..
입력 데이터 검증 및 표현은 입력 데이터로 인해 발생하는 문제들을 예방하기 위해 구현 단계에서 검증해야 하는 보안 점검 항목들이다. 입력 데이터로 인해 발생하는 문제를 예방하기 위해서는 소프트웨어 개발의 구현단계에서 유효성 검증 체계를 갖추고, 검증되지 않은 데이터가 입력되는 경우 이를 처리할 수 있도록 구현해야 한다. 입력 데이터를 처리하는 객체에 지정된 자료형이 올바른지 확인하고, 일관된 언어셋(유니코드, 아스키 등)을 사용하도록 코딩한다. 입력 데이터 검증 및 표현의 보안 약점 입력 데이터 검증 및 표현과 관련된 점검을 수행하지 않은 경우 SQL 삽입, 자원 삽입, 크로스사이트 스크립팅(XSS), 운영체제 명령어 삽입 등의 공격에 취약해진다. 보안 약점의 종류 SQL 삽입 : 입력란에 SQL을 삽입..