HỌC VIỆN CÔNG NGHỆ BƢU CHÍNH VIỄN THÔNG
CƠ SỞ TẠI THÀNH PHỐ HỒ CHÍ MINH
oOo
TIỂU LUẬN AN NINH MẠNG
Đề tài:
BẢO MẬT VOIP
TRONG SIP & RTP
Giảng viên : TS VÕ VĂN KHANG
Lớp : M11CQDT01-N
Học viên : Nguyễn Minh Đầy Nguyễn Tấn Ngôn
Phạm Tăng Đông Nguyễn Minh Tân
Đinh Duy Hiệp Võ Ngọc Thanh Tùng
Nguyễn Quốc Huy Lê Quang Vũ
Hồ Thiền Luân
TP HỒ CHÍ MINH – 2012
Tiểu luận: Bảo mật VoIP trong giao thức SIP và RTP
Trang -1-
MỤC LỤC
Nội dung Trang
Phần 1. TỔNG QUAN VỀ VOIP 5
1.1 Khái quát về VoIP 5
1.2 Các dạng kết nối trong mạng VoIP 5
1.3 Ƣu và nhƣợc điểm của hệ thống VoIP 6
1.4 Các mối đe dọa đối với hệ thống VoIP 6
Phần 2 MỘT SỐ PHƢƠNG PHÁP TẤN CÔNG TRÊN MẠNG VOIP 8
2.1 Man In The Middle Attack 8
2.1.1 Tóm tắt 8
2.1.2 Giới thiệu 9
2.1.3 Ngăn chặn tấn công Man In The Middle 11
2.1.3.1 TLS/SSL 11
2.1.3.2 Tổng quát tấn công vào giao thức SSL/TLS 13
2.2 Giả mạo bản tin SIP dùng phƣơng pháp tấn công tiêm mã độc SQL 14
2.2.1 Giới thiệu 14
2.2.2 Quá trình tiêm mã SQL 15
2.2.3 Kiến trúc database của giao thức SIP 16
2.2.4 Tấn công tiêm mã độc SQL trong giao thức SIP 17
2.2.5 Các cách bảo vệ cuộc tấn công tiêm mã đọc trong giao thức SIP 19
2.3 Spam over Internet Telephony (SPIT) 21
2.3.1 Giới thiệu về SPIT 21
2.3.2 Ngăn chặn SPIT 23
2.4 Denial Of Service (DoS) 25
2.4.1 Giới thiệu 25
2.4.2 Các hình thức tấn công 25
2.4.3 Cách phòng chống 25
Tiểu luận: Bảo mật VoIP trong giao thức SIP và RTP
Trang -2-
2.5 Vishing 28
2.5.1 Giới thiệu 28
2.5.2 VoIP và Phishing 28
2.5.3 Làm thế nào để không trở thành nạn nhân của vishing 29
2.6 Eavesdropping 30
2.7 Registration Hijaking 33
2.7.1 Giới thiệu 33
2.7.2 Quá trình diễn ra Registration Hijacking 37
2.7.3 Lý do xảy ra các cuộc tấn công có thể nhƣ sau 38
2.7.4 Cách phòng chống Registration Hijacking 38
2.8 Session Hijacking 39
2.8.1 Giới thiệu 39
2.8.2 Bốn phƣơng pháp chính đƣợc sử dụng để thâm nhập trong
một session hijack 41
2.8.3 Phƣơng pháp ngăn chặn Session Hijacking 42
Phần 3 VoIP TLS_SRTP 44
3.1 Giải pháp mã hóa cho VoIP 44
3.1.1 Giải pháp của IETF 44
3.1.1.1 S/MIME: Xác thực bản tin 45
3.1.1.2 TLS: Key Exchange and Signaling Packet Security 47
3.1.1.3 SRTP: Voice/Video Packet Security 50
3.2 Chống tấn công replay 52
KẾ LUẬN 53
TÀI LIỆU THAM KHẢO 54
Tiểu luận: Bảo mật VoIP trong giao thức SIP và RTP
Trang -3-
PHỤ LỤC HÌNH
Nội dung Trang
Hình 1.1 Mô hình tổng quát của mạng VoIP 5
Hình 2.1 Quá trình trao đổi bản tin trong SIP 8
Hình 2.2 Mô hình tấn công Man In The Middle 9
Hình 2.3 Luồng bản tin của cuộc tấn công chuyển hƣớng
cuộc gọi trái phép bởi MITM 10
Hình 2.4 Cấu trúc giao thức SSL 12
Hình 2.5 Giao thức nhận thực handshake một chiều SSL 13
Hình 2.6 Tổng quan tấn công tiến trình đàm phám bởi MITM M 13
Hình 2.7 Mô hình tổng quát của tấn công giả mạo bản tin 15
Hình 2.8 Nội dung bảng mô tả trong giao thức SIP 17
Hình 2.9 Kiến trúc database SIP 17
Hình 2.10 Spam cuộc gọi trong VoIP 22
Hình 2.11 Tác hại của Spam cuộc gọi trong VoIP 22
Hình 2.12 Sử dụng filter để ngăn chặn spam voice mail 23
Hình 2.13 Phân loại các lớp SPIT trong voice mail 24
Hình 2.14 Tấn công DoS làm tràn 26
Hình 2.15 Mô hình tấn công DdoS 27
Hình 2.16 Vị trí của “VoIP firewall” trong hệ thống 28
Hình 2.17 Ba bƣớc thực hiện nghe lén sử dụng Ethereal 31
Hình 2.18 ARP Spoofing Attack 32
Tiểu luận: Bảo mật VoIP trong giao thức SIP và RTP
Trang -4-
Hình 2.19 Sử dụng Cain để thực hiện tấn công man-in-the-middle 33
Hình 2.20 Minh họa Registration Hijacking 34
Hình 2.21 REGISTER Request 35
Hình 2.22 Bản chỉnh sửa của Register request 36
Hình 2.23 SIP Registration Spoofing dùng SiVuS Message generator 37
Hình 2.24 Quá trình Registration Hijacking 38
Hình 2.25 Session Hijacking 40
Hình 2.26 Một Session bình thƣờng 40
Hình 2.27 Chiếm quyền điều khiển 41
Hình 3.1 Kiến trúc phân lớp của giao thức bảo mật cho VoIP 44
Hình 3.2 Quá trình gởi tin nhắn S/MIME 47
Hình 3.3 Quá trình bắt tay Certificate và trao đổi khóa 49
Hình 3.4 SSL/TLS Record Protocol 50
Hình 3.5 Mã hóa gói SRTP 51
Hình 3.6 Chứng thực gói SRTP 51
Hình 3.7 Chống tấn công replay bằng phƣơng pháp cửa sổ trƣợt 52
Tiểu luận: Bảo mật VoIP trong giao thức SIP và RTP
Trang -5-
Phần 1. TỔNG QUAN VỀ VOIP
1.1 Khái quát về VoIP
VoIP (Voice Over Internet Protocol) nghĩa là dịch vụ điện thoại sử dụng giao thức
Internet. Khi đó voice và data sẽ đƣợc truyền tải trên IP qua cùng 1 mạng.
Đối với điện thoại truyền thống PSTN (Public switched telephone network), sử
dụng chuyển mạch kênh để thực hiện các cuộc gọi. Một kênh riêng sẽ đƣợc dành riêng
cho thuê bao đó khi gọi.
Đối với VoIP, sử dụng chuyển mạch gói kết hợp với chuyển mạch kênh và dựa
vào nguyên lý làm việc của mạng Internet. Các tổng đài đƣợc kết nối với nhau bằng các
đƣờng riêng với tốc độ truyền dữ liệu đƣợc xác định trƣớc, các gói tin đến đích theo một
con đƣờng.
Hình 1.1 Mô hình tổng quát của mạng VoIP
1.2 Các dạng kết nối trong mạng VoIP.
Computer to Computer: Là một dịch vụ miễn phí. Chỉ cần ngƣời gọi (caller) và
ngƣời nhận (receiver) sử dụng chung một VoIP service
(Skype, MSN, Yahoo Messenger,…), 2 headphone + microphone, sound card.
Computer to phone: Là một dịch vụ có phí. Ngƣời sử dụng phải trả tiền để có 1
account + software (VDC, Evoiz, Netnam…).
Phone to Phone: Là một dịch vụ có phí. Ngƣời sử dụng không cần một kết nối
Internet mà chỉ cần một VoIP adapter kết nối với máy điện thoại. Lúc này máy điện
thoại trở thành một IP phone.
Tiểu luận: Bảo mật VoIP trong giao thức SIP và RTP
Trang -6-
1.3 Ƣu và nhƣợc điểm của hệ thống VoIP.
Ưuđiểm:
Giảm giá cả và chi phí cho các cuộc gọi từ xa.
Tận dụng đƣợc cơ sở hạ tầng sẵn có của mạng Internet.
Tích hợp nhiều dịch vụ.
Băng thông đƣợc tận dụng tối đa.
Tiện lợi cho ngƣời dùng có xu hƣớng di động, kết nối các văn phòng trực tuyến.
Nhượcđiểm:
Chất lƣợng dịchvụ (hiện tƣợng trễ, hoặc mất các gói tin).
Tính bảo mật chƣa cao. Dễ bị hacker tấn công.
1.4 Các mối đe dọa đối với hệ thống VoIP.
Nhƣ ta đã biết VoIP dữa trên kết nối Internet nên nó có thể có những điểm yếu đối
với bất kỳ mối đe dọa và các vấn dề gì mà máy tính của bạn phải đối mặt. VoIP có thể bị
tấn công bởi virus và mã nguy hiểm khác. Các kẻ tấn công có thể chặn việc truyền thông,
nghe trộm và thực hiện các tấn công giả mạo bằng việc thao túng ID và làm hỏng dịch
vụ của bạn.
Việc thoại và dữ liệu hội tụ trên cùng một dây, với bất kỳ giao thức nào đƣợc sử
dụng là một vấn đề đối với các nhà bảo mật và các nhà quản trị. Hệ quả của vấn đề hội tụ
này là các mạng chính có thể bị tấn công, kiến trúc viễn thông thông tin của các tổ chức
có thể gặp phải rủi ro nguy hiểm. Vì vậy việc đảm bảo kiến trúc cho toàn thể mạng VoIP
đòi hỏi các nhà quản trị mạng phải có kế hoạch, kiến thức chi tiết và phải biết phân tích
các tình huống trong từng trƣờng hợp cụ thể.
Các giao thức đƣợc thiết kế để phục vụ cho một mục đích nào đó và theo bản chất
thì mỗi một giao thức có các đặc điểm của tập đầu vào riêng. Vấn đề xãy ra khi mà giao
thức phải nhận nwhngx đầu vào không mong đợi, và điều đó tạo nên kết quả khó lƣờng.
SIP cũng vậy, các tấn công vào SIP có thể đƣợc xem là rất đa dạng.
Trong bản tin SIP những thông tin riêng tƣ nhƣ thông tin của Client/Server đƣợc
chứa trong header nhƣ một thông tin mở và truyền trong mạng VoIP phân tán nên rất khó
để giữ bí mật.
SIP là một giao thức báo hiệu multimedia đƣợc chuẩn hóa bởi IETF, kiến thức này
nổi bật với các đầu cuối User Agent (UA) và một tập hợp các Server. Ngay từ những
ngày đầu SIP đã giành đƣợc rất nhiều sự tin dùng và chú ý do hệ thống kiến trúc mở và
khả năng mở rộng cho những thiết bị di động và truyền thông multimedia. Đặc điểm của
giao thức SIP dựa trên HTTP và mã ASCII nên nó dễ dàng tìm hiểu. Chính những đặc
điểm này làm cho SIP có rất nhiều lỗ hổng trong bảo mật mà rất dễ bị hacker khai thác
tấn công.
Bảng sau đây mô tả các cấp độ mà cấu trúc VoIP có thể bị tấn công:
Tiểu luận: Bảo mật VoIP trong giao thức SIP và RTP
Trang -7-
Điểm yếu
Đặc tả
Cấu trúc IP
Điểm yếu này liên quan đến các hệ thống sử dụng mạng chuyển
mạch gói, nó làm ảnh hƣởng đến cấu trúc hoạt động VoIP
Hệ điều hành
Các thiết bị VoIP kế thừa các điểm yếu của hệ điều hành và các
firmware mà chúng chạy trên đó (Window, Linux…)
Cấu hình
Cấu hình mặc định của thiết bị VoIP luôn có những dịch vụ dƣ
thừa. Và các port của các dịch vụ này trở thành điểm yếu cho các
tấn công DoS, tràn bộ đệm hoặc tránh xác thực.
Mức ứng dụng
Các công nghệ còn non yếu có thể bị tấn công bẻ gãy hoặc mất
quyền điều khiển đối với các dịch vụ.
Ngoài ra, đa số ngƣời dùng hiện nay khi triển khai hệ thống VoIP chủ yếu quan
tâm đến chất lƣợng của hệ thống nhƣ: chất lƣợng giọng nói, độ trễ, khả năng tƣơng tác.
Đó là những yếu tố quan trọng khi một công ty cân nhắc chuyển hệ thống truyền thông
của mình sang hệ thống VoIP. Không mấy công ty chú tâm đến tính an toàn của hệ thống
VoIP mà mình đang có, mặc dù khi đƣờng truyền dữ liệu và tiếng nói hội tụ với nhau thì
rủi ro về bảo mật là rất cao.
Tiểu luận: Bảo mật VoIP trong giao thức SIP và RTP
Trang -8-
Phần 2 MỘT SỐ PHƢƠNG PHÁP TẤN CÔNG TRÊN
MẠNG VOIP
2.1 Man In The Middle Attack
2.1.1 Tóm tắt
Kiểu tấn công Man In The Middle (MITM) đã đƣợc chứng minh là một trong
những mối đe dọa nguy hiểm nhất đến sự an toàn và sự tin cậy của các hệ thống và các
giao thức VoIP hiện có.
Hình 2.1 Quá trình trao đổi bản tin trong SIP
Tiểu luận: Bảo mật VoIP trong giao thức SIP và RTP
Trang -9-
Hình 2.2 Mô hình tấn công Man In The Middle
2.1.2 Giới thiệu [1]
Trong các khuyến nghị giao thức SIP sử dụng TLS để bảo vệ bản tin báo hiệu của
SIP, và sử dụng S/MIME để bảo vệ tính toàn vẹn và bảo mật của nội dung bản tin. Tuy
nhiên, hầu hết các hệ thống SIP VoIP (Vonage, AT&T CallVantage) chỉ sử dụng nhận
thực SIP để bảo vệ bản tin báo hiệu.
Nhận thực SIP tƣơng tự nhƣ trong nhận thực HTTP. Hình 1 mô tả nhận thực SIP
của đăng ký, thiết lập và kết thúc cuộc gọi. Khi một SIP sever (ví dụ: proxy, registrar)
nhận một bản tin yêu cầu SIP (SIP request) (ví dụ: REGISTER, INVITE, BYE) từ điện
thoại có giao thức SIP (SIP phone), SIP server sẽ gửi lại 401 unauthorized hoặc 407
proxy-authentication required cho SIP phone, SIP phone sẽ tính toán giá trị hàm băm
bằng thuật toán riêng (ví dụ: MD5) để tạo ra bản tin request-URI, username, share
password giữa điện thoại và SIP server, realm và nonce. Sau đó SIP phone sẽ gửi các giá
trị hàm băm với các yêu cầu SIP ban đầu để nhận thực. Tuy nhiên, nhận thực SIP hiện tại
chỉ là việc chọn vài bản tin SIP từ SIP phone đến SIP server. Điều này làm cho bản tin
SIP không đƣợc bảo vệ. Bằng cách khai thác các lỗ hổng của SIP và RTP, một MITM có
thể làm các việc sau:
Tiểu luận: Bảo mật VoIP trong giao thức SIP và RTP
Trang -10-
Bất kỳ cuộc gọi nào cũng thông qua internet. Điều này sẽ cho phép các attacker
nghe trộm các cuộc gọi VoIP và thu thập thông tin nhạy cảm (ví dụ: số tài khoản, PIN) từ
nạn nhân.
Chuyển hƣớng bất kỳ cuộc gọi VoIP cho bên thứ 3 nhảy vào thao tác và thiết lập
chuyển hƣớng đến một thuê bao VoIP khác mà không cần nhận thực. Điều này cho phép
các attacker chiếm quyền điều khiển các cuộc gọi VoIP cho các tổ chức tài chính và giả
vờ đại diện ngân hàng.
Khởi động các cuộc tấn công chi phí đối với ngƣời sử dụng VoIP mà các nạn nhân
là ngƣời sử dụng VoIP bị làm cho quá tải các cuộc gọi hoặc tính phí cho các cuộc gọi
không đƣợc thực hiện bởi ngƣời sử dụng VoIP thực sự.
Phá vỡ bất kỳ cuộc gọi VoIP nào bằng cách sử dụng các bản tin BUSY hoặc BYE.
Hình 2 minh họa luồng bản tin của cuộc tấn công chuyển hƣớng cuộc gọi trái phép
bởi MITM. Tất cả các cuộc tấn công MITM hiện nay điều đòi hỏi tấn công bắt đầu với
các bản tin báo hiệu VoIP, phần đa phƣơng tiện.
Để chi tiết hơn kiểu tấn công MITM ta xét trƣờng hợp sau:
Hình 2.3 Luồng bản tin của cuộc tấn công chuyển hướng cuộc gọi trái phép bởi
MITM
1. Alice gửi bản tin đến Bob, nhƣng bị chặn lại bởi Mallory
Alice “ Chào Bob, đây là Alice. Cho tôi key của bạn” Mallory Bob
2. Mallory chuyển bản tin này đến Bob nhƣng Bob không biết đƣợc bản tin đƣợc
chuyển từ Mallory.
Alice Mallory “ Chào Bob, đây là Alice. Cho tôi key của bạn” Bob
3. Bob phản hồi lại bằng key đã đƣợc mã hóa.
Alice Mallory “ key của Bob” Bob
Tiểu luận: Bảo mật VoIP trong giao thức SIP và RTP
Trang -11-
4. Mallory nhận đƣợc key của Bob, Mallory thay thế key này và chuyển lại cho
Alice.
Alice “ key của Mallory” Mallory Bob
5. Alice giải mã key vừa nhận đƣợc và nghĩ đó là key của Bob, bắt đầu gửi bản
tin
Alice “ Gặp tôi tại trạm xe buýt. (key mã hóa của Mallory)”Mallory Bob
6. Mallory nhận đƣợc bản tin rồi giải mã, thay đổi nội dung, sau đó mã hóa thành
dạng key của Bob rồi chuyển lại cho Bob.
Alice Mallory “Gặp nhau vào lúc 22h nhé” Bob
7. Bob cứ nghĩ đó là thông tin đến từ Alice nhƣng thực sự nhận đƣợc từ Mallory
(attacker).
(nguồn: Wikipedia.com)
2.1.3. Ngăn chặn tấn công Man In The Middle [2]
Để ngăn chặn tấn công MITM ta có thể sử dụng TLS/SSL, SRTP
2.1.3.1 TLS/SSL
Transport Layer Security (TLS) và Secure Sockets Layer (SSL) là các giao thức
đƣợc thiết kế cho việc thiết lập một kênh an toàn giữa 2 bên giao tiếp, máy khách và máy
chủ. Các giao thức truyền đƣợc sử dụng với SSL/TLS thƣờng là HTTP, nhƣng cũng có
thể đƣợc sử dụng với các giao thức khác, chẳng hạn FTP và Telnet. Trong thực tế, các kết
nối SSL/TLS giống nhƣ kết nối TCP (SSL/TLS là lớp trên TCP, hình 3), SSL/TLS có thể
dễ dàng đƣợc sử dụng để mã hóa bất kỳ hệ thống nào sử dụng TCP.
SSL/TLS dựa trên cơ sở hạ tầng gồm khóa công cộng/ riêng và xác nhận. Cơ sở hạ
tầng này cho phép bảo mật và nhận thực.
Tiểu luận: Bảo mật VoIP trong giao thức SIP và RTP
Trang -12-
Hình 2.4 Cấu trúc giao thức SSL
Giao thức SSL có thể đƣợc chia làm 4 phần: Record protocol, Handshake
protocol, Change Cipher Spec protocol và Alert protocol. Chúng ta chỉ tập trung vào
handshake protocol, nó là một điểm yếu trong giao thức SSL, đƣợc khai thác trong các
cuộc tấn công kiểu MITM.
Handshake protocol
Là nơi mà trao đổi khóa xác thực diễn ra. Handshake phục vụ cho các mục đích
khác nhau:
Thống nhất về các thuật toán đƣợc sử dụng, tức là các bộ mã
Thiết lập một tập hợp các khóa mật mã
Xác thực. Handshake luôn xác thực từ máy chủ đến máy khách. Theo tùy chọn,
máy khách có thể xác thực đến máy chủ.
Cụ thể đƣợc mô tả ở hình 2.5:
Tiểu luận: Bảo mật VoIP trong giao thức SIP và RTP
Trang -13-
Hình 2.5 Giao thức nhận thực handshake một chiều SSL
2.1.3.2 Tổng quát tấn công vào giao thức SSL/TLS
Đƣợc thể hiện cụ thể ở hình 2.5
Hình 2.6 Tổng quan tấn công tiến trình đàm phám bởi MITM M.
Tiểu luận: Bảo mật VoIP trong giao thức SIP và RTP
Trang -14-
Máy khách C muốn giao tiếp với máy chủ S thông qua kết nối bảo mật SSL, và
gửi bản tin ClientHello đến server bắt đầu tiến trình bắt tay (bƣớc 1).
Bản tin bị chặn lại bởi MITM M.
M gửi ClientHello đến S, với cách làm đó đã thiết lập đƣợc 1 phiên SSL giữa M
và S (bƣớc 2 và 3).
Tiến trình đàm phán đƣợc kích hoạt. Bằng cách M gửi bản tin ClientHello đến S,
hoặc M gửi một yêu cầu để kích hoạt S bắt đầu tiến trình đàm phán (bƣớc 4).
S gửi bản tin HelloRequest đến M để bắt đầu tiến trình đàm phán (bƣớc 5).
Quá trình Handshake đƣợc ƣu tiên hơn các dữ liệu ứng dụng, do đó bất cứ thứ gì
nhận đƣợc từ S sẽ đƣợc lƣu vào bộ đệm cho đến khi quá trình handshake đƣợc thực hiện.
Điều này bao gồm việc thực hiện lại bƣớc 4, nếu nó đƣợc kích hoạt từ M.
Thay vì đáp lại bằng bản tin HelloRequest, M đáp lại bằng bản tin ClientHello
(bƣớc 1) đƣợc gửi bởi C (Bƣớc 6).
Một phiên SSL đƣợc tạo ra giữa C và S thông qua kết nối SSL giữa M và S. M
không thể đọc hoặc chỉnh sửa dữ liệu đƣợc gửi đi giữa S và C kể từ bây giờ (bƣớc 7).
S thực hiện việc đệm dữ liệu, xử lý nó nhƣ nếu nó đƣợc gửi thông qua kết nối giữa
C và S (bƣớc 8).
C giao tiếp với S. Dữ liệu đƣợc bắt đầu bằng cách đệm dữ liệu đƣợc gửi bởi M
(bƣớc 9).
Vấn đề ở đây là tất nhiên C trong thực tế đã không gửi dữ liệu đệm, và S không tin
bản tin ClientHello đƣợc gửi từ C. Do đó M có thể thêm vào bất kỳ bản tin nào trƣớc bản
tin đầu tiên của C, với chức năng của C.
M khai thác ở đây là không có phân biệt giữa một cái bắt tay cho một tiến trình
đàm phán và handshake ban đầu, và không có kết nối giữa kết nối SSL đầu tiên và thứ
hai. Do đó S sẽ không nhận thấy rằng bản tin ClientHello từ C trên thực tế là một yêu cầu
Handshake ban đầu, và trong thực tế C sẽ không nhận thấy rằng handshake với S là một
tiến trình bắt tay lại.
Kết luận: Quá trình tấn công MITM của M thất bại.
2.2 Giả mạo bản tin SIP dùng phƣơng pháp tấn công tiêm mã độc SQL
2.2.1 Giới thiệu
Điện thoại Internet và VoIP đƣợc xem nhƣ là các loại dịch vụ tiến bộ dựa trên nền
Internet, vì thế chúng cũng rất dễ bị tấn công trên mạng Internet. Chẳng hạn nhƣ các cuộc
tấn công trong quá trình nhận thực trên giao thức HTTP, thay đổi các bản tin, giả mạo các
Tiểu luận: Bảo mật VoIP trong giao thức SIP và RTP
Trang -15-
bản tin với các mã độc hại, tiêm các mã độc hại SQL (SQL Injection)… có thể đƣợc sử
dụng để tấn công các dịch vụ trên mạng Internet. Trong phần này, chúng ta chủ yếu tập
trung mô tả và phân tích các cuộc tấn công giả mạo tin nhắn tập trung vào việc tiêm mã
độc hại SQL trong giao thức SIP. Hình thức tấn công này đã đƣợc thực hiện thành công
trên mạng Internet với chi phí rất thấp và hacker cần phải có sự nổ lực cũng nhƣ kiến
thức chuyên ngành tốt mới có thể thực hiện. Ngoài ra, chúng ta cũng sẽ phân tích một số
biện pháp đối phó, khắc phục hậu quả và khuôn khổ chữ ký số đƣợc đề xuất cho việc
nhận dạng và chống lại kiểu tấn công này.
Mục tiêu của phần này là giới thiệu, mô tả và phân tích một loại tấn công đƣợc gọi
là tiêm mã độc SQL trong kiến trúc mạng dựa trên giao thức SIP, hay còn đƣợc gọi là giả
mạo bản tin SIP (SIP message tampering) với mã SQL. Mặc dù đã có nhiều cách thực
hiện việc giả mạo này đƣợc thực hiện thành công trên mạng Internet, tuy nhiên trong
phần này chúng ta sẽ phân tích sâu hơn về việc tiêm mã SQL dựa trên giao thức SIP định
hƣớng.
Hình 2.7 Mô hình tổng quát của tấn công giả mạo bản tin
2.2.2 Quá trình tiêm mã SQL
Để quản lý nội dung một cách chủ động, các ứng dụng web thƣờng dùng các kỹ
thuật Script nhƣ PHP, ASP, JSP và Database. Các kỹ thuật Script có thể chuyển dữ liệu
từ Database đến trang web và ngƣợc lại. Kiến trúc này không chỉ đƣợc sử dụng cho việc
quản lý dữ liệu mà còn cung cấp các dịch vụ bảo mật chẳng hạn nhƣ xác thực cho các
ứng dụng tƣơng ứng. Các dịch vụ chứng thực sử dụng các kỹ thuật đƣợc xây dựng dựa
Tiểu luận: Bảo mật VoIP trong giao thức SIP và RTP
Trang -16-
trên hình thức nhập dữ liệu dạng username, password và các Script ở các server chịu
trách nhiệm xử lý dữ liệu ngõ vào của các user. Các Script ở server có thể xác thực user
theo các câu lệnh SQL nhƣ sau:
SELECT Last_Name FROM subscriber WHERE
User_ID='<username>' AND
User_Password='<password>';
Khi đó, bất cứ khi nào một user hợp pháp đƣa ra một username hợp lệ (ví dụ: dim)
và mật khẩu tƣơng ứng (!#$), Script tại server sẽ tạo ra các câu lệnh SQL nhƣ sau:
SELECT Last_Name FROM subscriber WHERE
User_ID='dim' AND User_Password='!#$';
Chú ý rằng, dữ liệu ngõ vào (user_id và password) không đƣợc xác thực. Do đó,
các hacker có thể khai thác vào đặc điểm này để tiêm các mã độc SQL vào dữ liệu đầu
vào, kiểu tấn công này đƣợc gọi là tiêm mã SQL. Ví dụ: hacker có thể bổ sung vào
trƣờng user_id dƣới dạng web các mã SQL nhƣ sau:
―' ; DROP TABLE subscriber‖
Kết quả là câu lệnh SQL sẽ có dạng nhƣ sau:
SELECT Last_Name FROM subscriber WHERE
User_ID='' AND User_Password='<password>';
DROP TABLE subscriber;
Trong ví dụ này, hai câu lệnh SQL đƣợc thực hiện trong database là lệnh SELECT
và DROP. Việc thực hiện câu lệnh SELECT bị thất bại do User_id có giá trị là NULL, và
câu lệnh phía sau sẽ xóa bảng mô tả. Để khắc phục tình trạng này, một số phƣơng pháp
đã đƣợc đề xuất để xác định các lỗ hổng bảo mật và cung cấp các biện pháp khắc phục để
xác minh đầu vào.
2.2.3 Kiến trúc database của giao thức SIP
Các máy chủ SIP có database là MySQL, Postgress và Oracle; các câu lệnh SQL
đƣợc thực hiện theo thứ tự để lƣu trữ và quản lý thông tin của ngƣời sử dụng cũng nhƣ
các dữ liệu thích hợp cho việc cung cấp dịch vụ VoIP. Ví dụ việc triển khai thực hiện mã
nguồn mở SIP (chẳng hạn nhƣ SIP Express Router – SER) cung cấp việc xây dựng theo
các modul để hỗ trợ MySQL và database Postgres. Cơ chế database này bao gồm các
bảng dữ liệu khác nhau. Trong đó bảng “Subcriber” và “Location” là quan trọng nhất,
chúng lƣu trữ các dữ liệu quan trọng và cần thiết giúp cho sự hoạt động của VoIP trơn
tru. Cụ thể, bảng “Subcriber” lƣu trữ các dữ liệu nhƣ tên username, domain,
password…cho các user hợp lệ.
Tiểu luận: Bảo mật VoIP trong giao thức SIP và RTP
Trang -17-
Hình 2.8 Nội dung bảng mô tả trong giao thức SIP
Trong khi đó bảng “Location” lƣu trữ tất cả các dữ liệu về địa chỉ liên lạc của các
user hợp pháp đang có (đƣợc đăng ký trong dịch vụ VoIP).
Vì vậy, trong trƣờng hợp hình thức tấn công tiêm mã độc SQL đƣợc kích hoạt để
chống lại một giao thức SIP (chẳng hạn nhƣ SER) thì bất kỳ lỗi nào trong tính toàn vẹn
của database, đặc biệt là các bảng “Subcriber” và “Location” sẽ làm cho việc cung cấp
các dịch vụ VoIP thất bại. Hơn nữa, việc sử dụng giao diện web cho việc cung cấp các
dịch vụ VoIP càng làm cho hình thức tấn công này trở nên hấp dẫn hơn đối với các
hacker.
Chú ý rằng trong việc giao tiếp với database, có tồn tại một database user có
nhiệm vụ thay mặt các user đang gọi (user SIP) để thực hiện các công việc liên quan đến
SIP server nhƣ đƣợc minh họa trong hình bên dƣới.
Hình 2.9 Kiến trúc database SIP
2.2.4 Tấn công tiêm mã độc SQL trong giao thức SIP
Mô tả cách tấn công
Việc dựa trên dạng text của các bản tin SIP tạo cơ hội cho các cuộc tấn công giả
mạo bản tin trong các dịch vụ thoại dùng giao thức SIP cũng tƣơng tự nhƣ các bản tin
trong giao thức HTTP. Hình thức tấn công này không chỉ nhằm mục tiêu là sửa đổi dữ
liệu, mà còn làm sụp các dịch vụ database gây ra sự từ chối dịch vụ. Các cuộc tấn công
có thể đƣợc kích hoạt mỗi khi một thực thể mạng (ví dụ nhƣ SIP UA, SIP Proxy) yêu cầu
để xác thực. Khi tình huống này xãy ra, các UA (UA – User Agent) thay mặt cho các user
có thẩm quyền tính toán các thông tin thích hợp dựa trên cơ chế HTTP Digest. Kết quả
của việc tính toán này (các thông tin) đƣợc chứa trong header của các bản tin xác thực.
Sau đó chuyển tiếp đến Proxy server tƣơng ứng để xác thực các bản tin này. Đến đây, nó
tính toán lại các thông tin của user dựa vào password đƣợc lƣu trữ trong bảng
“Subcriber”. Để thực hiện nhiệm vụ này, nó tạo ra một câu lệnh SQL theo cú pháp nhƣ
sau:
Select password from subscriber where username='gkar' and
realm='195.251.164.23'
Tiểu luận: Bảo mật VoIP trong giao thức SIP và RTP
Trang -18-
Trong trƣờng hợp một user độc hại cố gắng khởi động một cuộc tấn công trong
SIP sử dụng việc tiêm mã độc SQL, hắn sẽ giả mạo các bản tin SIP và chèn các mã SQL
độc hại vào các tiêu đề xác thực. Mã độc có thể đƣợc nhúng vào trƣờng username hoặc
trƣờng địa chỉ của header.
Auth orization:Digest username="gkar';
Update subscriber set first_name='malicious'
where username='gkar' ",
realm="195.251.164.23", algorithm="md5",
uri="sip:195.251.164.23",
nonce="41352a56632c7b3d382b5f98b9fa03b",
response="a6466dce70e7b098d127880584cd57
Ngay khi Proxy nhận một bản tin SIP với header bị nhiễm độc nhƣ đƣợc mô tả ở
trên, nó tạo ra và thực thi câu lệnh SQL nhƣ sau:
Select password from subscriber where user name=
'gkar';
Update subscribe set first_name='malicius' where
username='gkar'—
Kết quả là mặc dù bản tin xác thực bị thất bại, do thực tế hacker không biết mật
khẩu của user hợp pháp, câu lệnh thứ hai để thay đổi từ “gkar” thành “malicious” (hay
độc hại). Nó cũng phù hợp đối với một user độc hại cố gắng để sử dụng các câu lệnh
SQL tƣơng tự, với mục đích là làm cho database không thể sử dụng đƣợc và gây ra việc
ngăn chặng dịch vụ.
Trong ví dụ trƣớc đây, khi có database user thay mặt user đang gọi (user SIP) thực
hiện việc cập nhật các thông tin trong database về các bảng mô tả SIP, khi đó các user
độc hại có thể đƣợc ủy quyền bởi các user hợp lệ từ bên trong để tiêm các mã độc SQL
vào header xác thực nhƣ đƣợc mô tả nhƣ sau:
Authorization:Digest username=gkar, realm=1.23.4.5
UNION SELECT FROM subscriber
WHERE username=charlie and realm='195.251.164 23'
algorithm="md5",
uri="sip:195.251.164.23",
nonce="41352a56632c7b3d382b5f98b9fa03b",
response="a6466dce70e7b098d127880584cd57
Ví dụ mở rộng về việc tiêm mã độc hại SQL
Trong trƣờng hợp này, các Proxy SIP sẽ tạo ra các câu lệnh SQL nhƣ sau
Select password from subscriber where user name= 'gkar'
and realm=’1.23.4.5’
Tiểu luận: Bảo mật VoIP trong giao thức SIP và RTP
Trang -19-
UNION
Select password from subscriber where user name=
'Charlie' and realm=’195.251.164.23’;
Khi câu lệnh này đƣợc thực thi, Charlie (là hacker) sẽ đƣợc đăng ký giống
nhƣ Gkar (user hợp lệ) trong dịch vụ SIP. Cuộc tấn công này sẽ đƣợc thực hiện
thành công bởi vì câu lệnh đầu tiên sẽ không phân biệt đƣợc khi user độc hại giả
mạo vùng IP và tiêm vào các bản tin với câu lệnh SELECT thứ 2:
“UNION SELECT FROM
SUBSCRIBER WHERE username=’charlie’ and
realm=’195.251.164.23’ ”
Cuối cùng toàn bộ bản tin (cả hai lệnh SELECT) sẽ đƣợc thực thi nhƣ là một lệnh.
Ngoài ra, user độc hại cũng đƣợc tính toán lại các thông tin tƣơng ứng để xác thực.
Điều tiết giới hạn tấn công
Kiểu tấn công tiêm mã độc SQL là độc lập giữa database và việc cấu hình cho SIP
server. Để cuộc tấn công này thành công, thì user SQL bị tấn công phải có quyền thích
hợp để thực thi các lệnh độc hại. Nhƣ vậy, hacker có thể tấn công từ khi bắt đầu cho đến
lúc đánh lừa bảng phân quyền user trƣớc khi đƣa ra cuộc tấn công. Tất nhiên, hắn cũng
có thể chờ đợi cho đến khi hắn trở thành user SQL có đủ thẩm quyền. Tuy nhiên, các nhà
cung cấp dịch vụ VoIP và Internet cho phép các user của họ có thể đăng ký, thay đổi hay
thậm chí là xóa các dữ liệu hiện tại của họ. Điều này có nghĩa là những ngƣời quản trị
của các nhà cung cấp dịch vụ phải cho phép các user SQL hoạt động thay cho các Proxy
server tƣơng ứng, các quyền INSERT, UPDATE và DELETE cho các bảng thích hợp
trong database.
2.2.5 Các cách bảo vệ cuộc tấn công tiêm mã đọc trong giao thức SIP
Để tạo điều kiện thuận lợi cho việc phát triển giao thức SIP và sự an toàn dựa trên
dịch vụ VoIP, có khả năng chống lại các cuộc tấn công tiêm mã độc SQL. Các nhà
nghiên cứu đã đề xuất một số phƣơng pháp bảo vệ cũng nhƣ các chiến lƣợc che chắn
nhằm bảo vệ các kiến trúc web từ các cuộc tấn công tiêm mã độc SQL tƣơng ứng. Các cơ
chế này có thể hoạt động đồng thời để tạo ra môi trƣờng an toàn hơn.
Biện pháp khắc phục hậu quả, đề phòng và đối phó
Thủ tục xác nhận đầu vào phải đƣợc xem là khá quan trọng đối với việc bảo vệ các
dịch vụ VoIP dựa trên giao thức SIP. Nhƣ đã đƣợc mô tả lúc trƣớc, việc thiếu bất kỳ một
quá trình xác nhận nào tại ngõ vào cũng tạo ra một lỗ hổng bảo mật. Việc sử dụng các
cổng để lọc các mã độc hại tại ngõ vào ở mức ứng dụng cũng đã đƣợc nghiên cứu. Kỹ
thuật tƣờng lửa kết hợp với kiểm tra gói để xác nhận dữ liệu đầu vào. Một kỹ thuật khác
để ngăn chặng việc tiêm mã độc SQL trong SIP là trao đổi bản tin chữ ký số. Kết quả là
bất kỳ sự thay đổi nào trong bản tin SIP có thể đƣợc phát hiện, và các SIP server tự động
Tiểu luận: Bảo mật VoIP trong giao thức SIP và RTP
Trang -20-
loại bỏ các bản tin này. Nói chung, chữ ký số có thể bảo vệ các bản tin SIP từ bất kỳ hình
thức tấn công giả mạo nào. Tuy nhiên, phƣơng pháp này hoàn toàn không có hiệu quả
chống lại ngƣời trong cuộc (các user hợp lệ). Cuối cùng, để tránh những sai sót trong quá
trình xác nhận đầu vào hoặc để ngăn chặng bất kỳ cuộc tấn công độc hại nào khác thì tài
khoản SQL mà server sử dụng để kết nối đến database phải chỉ có tối thiểu các yêu cầu.
Phát hiện khung
Không đặt nặng vấn đề làm thế nào để nâng cao khả năng bảo vệ đang đƣợc xây
dựng trong các dịch vụ VoIP dựa trên giao thức SIP, vì một user độc hại luôn luôn có khả
năng vƣợt qua chúng. Vì vậy, trong trƣờng hợp ngƣời trong cuộc thực hiện việc xâm
nhập tấn công, nó hoàn toàn có thể xãy ra mà không hề có bất kỳ một cơ chế phòng ngừa
nào đƣợc kích hoạt để chống lại cuộc tấn công đó. Ví dụ, xét trƣờng hợp một user SIP
hợp lệ thực hiện tấn công tiêm mã độc SQL vào một bản tin và sau đó đăng ký với một
khóa riêng của mình. Khi đó các chơ chế phát hiện và phòng chống hiện tại khó có thể
phát hiện ra và đánh bại chúng.
Để tránh những tình huống nhƣ vậy, việc xây dựng hệ thống phát hiện xâm nhập
cho các dịch vụ VoIP dựa trên giao thức SIP là cần thiết. Mặt khác, trong một số trƣờng
hợp, sẽ có hiệu quả kinh tế hơn khi chỉ ngăn chặng các cuộc tấn công nguy hiểm nhất và
phát hiện phần còn lại, hơn là cố gắng để ngăn chặng tất cả mọi thứ với chi phí cao hơn
rất nhiều. Bên cạnh đó, gần đây ngƣời ta cho rằng việc sử dụng hệ thống phát hiện là
chính nó sẽ đủ khả năng để bảo vệ các ứng dụng web từ các cuộc tấn công tiêm mã độc
SQL. Trong các hệ thống này, bất kỳ cuộc tấn công riêng biệt nào của dạng này đƣợc mô
tả thông qua các cấu trúc tĩnh cố định đƣợc gọi là chữ ký của cuộc tấn công. Nhƣ vậy,
hình thức tấn công tiêm mã độc SQL trong các kiến trúc SIP có thể tƣơng tự nhƣ đối mặt
với việc nhận dạng, phân loại và tạo mẫu chữ ký tƣơng ứng.
Hơn nữa, các bản tin SIP chứa các mã độc hại SQL không phù hợp với các thông
số kỹ thuật của SIP. Kết quả là nó có thể đƣợc mô tả nhƣ là một trƣờng hợp đặc biệt của
các bản tin hợp pháp. Vì vậy, ý tƣởng cơ bản là xây dựng một khuôn khổ nhận dạng
chung có thể áp dụng cho bất kỳ bản tin SIP độc hại nào, những cái này sẽ không tƣơng
thích với các thông số kỹ thuật của SIP. Mỗi chữ ký đƣợc đƣa ra bởi các tùy chọn của các
bản tin SIP độc hại theo một vài quy luật khác nhau. Dựa trên kiến trúc chung này, ngƣời
ta đã đề xuất một chữ ký để nhận dạng các bản tin SIP chứa các mã SQL nhƣ sau:
METHOD SIP-URI | SIPS-URI MESSAGE HEADER+
MESSAGE HEADER =Via | Max-Forwards | From |To
| Call-Id |CSeq | Contac |User-agent
|Authorization |Event |Content-Length
Authorization = Digest username=".+(';SQL-STATM COMMENT)"
realm=" Ipaddress" |
Tiểu luận: Bảo mật VoIP trong giao thức SIP và RTP
Trang -21-
Authorization = Digest username=".+" realm=―Ipaddress
(';SQL-STATM COMMENT)― |
Authorization = Digest username=".+(';SQL-STATM COMMENT)"
realm=" Ipaddress (';SQL-STATM COMMENT)"
SQL-STATM= UPDATE | INSERT | UNION
COMMENT = " |#"
UPDATE = SEE SQL 92 syntax
INSERT = SEE SQL 92 syntax
additional rules
size_of(Authorization)> %constant% e.g 100 bytes
Chú ý rằng chữ ký đƣợc đề xuất rất giống với các bản tin SIP hợp lệ. Sự khác biệt
chính ở đây là các bản tin đƣợc mô tả nhƣ là độc hại đối với bất kỳ phƣơng pháp xác thực
SIP nào và các tiêu đề xác thực tƣơng ứng chứa một câu lệnh SQL. Hơn nữa, để làm cho
chữ ký này mạnh mẽ hơn, ngƣời ta thêm một quy luật bổ sung để kiểm tra độ dài tiêu đề
xác thực. Ví dụ, nếu chiều dài tiêu đề xác thực dài hơn mong đợi, điều này có thể giúp
xác định có thể có một cuộc tấn công tiêm mã độc SQL khi có một hacker cố gắng trốn
tránh hệ thống phát hiện xâm nhập (IDS – Intrusion Detection System). Tuy nhiên, tham
số này phải đƣợc sử dụng hết sức cẩn thận và khôn khéo, bởi vì bất kỳ sự lạm dụng nào
của thuộc tính này sẽ kích hoạt một báo động giả. Cuối cùng, lƣu ý rằng đây là một chữ
ký chỉ dẫn cho một loạt các cuộc tấn công tƣơng tự, vì nó cũng đƣợc biết đến nhƣ là kẻ
tấn công sẽ cố gắng thực hiện nhiều cách khác nhau để né tránh các hệ thống phát hiện
xâm nhập.
2.3 Spam over Internet Telephony (SPIT)
2.3.1 Giới thiệu về SPIT
SPIT tức là sử dụng thƣ thoại rác để gởi tới ngƣời nhận với mục đích quảng cáo,
gây khó chịu, … những thƣ thoại này ngƣời nhận không mong muốn.
Spam Over Internet Telephony (SPIT) giống tƣơng tự nhƣ là spam, một cách tiềm
tàng nó có thể làm tràn hộp thƣ thoại của chúng ta. Những thông điệp này có thể đƣợc chỉ
có thể đƣợc xóa bằng tay, và chúng ta không thể làm thế nào để lọc bỏ nó.
Tiểu luận: Bảo mật VoIP trong giao thức SIP và RTP
Trang -22-
Hình 2.10 Spam cuộc gọi trong VoIP
Với những ngƣời thƣờng xuyên sử dụng hộp thƣ thoại, thì spam voice email sẽ
gây ra stress trong cuộc sống hoặc trong công việc thƣờng ngày, nó làm giảm đi hiệu quả
của công việc, cuối cùng nó gây ra sự thất vọng của khách hàng sử dụng dịch vụ VoIP.
Hình 2.11 Tác hại của Spam cuộc gọi trong VoIP
Tiểu luận: Bảo mật VoIP trong giao thức SIP và RTP
Trang -23-
Nhƣ ta đã biết thì thị trƣờng VoIP đang ngày càng mở rộng một cách nhanh
chóng. Chính vì vậy đây cũng là một môi trƣờng để các nhà kinh doanh khai thác để
quảng cáo, tiếp thị…lúc này kích thƣớc của bộ nhớ để chứa các thông điệp là một vấn đề
thực tế.
Mỗi ngƣời sử dụng hộp thƣ sẽ có một địa chỉ IP riêng, vì vậy rất dể cho ngƣời tấn
công có thể gởi thƣ thoại của họ tời hàng ngàn địa chỉ khác nhau. Trong tình huống xấu
nhất, một phần mềm VoIP SPAM có thể dễ dàng phân phát hàng ngàn thông điệp một
cách dễ dàng. Lúc này SPIT có thể trở thành một dạng tấn công DoS mới làm tràn ngập
tài nguyên của hệ thống mail trong doanh nghiệp.
2.3.2 Ngăn chặn SPIT
Để ngăn chặn SPIT ta sử dụng blacklist trong voice mail. Biết đƣợc những địa chỉ
quấy rối, ta bỏ những địa chỉ này vào trong blacklist để ngăn chặn những thông điệp này
gửi tới.
Trong nhƣng doanh nghiệp ngƣời ta thƣờng sử dụng “SPIT protection filter” để
chặn những spam voice mail gửi tới.
Hình 2.12 Sử dụng filter để ngăn chặn spam voice mail
Bộ lọc này hoạt động một cách tự động, nó xác định tin nhắn rác dựa vào:
Tần số tin nhắn thoại tới
Tiểu luận: Bảo mật VoIP trong giao thức SIP và RTP
Trang -24-
Thông tin phản hồi của ngƣời sử dụng.
Bộ lọc SPIT này dựa trên giả định rằng các thông điệp giống nhau hoặc tƣơng tự
nhau gửi đến một số lƣợng lớn ngƣời nhận. Khi một ngƣời nhận quyết định rằng thông
báo đó thực sự là thƣ rác, ngƣời đó có thể cung cấp đến trung tâm quản lý một bản tóm
tắt bao gồm thông tin, địa chỉ, nội dung của thông điệp này. Các trung tâm quản lý tổng
hợp các thông tin phản hỏi của ngƣời nhận để xác nhận đúng đó là thƣ rác hay không và
có thể chia sẽ các thông tin của thƣ rác này để chống lại việc spam đến ngƣời nhận. Các
thƣ spam thƣờng đƣợc gởi từ cùng một thông điệp mẫu, khi spam mail tới, trung tâm
quản lý sẽ so sánh để phân loại thƣ nào là rác và loại bỏ nó.
Hình 2.13 Phân loại các lớp SPIT trong voice mail
Trong hình vẽ bên trên:
Gọi t là số lƣợng phản hồi, hoặc tần số suất hiện của 1 tin nhắn thoại tới.
Lớp A: t < 0, thông điệp này đƣợc tin tƣởng, không phải là spam thƣ thoại
Lớp B: 0<t<10, trung lập, chƣa xem xét, thông điệp này có thể tin tƣởng
Lớp C: 11<t<25, có khả năng thông điệp là SPIT
Lớp D: 26<t<50, có thể thông điệp này là SPIT
Lớp E: t>50, thông điệp này chắc chắn là SPIT, thông tin của nó sẽ đƣợc đƣa vào
trong blacklist để chặn nó gửi tới ngƣời nhận.