시스템 보안

2022. 4. 21. 01:55보안/임베디드&시스템

반응형

모바일 네트워크 중간고사 정리 

 

운영체제의 기능

프로세스 관리

프로세스 생성(creation), 삭제(deletion), 일시 중지(suspend) 및 재개(resume)

프로세스간 통신, 동기화(Synchronization)

교착상태 처리(deadlock handling)

주기억장치 관리

프로세스에 메모리 할당(allocation) 및 회수

메모리의 효율적 사용

가상 메모리 관리

파일 관리

파일 및 디렉토리의 생성(creation)과 삭제(deletion)

파일의 조작 지원 - open, close, read, write, create, delete

Track, Sector File의 매핑(mapping)

File Backup

디스크 관리 / 보조기억 장치 관리

빈 공간 관리(free space management)

저장 공간 할당(storage allocation)

디스크 스케쥴링(disk scheduling)

입출력 장치 관리

장치 드라이버(device drivers) 관리

입출력 장치의 성능 향상 - Buffering, Caching, Spooling

시스템 호출(System Call)

일반 어플리케이션(사용자 프로그램)이 하드웨어 사용을 위해 운영체제의 서비스를 호출하 는 것.

사용자 프로그램은 시스템 호출을 통해 운영체제의 서비스를 받아야만 하드웨어를 이용할 수 있음.

 

시스템 보안

1. 계정 관리: 사용자를 식별하는 가장 기본적인 인증 수단은 아이디와 패스워드로, 이를 통 한 계정 관리는 시스템 보안의 시작.

2. 세션 관리: 일정 시간이 지나면 세션을 종료하고 비인가자의 세션 가로채기를 통제하는 것.

3. 접근 제어: 네트워크 안에서 시스템을 다른 시스템으로부터 적절히 보호할 수 있도록 네 트워크 관점에서 접근을 통제하는 것.

4. 권한 관리: 시스템의 각 사용자가 적절한 권한으로 적절하게 정보 자산에 접근하도록 통 제하는 것.

5. 로그 관리: 시스템 내부나 네트워크를 통해 외부에서 시스템에 어떤 영향을 미칠 경우 그 내용을 기록하여 관리하는 것.

6. 취약점 관리: 시스템 자체의 결함을 체계적으로 관리하는 것.

 

멀티팩터 인증 (Multi-factor Authentication)

두가지 이상의 서로 다른 종류의 인증기술을 함께 사용하는 방식

한가지 종류의 인증기술만 사용하는 것은 공격에 취약

 

윈도우의 계정 관리

윈도우에서는 운영체제에 대한 관리자 권한을 가진 계정을 administrator라고 하는데, 이는 시스템 에 가장 기본으로 설치되는 계정

일반 사용자를 확인하려면 net users라는 명령 사용.

윈도우에서 시스템에 존재하는 그룹 목록은 net localgroup 명령으로 확인.

 

 

root : x : 0 : 0 : root : /root : /bin/bash
1 2 3 4 5 6 7

사용자 계정.

패스워드가 암호화되어 shadow 파일에 저장되어 있음을 나타냄.

사용자 번호.

그룹 번호.

실제 이름으로, 시스템 설정에 영향을 주지 않으므로 자신의 이름을 입력해도 됨.

사용자의 홈 디렉터리 설정으로, 이 예에서는 관리자 계정이므로 홈 디렉터리가 /root. 일반 사용자는 /home/wishfree와 같이 /home 디렉터리의 하위에 위치.

사용자의 셸 정의로 기본 설정은 bash . 사용하는 셸을 이곳에 정의.

 

데이터베이스의 계정 관리

MS-SQL의 관리자 계정은 sa(system administrator), 오라클의 관리자 계정은 sys, system. 둘 다 관리자 계정이지만 sys와 달리 system은 데이터베이스 생성할 수 없음.

오라클은 윈도우의 Guest 계정처럼 Scott이라는 기본 계정이 존재하고, 솔루션 설치 및 테이블 생성시 관련 계정이 자동으로 생성되는 경우가 많음.

