Cơ chế chung

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

2

4.2.7.1Cơ chế chung

 Khi connect tới server, Round Robin DNS Load Balancing sẽ phân giải

domain thành nhiều địa chỉ IP khác nhau và sử dụng cấp thứ 1của load

balancing là gửi tới các cluster khác nhau, các cluster này thực chất là các server cache của nhau, dữ liệu của chúng được đồng bộ lẫn nhau thông qua giao thức HTTP.

 Mỗi server cluster có hàng ngàn server để gửi các query tới web server

 Server load balancer lấy request của user và chuyển tiếp nó tới 1 trong các

web servers nhờ vào Squid proxy servers

 Squid proxy server nhận request của client load balancer và trả về kết quả

nếu có trong cache ngược lại thì chuyển tiếp tới web servers

 Web server định vị tọa độ thực thi các queries của user và định dạng kết quả

CHƯƠNG 4: CÁC GIẢI PHÁP BẢO MẬT CHO HỆ THỐNG 4.2.7.2 Giải pháp thực tế của Google

 Sử dụng các NetScaler 9800 Secure Application Switches

 NetScaler có thể tải hàng trăm megabits trong 1 giây của tầng 4 đến tầng 7 lưu lượng sử dụng

 Tại dữ liệu trung tâm, các máy chủ sử dụng các Apache Server và các ứng

dụng Web Server do chính Google thiết kế

 Cách thức NetScaler phòng chống DoS là nó đóng vai trò như 1 firewall dự

phòng của hệ thống firewall của công ty

 Các load balancer được thiết kế chỉ chấp nhận các luồng thông tin qua cổng

80, nếu thông tin không đi qua một cổng được chỉ định, hoặc không bắt

nguồn từ 1 IP, chúng sẽ bị hủy lập tức

 Với tính năng "SYN cookies", NetScaler có thể đáp ứng các SYN messages - packets khởi đầu cho 1 TCP/IP connection(được sử dụng trong "SYN flood"

DoS attack) mà không xung đột với tài nguyên của chính nó

 Với NetScaler, Google phòng chống được DoS attack từ tầng 4, đối với tầng 7 đã có công cụ được cài trên các Web server xử lý

 Thiết lập kiến trúc cân bằng tải cho các server trọng điểm sẽ làm gia tăng

thời gian chống chọi của hệ thống với cuộc tấn công ĐoS

4.3 Phương pháp bảo mật cho bản tin báo hiệu của hệ thống

Bản tin báo hiệu là một thành phần rất quan trọng trong các cuộc gọi VoIP

của hệ thống Call Center, vì nó chứa các thông tin liên quan đến người sử dụng, các

thông số để thiết lập và giải phóng cuộc gọi nên nó thường trở thành mục tiêu tấn

công, cũng vì thế đã có nhiều phương pháp bảo mật cho các bản tin báo hiệu nàỵ

4.3.1 Phương pháp chứng thực 2 chiều TLS (Transport Layer Security)

TLS là một giao thức bảo mật ở tầng chuyển vận (lớp 4 trong mô hình OSI), (adsbygoogle = window.adsbygoogle || []).push({});

được định nghĩa trong RFC 4346, nó cung cấp khả năng chứng thực chung cho cả

client và server, tính tin cậy cũng như toàn vẹn của các bản tin. Giao thức này được chia làm 2 giao thức nhỏ: TLS bản ghi ( TLS Record Protocol) và TLS bắt tay (TLS

Handshake Protocol).

4.3.1.1 TLS bản ghi ( hay TLS RP - TLS Record Protocol )

Nhằm mục đích duy trì một kết nối bảo mật giữa hai điểm (ví dụ client và server). Quá trình thương lượng về các công cụ bảo mật (ví dụphương pháp mã hóa

hay trao đổi khóa) cho kết nối được thực hiện bởi TLS bắt tay hay TLS HP.

4.3.1.2 TLS bắt tay (hay TLS HP – TLS Handshake Protocol )

