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.. Mục tiêu của phần này là giới thiệu, mô tả
Trang 1CƠ 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
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
Trang 2Trang -1-
MỤC LỤC
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
Trang 3Trang -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
Trang 4Trang -3-
PHỤ LỤC HÌNH
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
Trang 5Trang -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
Trang 6Trang -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
Trang 7Trang -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:
Trang 8Trang -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
Trang 9Hình 2.1 Quá trình trao đổi bản tin trong SIP
Trang 10Nhậ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:
Trang 11Trang -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
Trang 12Trang -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
Trang 13Trang -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
Trang 14Trang -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
Trang 15Trang -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
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
Trang 16Trang -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
Trang 17Trang -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ệ
Trang 18Trang -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'
Trang 19Trang -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=
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’
Trang 20Trang -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
Trang 21Trang -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" |
Trang 22size_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ó
Trang 23Trang -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
Trang 24Trang -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
Trang 25Trang -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
Trang 26Trang -25-
Một spammer, để tránh bị phát hiện voice mail này là spam mail, họ biến đổi một chút trong các thông điệp của họ bằng cách thay đổi một số chữ cái hoặc thêm một số văn bản ngẫu nhiên trong các tin nhắn Hệ thống lọc này có sử dụng “fuzzy hashes” (Kornblum 2006) Sử dụng “fuzzy hashes” nó có thể xác định các thư tới có nội dung tương tự cho dù có một số khác biệt nhỏ với một phương sai nhất định Hệ thống này được sử dụng sẽ gây nên chi phí phát sinh cho việc phân biệt thư rác Với một số lượng lớn thư tới, nó cần phải có một CPU cực mạnh để xử lý những thư này, nếu không sẽ gây nên tình trạng trễ thư…
Mặc khác thông tin các thư được xử lý có thể bị hack nếu người hacker đột nhập được vào trong hệ thống này, họ có thể thay đổi white list, thay đổi black list, hoặc nghe lén các cuộc gọi…
2.4 Denial Of Service (DoS)
2.4.1 Giới thiệu
DoS là kiểu tấn công mạng phổ biến trong các dịch vụ mạng IP, bao gồm thương mại điện tử, email, DNS (Domain Name Service), và VoIP (Voice over IP) Dos có nhiều dạng khác nhau nhưng mục đích chính của nó là phá vỡ hoạt động bình thường của hệ thống thông qua việc làm cho hệ thống làm việc vượt quá giới hạn cho phép Điều này làm tăng thời gian đáp ứng của hệ thống, do đó ngăn cản các thuê bao sử dụng dịch vụ một cách hiệu quả Thông thường attacker sẽ gửi một lượng lớn các thông điệp làm tràn đến mục tiêu tấn công, gây chiếm dụng tài nguyên, băng thông, bộ nhớ, làm cho hệ thống không còn đủ khả năng đáp ứng các dịch vụ bình thường
Media Gateway, các thành phần khác trong mạng VoIP có sử dụng báo hiệu
Phân loại các kiểu tấn công DoS trong VoIP:
Tấn công DoS bằng lỗ hổng (Implementation flaw DoS):
Kiểu tấn công này được thực hiện khi attacker gửi các gói tin tấn công tạo lỗ hổng tại các thiết bị VoIP, ví dụ như IP PBX (tổng đài IP nội bộ) Các gói tin này thường rất
Trang 27Trang -26-
dài và sai cấu trúc làm cho đối tượng bị tấn công bị lỗi vì nó không đủ khả năng để kiểm soát và xử lý các gói tin này
Tấn công DoS làm tràn (Flood DoS):
Attacker sẽ gửi một lượng lớn các gói tin thông thường đến đối tượng bị tấn công
Hệ thống bị tấn công sẽ tốn thời gian và tài nguyên để xử lý các gói tin tấn công mà không còn đủ khả năng xử lý tiếp các gói tin thông thường hoặc xử lý với tốc độ rất chậm, không đủ đáp ứng yêu cầu dịch vụ.Ở kiểu tấn công này có 2 dạng khác nhau: + Dạng 1: các gói tin tấn công sẽ yêu cầu hệ thống bị tấn công cấp phát tài nguyên và
dự trữ công suất cho những đáp ứng ảo
Hình 2.14 Tấn công DoS làm tràn
+ Dạng 2: còn gọi là DDoS ( Distributed Denial of Service) Ở dạng tấn công này attacker sẽ tạo ra 1 lượng lớn các gói tin từ nhiều nguồn khác nhau cùng gửi tới đối tượng
bị tấn công