응용 프로그램의 계정 관리

취약한 응용 프로그램을 통해 공격자가 운영체제에 접근하여 민감한 정보를 습득한 뒤 운영 체제를 공격하는 데 이용할 수 있음. TFTP(Trivial File Transfer Protocol)처럼 인증이 필요치 않은 응용 프로그램은 더욱 세심한 주의가 필요.

네트워크 장비의 계정 관리

네트워크 장비에는 계정 개념이 존재하지 않지만 네트워크 장비에 계정을 생성하여 각 계정 으로 사용할 수 있는 명령어 집합을 제한할 수 있음. 네트워크가 대규모인 경우에는 계정 관 리의 어려움 때문에 통합된 계정 관리를 위해 TACACS+와 같은 솔루션을 적용하기도 함

 

패스워드 관리

부적절한 패스워드

길이가 너무 짧거나 널(Null)인 패스워드

사전에 나오는 단어나 그 조합 또는 변형

키보드 자판의 일련 나열

사용자 계정 정보로 유추할 수 있는 단어

적절한 패스워드

기억하기 쉽지만 크래킹하기 어려운 패스워드

패스워드 정책

패스워드 설정 정책: 패스워드의 길이와 복잡도를 정해두는 것. 패스워드 길이는 8자 이상, 복잡도는 연속된 숫자나 알파벳을 사용하지 못하고 숫자와 알파벳, 특수문자를 섞어 설정하는 식.

패스워드 변경 정책: 일반적으로 60일 또는 90일 간격으로 패스워드를 변경하도록.

잘못된 패스워드 입력 시 계정 잠금: 잘못된 패스워드를 반복 입력할 경우 패스워드 크래킹 공격 또는 비인가자의 접근 시도로 판단하여 해당 계정을 사용하지 못하게 설정.

 

세션이란?

사용자와 시스템 사이 또는 두 시스템 사이의 활성화된 접속

로그인된 세션이 공격자에게 도용되지 않도록 관리해야 함

공격: 네트워크 스니핑(sniffing), 세션 하이재킹 (session hijacking)

관리

세션의 지속적인 인증

한번 인증된 사용자에 대한 재인증

윈도우 화면보호기에 인증 설정

웹서비스의 세션 관리

로그인 상태 유지 기능

 

접근 제어

접근 제어(Access Control)는 적절한 권한을 가진 인가자만 특정 시스템이나 정보에 접근하도록 통제하는 것으로, 시스템의 보안 수준을 갖추기 위한 가장 기본적 수단.

시스템 및 네트워크에 대한 접근 제어의 가장 기본적인 수단은 IP와 서비스 포트.

 

운영체제의 접근 제어

Inetd 데몬은 클라이언트로부터 inetd가 관리하는 텔넷이나 SSH, FTP 등에 대한 연결 요청을 받 은 후 해당 데몬을 활성화하여 실제 서비스를 하는 것으로 데몬과 클라이언트의 요청을 연결시켜주는 역할을 함.

TCPWrapper가 설치되면 inetd 데몬은 TCPWrappertcpd 데몬에 연결을 넘겨줌. tcpd 데몬은 접속을 요구한 클라이언트에 적절한 접근 권한이 있는지 확인한 후 해당 데몬에 연결을 넘겨 주며 이때 연결에 대한 로그를 실시함.

 

응용 프로그램의 접근 제어

응용 프로그램의 목적과 역할에 따라 접근 제어를 제공하는 경우도 있고 그렇지 않은 경우도 있음.

웹 서비스를 제공하는 IIS와 아파치 역시 IP에 대한 접근 제어를 제공.

 

네트워크 장비의 접근 제어

네트워크 장비에서 수행하는 IP에 대한 접근 제어로는 관리 인터페이스의 접근 제어와 ACL(Access Control List)을 통한 네트워크 트래픽 접근 제어가 있음.

네트워크 장비의 관리 인터페이스에 대한 접근 제어는 유닉스의 접근 제어와 거의 같음 ACL을 통한 네트워크 트래픽에 대한 접근 제어는 방화벽에서의 접근 제어와 기본적으로 같음.

 

