Linux security tools1

다원·2023년 1월 23일
0
post-thumbnail
post-custom-banner

네트워크 시스템 모니터링 도구와 방화벽 침입감지시스템, 시스템 침입예방시스템에 관한 도구들

clamd toolkit

ClamAV : 자유 크로스 플랫폼 형식의 바이러스 검사 소프트웨어 툴킷
바이러스 및 악성 소프트웨어 검사, 전자 메일 바이러스 검사기 역할로 매일 서버에 이용

ClamAV install

SELinux 비활성화 후 repository 설치 후 package 설치

yum -y install clamav-server clamav-data clamav-update clamav-filesystem clamav clamav-scanner-systemd clamav-devel clamav-lib clamav-server-systemd

ClamAV Service

  • freshclam으로 바이러스 정의 파일을 업데이트 한 뒤 freshclam 파일 중
    MOD와 DELAY를 수정한 뒤 서비스 활성화
  • 주기적인 사용을 위해 쉘 파일을 생성 및 crontab 실행
    clamscan의 위치를 확인하고 clamav의 쉘 파일을 생성

    clamav.sh 파일을 실행하면 /log 파일이 생성된 것을 확인
  • rc.local 파일에 설정해두면 booting 시 시스템 바이러스 검사
  • 주기적인 검사를 위해 cron 설정

NMAP

:타겟에 관한 광범위한 정보를 알려줌
운영체제의 종류, 버전, 실행되고 있는 서비스, 오픈 포트, 설치된 프로그램과 버전 등의 정보를 수집 한 뒤, 버그나 취약점을 알아내어 스크립트 파일로 타겟에 침투
흔적을 남기지 않으면서 서버를 탐색하는 Stealth scan 을 수행할 수 있음
NMAP의 경우 NES(Nmap Script Engine)라는 스크립트 도구를 로드해서 정밀하고 강력한 타겟을 스위핑해서 모든 정보를 알아 낼수 있음
포트 스캔에 대한 결과: open, filetered(방화벽이 막았음), closed, unfiltered (알수 없음) 식으로 표현

NMAP 옵션 중

-O: 운영체제 확인
-sP: 대상 호스트 상태 여부
-sT: openport all
-sV: TCP openport & service version
-sU:UDP Open check
-sS: 스텔스 스캔으로 감시를 피함

대상호스트의 상태 확인

대상호스트의 전체 오픈 포트 확인

대상호스트의 운영체제 확인

Netcat

:만능 보안 도구, 주로 백도어로 사용되지만, 포트스캔, 파일 송수신도 할 수 있음

20 - 1000번대의 포트 중 대상호스트로 부터 열려있는 포트를 확인

열린 포트와 연결되는 거 확인

Netcat으로 문자 전송

외부에서 Netcat 도구로 4444포트로 문자를 전송할 경우

해당 포트에 접속하면 문자를 받을 수 있음

TCPdump

패킷분석에서 모니터링으로 인터페이스 크레덴션
네트워크를 모니터링해서 인터페이스에 도달한 데이터를 콘솔에 텍스트로 표시해주므로 네트워크에 사용자 크레덴셜이 암호화되지 않은 평문으로 전송되며, 즉각 확인 가능
TCPdump를 설치 한 후 패킷을 모으는 서버의 인터페이스를 promisc mode로 변경
-i 인터페이스 지정, -w Capture 저장, -r: .pcap 확장자 파일 read
ifconifg ens33 promisc

Interface ens33에서 도착지 IP주소가 192.168.100.107에 대해 .pcap 파일에 저장하도록 설정

조건에 맞는 pakcet의 수를 Got으로 출력

외부에서 서버의 telnet으로 접속한 호스트가 107 주소로 ping 전송

ping 전송과 캡처를 중단하고 .pcap확장 파일을 읽으면 packet에 대해서 저장된 정보 확인

TripWire IDL

: 변조된 파일을 찾아주고, 파일의 변조 유무를 확인
기존의 해스 값과 속성을 저장한 데이터베이스를 만들어 두고 해시 값과 속성 정보를 이 데이터베이스에 저장된 정보와 비교해서 변조된 파일을 찾아내는 원리, 실시간 확인은 불가능

