[사이버 보안] 시스템 보안 (1 )

그렘린·2022년 11월 8일
0

-tistory로 부터 옮겨옴

보안의 네가지 방법

알고 있는 것 (머리속에 기억하고 있는 정보를 이용하는 것)
가지고 있는 것( 누군가가 가지고 가면 막을 수가 없는 것들 ex. OTP나 신분증)
자신의 모습 (홍채나 지문인식, 변경이 영원히 불가능)
위치하는 곳에 따른 인증수행 ( 보이스피싱 콜백 같은 것. 다시 전화해보거나 전화번호를 직접 찾아보는 행위

사용자 응용프로그램은 컴퓨터 시스템의 하드웨어인 CPU, 메모리에 직접 접근할 수 없어서 운영체제의 도움이 필요하다.
다양한 시스템 서비스와 다양한 계정이 존재하며, 계정 생성 또는 삭제에 승인절차가 필요하다.

운영체제는 응용 sw와 hw사이의 중간자 역할을 한다고 생각하면 된다.

운영체제 - Windows의 특징

GUI ( graphical user interface) 환경이다
plug & play (하드웨어를 추가하면 자동으로 소프트웨어가 설치됨)
단축 아이콘, 멀티 태스킹 등
OLE (object linking embedding, 서로 다른 소프트웨어 사이에서의 구성요소를 주고받기가 가능)
network 기능이 향상, 다중 모니터를 지원한다

윈도우의 구조를 알아보자!

실제 user에게 닿는 부분은 응용 프로그램 부분이고 나머지는 kernal 모드이다.
HAL 부분은 윈도우에만 존재하고, 마이크로 커널은 각종 관리자를 각각 관리한다.

window 관리자 계정은 ADMINISTRATOR: window 설치 시 자동생성되며, 가장 강한 권한을 갖는 계정이다.

이외의 것들은 첨부된 이미지를 참고하자.

windows 에서의 계정보안 관리

가능한 관리자 계정의 갯수를 줄인다 (관리자 계정이 많을수록 외부 유출 가능성이 높아지겠지? 그리고 관리 비용도 증가함)
관리자 ID명을 변경한다 >> admin이라는 계정명은 누가봐도 관리자임을 알 수 있음. brute force 공격을 통해 password 찾아내기가 가능하다.

참고 : brute force 공격 : 전수조사 공격, 내 비밀번호가 될 수 있는 모든 경우의 수를 확인해보는 공격이다. (1장에 등장한다)

UNIX / LINUX 구조

  • 유닉스는 서버 시스템에서 가장 많이 사용하고, 리눅스는 유닉스를 본따서 만든 것이다. 둘은 상당히 유사한 구조를 가지고 있으며 리눅스는 소스가 공개되어있다.

총 4개의 LAYER로 구성되어있다.

Kernel : 운영체제의 일부분이며 컴퓨터 부팅시 메모리에 적재되며 시스템이 꺼질 때 까지 실행이 된다. 대부분이 C언어로 작성되어 있으며 일부는 어셈블리어로 작성되어있음.
Shell : 운영체제의 커널과 사용자 사이의 인터페이스 역할. 명령어를 번역하는 역할이다.

UNIX의 특징

C언어로 주로 작성, 대화식 운영체제

대화식 운영체제에서는 command line Interpreter 사용하는 것이 다수이다. 이 부분이 shell에 해당되는 부분이다. (shell을 통해 명령어를 전달하므로), 윈도우에서는 GUI에 해당되는 부분이라고 생각하면 된다.

분산처리방식을 지원하며 멀티태스킹이 가능. 걔층적인 파일 시스템으로 구성
멀티유저 ( 여러 유저가 하나의 서버에서 작업이 가능하다)
호환성이 높다
기본 관리자 계정이 root이다. (윈도우는 admin이였다!)

LINUX의 추가적인 특징

오픈소스이다.
유닉스와 완벽하게 호환되며 상대적으로 저렴한 비용.
역시 관리자 계정은 root
  • unix, linux directory 계층구조는 트리를 거꾸로 해놓은 모양이며, 여러 유저가 이용한다는 특징이 있으므로 호환성이 좋아야한다. 트리 구조 가장 상단에 root계정이 있다고 생각하면 된다 (물론 보안도 좋아야겠지).
    UNIX & LINUX의 계정보안 관리

    root 계정의 원격 접속을 제한하고, 계정잠금의 임계값을 설정해둔다.
    패스워드의 최소길이를 설정하고, shadow 파일을 사용한다.

    shadow file : "/etc/shadow"파일에 암호화된 패스워드를 별도로 저장하되 이를 관리자만 읽을 수 있도록 제한하는 것.

데이터베이스의 계정관리

데이터베이스의 계정 관리

MS SQL : sa (system administrator)
MySQL : root
Oracle : sys, system (sys의 권한이 system의 권한보다 높으며, 이 둘은 서로 다른 관리자임. 특히 system 관리자는 데이터베이스를 생성할 수 없다.)

응용프로그램의 계정관리

응용프로그램은 종류가 너무 다양해서 보안관리가 쉽지 않음.
취약한 응용프로그램을 통해서 공격자가 운영체제에 접근, 중요 정보를 습득한 뒤 운영체제를 공격하기에 이를 수 있다.
특히 TFTP ( trivial file transfer protocol , 파일전송에 대한 프로토콜) 과 같이 인증이 없는 경우 각별히 주의해야한다.

TFTP( trivial file transfer protocol) 과 FTP(file transfer protocol)을 비교해보자.

FTP는 로그인 절차가 있는 반면, TFTP는 인증과정이 없으므로 당연히 보안에 더 취약하겠다.

네트워크 장비의 계정관리 : 네트워크 장비에 계정을 생성하여, 각 계정으로 사용할 수 있는 명령어 집합을 제한할 수 있다.

패스워드 관리

부적절한 패스워드 ( 쉽게 공격당할 수 있는 것 : 짧거나 존재하는 단어, 자판의 일렬 나열, 유추가능한)
적절한 패스워드는 기억하기에는 쉽고 크래킹하기 어려운 것. 복잡한 것 보다는 긴 것이 경우의 수 공격을 피하게 해줌.
패스워드 정책으로는 변경정책(일정 시간이 지나면 패스워드를 바꿔야함), 설정정책(패스워드 길이나 복잡도를 지정), 잘못된 패스워드 입력시 계정을 잠금하는 정책 등이 있다.

세션 관리

세션이란 ? : 사용자와 시스템 사이 또는 두 시스템 사이의 활성화 된 접속을 의미, 일정 시간이 지나면 적절히 세션을 종료하고 허가되지 않은 사람에 의한 세션 가로채기를 통제한다.

공격 방법으로는 세션 하이재킹(가로채기), 네트워크 패킷 스니핑이 있다.

세션 하이재킹은 MITM 공격과 같은 형태를 띤다. 비인가자가 로그인 된 상태를 가로채는 것을 의미한다.

MITM 공격 형태, user와 server 사이에 중간자가 끼어서 공격하는 형태이다.

네트워크 패킷 스니핑은 TCP에서 패킷을 주고 받을 때 패킷을 Hi-jacking하는 것이다.

대응 방법으로는 패킷을 암호화하는 것과 세션에 대해 지속적으로 인증하는 것이 있다.
세션인증은 이화여대 사이버캠퍼스도 3시간마다 1회씩 이루어진다!

0개의 댓글