728x90
반응형
Secure OS
기존의 OS에 내재된 보안 취약점을 해소하기 위해 보안 기능을 갖춘 커널을 이식하여 외부의 침입으로부터 시스템 자원을 보호하는 운영체제를 의미
보호방법(구현 복잡 우선순)
- 암호적 분리(Cryptographic Separation)
- 내부 정보를 암호화하는 방법
- 논리적 분리(Logical Separation)
- 프로세스의 논리적 구역을 지정하여 구역을 벗어나는 행위를 제한하는 방법
- 시간적 분리(Temporal Separation)
- 동일 시간에 하나의 프로세스만 수행되도록 하여 동시 실행으로 발생하는 보안 취약점을 제거하는 방법
- 물리적 분리(Physical Separation)
- 사용자별로 특정 장비만 사용하도록 제한하는 방법
보안 기능
- 식별 및 인증
- 각 접근 주체에 대한 안전하고 고유한 식별 및 인증 기능
- 임의적 접근 통제
- 소속 그룹 또는 개인에 따라 부여된 권한에 따라 접근을 통제하는 기능
- DAC(Discretionary Access Control) 또는 신분 기반 정책이라고도 함
- 강제적 접근 통제
- 접속 단말 및 접속 방법, 권한, 요청 객체의 특성 등 여러 보안 속성이 고려된 규칙에 따라 강제적으로 접근을 통제하는 기능
- MAC(Mandatory Access Control) 또는 규칙 기반 정책이라고도 함
- 객체 재사용 보호
- 메모리에 기존 데이터가 남아있지 않도록 초기화하는 기능
- 완전한 조정
- 우회할 수 없도록 모든 접근 경로를 완전하게 통제하는 기능
- 신뢰 경로
- 비밀번호 변경 및 권한 설정 등과 같은 보안 작업을 위한 안전한 경로를 제공하는 기능
- 감사 및 감사 기록 축소
- 모든 보안 관련 사건 및 작업을 기록(Log)한 후 보호하는 기능
- 막대한 양의 기록들을 분석하고 축소하는 기능
Secure SDLC
보안상 안전한 소프트웨어를 개발하기 위해 SDLC에 보안 강화를 위한 프로세스를 포함한 것
- 소프트웨어의 유지 보수 단계에서 보안 이슈를 해결하기 위해 소모되는 많은 비용을 최소화하기 위해 등장
- Secure SDLC는 요구사항 분석, 설계, 구현, 테스트, 유지 보수 등 SDLC 전체 단계에 걸쳐 수행되어야 할 보안 활동을 제시
대표적인 방법론
CLASP | - Secure Software 사에서 개발 - SDLC의 초기 단계에서 보안을 강화하기 위해 개발된 방법론 - 활동 중심, 역할 기반의 프로세스로 구성되어 있으며, 현재 운용 중인 시스템에 적용하기 적합 |
SDL | - 마이크로소프트 사에서 안전한 소프트웨어 개발을 위해 기존의 SDLC를 개선한 방법론 - 전통적인 나선형 모델을 기반으로 함 |
Seven Touchpoints |
- 소프트웨어 보안의 모범사례를 SDLC에 통합한 방법론 - 설계 및 개발 과정의 모든 산출물에 대해 위험 분석 및 테스트를 수행함 - SDLC의 각 단계에 관련된 7개의 보안 강화 활동을 수행함 |
보안 요소
소프트웨어 개발에 있어 충족 시켜야할 요소 및조건
기밀성(Confidentiality)
- 시스템 내의 정보와 자원을 인가된 사용자에게만 접근이 허용됨
- 정보가 전송 중에 노출되더라도 데이터를 읽을 수 없음
무결성(Integrity)
- 시스템 내의 정보는 오직 인가된 사용자만 수정할 수 있음
가용성(Availability)
- 인가받은 사용자는 언제라도 사용할 수 있음
인증(Authentication)
- 시스템 내의 정보와 자원을 사용하려는 사용자가 합법적인 사용자인지를 확인하는 모든 행위
- 대표적 방법으로는 패스워드, 인증용 카드, 지문 검사 등
부인방지(NonRepudiation)
- 데이터 송, 수신한 자가 송, 수신 사실을 부인할 수 없도록 송, 수신 증거를 제공
세션 하이재킹(Session Hijacking)
서버에 접속하고 있는 클라이언트들의 세션 정보를 가로채는 공격 기법(== 세션 가로 채기)
- 정상적인 연결을 RST(Reset) 패킷을 통해 종료시킨 후 재연결 시 희생자가 아닌 공격자에게 연결하는 방식
- 공격자는 서버와 상호 간의 동기화된 시퀀스 번호를 이용하여 인가되지 않은 시스템의 기능을 이용하거나 중요한 정보에 접근할 수 있게 함
- 탐지 방법에는 비동기화 상태 탐지, ACK Storm 탐지, 패킷의 유실 탐지, 예상치 못한 접속의 리셋 탐지
입력 데이터 검증 및 표현의 보안 약점
SQL 삽입 | - 웹 응용 프로그램에 SQL을 삽입하여 내부 데이터베이스 서버의 데이터를 유출 및 변조하고, 관리자 인증을 우회하는 보안 약점 - 동적 쿼리에 사용되는 입력 데이터에 예약어 및 특수문자가 입력되지 않게 필터링 되도록 설정하여 방지 |
경로 조작 및 자원 삽입 |
- 데이터 입출력 경로를 조작하여 서버 자원을 수정, 삭제할 수 있는 보안 약점 - 사용자 입력값을 식별자로 사용하는 경우, 경로 순회 공격을 막는 필터를 사용하여 방지할 수 있음 |
크로스사이트 스크립팅(XSS) |
- 웹페이지에 악의적인 스크립트를 삽입하여 방문자들의 정보를 탈취, 비정상적인 기능 수행을 유발하는 보안 약점 - HTML 태그의 사용을 제한하거나 스크립트에 삽입되지 않도록 <,>,& 등의 문자를 다른 문자로 치환함으로써 방지 가능 |
운영체제 명령어 삽입 |
- 외부 입력값을 통해 시스템 명령어의 실행을 유도함으로써 권할을 탈취하거나 시스템 장애를 유발하는 보안 약점 - 웹 인터페이스를 통해 시스템 명령어가 전달되지 않도록 하고, 외부 입력값을 검증 없이 내부 명령어로 사용하지 않음으로써 방지 가능 |
위험한 형식 파일 업로드 |
- 악의적인 명령어가 포함된 스크립트 파일을 업로드함으로써 시스템에 손상을 주거나, 시스템을 제어할 수 있는 보안 약점 - 업로드 되는 파일의 확장자 제한, 파일명의 암호화, 웹사이트와 파일 서버의 경로 분리, 실행 속성을 제거하는 등의 방법으로 방지 가능 |
신뢰되지 않는 URL 주소로 자동접속 연결 |
- 입력 값으로 사이트 주소를 받는 경우 이를 조작하여 방문자를 피싱 사이트로 유도하는 보안 약점 - 연결되는 외부 사이트의 주소를 화이트 리스트로 관리하므로써 방지할 수 있음 |
메모리 버퍼 오버플로 |
- 연속된 메모리 공간을 사용하는 프로그램에서 할당된 메모리의 범위를 넘어선 위치에서 자료를 읽거나 쓰려고 할 때 발생하는 보안 약점 - 프로그램의 오동작을 유발시키거나, 아그이적인 코드를 실행시켜 공격자가 프로그램을 통제할 수 있는 권한을 획득하게 함 - 메모리 버퍼를 사용할 경우 적절한 버퍼의 크기를 설정, 설정된 범위의 메모리 내에서 올바르게 읽거나 쓸 수 있도록 함으로써 방지 |
보안 기능의 보안 약점
적절한 인증 없이 중요기능 허용 |
- 보안검사를 우회하여 인증과정 없이 중요한 정보 또는 기능에 접근 및 변경이 가능 - 중요정보나 기능을 수행하는 페이지에서는 재인증 기능을 수행하도록 하여 방지할 수 있음 |
부적절한 인가 | - 접근제어 기능이 없는 실행경로를 통해 정보 또는 권한을 탈취할 수 있음 - 모든 실행경로에 대해 접근제어 검사를 수행하고, 사용자에게는 반드시 필요한 접근 권한만을 부여하여 방지할 수 있음 |
중요한 자원에 대한 잘못된 권한 설정 |
- 권한 설정이 잘못된 자원에 접근하여 해당 자원을 임의로 사용할 수 있음 - 소프트웨어 관리자만 자원들을 읽고 쓸 수 있도록 설정하고, 인가되지 않은 사용자의 중요 자원에 대한 접근 여부를 검사함으로써 방지할 수 있음 |
취약한 암호화 알고리즘 사용 |
- 암호화된 환경설정 파일을 해독하여 비밀번호 등의 중요 정보를 탈취할 수 있음 - 안전한 암호화 알고리즘을 이용, 업무관련 내용이나 개인정보 등에 대해서는 IT보안인증사무국이 안정성을 확인한 암호모듈을 이용함으로써 방지 |
중요정보 평문 저장 및 전송 |
- 암호화되지 않은 평문 데이터를 탈취하여 중요한 정보를 획득할 수 있음 - 중요한 정보를 저장하거나 전송할 때는 반드시 암호화 과정을 거치도록 함 - HTTPS 또는 SSL과 같은 보안 채널을 이용함으로써 방지할 수 있음 |
하드코드 된 비밀번호 |
- 소스코드 유출 시 내부에 하드코드된 패스워드를 이용하여 관리자 권한을 탈취할 수 있음 - 패스워드는 암호화하여 별도의 파일에 저장하고, 디폴트 패스워드나 디폴드 키의 사용을 피함으로써 방지 |
스택 가드(Stack Guard)
Null Pointer 역참조와 같이 주소가 저장되는 스택에서 발생하는 보안 약점을 막는 기술 중 하나
- 메모리상에서 프로그램의 복귀 주소와 변수 사이에 특정 값을 저장
- 그 후 그 값이 변경되었을 경우 오버플로우 상태로 판단하여 프로그램 실행을 중단함으로써 잘못된 복귀 주소의 호출을 막는 기술
접근 지정자(접근 제어자)
프로그래밍 언어에서 특정 개체를 선언 시 외부로부터 접근을 제한하기 위해 사용되는 예약어
(접근 가능: O, 접근 불가능 : X)
한정자 | 클래스 내부 | 패키지 내부 | 하위 클래스 | 패키지 외부 |
Public | O | O | O | O |
Protected | O | O | O | X |
Default | O | O | X | X |
Private | O | X | X | X |
728x90
반응형
'자격증 준비 > 정보처리기사 필기 - 5과목(정보시스템 구축 관리)' 카테고리의 다른 글
[정보처리기사 필기] 5과목 - 보안3 (0) | 2023.02.23 |
---|---|
[정보처리기사 필기] 5과목 - 보안2 (0) | 2023.02.23 |
[정보처리기사 필기] 5과목 - 네트워크 및 프로토콜, DB 회복, 교착상태 (0) | 2023.02.22 |
[정보처리기사 필기] 5과목 - 신기술 및 관련 용어 (0) | 2023.02.21 |
[정보처리기사 필기] 5과목 - 프로젝트 관리, 소프트웨어 개발 (0) | 2023.02.21 |