구성파일

site.key(사이드키 설정파일과 정책파일을 암호화 할때 사용)
Local.key(로컬 키 시스템을 초기화 할 때)
tw.cfg(구성설정)
twcfg.txt(구성 설정 편집)
tw.pol(정책설정)

실행

tripwire파일 설치하고 설치 시 site-key, local-key 설정 후 설치

twpol.txt에서 설정을 보는데 어떤 파일/디렉터리를 어떻게 검사하느냐를 정하는데 정책파일로써 검사 대상을 개체, 검사항목을 속성이라고 하며 주로 이 파일로 정책을 적용
tripwire -init
:현재 시스템을 그대로 점검해서 현재 상태를 기준으로 시스템 데이터베이스를 초기화해서 생성

: 오류는 설정파일에는 설정이 있으나, 실제 호스트 머신에는 설정이 없기 때문에 오류가 발생, twpol.txt 파일을 수정하면 오류가 발생하지 않음

twpol.txt 파일을 수정 한 후 환경파일과 정책파일 암호화 키로 다시 데이터베이스 초기화 생성

ssh로 tripwire 실행되고 있는 머신에 접속하여 추가 삭제 변경 등의 작업을 수행

tripwire로 변경된 사항 확인

~.twr 파일의 내용을 확인하여 변경된 사항을 확인 할 수 있음

RPM

침입 등으로 인해서 시스템에 파일이 생성되거나 수정되는 등의 변경이 생기면 RPM 도구도 파일시스템 점검하는데 제한적으로 사용 될 수 있음
RPM 도구는 자신이 직접 설치하지 않은 RPM 파일에 대해서는 정보를 가지고 있지 않다는 제약이 있기 때문에 루트킷으로 트로이 목마를 RPM 설치하거나 데이터베이스를 RPM소스로 변경해서 RPM도구가 감지하지 못하게 해서 악성코드를 숨기기도 함

AIDE

체크섬과 권한에 관한 데이터베이스를 파일을 가지고 있으므로 이를 암호화해서 읽기 전용 매체에 보관하면 외부인에 의한 RPM 포맷으로 변경을 잡을 수 있음
시스템을 네트워크에 연결하기 전에 데이터베이스를 만들어 두면 aide는 centOS의 오리지널 구성 파일을 데이터베이스화해서 지니게 되므로 이와 비교해서 변경 여부를 쉽게 확인 할 수 있게 됨

Portsentry

외부에서 시스템 포트를 스캔하는지 실시간으로 검사하는 도구,
실시간으로 메모리에 상주하면서 외부에서 해당 시스템의 포트를 스캔을 탐지해서 막아주는 방어 도구
/etc/hosts.deny 파일에 침투자 IP를 넣어서 원천적으로 차단시키거나, 관리자에게 이메일로 침투자를 알려주거나, 또 스캔공격 받을 때 외부 스크립트나 실행 파일을 실행해서 자동으로 침투 머신에 역공격을 수행 시킬 수 있음
포트를 보초를 세운다면 의미로 /etc/portsentry/에서 .conf 파일 등을 잘 살펴보면 어떤 메커니즘으로 도구가 동작하는지 파악할 수 있음

portsentry 설치

portsentry.conf:환경설정 파일, 감시대상에서 제외할 IP들에 대해서는 portsentry.ignore
TCP_PORTS: 감시하고자하는 포트를 지정
ADVANCED_PORTS_TCP: 포트 감지 지정
ADVANCED_EXCLUDE_TCP: 포트 감지 제외 대상 지정
BLOCK_FILE: 무조건 차단
BLOCK_TCP: : 0=차단안함, 1=차단함, 2=역공격 해킹 추적 등

TCP_PORTS에 22번 번호를 추가하고 BLOCK_TCP=1로 변경하면
22번 포트의 접속이 막힘을 확인 할 수 있음

profile
공부일지,
post-custom-banner

0개의 댓글