Được sử dụng để chứng thực cả client và server và thương lượng cách thức bảo mật giữa client và server (ví dụ thuật toán mã hóa và keys). Quá trình bắt tay (TLS Handshake) phải được thực hiện thành công trước khi quá trình truyền dẫn dữ

CHƯƠNG 4: CÁC GIẢI PHÁP BẢO MẬT CHO HỆ THỐNG Hình 4. 7: TLS Handshake

Quá trình bắt tay được thực hiện trình tựnhư sau:

Qua hai gói tin Hello (Client Hello và Server Hello), Client và Server sẽ thỏa thuận một danh sách các thuật toán mà chúng sử dụng trong các bước tiếp theọ

Thông tin chứng thực của Server và khóa công khai của nó sẽ được gửi cho Client qua Certificate Messagẹ

Client dựa vào Certificate Message mà nó nhận được, kiểm tra tính xác thực của Server rồi lấy ra khóa công khaị Sau đó, Client tạo ra một số ngẫu nhiên gọi là Pre-Master Secret Key, rồi đóng gói khóa này bằng khóa công khai của Server thành một bản tin gọi là Client KeyExchange và gửi lại cho

Server. Đồng thời hàm tạo khóa dẫn xuất (Key Derivation Function – KDF) tạo ra Master Key từ Pre-Master Secret Keỵ

Bên phía Server giải mã bản tin Client Key Exchange bằng khóa bí mật của

CHƯƠNG 4: CÁC GIẢI PHÁP BẢO MẬT CHO HỆ THỐNG

dẫn xuất (KDF) như Client, Server cũng tạo ra Master Key từ Pre-Secret Master Keỵ

Với Master Key mà nó vừa nhận được, Client tạo ra bản tin chứa mã xác thực MAC (Message Authentication Code) bằng cách mã hóa lại bản tin nó vừa nhận được từ Server, bản tin này gọi là Finished Message và được Client gửi trả lại cho Server.

Tương tự, Server cũng sẽ gửi 1 bản tin Finished về cho Client. Cả Server và Client cùng kiểm tra tính toàn vẹn của các bản tin. Nếu quá trình kiểm tra thành công, Server và Client sẽ cùng nhau sử dụng khóa Master Secret.

Sau khi đã có được khóa Master Secret, tất cả các bản tin báo hiệu SIP sẽ được mã hóa toàn bộ bằng khóa này rồi mới được truyền đị Hình sau miêu tả cách các gói tin được mã hóa trước khi chuyển đi:

Hình 4. 8: Mã hóa TLS

Dữ liệu ban đầu được chia nhỏ ra, chèn thêm MAC rồi mã hóạ Sau đó TLS

Record Header sẽ được gắn vào đầu mỗi góị Thông tin trong header bao gồm loại,

độ dài và phiên bản TLS.

Ưu điểm của TLS:

Cung cấp một phương pháp chứng thực chung cho cả Client và Server. Bảo đảm tính tin cậy và toàn vẹn cho gói tin, có thểđược sử dụng để chống lại một cách hiệu quả các loại tấn công nghe lén, MITM, các tấn loại tấn công can thiệp vào gói tin.

Với sự phổ biến sẵn có của SSL nên việc triển khai TLS trở nên đơn giản và dễđược chấp nhận bởi các nhà cung cấp thiết bị

Có thể bảo vệđược quá trình thương thảo phương pháp bảo mật giữa Client và Server.

Chiếm ít tài nguyên xử lý của thiết bị nếu đem so sánh với các phương pháp

CHƯƠNG 4: CÁC GIẢI PHÁP BẢO MẬT CHO HỆ THỐNG Nhược điểm của TLS: (adsbygoogle = window.adsbygoogle || []).push({});

Cần phải có một kiến trúc trao đổi khóa PKI đểđảm bảo được tính bảo mật. Không cung cấp một kết nối đầu cuối tới đầu cuối, các kết nối TLS chỉđược triển khai trên từng đoạn của kết nốị

Không tương thích với UDP, giao thức được sử dụng phổ biến trong VoIP. Trong thực tế, nhiều kiến trúc VoIP chỉ sử dụng một giao thức duy nhất cho tầng chuyển vận là UDP.

