Kích hoạt Sniffer và ARP

Một phần của tài liệu bảo mật hệ thống call center (Trang 128)

CHƯƠNG 5: DEMO BẢO MẬT HỆ THỐNG

Tiến hành dị tìm các Host trong hệ thống, click phải chính giữa màn hình và chọn Scan MAC Ađress

Hình 5. 18: Scan các host trong hệ thống

Trong quá trình này Cain&able sẽ broadcast ARP tới tất cả các IP trong hệ thống từ 192.168.1.1 => 192.168.1.254.

CHƯƠNG 5: DEMO BẢO MẬT HỆ THỐNG

Các host trong mạng LAN sẽ trả lời lại quá trình broadcast này phần mềm Cain & Able sẽ có được tất cả các IP và MAC tương ứng.

Hình 5. 20: Các host trong mạng LAN

Tấn công nghe lén cuộc gọi Các bước tấn công:

 Bước đầu tiên là chuyển sang tab ARP và kích hoạt ARP

Hình 5. 21: Kích hoạt ARP

 Bước kế tiếp chọn mục tiêu tấn công. click vào dấu (+) trên thanh

công cụ để chọn mục tiêụ Giao diện New ARP Poison Routing xuất hiện

chứa tất cả các Host đang hoạt động trong hệ thống. Chọn IP của

Softphone2 (192.168.1.33) và các IP còn lại chuyển qua khung bên phảị Tiếp tục click chọn IP mục tiêu (192.168.1.39) của softphone1 còn lại

CHƯƠNG 5: DEMO BẢO MẬT HỆ THỐNG

Hình 5. 22: Chọn mục tiêu tấn cơng

 Chương trình khởi tạo tấn cơng MITM giữa 2 host 192.168.1.39 và

192.168.1.33. Có thể tấn cơng cuộc gọị Khi Softphone 1 gọi đến Softphone

2 đàm thoại và gác máỵ

 Sau khi hai softphone kết thúc cuộc gọi trên giao diện của Cain & Able chọn tab VoIP ở bên dướị

Hình 5. 23: Chi tiết cuộc gọi nghe lén

Trên giao diện lúc này xuất hiện chi tiết một cuộc đã xảy ra gồm: thời gian bắt đầu, thời gian kết thúc cuộc gọi, IP gọi và bị gọi, trạng thái, file ghi âm

đuôi.mp3 và dung lượng filẹ Để nghe lại cuộc gọi đã nghe lén thì click phải vào

file và chọn “Play”.

CHƯƠNG 5: DEMO BẢO MẬT HỆ THỐNG

5.2.2 Bảo mật cuộc gọi bằng TLS và SRTP

Bảo mật hệ thống và chống nghe lén bằng TLS và SRTP khi attacker tấn công bằng Cain & Able và Wireshark.

5.2.2.1 Bảo mật các gói tin báo hiệu TLS

Để bảo mật cuộc gọi bằng TLS thì phải kích hoạt TLS hoạt động trên cả

client vàs server.

Kích hoạt TLS trên server

Server Asterisk 1.8.9.0 của hệ thống có hỗ trợ TLS nhưng cần phải kích hoạt một số thao tác để hoạt động.

 Tạo khóa

Trên server astersik chưa có cơ chế trao đổi khóa hay PKỊ Để sử dụng được TLS

thì phải tạo khóa và được đồng bộ chấp nhận cả Client và Server. Q trình tạo khóa:

Tạo thư mục Keys để chứa các khóa tạo ra

mkdir /etc/asterisk/keys

Sử dụng file ast_tls_cert trong folder /usr/src/asterisk/asterisk-

1.8.9.0/contrib/scripts để tạo khóạ

Lệnh tạo khóa cho server Asterisk:

./ast_tls_cert -C 192.168.1.44 -O "binhphuong" -d /etc/asterisk/keys

Hình 5. 24: Nhập key lần thứ nhất với key: binhphuong

Q trình tạo khóa cho Server có 4 lần nhập keỵ Lần nhập key thứ 3 sau khi tạo file cạcrt.

CHƯƠNG 5: DEMO BẢO MẬT HỆ THỐNG

