본문 바로가기

LINUX

[SWING] Linux 04

과제 1, 2

 

시스템 보안

lsof [옵션]

list open files

 

열린 파일, 사용자, 네트워크 연결 등 시스템 전반을 모니터링한다.

 

-a : 옵션을 여러 개 사용할 때 AND 연산으로 정보 출력

-u [UID] : ID 입력한 user 가 연 파일 정보 출력

-c [명령어] : 특정 명령어를 사용하고 있는 정보 출력

+D [디렉토리 경로] : 특정 디렉토리의 열린 파일 정보 출력

-p [PID] : 번호를 입력한 process 가 참조하고 있는 파일 정보 출력

 

 

 

/ect/passwd

 

시스템에 등록된 사용자 정보가 담긴 파일이다.

사용자 정보에는

 

사용자 계정명

패스워드 : x 면 패스워드가 ect/shadow 파일에 저장되어 있다.

UID : user ID. root 계정은 0.

GID : group ID. root 계정은 0.

comment : 사용자의 기타 정보. 일반적으론 사용자의 이름.

홈 디렉토리 : root 계정은 /root 에.

로그인 쉘 : 사용자가 로그인할 때 사용할 쉘.

 

등이 있다.

 

 

 

/ect/shadow

 

암호화된 사용자 패스워드와 패스워드 설정 정책이 담긴 파일로

관리자 계정 혹은 관리자 그룹만 접근할 수 있다.

파일 속 정보에는

 

사용자 계정명

암호화된 패스워드 : $algorithm_id$encrypted_passwd 형식으로 구성되고 $는 구분자이다. 

마지막 변경

패스워드 최소 사용기간

패스워드 최대 사용기간

경고 : 패스워드 만료 경고 날짜.

비활성화 : 패스워드 만료 이후 계정 잠금 전까지의 비활성화 기간

계정 만료일

 

등이 있다.

 

 

 

 

chage [옵션] 사용자명

 

사용자 패스워드에 대한 정보를 출력하거나 설정할 수 있다.

root 권한 사용자만 사용할 수 있다.

 

사용자로 하여금 정기적으로 패스워드를 변경하도록 관리하여

패스워드 공격에 대한 보안을 강화한다.

 

-l (소문자 엘) :  사용자의 패스워드 정보 출력

-d : 마지막 패스워드 변경일 수정

-m : 패스워드 변경 후 최소 사용날짜수 지정. ~일은 사용해야함.

-M : 패스워드를 변경 없이 사용 가능한 최대날짜 지정 (만기일 지정) ~일 뒤엔 무조건 변경해야함.

-I (대문자 아이) : 패스워드 만기일 이후 계정 비활성화 전까지의 유예기간 지정. ~일 안에 안바꾸면 계정 비활성화.

-W : 패스워드 변경을 요구하는 경고일 지정. 만기일 되기 ~일 전에 경고해줌.

-E : 계정 만료일 지정

 

 

 

 

 

서비스 및 운영 보안

 

1. grup 설치 apt install grub-legacy ( 오류나면 시스템 업데이트 후 설치 apt-get update )

 

 

2. 암호화된 부트로더 패스워드가 생성되면 복사해서 설정

 

 

3. grup 설정파일 수정 vi /etc/grup.d/40_custom

 

 

set superusers="사용자 이름"

password_pdkdf2 [사용자 이름] [2에서 복사한 암호화된 패스워드]

 

 

복사 Shift+Ctrl+C

붙여넣기 Shift+Ctrl+V

 

4. 원본 파일 복사 cp /boot/grub/grub.cfg /boot/grub/grub.cfg.bak

5. grub 설정파일 업데이트 grub-mkconfig -o /boot/grub/grub.cfg

6. 입력 내용이 잘 들어갔나 확인 cat /boot/grub/grub.cfg

 

 

7. 시스템 재부팅 후 부트로더 화면에서 패스워드 입력창이 나오는지 확인 reboot

 

 

 

 

파일 시스템 보안

 

< 파일 속성 설정 >

 

lsattr [옵션] 파일명 = ps [옵션] | grep 패턴

 

특정 프로세스 이름으로 찾아 정보 출력

 

 

chattr [옵션] mode 파일명

 

파일 속성을 직접 설정

 

<mode> 는 [기호+속성] 형태로 사용된다.

 