유닉스에서는 파일 또는 디렉터리 소유자, 그룹, 소유자도 그룹도 아닌 사용자로 구분하여 읽기(r, read), 쓰기(w, write), 실행(x, execute) 권한을 부여.

권한은 숫자로 표기 가능. 읽기는 4, 쓰기는 2, 실행은 1로 나타낸 뒤 각 권한 세트별로 합치는 방식.

 

데이터베이스의 권한 관리

질의문에 대한 권한 관리

DDL(Data Definition Language)

데이터 구조를 정의하는 질의문. 데이터베이스를 처음 생성하고 개발할 때 주로 사용하고 운영 중에는 거의 사용하지 않음.

CREATE: 데이터베이스 객체 생성.

DROP: 데이터베이스 객체 삭제.

ALTER: 기존의 데이터베이스 객체를 다시 정의.

DML(Data Manipulation Language)

데이터베이스의 운영 및 사용과 관련해 가장 많이 사용하는 질의문으로 데이터의 검색과 수정 등을 처리.

SELECT: 사용자가 테이블이나 뷰의 내용을 읽고 선택.

INSERT: 데이터베이스 객체에 데이터 입력.

UPDATE: 기존 데이터베이스 객체에 있는 데이터 수정.

DELETE: 데이터베이스 객체에 있는 데이터 삭제.

DCL(Data Control Language)

권한 관리를 위한 질의문.

GRANT: 데이터베이스 객체에 권한을 부여.

DENY: 사용자에게 해당 권한을 금지.

REVOKE: 이미 부여된 데이터베이스 객체의 권한을 취소.

 

질의문에 대한 권한 관리

DDLDMLDCL에 의해 허용(grant) 또는 거부(deny).

DCL에 의한 권한 부여 또는 회수 과정

 

데이터베이스의 권한 관리

뷰에 대한 권한 관리

뷰는 각 사용자에 대해 참조 테이블의 각 열에 대한 권한을 설정하는 것이 불편해서 만든 가상 테이블

 

응용 프로그램의 권한 관리

응용 프로그램은 응용 프로그램 내의 권한 관리보다 응용 프로그램 자체의 실행 권한이 더 중요함.

응용 프로그램은 자신을 실행한 계정의 권한을 물려받으므로 보안상에 문제가 있는 취약한 응용 프로그램의 경우 해당 프로그램을 실행한 계정의 권한이 악용되는 문제가 발생.

윈도우의 IIS에서는 실행 프로세스 권한을 별도로 만들어 사용.

유닉스에서는 nobody와 같이 제한된 계정 권한을 사용.

 

로그관리

AAA

Authentication(인증): 자신의 신원(Identity)을 시스템에 증명하는 것으로 아이디와 패 스워드를 입력하는 과정.

Authorization(인가): 인증된 사용자에게 로그인 등 권한을 부여하는 과정.

Accounting(기록): 로그인을 했을 때 시스템이 이에 대한 기록을 남기는 활동.

AAA에 대한 로그 정보는 해커나 시스템에 접근한 악의적 사용자를 추적하는데 사용.

책임 추적성(accountability): 추적에 대한 기록의 충실도. 책임 추적성이 높은 시스템일수 록 로그가 충실하게 남아 있음.

감사 추적(audit trail): 보안과 관련하여 시간대별 이벤트를 기록한 로그.

 

윈도우의 로그

윈도우는 이벤트(Event)라고 불리는 중앙 집중화된 형태로 로그를 수집하여 저장.

윈도우 서버 2012의 경우 로깅 항목과 설정 사항은 [제어판]-[관리 도구]-[로컬 보안 정책]-[감사 정 책] 메뉴에서 확인할 수 있음.

윈도우의 감사 정책(audit policy), 즉 로깅 정책을 적용하면 [제어판]-[관리 도구]-[이벤트 뷰어]를 통해 쌓이는 로깅 정보를 확인.

항목: 종류 날짜 시간 원본범주, 이벤트 사용자 컴퓨터

 

유닉스의 로그

