;

728x90

ㅁ 운영체제 설치

ㅇ 시스템 파티션과 마운트

- 작업 용도에 따른 시스템의 파티션 분리는 루트영역과 사용자 파일 시스템이 같은 파티션에 존재하면 공격자가 SUID를 사용할 수 있는 기회가 늘어나게 되어 보안상 취약하므로 분리하여 사용하는 것이 보안에 좋다. 

ex) - /server에는 웹서버 관련 프로그램만, /DB에는 DB파일들만 저장되는 디렉토리를 만들어 관리


ㅇ 운영체제 커널과 소프트웨어 설치

- 유닉스 계열 

1) 리눅스의 커널은 기본적으로 사용자가 작동시키는 응용프로그램과 하드웨어간의 조정자 역할을 맡는다. 동시에 수행되는 여러 응용프로그램들을 위해 메모리관리를 해주며 컴퓨터 자원을 배분하는 역할을 한다. 리눅스는 오픈소스라서 사용자가 직접 컴파일 할 수 있다. 그래서 자신이 원하는 환경 및 구성으로 구축할 수 있고 이를 커널 컴파일이라 한다.

2) 불필요한 서비스 중지 및 프로그램 제거 필요


- 윈도우즈 계열

1) 운영체제는 소스코드가 공개되어 있지 않기 때문에 조작 불가능

2) 불필요한 서비스 중지 및 프로그램 제거 필요


ㅁ 시스템 최적화

ㅇ 메모리관리

- free를 이용한 swap 상태확인

- top 명령어를 이용한 프로세스별 메모리 사용량 확인


ㅇ 프로세스 및 CPU 관리

- 좀비 프로세스는 실행이 종료되었지만 아직 삭제되지 않은 프로세스를 의미한다. ps 명령어 실행 후 stat 값이 Z로 표시되는 프로세스가 좀비 프로세스이며 프로세스 중지를 위해서는 kill명령어 사용


- 프로세스 우선관리가 필요한 경우가 발생하는데 프로세스마다 두 개의 우선순위 번호를 갖는다. ps -l 이라는 명령어를 실행시키면 PRI와 NI라는 항목을 볼 수 있다. 프로세스 우선순위 PRI 항목은 운영체제에 의해 동적으로 계산되는 실제 우선순위이고 NI는 PRI로 계산하고 업데이트를하는 근거가되는 번호이다. NICE명령어를 사용하여 우선순위를 설정할 수 있다.


ㅁ 사용자 및 파일관리

- 사용자별 홈 디렉토리 설정 및 접근 제어 가능

1) 사용자별로 홈디렉토리를 설정하기 위해서는 /etc/passwd 파일에 사용자별로 설정되어 있는 홈 디렉토리를 변경하여야 하지만 변경된 디렉토리에서 파일을 쓰고 읽기 등의 권한은 다시 권한 설정을 한다.


2) 스크립트나 바이너리는 루트 계정만이 주로 사용하므로 기타 계정에는 권한을 제거하여야 하며 리눅스의 경우 웹서버를 실행하는 apache 계정은 웹서버를 실행하는 권한을 주고 원격 로그인이 필요가 없으므로 쉘 사용권한을 제거하는 등의 권한설정 필요.


3) 서버 해킹 종류

1) 직접대입공격 : 무차별 공격, 사전공격(사전파일로 만들어 대입)


2) 네트워크공격 

- 스푸핑(IP, ARP, DNS, 이메일) - 각각의 정보를 속여서 해킹시도

- 스니핑 : 네트워크 패킷이나 버스를 통해 전달되는 중요 정보를 엿보고 가로채는 공격행위


3) DOS 공격

- DOS 공격은 대량의 패킷을 이용하여 네트워크를 마비시키거나 특정 서비스의 수행을 방해하는 공격으로 시스템의 한 프로세스가 자원을 모두 독점하거나 소비하여 시스템이 다른 프로세스의 서비스를 제공하지 못하도록 하는 것

- DOS 공격은 서비스를 사용할 수 없게 만드는 것이 특징이고 추적 및 해결이 어렵다.

- 내부에서의 공격: 시스템의 /tmp와 같이 시스템이 프로세스를 생성하거나 작업을 처리하는데 사용하는 폴더의 디스크 공간을 채우는 방법이 있다. 방지하기 위해선 디스크 용량 사용제한을 두는 방법이 있다. 다른 유형으로는 프로세스를 생성하여 메모리와 CPU 클럭을 고갈시키는 방법이 있다. 프로세스를 생성하고 메모리를 할당하는 것을 무한루프를 돌려 프로세스를 무한히 복제한다.

- 외부에서의 공격 : SYN Flooding은 SYN을 대량으로 보내서 시스템의 특정 서비스를 마비시키는 것이다. TCP/IP의 3 way handshaking을 통하여 SYN 신호를 보내고 ACK을 받고 계속 적으로 ACK을 보내지 않으면 서버는 half-open상태가 되고 큐를 모두 채워버리면 해당 서비스는 마비가 된다.


4) 버퍼오버플로우공격

- 메모리에 할당된 버퍼의 양을 초과하는 데이터를 입력하여 프로그램의 복귀주소를 조작하여 해커가 원하는 코드를 실행하는 것이다.


5) 레이스컨디션 공격

- 레이스 컨디션공격은 두 프로세스 간에 자원을 사용하기 위해서 경쟁하는 것을 이용한 공격으로 시스템 프로그램과 공격 프로그램이 경쟁 상태에 이르게 하여 시스템 프로그램이 갖는 권한으로 파일에 접근을 가능하게 하는 방법이다. 


6) 사회공학적 방법

- 사람을 속여서 민감한 정보를 유출하게 하는 기술로 설득과 회유를 통해 자신부주의로 인한 외부에서의 정보습득, 피싱 및 파밍 등이 있다.

- 피싱 : 금융기관 등 신뢰할 수 있는 기관으로부터 보내지는 메일로 위장하여 개인의 인증번호 및 계정벙보를 빼내는 해킹기술

- 파밍 : 피싱의 진화된 형태이고 도메인 자체를 중간에서 탈취하여 해킹 사이트로 redirect함