[기호]

+ : 해당 속성을 부여

- : 해당 속성을 해제

 

[속성]

a : 해당 파일에 추가만 가능하도록 설정한다.

i : 해당 파일의 변경, 삭제, 이름 변경 등을 불가하게 한다.

S : 파일이 변경될 경우 디스크 동기화가 일어나도록 설정한다.

 

 

< ACL (파일 접근 권한) >

 

getfacl [옵션] 파일명

 

파일이나 디렉토리에 설정된 접근 권한 리스트를 확인

 

 

setfacl [옵션] [타입] : [이름] : [권한] 파일명

 

SET File Access Control Lists.

파일이나 디렉토리 접근 권한 리스트를 설정

root 계정만 사용 가능

 

-m : modify. 권한 지정 또는 수정

-x : remove. 권한 삭제

-R : recursive. 하위 디렉토리와 파일까지 권한 변경

-b : remove all. 지정 권한 전체 제거

 

d : default. 설정한 디렉토리 아래에 생성한 디렉토리에게도 설정을 상속한다.

 

 

 

 

 

네트워크 보안

 

 

sysctl [옵션] 

 

보안 설정과 같은 시스템 커널의 속성을 읽거나 수정할 수 있다.

커널 설정을 통한 시스템 보안을 최적화하고, 외부 네트워크 공격에 대한 보안을 강화한다.

 

-a, -A : 커널 매개변수와 값을 모두 출력

-p : 환경 변수 파일에 설정된 값 출력

-n [변수] : 특정 매개변수에 대한 값 출력

-w [변수=값] : 매개변수에 값 설정

 

플래그

1 : 설정한다.

0 : 설정하지 않는다.

 

 

 

 

iptables [옵션]

 

옵션 : [-t table] action chain match [-j target]

 

<주요 action>

-N : 새로운 사용자 정의 사슬 생성

-X : 빈 사슬 제거

-A : 사슬에 새로운 규칙 추가

-D : 사슬의 규칙 제거

-L : 적용된 규칙 리스트 출력

 

<주요 match>

-s : 출발지 정보를 이용해 표기

-d : 목적지 정보를 이용해 표기

-p : 특정 프로토콜과 매칭

! : 특정 매칭을 제외

 

<주요 target>

ACCEPT : 패킷 허가

DROP : 패킷 거부

LOG : 패킷을 syslog에 전달해 기록

REJECT : 패킷을 버리고 적당한 응답 패킷 전달

RETURN : 패킷 처리 계속 진행

 

1. 설정된 iptables 규칙 리스트를 확인한다.

 

 

윈도우의 IP 를 알아내보자. 우선 바탕화면에서 윈도우+X 키를 누른다.

 

 

Window PowerShell (I) (명령 프롬프트) 를 누른다.

 

 

ipconfig 를 입력한다.

 

 

무선 LAN 어댑터 Wi-Fi의 IPv4 주소를 주목한다. 

172.18.0.69 가 바로 내 윈도우의 IP 주소이다.

 

이렇게 해서도 알아낼 수 있다.

 

2. 차단을 원하는 IP 주소에 대한 iptables DROP 을 설정한다. 

3. -L 옵션으로 설정된 내용을 확인한다.

 

DROP 어쩌고 하는 줄이 나타나고 내 윈도우 IP 가 생긴 것을 볼 수 있다.

 

4. iptables-save 명령어로 설정 내용을 저장한다.

 

 

 

5. 차단 IP 환경에서 ping [IP] 명령어로 접속이 잘 차단되었는지 확인한다.

이때 접속이 차단되지 않은 IP라면 패킷 응답이 돌아온다.

 

 

6. 차단 설정을 삭제 후 -L 명령어로 삭제되었는지 확인한다.

 

 

아까 그 DROP 어쩌고 하는 줄이 사라진 것을 확인할 수 있다.

 

 

차단 해제했더니 ping이 아주 잘 간다.

 

과제 3

 

 

네트워크 공격(network attack)은 네트워크 활동을 방해하여 능력을 약화시키거나 제거하는 것을 목적으로 네트워크에 대한 치명적이고 비합리적인 행동과 작전을 말한다. 컴퓨터 및 컴퓨터 네트워크에 상주하는 정보나 컴퓨터 네트워크 자체를 교란, 거부, 손상, 파괴하는 행위이다. 최근 개인정보 유출사고가 증가하고 있어 네트워크 공격에 대한 개념과 보안방법의 이해는 사용자에게 필수요소로 떠오르고 있다. 

 