일반적으로 리눅스에서는 /var/log 디렉터리에 로그가 존재

UTMP: 유닉스 시스템의 가장 기본적인 로그.

WTMP: utmp 데몬과 비슷하게 사용자 로그인과 로그아웃, 시스템 재부팅에 대한 정보를 확인 가능.

Secure: 페도라와 CentOS, 레드햇 등의 리눅스는 secure 파일에 원격지 접속 로그와 su(switch user), 사용자 생성 등과 같이 보안에 직접적으로 연관된 로그를 저장.

History: 명령창에서 실행한 명령에 대한 기록은 history 명령으로 확인할 수 있음.

Syslog: 시스템 운영과 관련한 전반적인 로그로, /var/log/messages 파일에 하드웨어 구 동, 서비스 동작과 에러 등의 로그를 남김.

 

MS-SQL의 로그

Microsoft SQL Server Management Studio에서 서버를 선택한 뒤, 속성 대화상자의 [보안] 메뉴에서 일반 로그인 감사‘C2 감사 추적을 설정할 수 있음.

C2 감사 추적은 데이터베이스가 생성·삭제·변경되는지에 대한 자세한 정보를 로그로 남기는 것.

빈번한 접속이 있는 데이터베이스의 경우 대량의 로그를 생성할 수 있음.

 

데이터베이스의 로그

데이터베이스의 로그를 남기는 가장 좋은 방법은 별도의 데이터베이스 모니터링 툴을 도입하는 것.

네트워크 트래픽을 모니터링할 수 있는 태핑(tapping) 장비를 네트워크에 설치하고, 네트워크 패킷 중 데이터베이스 질의문을 확인하여 로그로 남김.

 

응용 프로그램의 로그 관리

IIS 웹 서버의 로그

IIS(Internet Information Services) 웹 서버의 로그는 [제어판]-[관리 도구]-[IIS(인터넷 정보 서 비스) 관리자]-[IIS] 창에서 로깅항목을 통해 확인할 수 있음.

IIS 웹 서버의 로그는 기본 W3C 형식으로 남도록 설정. 이 외에 NCSA, IIS, 사용자 지정 방식의 로 그 파일 형식을 사용할 수 있음.

 

네트워크 장비의 로그 관리

네트워크 보안 시스템의 로그

침입 차단 시스템, 침입 탐지 시스템, 침입 방지 시스템 등 다양한 보안 시스템의 로그를 확인할 수 있 음.

다양한 보안 시스템의 로그는 통합 로그 관리 시스템(SIEM, Security Information and Event Management)에 의해 수집 및 관리되기도 함.

네트워크 관리 시스템의 로그

네트워크 트래픽 모니터링 시스템(MRTG)과 네트워크 관리 시스템(NMS)의 로그를 참고할 수 있음.

네트워크 장비 인증 시스템의 로그

대규모 네트워크를 운영하는 곳에서는 라우터나 스위치의 인증을 일원화하기 위해 인증 서버로 TACACS+(Terminal Access Controller Access-Control System Plus)를 사용하기도 함.

이 인증 서버를 통해 네트워크 장비에 대한 인증 시도 및 로그인 정보 등을 확인할 수 있음.

네트워크 보안 시스템의 로그

대부분의 네트워크 장비 자체에는 하드디스크와 같은 저장 공간이 없어 로그를 남기지 않은 채로 운 영. 대신 로그 서버를 별도로 두고 운영.

 

네트워크 장비의 로그 생성과 보존

해커가 어떤 네트워크 장비에 침투하더라도 자신의 흔적을 지우기가 쉽지 않다는 장점 때문에 네트워 크 장비뿐만 아니라 운영체제 등이 로그 서버를 따로 운영함.

 

취약점 관리

패치 관리

윈도우는 윈도우 업데이트를 통해 자동으로 보안 패치를 확인하고 적용할 수 있음.

 

반응형

'보안 > 임베디드&시스템' 카테고리의 다른 글

보안 시스템  (0) 2022.04.20
시스템 보안  (0) 2022.03.18
운영체제의 기능  (0) 2022.03.18