./ast_tls_cert -m client -c /etc/asterisk/keys/cạcrt -k /etc/asterisk/keys/cạkey -C 192.168.1.39 -O "binhphuong" -d /etc/asterisk/keys -o bp

Hình 5. 25: Tạo key cho client 192.168.1.39

./ast_tls_cert -m client -c /etc/asterisk/keys/cạcrt -k /etc/asterisk/keys/cạkey -C 192.168.1.45 -O "binhphuong" -d /etc/asterisk/keys -o pb

CHƯƠNG 5: DEMO BẢO MẬT HỆ THỐNG

Sau khi tạo key xong cho cả client và server trong thư mục keys có 16 file: asterisk.crt asterisk.csr asterisk.key asterisk.pem bp.crt bp.csr bp.key bp.pem pb.crt pb.csr pb.key pb.pem cạcfg cạcrt cạkey tmp.cfg

Sau đó, ta copy 2 file bp.pem và cạcrt dùng cho softphone 1 và pb.pem, cạcrt dùng cho softphone2 để ađ và blinks

 Kích hoạt trên server Asterisk

Chèn thêm các dòng lệnh sau vào sip.conf

tlsenable=yes tlsbindađr=0.0.0.0 tlscertfile=/etc/asterisk/keys/asterisk.pem tlscafile=/etc/asterisk/keys/cạcrt tlscipher=ALL tlsclientmethod=tlsv1

Khai báo thêm 2 thuê bao trong file sip.conf để kích hoạt TLS hoạt động trên client: [tls1] username=tls1 secret=12345 mailbox=tls1@default context=group1 qualify=yes type=peer host=dynamic disallow=all encrypt=no allow=g722 transport=tls

CHƯƠNG 5: DEMO BẢO MẬT HỆ THỐNG [tls1] username=tls2 secret=12345 mailbox=tls2@default context=group1 qualify=yes type=peer host=dynamic disallow=all encrypt=no allow=g722 transport=tls

Ta chọn encryption=no vì tình huống thử nghiệm này khơng sử dụng SRTP để mã hóa các bản tin RTP. Sau đó hiệu chỉnh lại file extension.conf để định hướng cuộc gọi đến thuê bao tls1

exten => tls1,1,Dial(SIP/tls1,30) exten =>tls1,n,Hangup()

exten => tls2,1,Dial(SIP/tls2,30) exten =>tls2,n,Hangup()

 Kích hoạt TLS trên Blink

Cập nhật thông tin tls1 và tls2 trên Blink. Sau đó, cập nhật trên giao diện Blink

tương tự như khi đăng nhập 200@192.168.1.44 (username: BMDTVT). Click vào

trên giao diện Blink chọn tab Blink/Account/Preferences.

Hình 5. 27: Giao diện Blink Preferences

CHƯƠNG 5: DEMO BẢO MẬT HỆ THỐNG

Hình 5. 28: Thay đổi thơng tin trên tab Server Setting

Tiếp tục chọn tab Advanced tại khung Certificate File chọn đường dẫn lưu file

bp.pm

CHƯƠNG 5: DEMO BẢO MẬT HỆ THỐNG

Trên giao diện Blink chọn tab Advance chỉ đường dẫn đến file cạcrt

Hình 5. 30: Đường dẫn file cạcrt cập nhật cho Blink 5.2.2.2 Bảo mật bằng SRTP 5.2.2.2 Bảo mật bằng SRTP

Kích hoạt SRTP

Muốn Asterisk hỗ trợ SRTP thì cần phải cập nhật thêm thư viện libsrtp, thư viện này cần phải được cài đặt trước khi cài đặt Asterisk, trong trường hợp này vì Asterisk đã được cài đặt để demo các trường hợp trước nên sau khi cài libsrtp,phải

cài đặt lại Asterisk, sau đó khai báo thuê bao, định hướng cuộc gọi trong các file

sip.conf và extensions.conf như đã trình bày ở các phần trên. Ngồi ra, để kích hoạt

SRTP ở thuê bao nào thì ta thêm dòng encryption=yes và srtpenable=yes trong phần khai báo của thuê bao đó trong file sip.conf.

Cài đặt cho Blink sử dụng SRTP: Click vào Blink/Accounts/Manage