시스템 거부공격(Danial of Service)

Danial of Service의 약자이며, 흔히 DoS공격이라고 부른다. DoS공격은 대량의 패킷을 이용해 네트워크를 마비시키거나 특정 서비스의 수행을 방해 하는 공격으로 시스템의 한 프로세스가 자원을 모두 독점하여 다른 프로세스가 서비스를 제공하지 못하도록 하는 공격이다. 네트워크로 연결되어 있는 많은 수의 호스트들의 패킷을 마비시킬 수 있는 DoS 공격용 프로그램을 분산 설치하여서 이들이 서로 통합된 형태로 공격 대상 시스템에 마비를 일으키는 기법이다. 또한 이 방법은 공격할 시스템의 하드웨어나 소프트웨어 등을 무력하게 만들어, 시스템이 정상적인 수행을 하는 데 문제를 일으키는 모든 행위를 의미하기도 하며, 매우 다양한 공격이 가능하다.

 
유형

 

스니핑(Sniffing)

네트워크 안에서 자신이 아닌 다른 상대방들이 패킷을 교환하는 것을 엿듣는 행위로, 간단히 말해서 네트워크 트래픽을 도청하는 과정이다. TCP/IP 프로토콜을 이용한 통신에서는 통신매체를 통과하는 패킷들이 암호화가 되지 않는 상태이므로 와이어샤크와 같은 패킷 분석 툴을 이용해 이 패킷을 도청하여 메시지 내용을 확인할 수 있다. VPN으로 대응할 수 있다.

 

스푸핑(Spoofing)

IP주소, 하드웨어 주소 등의 정보를 속여 권한을 획득하고 정보를 가로채고, 서비스 방해까지 하는 공격으로 출발지 주소 등을 은폐하거나 변경한다. 스푸핑의 종류에는 데이터 링크 계층에서 목적지 맥 주소를 조작하는 ARP 스푸핑, 응용 계층에서 목적지 IP 주소를 조작하는 DNS 스푸핑, 이메일 스푸핑, IP 스푸핑 등이 있다.

 

스위치 재밍(Switch Jamming)

네트워크 패킷의 수신자를 확인하여 해당 패킷을 적재적소에 전송하는 스위치 기능을 작동하지 못하게 마비시키는 공격이다. 일반적으로 스위치는 자신이 가지고 있는 MAC 테이블이 저장공간이 가득차게 되면 네트워크 패킷을 브로드캐스트하는 특성을 가지고 있는데 공격자는 이러한 스위치의 단점을 이용하여 수많은 MAC 주소들을 지속적으로 네트워크 상에 흘려보내 스위치의 MAC 테이블을 가득 채운다. 그 결과로 스위치는 특정 매체에 전송해야 하는 패킷을 모든 매체에 전송하게 되며, 공격자는 스위치를 통해 오가는 모든 패킷을 염탐하여 주요 네트워크의 정보를 획득한다.

 

랜드 어택(Land Attack)

랜드 어택의 주요한 특징 중 하나는 출발지와 목적지의 IP 주소가 동일하다는 점이다. 그로 인해 네트워크 모니터링 도구인 와이어 샤크의 컨버세션 기능을 이용하여 동일한 IP 주소 간에 통신 가능 여부를 체크하는 방법으로 공격 여부를 확인할 수 있다.

 

포트 스캐닝(PORT Scanning)

공격대상이 사용하고 있는 응용프로그램의 취약점 공격 전 선행되는 공격이다. 이러한 서비스를 확인하기 위해서 PORT 주소를 검색한다. 공격대상에 포트가 활성되어 있으면 공격자는 오라클의 익스플로잇 코드를 이용해서 공격을 실행하고, 공격대상의 정보를 수집한다. 주요 포트 스캔 방법은 TCP 스캔(Full Open, Half Open, FIN, X-mas, Null), SYN 스캔, ICMP 메세지 스캔 등이 있다. 대표적인 툴은 엔맵 (nmap)이다.

 

 

 

계층별 공격 유형

 

물리 계층 : 회선 태핑(Tapping), 템페스트(Tempest)

 