Vẫn có thể bị tấn công DoS, ví dụ làm tràn ngập các gói TCP để làm kiệt quệ khảnăng xử lý của hệ thống.

4.3.2 Secure Real Time Protocol (SRTP) – phương pháp bảo mật cho bản tin thời gian thực

SRTP, được định nghĩa trong RFC 3711, là một biến thể của RTP, được tạo ra nhằm mục đích cung cấp tính xác thực, tin cậy và toàn vẹn của các gói tin thời gian thực (thoại hay video) và các ứng dụng đa phương tiện. Sau đây là một số đặc tính nổi bật của SRTP:

o Khảnăng tích hợp với các giải pháp mã hóa mớị

o Đảm bảo tín hiệu có băng thông nhỏ cũng như giữnguyên phương pháp tính cước.

o Không tốn nhiều bộ nhớ cho mã hóa cũng như giải mã, điều này rất thiết thực cho các thiết bịdi động bị giới hạn vềdung lượng bộ nhớ.

Những đặc điểm trên làm cho SRTP khả thi ngay cả với các thiết bị di động vốn bị giới hạn về bộ nhớ cũng như khả năng xử lý. Sử dụng SRTP tích hợp cùng với một cơ chế trao đổi khóa (ví dụnhư MIKEY - Multimedia Internet KEYing) tạo ra một giải pháp bảo mật đầy đủ cho các ứng dụng đa Internet phương tiện, bao gồm VoIP, tín hiệu video hay hội thoạị

Quá trình được thực hiện với việc chuyển đổi gói tin RTP thành gói SRTP

trước khi gửi chúng qua mạng truyền dẫn. Bên giải mã, quá trình được thực hiện theo chiều ngược lại, giải mã từ SRTP sang RTP.

CHƯƠNG 4: CÁC GIẢI PHÁP BẢO MẬT CHO HỆ THỐNG Hình 4. 9: Mã hóa SRTP

Hình trên minh họa một quá trình mã hóa SRTP. Sau khi ứng dụng lấy được dữ liệu đầu vào từ các thiết bị (ví dụ microphone hay camera), nó đóng gói dữ liệu này thành các gói tin theo các chuẩn phổ thông của VoIP (như G.711, G.729,

H.261, H.264) và tạo ra phần playload gói tin RTP. Tiếp theo, phần playload này

được mã hóa, giải thuật mã hóa mặc định cho SRTP là AES (Advanced Encryption Standard). Phần playload đã được mã hóa được gắn với header (không mã hóa) rồi truyền đi qua mạng. Việc sử dụng mã hóa AES trong SRTP cho phép quá trình mã hóa-giải mã diễn ra liên tục ngay cảkhi các gói tin đến không đúng theo thứ tự, đây

là một đặc điểm phù hợp với các ứng dụng thời gian thực.

Việc trao đổi khóa giữa bên thu và bên nhận được thực hiện bằng các cơ chế trao đổi, có thể là MIKEY như đã đề cập ở trên hay SDESCRIPTIONS, ZRTP... Sau khi nhận được khóa, một giải thuật dẫn xuất khóa sẽ được thực hiện để tạo ra các khóa phiên (session keys), bao gồm: khóa mã hóa (encryption key), khóa xác thực (authentication key) và khóa salt (salt key).

Hình 4. 10: Dẫn xuất khóa mã hóa SRTP

CHƯƠNG 4: CÁC GIẢI PHÁP BẢO MẬT CHO HỆ THỐNG

Thông thường, mỗi phiên được thiết lập sẽ cần ít nhất 6 khóa phiên – 2 bộ 3 khóa (Encryption Key, Authentication Key và Salt Key), 1bộ khóa dành cho SRTP, bộ còn lại dành cho SRTCP (Secure Real Time Control Protocol). Các khóa này chỉ

có giá trị trong một phiên làm việc. Vì số lượng gói tin RTP và RTCP trong một cuộc gọi VoIP là rất nhiều, nên việc sinh ra nhiều khóa như vậy là cần thiết để

chống lại kiểu tấn công từđiển hay giải thuật.