CHƯƠNG 5: DEMO BẢO MẬT HỆ THỐNG

Hình 5. 31: Cài đặt SRTP trên Blink

Tấn công cuộc gọi được bảo mật bởi SRTP

Tình huống cuộc gọi:

Hình 5. 32: Mơ hình demo SRTP Cain & Able và Wireshark được đặt trên host của

CHƯƠNG 5: DEMO BẢO MẬT HỆ THỐNG

5.3 Bảo mật hệ thống với Iptables và Fail2ban

Như đã đề cập ở chương 3, hướng tấn công ảnh hưởng băng thông và chất

lượng dịch vụ của hệ thống chính là DoS và ĐoS. Đó là dạng tấn cơng nguy hiểm

có thể làm cho server bị sụp đổ hồn tồn hoặc khơng thể đáp ứng dịch vụ được nữa (Từ chối dịch vụ).

Ở phần này sẽ demo cách sử dụng iptables và fail2ban để chặn hoặc giảm

thiểu ảnh hưởng của các cuộc tấn công DoS và ĐoS.

5.3.1 Bảo mật hệ thống dùng Iptables 5.3.1.1 Cài đặt Iptables 5.3.1.1 Cài đặt Iptables

Kiểm tra Iptables đã được cài đặt chưa bằng lệnh:

# iptables -L

Với những máy chưa cài đặt Iptables thì dùng lệnh:

# apt-get install iptables

Nếu sau khi dùng lệnh iptables -L thấy hiện ra các Chain như hình sau tức là

iptables đã được cài đặt

Hình 5. 33: Kiểm tra cài đặt Iptables

Nếu Iptables đã được cài đặt thì start iptables bằng lệnh:

# service iptables start

Hoặc:

# /etc/init.d/iptables start

Để iptables tự start khi khởi động thì nên turn on iptables trong startup bằng lệnh:

# chkconfig iptables on

CHƯƠNG 5: DEMO BẢO MẬT HỆ THỐNG

5.3.1.2 Script Iptables Demo:

Sau khi cài đặt Iptables, tiến hành cấu hình iptables theo Script đã dựng sẵn. Tùy

thuộc và mục đích của quản trị viên và vào tính chất của hệ thống mà Script được xây dựng sẽ khác nhaụ

Script này được xây dựng để chống các hướng tấn công sau: + Register bất hợp pháp SSH vào hệ thống + ICMP Flood + Syn Flood + Scan Port + UDP Flood + Ping of Death + Smurf + Fraggle >>> Xóa tất cả: # iptables -X

>>> Xóa các luật tồn tại trong Chain

# iptables -F

>>> Reset tất cả gói và Counter

# iptables -Z

>>> Khơng đóng các kết nối đang được thiết lập, đồng thời cũng cho phép mở các

kết nối mới trong kết nối được thiết lập

# iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT

>>> Chấp nhận 192.168.1.39 và 192.168.1.35 được phép register SSH vào hệ thống. Chặn tất cả các IP còn lại

# iptables -A INPUT -s 192.168.1.35/32 -i eth0 -p tcp -m tcp --dport 2200 -m state - -state NEW -j ACCEPT

# iptables -A INPUT -s 192.168.1.39/32 -i eth0 -p tcp -m tcp --dport 2200 -m state - -state NEW -j ACCEPT

# iptables -A INPUT -i eth0 -p tcp -m tcp --dport 2200 -m state --state NEW -j DROP

>>> Hạn chế gói tin Ping tới Server: rule này sẽ giới hạn các gói Ping tới server là

10 gói/phút sau khi đạt mức đỉnh là 1 gói

# iptables -N test

# iptables -A test -m limit --limit-burst 1 --limit 10/m -j RETURN # iptables -A test -j DROP

CHƯƠNG 5: DEMO BẢO MẬT HỆ THỐNG

# iptables -A INPUT -i eth0 -p icmp -m icmp --icmp-type echo-request -j test

>>> Chống Syn Flood: rule này sẽ giới hạn các gói TCP (SYN = 1) tới server qua

port 3306 và 2200 là 1 gói/phút sau khi đạt mức đỉnh là 1 gói