데이터 링크 계층 : 맥 플러딩, ARP 스푸핑, VLAN 홉핑, DHCP 고갈(starvation), DHCP 스푸핑

 

네트워크 계층 : 랜드, ICMP 플러딩, ICMP 스머핑, 티얼드롭(Teardrop)

 

전송 계층 : TCP SYN, 본크-보인크(Bonk-Boink)

 

응용 계층 : HTTP GET 플러딩, HTTP GET 캐시 제어 플러딩(flooding with cache control), 슬로우(slow) HTTP 헤더/슬로우리스(slowloris), 슬로우 HTTP 포스트(post), 러디(rudy)

 

 

 

보안 방법

장비보안

허브(Hubs)

컴퓨터끼리 네트워크 연결 및 한 장소로 연결을 모으는데 사용되며,패킷 필터링 기능 수행, 신호 증폭 기능, 라우터 등의 네트워크 장비와 연결이 가능하다. 또한 네트워크 상태를 점검하는 모니터링 기능을 가진다.

 

리피터(Repeaters)

전자기 또는 광학 전송매체 상에서 신호를 수신하고 증폭하며 재전송 시키는 장치이다. 흔히 근거리 통신망 내에서 세그먼트들을 서로 연결하는데 사용되며, 유무선 광역통신망 전송을 증폭하고 연장하는데 사용되기도 한다.

 

브릿지(Bridges)

둘 이상의 통신망을 연결해주는 장치이다.

 

라우터(Routers)

LAN을 통한 데이터를 전송할 때 수신처의 주소를 읽고 최적의 통로를 이용하여 전송하는 장치를 말한다. 필터링과 침입차단 시스템을 가지고 있다.

 

스위치(Switch)

해킹 방지 목적 및 지정된 장치에 패킷 전송 역할을 담당하는 장치이다.

 

보안 시스템

방화벽(firewall)

외부로부터 내부망을 보호하기 위한 네트워크 구성요소 중의 하나로써 외부의 불법 침입으로부터 내부 정보를 보호하고 외부에서 유입되는 유해한 정보를 차단하기 위한 정책과 이를 지원하는 하드웨어 및 소프트웨어를 말한다. 외부망과 내부만 사이에서 미리 설정한 규칙에 따라 특정한 패킷을 차단하거나 허용하는 소프트웨어 설정 또는 하드웨어 장비를 의미하며 예방 통제를 구현하기 위한 장비이다.

 

가상사설망(VPN)

기업 간 혹은 기업과 사용자간 중요 기밀자료를 인터넷 등을 이용하여 교환할 때 공격자에게 자료 누출, 변조 등의 침해사고가 발생할 수 있으므로 이를 방지하고 안전한 데이터 전송을 위해 인터넷망을 전용선처럼 사용할 수 있게 특수통신체계와 암호화기법을 제공하는 서비스가 필요하며, 가상사설망이 지원하고 있다.

 

침입탐지시스템 (IDS, IPS)

침입탐지시스템은 확인되지 않은 행위와 비정상적인 행동을 탐지하고, 탐지된 불법 행위를 구별해 실시간으로 침입을 차단하는 기능을 가지고 있는 보안시스템이다. 침입탐지시스템은 해킹 등의 불법 행위에 대한 실시간 탐지 및 차단과 침입차단사시템에서 허용한 패킷을 이용하는 해킹 공격의 방어를 목적으로 하고 있다.

 

네트워크관리 시스템 (NAC)

네트워크 내의 장비들에 대한 중앙 감시 체계를 구축하여 트래픽을 모니터링하고 관련 정보를 수집, 분석, 저장하는 시스템으로 해킹 및 시스템 장애 등으로 인하여 시스템 및 네트워크에 이상이 발생하면 발견하고 대응하기 위해 구축된 시스템이다. 장애관리, 구성관리, 계정관리 및 성능관리의 기능을 가진다.

 

 

참고자료

 

네트워크 공격 - 해시넷 (hash.kr)

 

[TCP/IP] 3. 네트워크 공격 유형 (velog.io)

'LINUX' 카테고리의 다른 글

[SWING] Linux 06  (0) 2022.06.27
[SWING] Linux 05  (0) 2022.05.23
[SWING] Linux 03  (0) 2022.05.06
[SWING] Linux 02  (0) 2022.04.02
[SWING] Linux 01  (0) 2022.03.27