Các gói tin SRTCP cũng được tạo ra từcác gói RTCP như cách thức các gói

SRTP được tạo ra từ gói RTP.

Ưu điểm của SRTP:

Cung cấp biện pháp đảm bảo tính tin cậy, toàn vẹn và xác thực của các gói playload trong môi trường truyền thông đa phương tiện.

Cung cấp biện pháp chống lại kiểu tấn công chuyển tiếp gói tin (Man In The Miđle) cho cả RTP và RTCP.

Sử dụng mã hóa AES cho phép quá trình được thực hiện liên tục ngay cả khi

các gói tin đến không đúng thứ tự.

Phương pháp dẫn xuất khóa có tác dụng chống lại các loại tấn công như từ điển hay giải thuật. (adsbygoogle = window.adsbygoogle || []).push({});

Nhược điểm của SRTP:

Bỏ qua việc bảo mật header cho gói tin, tạo điều kiện cho attacker có thể thu thập thông tin từcác trường không được mã hóa nàỵ

Khi môi trường truyền dẫn là giữa mạng IP và mạng báo hiệu SS7 (PSTN), giao thức này không thể đảm bảo tính toàn vẹn và xác thực từđầu cuối tới

đầu cuốị

Việc chuyển đổi các khóa phiên (session keys) làm tiêu tốn khả năng xử lý và tài nguyên của thiết bị, nhất là các thiết bị bị giới hạn về khả năng xử lý

như các thiết bịdi động.

4.4 Giải pháp bảo mật tránh khỏi Sql Injection

Lỗi SQL injection là khai thác những bất cẩn của các lập trình viên phát triển

ứng dụng web khi xử lí các dữ liệu nhập vào để xây dựng câu lệnh SQL. Tác hại từ

lỗi SQL injection tùy thuộc vào môi trường và cách cấu hình hệ thống. Nếu ứng dụng sử dụng quyền “dbo” (quyền của người sở hữu cơ sở dữ liệu – owner) khi thao tác dữ liệu, nó có thể xóa toàn bộ các bảng dữ liệu, tạo các bảng dữ liệu mới, … Nếu ứng dụng sử dụng quyền “sa” (quyền quản trị hệ thống), nó có thể điều khiển toàn bộ hệ quản trịcơ sở dữ liệu và với quyền hạn rộng lớn như vậy nó có thể

tạo ra các tài khoản người dùng bất hợp pháp để điều khiển hệ thống. Để phòng tránh, có thể thực hiện ở hai mức:

4.4.1 Kiểm soát chặt chẽ dữ liệu nhập vào

- Để phòng tránh các nguy cơ có thể xảy ra, hãy bảo vệ các câu lệnh SQL là bằng cách kiểm soát chặt chẽ tất cả các dữ liệu nhập nhận được từ đối tượng Request (Request, Request. QueryString, Request.Form, Request.Cookies, and Request.ServerVariables).

CHƯƠNG 4: CÁC GIẢI PHÁP BẢO MẬT CHO HỆ THỐNG

Ví dụ: Có thể giới hạn chiều dài của chuỗi nhập liệu, hoặc thay thế các dấu nháy

đơn bằng 2 dấu nháy đơn như:

<%

var account = '' + Request.Form("AccountID"); var password = '' + Request.Form("Password"); account = account.replace("'","''");

password = password.replace("'","''"); %>

- Trong trường hợp dữ liệu nhập vào là số, lỗi xuất phát từ việc thay thế một giá trị được tiên đoán là dữ liệu số bằng chuỗi chứa câu lệnh SQL bất hợp pháp. Để tránh

điều này, đơn giản hãy kiểm tra dữ liệu có đúng kiểu hay không bằng hàm IsNumeric().

- Ngoài ra có thể xây dựng hàm loại bỏ một số kí tự và từ khóa nguy hiểm như:;, –,

select, insert, xp_, … ra khỏi chuỗi dữ liệu nhập từphía người dùng để hạn chế các tấn công dạng này: <% function KillChars(sInput) { var badChars; var newChars;

badChars = mew array("select", "drop", ";", "--", "insert", "delete", "xp_"); newChars = sInput;

for (var i=0; i<badChars.length; i++) { newChars = newChars.replace(badChars, ""); } return newChars; } %>