# iptables -N syn_flood

# iptables -A syn_flood -m limit --limit 1/min --limit-burst 1 -j RETURN # iptables -A syn_flood -j DROP

# iptables -A INPUT -i eth0 -p tcp -m tcp --dport 3306 --syn -j syn_flood # iptables -A INPUT -i eth0 -p tcp -m tcp --dport 2200 --syn -j syn_flood

>>> Chống UDP Flood: ngăn các gói UDP đến port UDP-echo (port 7)

# iptables -A INPUT -p udp --dport 7 -j DROP

>>> Chống Ping of Death: kỹ thuật Ping of Death gửi gói tin lớn hơn 65535 byte làm tê liệt hệ thống nên rule này hạn chế kích cỡ của 1 gói tin ICMP dưới 65535, DROP các gói khơng thỏạ

# iptables -A INPUT -p icmp --icmp-type echo-request -m length --length 60:65535 -j ACCEPT

# iptables -A INPUT -p icmp --icmp-type echo-request -j DROP

>>> Chống Smurf Attack: Rule này ngăn không cho Ping tới địa chỉ broadcast và giới hạn tốc độ các gói tin echo-reply là 10 gói/phút khi đạt 1 gói

# iptables -A INPUT -m pkttype --pkt-type broadcast -j DROP

# iptables -A INPUT -p icmp --icmp-type echo-request -m pkttype --pkt-type broadcast -j DROP

# iptables -A INPUT -p icmp --icmp-type echo-reply -m limit --limit-burst 1 --limit 10/m -j ACCEPT

>>> Chống Fraggle Attack: Rule này ngăn khơng cho các gói tin UDP gửi tới địa chỉ Broadcast

# iptables -A INPUT -p udp -m pkttype --pkt-type broadcast -j DROP # iptables -A INPUT -p udp -m limit --limit-birst 1 --limit 10/m -j ACCEPT

>>> Chống Scan Port

>>>>> Chống Xmas Scan (gửi gói tin với ba cờ được thiết lập FIN, URG, PSH)

# iptables -A INPUT -m state --state NEW -p tcp --tcp-flags ALL FIN,URG,PSH -j DROP

>>>>> Chống Xmas Scan với tất cả cờ được thiết lập

#iptables -A INPUT -m state --state NEW -p tcp --tcp-flags ALL ALL -j DROP

>>>>> Chống Null Scan (tắt tất cả cờ)

CHƯƠNG 5: DEMO BẢO MẬT HỆ THỐNG

Sau khi cấu hình Script xong, nếu trong q trình test khơng có lỗi gì thì tiến hành save cấu hình lại bằng câu lệnh:

# iptables-save

Cách sửa cấu hình và reboot đã đề cập ở chương 4

Lệnh iptables-save chỉ tạm save lại cấu hình và khi restart lại hệ thống thì sẽ tự dùng lệnh iptables-restore để đọc lại cấu hình nhưng khi reboot (tắt) và khởi động

lại hệ thống thì cấu hình sẽ mất đị Để tránh mỗi lần mở máy phải cấu hình Script lại ta thực hiện các bước sau:

# pre-up iptables-restore < /etc/iptables.rules

# post-down iptables-restore < /etc/iptables.downrules # vi /etc/network/if-pre-up.d/iptablesload và thêm vào: # !/bin/sh

iptables-restore < /etc/iptables.rules exit0

# vi /etc/network/if-post-down.d/iptablessave và thêm vào # !/bin.sh iptables-save -c > /etc/iptables.rules if [ -f /etc/iptables.downrules ]; then iptables-restore < /etc/iptables.downrules fi exit 0 # chmod +x /etc/network/if-post-down.d/iptablessave # chmod +x /etc/network/if-pre-up.d/iptablesload # iptables-save > /etc/iptables.rules

Trước khi test demo nên restart lại hệ thống:

# /etc/init.d/networking restart

5.3.2 Bảo mật hệ thống dùng Fail2ban kết hợp Iptables 5.3.2.1 Cài đặt Fail2ban 5.3.2.1 Cài đặt Fail2ban

Fail2ban được tích hợp sẵn trong Ubuntu 11.04

