반응형
<시스템보안>
* 무차별 대입 공격 (Brute Force Attack)
-특정한 암호를 풀기 위해 가능한 모든 값을 대입하는 것을 의미
- 무차별 대입 공격 도구 (패스워드 크래킹 툴)
존 더 리퍼 (John the Ripper)
히드라 (THC Hydra)
메두사 (Medusa)
Cain and abel (스니핑도 사용하지만 사전공격과 무차별 대입공격으로 암호를 크래킹하는 도구입니다)
Wfuzz
Brutus
RainbowCrack
L0phtCrack
Pwdump
* RAID-0: 속도 향상만을 추구하는 스트라이핑 모델
* RAID-1: 안정성만을 추구하는 미러링 모델
* RAID-2: RAID 0과 같이 스트라이핑으로 구현하고, 오류 정정을 위한 Hamming code를 사용
* RAID-3: 스트라이핑 기술을 사용하여 디스크들을 구성하고, 별도의 디스크에 패리티 정보를 저장
* RAID-4: 블록 형태의 스트라이핑 기술과 패티리 사용
* RAID-5: 안전성과 속도 모두를 추구하는 방식, 가장 많이 쓰인다, 블록 스트라이핑과 분산된 패리티를 사용한다
* RAID-6: RAID 5와 비슷하지만 2차 패리티까지 포함하여 안정성을 더 높였다, 금융업이나 중요 데이터 스토리지 등에 사용된다.
* 운영체제의 주요 기능:
① 사용자와 하드웨어 간의 인터페이스를 정의한다.
② 오류 검사 및 복구 기능을 수행한다.
③ 사용자 간의 자원을 스케줄링하고 할당하는 기능을 수행한다.
* 운영체제의 5계층 (프-메-프-주-파)
프로세서 관리(1계층): 동기화 및 프로세서 스케줄링
메모리 관리(2계층): 메모리 할당 및 회수
프로세스 관리(3계층): 프로세스 생성,제거
주변장치 관리(4계층): 주변장치 상태파악
파일 관리(5계층): 파일의 생성과 소멸, 파일의 열기와 닫기
* 운영체제 발달 과정 (일-실-시-다-분)
일괄 처리 시스템(1950년대)
-필요한 정보를 모아 한꺼번에 처리하는 초기 정보처리 시스템
-현대에서도 배치 프로그램은 사용된다. 은행의 이자 정산, 학교의 성적 처리 등
실시간 처리 시스템(1960년대)
-입출력 장치의 개선으로 대화식으로 실시간 정보 처리 수행
-사용자가 필요한 연산을 바로 바로 입력하고 결과를 받아본다.
시분할 시스템(1960년대)
-다중 프로그래밍 시스템이라고도 한다.
-짧은 주기로 여러 프로그램을 번갈아가면서 실행하여 여러 사용자가, 여러 프로그램을 동시에 사용할 수 있게 함
-현대의 멀티 프로세싱, 멀티 스레드도 시분할 처리다.
다중처리 시스템(1980년대)
-하나의 메모리(주기억장치)에 복수의 연산장치(CPU)를 이용하여 작업을 처리하는 방식
-2코어, 4코어 등의 멀티 프로세서 시스템을 말한다.
분산 처리 시스템(1980년대)
-여러 컴퓨터를 네트워크로 묶어 높은 성능을 구현하는 방식
-클러스터링이 분산 처리 시스템에 해당된다.
* 원격지 운영체제(OS)를 탐지해 내는 방법
① telnet, IP port, ftp 등을 이용한다.
② nmap -O 옵션을 이용한다.
③ TCP의 초기 시퀀스 넘버를 확인한다.
④ HTTP GET과 서버의 포워드를 grep한다
* 버퍼링 (Buffering)
송수신지 간의 데이터 전송 속도 차이에 의한 병목 현상을 해결하기 위한 데이터 임시 저장 기술
버퍼링–주기억장치
스레드 –보조기억장치
* 스레드 (Thread)
스레드는 하나의 프로세스에 속하며, 여러 프로세스에 동시에 포함될 수 없다
스레드는 프로세스에서 제어를 분리한 실행단위이다
* 프로세스 스케줄링 기법
* 교착상태의 4가지 필요조건
-아래 4가지 조건이 모두 만족하면 데드락이 발생할 가능성이 있다.
-하나라도 만족하지 않으면 절대 발생하지 않는다.
* 상호 배제 (Mutual exclusion)
-한 리소스는 한번에 한 프로세스만이 사용 할 수 있음
* 점유와 대기 (Hold and wait)
-어떤 프로세스가 하나 이상의 리소스를 점유하고 있으면서 다른 프로세스가 가지고 있는 리소스를 기다리고 있음
* 비선점 (No preemption)
-프로세스가 테스크를 마친 후 리소스를 자발적으로 반환할 때 까지 기다림 (강제로 빼앗지 않는다)
* 환형 대기 (Circular wait)
-Hold and wait관계의 프로세스들이 서로를 기다림
* 교착상태의 방지법
* 방지 (Prevention)
할당 구조 측면에서, 교착상태가 발생할 수 있는 요구조건을 만족시키지 않게 함으로써 교착상태를 방지한다.
* 회피 (Avoidance)
리소스 할당의 측면에서, 교착상태가 발생할 가능성이 있는 자원 할당(unsafe allocation)을 하지 않는다.
대표적으로 은행원 알고리즘이 있다.
* 탐지 및 회복 (Detection and Recovery)
교착상태가 발생 할 수 있도록 놔 두고 교착상태가 발생 할 경우 찾아내어 고친다.
* 끝나지 않아 - 교착
중지 - 인터럽트
프로세스 - 세마포어
쓰레드 - 뮤텍스
* 세마포어 (semaphore)
-두개의 Atomic한 함수로 제어되는 정수 변수를 이용한 교착 상태 해법
-다익스트라(E.J. Dijkstra)가 제안
-상호 배제의 원리를 보장하는 알고리즘
-여러 개의 프로세스가 동시에 그 값을 수정하지 못한다.
* 인터럽트 동작 순서
1. 인터럽트 요청
2. 프로그램 실행 중단: 현재 실행중이던 Micro operation 까지 수행한다.
3. 현재의 프로그램 상태 보존: PCB(Process Control Block), PC(Program Counter) 등
4. 인터럽트 처리 루틴 실행: 인터럽트를 요청한 장치를 식별한다.
5. 인터럽트 서비스 루틴 실행
-인터럽트 원인을 파악하고 실질적인 작업을 수행한다. 처리기 레지스터 상태를 보존한다.
-서비스루틴 수행 중 우선순위가 더 높은 인터럽트가 발생하면 또 재귀적으로 1~5를 수행한다.
-인터럽트 서비스 루틴을 실행할 때 인터럽트 플래그(IF)를 0으로 하면 인터럽트 발생을 방지할 수 있다.
6. 상태복구 : 인터럽트 발생 시 저장해둔 PC(Program counter)를 다시 복구한다.
7. 중단된 프로그램 실행 재개: PC의 값을 이용하여 이전에 수행중이던 프로그램을 재개한다.
*시스템의 전체적인 설정 정보를 담고 있는 레지스트리 파일은 %SystemRoot%\system32\config 폴더에 저장된다.
BCD-Template – 부팅 환경 설정 정보
COMPONENTS – 설치된 컴포넌트 정보
DEFAULT – 제어판, 키보드, 키보드 레이아웃과 같은 기본 정보
SAM – 로컬 계정과 그룹 정보
SECURITY – 시스템의 보안과 권한 관련 정보
SOFTWARE – 시스템 부팅과 관련 없는 전역 설정 정보
SYSTEM – 시스템 부팅에 필요한 전역 설정 정보
* 윈도우 암호 정책
-확인 방법:
시작 - secpol.msc - 엔터
* 윈도우 백업 복구 시에 사용하는 파일
① user.dat
② system.ini
③ system.dat
* 윈도우 암호 정책 목록
-암호 복잡성 만족 여부
-최근 암호 기억
-최대 암호 사용 기간
-최소 암호 길이
-해독 가능한 암호화를 이용해 암호 저장
* LSA (Local Security Authority) 윈도우의 인증 시스템
-모든 계정의 로컬 및 원격 로그인에 대한 검증 수행
-시스템 자원(파일)에 대한 접근 권한 검사
-계정명과 SID(Security ID)를 매칭하여 SRM이 생성한 감사 로그를 기록
-NT 보안의 중심 서비스 보안 서브시스템(Security Subsystem)이라고 불림
* SAM (Security Account Manager) 윈도우 보안계정관리자
-사용자 계정의 비밀번호를 관리한다.
-해시된 비밀번호는 한 번 더 암호화되어 저장된다.
-액티브 디렉터리(AD)의 원격 사용자 인증에 사용된다.
-파일 위치: %SystemRoot%/system32/config/SAM
-레지스트리 위치: HKLM/SAM
* SRM (Security Reference Monitor)
-SAM이 사용자의 계정과 패스워드의 일치여부를 확인하여 SRM에 알려주면, SRM은 인증된 사용자에게 SID(Security ID)를 부여
-SID를 기반으로 하여 파일이나 디렉터리에 대한 접근 허용 여부를 결정하고 이에 대한 감사 메시지를 생성
-SID 확인시 getsid라는 툴 필요
-일반적인 SID 구조
The SID for account NEWGENERATION \administrator isS-1-5-21-1801674531-839522115-1708537768-500
① ② ③ ④
①해당 시스템이 윈도우 시스템임을 표시
②시스템이 도메인 컨트롤러이거나 단독 시스템(Stand alone system)임을 표시
③ 시스템의 고유한 숫자. 이 고유한 숫자는 시스템을 설치할 때 시스템의 특성을 수집하여 생성
④각 사용자별 숫자로 표현되는 고유한 ID
-관리자(Administrator)는 500번, Guest 계정은 501번, 일반 사용자는 1000번 이상의 숫자 할당
* NTLM (NT Lan Manager)
-Challenge-Response Mechanism 인증 방식
-요청, 응답의 과정을 위해 사용자 암호를 요구한다.
이 후 서버는 클라이언트로부터 암호를 요구하지 않고 클라이언트를 식별할 수 있게 된다. 만약 클라이언트가 시스템 계정으로 실행 중이라면 인증 정보를 보낼 수가 없기 때문에 인증은 실패하게 된다.
* NTFS
특징:
- 사용자마다 다른 보안을 적용할 수 있다.
- 파일 단위까지 보안을 적용시킬 수 있다.
- 파일과 폴더에 개별적으로 권한을 설정할 수 있으며 폴더에 설정한 권한보다 파일에 설정한 권한이 우선한다.
- 시스템 폴더는 Administrators/Power Users 그룹만 수정 가능하다.
- 파일 단위로 계정이 언제 파일을 열어보거나, 열려다 실패했는지 알 수 있는 감사(Auditing) 기능이 있다.
- 기본 보안 설정은 Everyone그룹에 대해 모든 권한 허용이다.
- 윈도우NT 전용 파일시스템으로 다른 OS와 호환성이 떨어진다는 것이 단점이다.
- 이론적인 최대 파일 크기는 16EB이나 실제 윈도우 운영체제에선 기본 16TB, 최대 256TB까지만 사용 가능하다.
* NTFS에서 Sector_per_cluster로 정할 수 없는 것은?
- 2진수 아닌거 고르면 된다. (NTFS에서 Sector-per-cluster는 2의 제곱수만 가능하다_
(파티션 크기) / (클러스터 크기)
64 MB 이하 / 512 Byte
65 MB - 128 MB / 1 KB
129 MB - 256 MB / 2 KB
257 MB - 8 GB / 4 KB
8 GB - 16 GB / 8 KB
16 GB 이상 / 16 KB
* 비트벡터(Bit Vector)
-파일시스템에서 가용공간 (Free Space)을 관리하기 위해 사용하는 방법
ㅇ 간편하며 연속적인 n개의 가용 블록을 찾는 데 효과적이다.
ㅇ 마이크로컴퓨터는 가능하지만 대형컴퓨터에서는 불가능하다.
ㅇ 하드디스크의 용량이 작을수록 유리하다.
* MFT (Master File Table):
-윈도우 NTFS에서 모든 파일들과 디렉터리에 대한 정보를 포함하고 있는 것
* OLE (Object Linking Embedded)
-Windows 운영체제에서 애플리케이션 사이에서 데이터를 공유하는 기술
-예를 들어 한컴 오피스에서 문서 작성 중 한글 내에서 그림판을 띄워 그림을 그린 후 그려진 그림파일을 반환하여 한글 문서 내 이미지로 바로 삽입할 수 있다.
* 윈도우 루트 키
* Master Key
-Hive파일에 저장되어 있는 키
HKEY_LOCAL_MACHINE (HKLM)
-설치된 하드웨어를 구동시키는데 필요한 정보
HKEY_USERS (HKU)
-유저들의 정보
* Derived Key
-Master Key를 토대로 재구성 되는 키. 메모리에만 존재한다.
HKEY_CLASSES_ROOT (HKCR)
-파일의 각 확장자에 대한 정보와 프로그램 간 연결 정보
HKEY_CURRENT_USER (HKCU)
-현재 시스템에 로그인하고 있는 사용자와 관련된 시스템 정보
-HKEY_USERS 보다 우선순위가 높음
-HCU에서 업데이트 된 내용이 HKU로 동기화
HKEY_CURRENT_CONFIG (HKCC)
-시스템이 시작할 때 사용하는 하드웨어 프로파일 정보
-디스플레이 및 프린트 설정 정보
* 윈도우 로그온창에 시스템 종료 버튼을 삭제
HKLM\SOFTWARE\Microsoft\Windows
NT\CurrentVersion\WinlogonShutdownWithoutLogon 값이 '0' 일때
* 윈도우 net 명령어
net share : 서버의 모든 공유 리소스 확인 또는 제거
net user : 서버의 사용자 계정 확인 및 관리
net session : 서버에 현재 원격 로그인된 사용자 확인 또는 세션종료
net computer : 도메인 데이터베이스에서 컴퓨터를 추가하거나 삭제
* 윈도우 기본 공유폴더 삭제
net share Share_Dir /delete
* lsass.exe - Local Security Authority Subsystem Service (로컬 보안 인증 하위 시스템 서비스)
-시스템에 접속하는 유저들의 로그인을 검사하며, 비밀번호 변경을 관리하고, 엑세스 토큰을 생성하는 등 시스템의 보안 정책을 강화하는 역할을 하는 윈도우 기본 프로세스
-winlogon 서비스에 필요한 인증 프로세스를 담당한다.
* Windows는 관리 특성상 ADMN$, C$, D$, IPC$ 등을 기본적으로 공유한다.
* IPC$는 Windows Server 초기 버전에서 해킹된 사례가 있다. (Null Session Share 취약점)
*휘발성이 가장 높은 저장장치는? 레지스터, 캐시
* 랜섬웨어의 특징
CryptoLocker는 중요 파일을 암호화하고 돈을 요구한다.
Browlock은 경찰로 위장하여 불법사이트 접속에 대한 벌금 납부를 유도한다.
돈을 지급하더라도 복구가 제대로 이루어지지 않는 경우가 많다.
* Petya Ransomware (페트야 랜섬웨어):
-골든아이
-MFT(Master File Table) 영역에 대한 암호화뿐만 아니라 MBR(Master Boot Record) 영역을 감염시켜 시스템 가동을 불가능하게 함
* Spectre (유령)
-하드웨어에 기반한 보안 취약점 및 공격
=분기 예측 및 추측 실행을 유도하여 다른 유저 프로그램의 메모리를 볼 수 있는 취약점
* 트로이 목마(Trojan) 특징 및 기능
패스워드 가로채기, 파일 파괴, 원격 조정
* 해커가 리눅스 시스템을 해킹하여 백도어 프로그램을 설치하였다.
만약 시스템이 재시작되어도 본인이 설치한 프로그램이 실행되도록 하고 싶다면 다음중 어떤 파일에 접근해야 하는가?
rc.d/rc.local
-리눅스 부팅 시 가장 마지막 단계에 실행되는 명령어 목록을 관리하는 파일
* 리눅스 부팅 레벨(Run Level)
-레벨0 : 시스템 종료 (halt)
-레벨1 : 단일 사용자 모드 (싱글 유저 모드) , 시스템 관리자인 root 만 사용, 원격 로그인 불가능
-레벨2 : NFS를 지원하지 않는 다중 사용자 모드
-레벨3 : 다중 사용자 모드 (Text 기반)
-레벨4 : 사용되지 않는 실행 모드 ( 사용자가 직접 정의하여 사용 가능)
-레벨5 : X windows 부팅. (GUI 환경)
-레벨6 : 시스템 재부팅 (Reboot)
* 메모리 영역 ( 코 데 힙 스 )
- code 영역
코드 자체를 구성하는 메모리 영역으로 HEX나 BIN파일 이 저장된다.
프로그램 명령이 위치하는 곳으로 기계어로 제어되는 메모리 영역이다.
- data 영역
전역변수(global), 정적변수(static), 배열(array), 구조체(structure) 등이 저장된다.
초기화 된 데이터는 data 영역에 저장되고,
초기화 되지 않은 데이터는 BSS (Block Stated Symbol) 영역에 저장된다.
프로그램이 실행 될 때 생성되고 프로그램이 종료 되면 시스템에 반환 된다.
함수 내부에 선언된 Static 변수는 프로그램이 실행 될 때 공간만 할당되고, 그 함수가 실행 될 때 초기화 된다.
- heap 영역
필요에 의해 동적으로 메모리를 할당 하고자 할 때 위치하는 메모리 영역으로 동적 데이터 영역이라고 부르며,
메모리 주소 값에 의해서만 참조되고 사용되는 영역이다.
이 영역에 데이터를 저장 하기 위해서 C는 malloc(), C++은 new() 함수를 사용한다.
- stack 영역
프로그램이 자동으로 사용하는 임시 메모리 영역이다.
지역(local) 변수, 매개변수(parameter), 리턴 값 등 잠시 사용되었다가 사라지는 데이터를 저장하는 영역이다. 재귀함수의 호출엔 Stack이 사용
함수 호출 시 생성되고, 함수가 끝나면 시스템에 반환 된다.
스택 사이즈는 각 프로세스마다 할당 되지만 프로세스가 메모리에 로드 될 때 스택 사이즈가 고정되어 있어, 런타임 시에 스택 사이즈를 바꿀 수는 없다.
명령 실행시 자동 증가/감소 하기 때문에 보통 메모리의 마지막 번지를 지정 한다.
* DEP (Data Execution Prevention)
-실행 방지 메모리 영역에서 코드가 실행되지 않도록 하는 윈도우 운영체제에 포함된 보안 기능
-효과:
버퍼 오버플로우, 힙스프레이 등 메모리 기반의 실행 공격을 예방할 수 있다.
* 버퍼 오버플로우 방어기법
스택가드(Stackguard)
-카나리(canary)라고 불리는 무결성 체크용 값을 복귀주소와 변수 사이에 삽입해 둔다.
스택쉴드(Stack Shield)
-함수 시작 시 복귀주소를 Global RET라는 특수 스택에 저장해 둔다.
-함수 종료 시 저장된 값과 스택의 RET값을 비교해 다를 경우 오버플로우로 간주하고 프로그램 실행을 중단한다.
ASLR(Address Space Layout Randomization)
-메모리 공격을 방어하기 위해 주소 공간 배치를 난수화 한다. RTL(return to libc)공격을 방어
-실행 시 마다 메모리 주소를 변경시켜 버퍼 오버플로우를 통한 특정주소 호출을 차단한다.
설정: echo 2 > /proc/sys/kernel/randomize_va_space
실행 불가능한 영역
-Solaris 2.7이상 버전에서 /etc/system 파일에 noexec_user_stack, noexec_user_stack_log를 1로 set하여 활성화시킨다
-택과 힙을 실행 불가능(No Executable)한 영역으로 만든다.
안전한 개발
-프로그램 개발 시 입력값에 대한 크기 검증을 적절히 수행하거나 취약하지 않은 함수만을 사용한다면 어느정도 방지할 수 있다.
* 버퍼 오버플로우 권장 함수 ( n ,fgets, vf)
strncat() strncpy() snprintf( )
fget() fscanf()
vfscanf() vsnprintf()
* 버퍼 오버플로우에 취약한 함수
sprintf() strcpy() scanf()
sscanf()
vscanf() vsscanf() vsprintf()
getbyhostname() gets()
* 스택 버퍼 오버플로우 공격의 수행 절차
1. 공격 셸 코드를 버퍼에 저장한다.
2. 루트 권한으로 실행되는 프로그램 상에서 특정 함수의 스택 버퍼를 오버플로우 시켜서 공격 셸 코드가 저장되어 있는 버퍼의 주소로 반환 주소를 변경한다.
3. 특정 함수의 호출이 완료되면 조작된 반환 주소인 공격 셸 코드의 주소가 반환된다.
4. 공격 셸 코드가 실행되어 루트 권한을 획득하게 된다.
* 포맷스트링 (Format String)
-printf 등의 함수에서 문자열 입력 포맷을 잘못된 형태로 입력하는 경우 나타나는 버그이자 취약점이자 공격 기법
-포맷 스트링 익스플로잇은 프로그램을 충돌시키거나 악의적인 코드를 실행 시키는데 사용될 수 있음
* 포맷스트링 취약점의 직접적인 위험
-프로그램의 파괴
-프로세스 메모리 보기
-임의의 메모리 덮어쓰기
* 포맷 스트링 취약점 점검 툴
① gdb
② objdump
③ ltrace
* 힙 영역
-메모리에서 힙은 프로그램이 실행되면서 동적 할당하여 사용되는 메모리 영역이다.
-malloc과 같은 메모리 할당 함수 를 이용해 프로그램을 개발하였다면, 힙 영역을 오버플로우 시켜 특정 코드를 실행하도록 하는 공격이 가능하다.
* 힙 버퍼 오버플로우
-이 공격에 사용되는 메모리 영역은 malloc, free 등의 함수로 제어함
-쉘 코드를 사용하기 위하여 함수의 반환 주소를 단순히 덮어 쓰는 방법은 사용할 수 없고, 버퍼에 할당된 포인터 값을 덮어 쓰는 방법이 일반적으로 사용됨
* 가상메모리를 지원하는 운영체제에서 성능은 가상주소를 실주소로 변환하는 DAT(Dynamic Address Translation)에 의해 영향을 받는다. DAT 속도가 빠른 순서에서 느린 순서로 열거한 것은?
연관사상 > 직접/연관사상 > 직접사상
* 루트킷 특징
① 트래픽이나 키스트로크 감시
② 로그 파일 수정
③ 시스템 흔적 제거
* 안티 루트킷의 주요 기능
① 숨김 파일 찾기
② 수정된 레지스트리 찾기
③ 프로세스 보호 해제
* 무결성 검증용 보안도구
① tripwire
② fcheck
③ md5
* 특정 프로토콜 및 특정 SW나 특정 매커니즘에 대해 특정하여 스캔하는 도구
CGISCAN, WINSCAN, RPCSCAN
* 각종 보안 툴
SATAN : 네트워크 분석용 보안 관리자 도구
Nmap : 네트워크 보안스캐너
COPS : 시스템 보안 감시활동
Tripwire : 리눅스 내외부 시스템 보안
tcp_wrapper : 네트워크 접근 필터링
NESSUS : 보안취약점 점검 도구
SARA : 유닉스 기반 보안분석 도구
Nikto2 : 웹서버 스캔 취약점 분석도구
Sscan : 취약점 점검 도구
* Nessus
-미국 Tenable 사가 개발하여 무료로 배포하는 취약점 점검도구
-패스워드 취약점, TCP/IP 스택 DoS, 취약한 서버 설정 등 알려진 취약점을 점검한다.
-Text, HTML, LaTeX 등 다양한 형태로 보고서를 제공한다.
-기능:
① 열린 포트 스캔
② 악성 코드 점검
③ 웹 취약점 점검
* 파일 업로드 공격 (File Upload Attack)
-서버에 악의적인 영향을 끼칠 수 있는 파일(주로 웹셸)을 업로드한 후 실행한다.
* 파일 업로드 공격 대응
-첨부 파일을 체크하여 특정 종류의 파일만 첨부한다.
1단계: 파일 확장자를 확인하여 알려진 안전한 확장자만 업로드 가능하게 한다.
2단계: 파일 헤더를 확인하여 알려진 안전한 파일만 업로드 가능하게 한다.
-파일 업로드 시에 실행 파일은 파일 첨부를 불가능하게 한다.
-파일이 업로드되는 경로상의 실행 권한을 제거한다.
-임시 디렉토리에서 업로드된 파일을 지우거나 다른 곳으로 이동한다
* 웹 쉘
-공격자는 공격 대상 서버에 파일을 업로드한 후에,
웹을 이용하여 시스템 명령어를 수행하므로 네트워크 방화벽 등의 영향력을 받지 않고 서버를 제어 할 수 있는 공격
* 웹 방화벽 기능
-SQL Injection, Cross-Site Scripting(XSS)등과 같은 웹 공격 탐지 및 차단
-정보 유출 방지
개인정보나 기밀정보 등 정보유출 패턴을 탐지하고 차단
-부정 로그인 방지
SQL Injection, 파라미터 변조 등 정상적이지 않은 경로로 인증을 시도하는 패턴을 탐지하고 차단
* KISA의 CASTLE 웹 방화벽
* ATRONIX의 WebKnight: 윈도우의 대표적인 웹 방화벽
* ModSecurity (리눅스의 웹 방화벽)
- trustwave 사에 의해 제공, 아파치 웹서버, IIS 웹서버 등을 지원
-특징
-요청 필터링 (Request Filtering)
클라이언트로부터 웹 요청이 들어올 때, 웹서버 또는 다른 모듈들이 처리하기 전에 ModSecurity가 요청 내용을 분석하여 필터링한다.
-우회 방지 기술
경로와 파라미터를 분석하기 전에 정규화시켜 우회 공격을 차단한다.
즉, “//”, “\/”, “.”, “%00” 등 우회 공격용 스트링을 제거하고, 인코딩된 URL을 디코딩한다.
-HTTP 프로토콜 이해 (HTTPS Filtering)
엔진이 HTTP 프로토콜을 이해하기 때문에 전문적이고 정밀한 필터링을 수행할 수 있다.
-POST 페이로드(payload) 분석 (Audit Logging)
GET 방식 뿐만 아니라 POST 메소드를 사용해서 전송되는 컨텐츠도 분석 가능하다
* UTM (Unified Threat Management) 통합 위협 관리
-통합보안시스템, 통합위협관리시스템 등으로 해석되며, 주로 영문 약자인 UTM으로 부른다.
-방화벽, 침입 탐지·방지 시스템, 백신, 가상사설망 등 다양한 보안 장비를 하나의 장비로 통합한 것을 말한다.
-실무적으로 흔히 IDS·IDS와 방화벽이 결합된 형태를 말한다.
-경제성이 있고 보안 관리가 편해지지만 장애 발생시 보안기능에 심각한 영향을 미친다.
* 인터넷 익스플로러에서 보안 설정을 지정할 수 있는 웹 콘텐츠 영역
① 로컬 인트라넷
② 신뢰할 수 있는 사이트
③ 제한된 사이트
* index.dat
인터넷 익스플로어 History 로그가 저장되는 파일
* 분산처리시스템 목적
1. 자원공유: 각 시스템이 통신망을 통해 연결되어 있으므로 유용한 자원을 공유하여 사용할 수 있음
2. 연산속도향상: 하나의 일을 여러 시스템에 분산시켜 처리함으로써 연산 속도가 향상됨
3. 신뢰도 향상: 여러 시스템 중 하나의 시스템에 오류가 발생하더라도 다른 시스템은 계속 일을 처리할 수 있으므로 신뢰도 향상
4. 컴퓨터통신: 지리적으로 멀리 떨어져 있더라도 통신망을 통해 정보를 교환할 수있음
5. 투명성 (Transparency) : 사용자가 분산된 여러 자원의 위치 정보를 알지 못하고 마치 하나의 커다란 시스템을 사용하는 것처럼 인식하도록 하는 것
* 분산처리시스템 장,단점
장점: 통신 용이, 장치 공유, 데이터 공유, 중앙컴퓨터 과부하 줄임,
단점: 중앙 집중형 시스템에 비해 소프트웨어 개발이 어려움, 보안 문제 발생, 설계 복잡
반응형
'정보보안기사, 정보보안산업기사' 카테고리의 다른 글
[정보보안기사/산업기사] 정보보안 일반 과목 요약 정리 (0) | 2020.10.16 |
---|---|
[정보보안기사/산업기사] 어플리케이션 보안 과목 요약 정리 (0) | 2020.10.16 |
[정보보안기사/산업기사] 네트워크 보안 과목 요약 정리 (0) | 2020.10.12 |
[정보보안기사/산업기사] 리눅스시스템 정리 (0) | 2020.10.11 |
[자격증] 정보보안기사 자격증 정보 & 기출문제 .pdf 정리 (0) | 2020.09.18 |
댓글