4.4.2 Thiết lập cấu hình an toàn cho hệ quản trị cơ sở dữ liệu

 Cần có cơ chế kiểm soát chặt chẽ và giới hạn quyền xử lí dữ liệu đến tài khoản người dùng mà ứng dụng web đang sử dụng. Các ứng dụng thông

thường nên tránh dùng đến các quyền như dbo hay sạ

 Quyền càng bị hạn chế, thiệt hại càng ít.

 Ngoài ra đểtránh các nguy cơ từ SQL Injection attack, nên chú ý loại bỏ bất kì thông tin kĩ thuật nào chứa trong thông điệp chuyển xuống cho người dùng khi ứng dụng có lỗị Các thông báo lỗi thông thường tiết lộ các chi tiết kĩ thuật có thể cho phép kẻ tấn công biết được điểm yếu của hệ thống. (adsbygoogle = window.adsbygoogle || []).push({});

CHƯƠNG 4: CÁC GIẢI PHÁP BẢO MẬT CHO HỆ THỐNG

4.5 Giải pháp bảo mật hệ thống sử dụng kết hợp Fail2ban và IP Tables 4.5.1 IPTABLES 4.5.1 IPTABLES

Trong hệ thống Unix/Linux có rất nhiều FIREWALL. Trong đó có một

Firewall được cấu hình và hoạt động trên nền Console rất nhỏ và tiện dụng đó là

Iptablẹ Thông qua nó bạn có thể dễ dàng hiểu được nguyên lý hoạt động của một

hệ thống firewall nói chung.

4.5.1.1 Giới thiệu về iptables

Hình 4. 11: Vị trí Netfilter/Iptables trong Kernel Linux 2.4.

Iptables là một tường lửa ứng dụng lọc gói dữ liệu rất mạnh, có sẵn bên trong kernel Linux 2.4.x và 2.6.x. Netfilter/Iptable gồm 2 phần là Netfilter ở trong nhân Linux và Iptables nằm ngoài nhân. Iptables được dùng để quản lý các quy tắc lọc gói tin bên dưới cơ sở hạ tầng của Netfilter. Hệ thống con Netfilter của Linux 2.4x cho phép cài đặt, duy trì, và kiểm tra các quy tắc lọc gói tin trong Kernel. Netfilter làm việc trực tiếp trong nhân, nhanh và không làm giảm tốc độ của hệ thống.

Nó là một giải pháp lọc gói tin mới, cao cấp hơn so với những gì có sẵn đối với Linux Kernel trước 2.4x. Netfilter cung cấp 1 số ưu điểm và hiện nay nó đã trở thành một giải pháp mạnh mẽ và hoàn thiện hơn để giúp bạn bảo vệ các mạng cộng

tác.

Tuy nhiên, Netfilter cũng không phải là một giải pháp hoàn toàn mới. Nó là một khung làm việc để xử lý các gói tin khi chúng đi qua các thành phần của Kernel.

Netfilter bao gồm:

* Xây dựng bức tường lửa dựa trên cơ chế lọc gói stateless và stateful

* Dùng bảng NAT và masquerading chia sẻ sự truy cập mạng nếu không có đủ địa chỉ mạng.

* Dùng bảng NAT để cài đặt transparent proxy

* Có khả năng theo dõi sự kết nối, có khả năng kiểm tra nhiều trạng thái của packet. Nó làm việc này cho UDP và ICMP tốt nhất là kết nối TCP, thí dụ tình trạng

đầy đủ của lọc ICMP chỉ cho phép hồi âm khi có yêu cầu phát đi, chứ không chặn các yêu cầu nhưng vẫn chấp nhận hồi âm với giả sử rằng chúng luôn đáp lại lệnh ping. Sự hồi âm không do yêu cầu có thể là tín hiệu của sự tấn công hoặc cửa saụ

* Xử sự đơn giản của các packet thoả thuận trong các chains (một danh sách các

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