Để bắt đầu cấu hình trước tiên phải cài đặt Fail2ban bằng câu lệnh:

# apt-get install fail2ban

5.3.2.2 Cấu hình

Cấu hình file asterisk.conf

Sau khi cài đặt fail2ban, tạo một tập tin có tên asterisk.conf trong thư mục fail2ban

filters bằng lệnh:

# /etc/fail2ban/filter.d/asterisk.conf

Bây giờ thêm những phần sau đây vào tập tin vừa tạo: # Fail2Ban configuration file

CHƯƠNG 5: DEMO BẢO MẬT HỆ THỐNG

#

# $Revision: 250 $ #

[INCLUDES]

# Read common prefixes. If any customizations available -- read them from # common.local

#before = common.conf

[Definition]

#_daemon = asterisk

# Option: failregex

# Notes.: regex to match the password failures messages in the logfilẹ The # host must be matched by a group named "host". The tag "<HOST>" can # be used for standard IP/hostname matching and is only an alias for # (?:::f{4,6}:)?(?P<host>\S+)

# Values: TEXT #

failregex = NOTICẸ*.*: Registration from '.*' failed for '<HOST>' - Wrong password

NOTICẸ*.*: Registration from '.*' failed for '<HOST>' - No matching peer found NOTICẸ*.*: Registration from '.*' failed for '<HOST>' - Username/auth name mismatch

NOTICẸ*.*: Registration from '.*' failed for '<HOST>' - Device does not match ACL

NOTICẸ* <HOST> failed to authenticate as '.*'$

NOTICẸ*.*: No registration for peer '.*' \(from <HOST>\)

NOTICẸ*.*: Host <HOST> failed MD5 authentication for '.*' (.*) NOTICẸ*.*: Failed to authenticate user.*@<HOST>.*

# Option: ignoreregex

# Notes.: regex to ignorẹ If this regex matches, the line is ignored. # Values: TEXT

#

ignoreregex =

Trong dòng trên bạn có thể thấy rằng fail2ban sẽ tìm cụm từ: “Wrong password”, “No matching peer found”, “Username/auth name mismatch” and “Device does not match ACL”

CHƯƠNG 5: DEMO BẢO MẬT HỆ THỐNG

Hình 5. 34: Cấu hình asterisk.conf

Cấu hình file jail.conf

Tiếp theo thêm những dòng sau trong

# / etc/fail2ban/jail.conf

[asterisk-iptables] enabled = true filter = asterisk

action = iptables-allports[name=ASTERISK, port=all, protocol=all]

sendmail-whois[name=ASTERISK, dest=root, sender=fail2ban@examplẹorg] logpath = /var/log/asterisk/messages ignoreip = 192.168.1.(máy chủ) 192.168.1.39 maxretry = 3 bantime = 18000 [ssh] enabled = true port = ssh filter = sshd logpath = /var/log/auth.log maxretry = 3

CHƯƠNG 5: DEMO BẢO MẬT HỆ THỐNG [ssh-đos] enabled = true port = ssh filter = sshd-đos logpath = /var/log/auth.log maxretry = 3

Hình 5. 35: Cấu hình file jail.conf

Cấu hình file logger.conf để Asterisk ngày đăng nhập và định dạng thời gian

Dùng lệnh

# /etc/asterisk/logger.conf

Và thêm phần sau đây trước phần [logfiles]. Điều này làm cho ngày và thời gian

được định dạng Năm-tháng-ngày giờ:phút

[general]

dateformat=%F %T

Sau đó tải lại các mơ-đun logger cho Asterisk, tại dòng lệnh nhập vào lệnh sau đây:

asterisk -rx "logger reload"

Bật và kiểm tra Fail2ban, Iptables

Bật Iptables

# /etc/init.d/iptables start

Bật Fail2ban

# /etc/init.d/fail2ban start

CHƯƠNG 5: DEMO BẢO MẬT HỆ THỐNG

# iptables -L -v

You should see something like the following for the INPUT chain (you will see more if you have other Fail2Ban filters enabled):

Chain INPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination

2104K 414M fail2ban-ASTERISK all — any any anywhere anywhere

Một phần của tài liệu bảo mật hệ thống call center (Trang 128)