네트워크 시스템 모니터링 도구와 방화벽 침입감지시스템, 시스템 침입예방시스템에 관한 도구들
ClamAV : 자유 크로스 플랫폼 형식의 바이러스 검사 소프트웨어 툴킷
바이러스 및 악성 소프트웨어 검사, 전자 메일 바이러스 검사기 역할로 매일 서버에 이용
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
:타겟에 관한 광범위한 정보를 알려줌
운영체제의 종류, 버전, 실행되고 있는 서비스, 오픈 포트, 설치된 프로그램과 버전 등의 정보를 수집 한 뒤, 버그나 취약점을 알아내어 스크립트 파일로 타겟에 침투
흔적을 남기지 않으면서 서버를 탐색하는 Stealth scan 을 수행할 수 있음
NMAP의 경우 NES(Nmap Script Engine)라는 스크립트 도구를 로드해서 정밀하고 강력한 타겟을 스위핑해서 모든 정보를 알아 낼수 있음
포트 스캔에 대한 결과: open, filetered(방화벽이 막았음), closed, unfiltered (알수 없음) 식으로 표현
-O: 운영체제 확인
-sP: 대상 호스트 상태 여부
-sT: openport all
-sV: TCP openport & service version
-sU:UDP Open check
-sS: 스텔스 스캔으로 감시를 피함
:만능 보안 도구, 주로 백도어로 사용되지만, 포트스캔, 파일 송수신도 할 수 있음
외부에서 Netcat 도구로 4444포트로 문자를 전송할 경우
해당 포트에 접속하면 문자를 받을 수 있음
패킷분석에서 모니터링으로 인터페이스 크레덴션
네트워크를 모니터링해서 인터페이스에 도달한 데이터를 콘솔에 텍스트로 표시해주므로 네트워크에 사용자 크레덴셜이 암호화되지 않은 평문으로 전송되며, 즉각 확인 가능
TCPdump를 설치 한 후 패킷을 모으는 서버의 인터페이스를 promisc mode로 변경
-i 인터페이스 지정, -w Capture 저장, -r: .pcap 확장자 파일 read
ifconifg ens33 promisc
조건에 맞는 pakcet의 수를 Got으로 출력
외부에서 서버의 telnet으로 접속한 호스트가 107 주소로 ping 전송
ping 전송과 캡처를 중단하고 .pcap확장 파일을 읽으면 packet에 대해서 저장된 정보 확인
: 변조된 파일을 찾아주고, 파일의 변조 유무를 확인
기존의 해스 값과 속성을 저장한 데이터베이스를 만들어 두고 해시 값과 속성 정보를 이 데이터베이스에 저장된 정보와 비교해서 변조된 파일을 찾아내는 원리, 실시간 확인은 불가능
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는 centOS의 오리지널 구성 파일을 데이터베이스화해서 지니게 되므로 이와 비교해서 변경 여부를 쉽게 확인 할 수 있게 됨
외부에서 시스템 포트를 스캔하는지 실시간으로 검사하는 도구,
실시간으로 메모리에 상주하면서 외부에서 해당 시스템의 포트를 스캔을 탐지해서 막아주는 방어 도구
/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번 포트의 접속이 막힘을 확인 할 수 있음