2
3.3.2.3 Dạng tấn công sử dụng câu lệnh INSERT
Thông thường các ứng dụng web cho phép người dùng đăng kí một tài khoản
để tham giạ Chức năng không thể thiếu là sau khi đăng kí thành công, người dùng có thể xem và hiệu chỉnh thông tin của mình. SQL injection có thể được dùng khi hệ thống không kiểm tra tính hợp lệ của thông tin nhập vàọ
Ví dụ: Một câu lệnh INSERT có thể có cú pháp dạng:
INSERT INTO TableName VALUES(‘Value One’, ‘Value Two’, ‘Value Three’) Nếu đoạn mã xây dựng câu lệnh SQL có dạng:
<%
strSQL = "INSERT INTO TableName VALUES(' " + strValueOne + " ', ' " + strValueTwo + " ', ' " + strValueThree + " ') "; objRS = Server.CreateObject("ADODB.Recordset"); objRS == Conn.Execute(strSQL); ... Conn.Close(); %>
- Thì chắc chắn sẽ bị lỗi SQL injection, bởi vì nếu ta nhập vào trường thứ nhất như
sau:
‘ + (SELECT TOP 1 FieldName FROM TableName) +’
Lúc này câu truy vấn sẽ là:
INSERT INTO TableName VALUES(‘ ‘ + (SELECT TOP 1 FieldName FROM
TableName) + ‘ ‘, ‘abc’, ‘def’).
Khi đó, lúc thực hiện lệnh xem thông tin, xem như đã yêu cầu thực hiện thêm một lệnh nữa đó là:
SELECT TOP 1 FieldName FROM TableName 3.3.2.4 Dạng tấn công sử dụng stored-procedures
Việc tấn công bằng stored-procedures sẽ gây tác hại rất lớn nếu ứng dụng
được thực thi với quyền quản trị hệ thống ’sa’. Ví dụ, nếu ta thay đoạn mã thêm vào dạng:
‘; EXEC xp_cmdshell ‘cmd.exe dir C:’
Lúc này hệ thống sẽ thực hiện lệnh liệt kê thư mục trên ổ đĩa C:\ cài đặt server. Việc phá hoại kiểu nào tuỳ thuộc vào câu lệnh đằng sau cmd.exẹ
CHƯƠNG 4: CÁC GIẢI PHÁP BẢO MẬT CHO HỆ THỐNG
CHƯƠNG 4: CÁC GIẢI PHÁP BẢO MẬT HỆ THỐNG CALL CENTER
Có rất nhiều giải pháp và ý tưởng được đưa ra nhằm đối phó với các cuộc tấn
công kiểu ĐoS. Tuy nhiên không có giải pháp và ý tưởng nào là giải quyết trọn
vẹn bài toán Anti-ĐoS. Các hình thái khác nhau của ĐoS liên tục xuất hiện theo
thời gian song song với các giải pháp đối phó, tuy nhiên cuộc đua vẫn tuân theo quy
luật tất yếu của bảo mật máy tính: “Attacker luôn đi trước giới bảo mật một bước”. 4.1 Các giai đoạn chính và giải pháp chi tiết cho từng giai đoạn trong Anti -
ĐoS
4.1.1 Các giai đoạn chính trong quá trình Anti - ĐoS
Có 3 giai đoạn chính trong quá trình Anti-ĐoS:
Giai đoạn ngăn ngừa: tối thiểu hóa lượng Agent, tìm và vô hiệu hóa các
Handler.
Giai đoạn đối đầu với cuộc tấn công: Phát hiện và ngăn chặn cuộc tấn công,
làm suy giảm và dừng cuộc tấn công, chuyển hướng cuộc tấn công.
Giai đoạn sau khi cuộc tấn công xảy ra: thu thập chứng cứ và rút kinh nghiệm.
Các giai đoạn chi tiết trong phòng chống ĐoS:
CHƯƠNG 4: CÁC GIẢI PHÁP BẢO MẬT CHO HỆ THỐNG 4.1.2 Giải pháp chi tiết cho từng giai đoạn Anti - ĐoS
4.1.2.1 Giai đoạn ngăn ngừa
Tối thiểu hóa số lượng Agent
Từ phía User: một phương pháp rất tốt để năng ngừa tấn công ĐoS là từng internet user sẽ tự đề phòng không để bị lợi dụng tấn công hệ thống khác.
Muốn đạt được điều này thì ý thức và kỹ thuật phòng chống phải được phổ biến
rộng rãi cho các internet user. Attack-Network sẽ không bao giờ hình thành nếu
không có user nào bị lợi dụng trở thành Agent. Các user phải liên tục thực hiện các
quá trình bảo mật trên máy vi tính của mình. Họ phải tự kiểm tra sự hiện diện của
Agent trên máy của mình, điều này là rất khó khăn đối với user thông thường. Một số giải pháp tích hợp sẵn khả năng ngăn ngừa việc cài đặt code nguy
hiểm thông vào hardware và software của từng hệ thống. Về phía user họ nên cài
đặt và update liên tục các software như antivirus, anti_trojan và server patch của hệ điều hành.
Từ phía Network Service Provider: Thay đổi cách tính tiền dịch vụ truy cập theo dung lượng sẽ làm cho user lưu ý đến những gì họ gửi, như vậy về mặt ý thức tăng cường phát hiện ĐoS Agent sẽ tự nâng cao ở mỗi User.
Tìm và vô hiệu hóa các Handler
Một nhân tố vô cùng quan trọng trong attack-network là Handler, nếu có thể
phát hiện và vô hiệu hóa Handler thì khả năng Anti-ĐoS thành công là rất caọ
Bằng cách theo dõi các giao tiếp giữa Handler và Client hay handler va Agent ta có thể phát hiện ra vị trí của Handler. Do một Handler quản lý nhiều, nên triệt tiêu
được một Handler cũng có nghĩa là loại bỏ một lượng đáng kể các Agent trong
Attack – Network.
4.1.2.2 Giai đoạn đối đầu với cuộc tấn công
Phát hiện dấu hiệu của một cuộc tấn công
Có nhiều kỹ thuật được áp dụng:
Agress Filtering
Kỹ thuật này kiểm tra xem một packet có đủ tiêu chuẩn ra khỏi một subnet
hay không dựa trên cơ sở gateway của một subnet luôn biết được địa chỉ IP của các
máy thuộc subnet. Các packet từ bên trong subnet gửi ra ngoài với địa chỉ nguồn
không hợp lệ sẽ bị giữ lại để điều tra nguyên nhân. Nếu kỹ thuật này được áp dụng
trên tất cả các subnet của internet thì khái nhiệm giả mạo địa chỉ IP sẽ không còn tồn tạị
MIB statistics
Ttrong Management Information Base (SNMP) của route luôn có thông tin
thống kể về sự biến thiên trạng thái của mạng. Nếu ta giám sát chặt chẽ các thống
kê của protocol mạng. Nếu ta giám sát chặt chẽ các thống kê của Protocol ICMP, UDP và TCP ta sẽ có khả năng phát hiện được thời điểm bắt đầu của cuộc tấn công để tạo “quỹ thời gian vàng” cho việc xử lý tình huống.
CHƯƠNG 4: CÁC GIẢI PHÁP BẢO MẬT CHO HỆ THỐNG
Làm suy giàm hay dừng cuộc tấn công
Dùng các kỹ thuật sau:
Load balancing
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. Tuy nhiên, điều này không có ý nghĩa lắm về mặt thực tiễn vì quy mô của cuộc tấn công là không có giới hạn.
Throttling
Thiết lập cơ chế điều tiết trên router, quy định một khoảng tải hợp lý mà server bên trong có thể xử lý được. Phương pháp này cũng có thể được dùng để ngăn chặn khả năng ĐoS traffic không cho user truy cập dịch vụ. Hạn chế của kỹ
thuật này là không phân biệt được giữa các loại traffic, đôi khi làm dịch vụ bị gián đoạn với user, ĐoS traffic vẫn có thể xâm nhập vào mạng dịch vụ nhưng với số lượng hữu hạn.
Drop request
Thiết lập cơ chế drop request nếu nó vi phạm một số quy định như: thời gian
delay kéo dài, tốn nhiều tài nguyên để xử lý, gây deadlock. Kỹ thuật này triệt tiêu khả năng làm cạn kiệt năng lực hệ thống, tuy nhiên nó cũng giới hạn một số hoạt động thông thường của hệ thống, cần cân nhắc khi sử dụng.
Chuyển hướng của cuộc tấn công
Honeyspots: Một kỹ thuật đang được nghiên cứu là Honeyspots. Honeyspots là một hệ thống được thiết kế nhằm đánh lừa attacker tấn công vào khi xâm nhập hệ
thống mà không chú ý đến hệ thống quan trọng thực sự.
Honeyspots rất hiệu quả trong việc phát hiện và xử lý xâm nhập, vì trên
Honeyspots đã thiết lập sẵn các cơ chế giám sát và báo động.
Ngoài ra Honeyspots còn có giá trị trong việc học hỏi và rút kinh nghiệm từ
Attacker, do Honeyspots ghi nhận khá chi tiết mọi động thái của attacker trên hệ
thống. Nếu attacker bị đánh lừa và cài đặt Agent hay Handler lên Honeyspots thì khả năng bị triệt tiêu toàn bộ attack-network là rất caọ
4.1.2.3 Giai đoạn sau tấn công
Trong giai đoạn này thông thường thực hiện các công việc sau:
Traffic Pattern Analysis
Nếu dữ liệu về thống kê biến thiên lượng traffic theo thời gian đã được lưu
lại thì sẽ được đưa ra phân tích. Quá trình phân tích này rất có ích cho việc tinh
chỉnh lại các hệ thống Load Balancing và Throttling. Ngoài ra các dữ liệu này còn giúp Quản trị mạng điều chỉnh lại các quy tắc kiểm soát traffic ra vào mạng của
mình.
Packet Traceback
Bằng cách dùng kỹ thuật Traceback ta có thể truy ngược lại vị trí của
Attacker (ít nhất là subnet của attacker). Từ kỹ thuật Traceback ta phát triển thêm khả năng Block Traceback từ attacker khá hữu hiệụ gần đây đã có một kỹ thuật
CHƯƠNG 4: CÁC GIẢI PHÁP BẢO MẬT CHO HỆ THỐNG
Traceback khá hiệu quả có thể truy tìm nguồn gốc của cuộc tấn công dưới 15 phút, đó là kỹ thuật XXX.
Bevent Logs
Bằng cách phân tích file log sau cuộc tấn công, quản trị mạng có thể tìm ra nhiều manh mối và chứng cứ quan trọng.
4.2 Sử dụng Load Balancing 4.2.1 Giới thiệu chung 4.2.1 Giới thiệu chung
Một số đơn vị, chẳng hạn như các công ty hàng không hoặc các ngân hàng lớn, mạng máy tính có thể ví như hệ thần kinh điều khiển hoạt động của toàn doanh nghiệp. Sự ngừng hoạt động của mạng máy tính trong những cơ quan này có thể
làm tê liệt các hoạt động chính của đơn vị, và thiệt hại khó có thể lường trước được.
Các máy chủ là trái tim của của mạng máy tính, nếu máy chủ mạng hỏng, hoạt động
của hệ thống sẽ bị ngưng trệ. Điều đáng tiếc là dù các hãng sản xuất đã cố gắng làm mọi cách để nâng cao chất lượng của thiết bị, nhưng những hỏng hóc đối với các
thiết bị mạng nói chung và các máy chủ nói riêng là điều không thể tránh khỏị Do
vậy, vấn đề đặt ra là cần có một giải pháp để đảm bảo cho hệ thống vẫn hoạt động
tốt ngay cả khi có sự cố xảy ra đối với máy chủ mạng và công nghệ clustering là câu trả lời cho vấn đề nàỵ
Hình 4. 2: Mô hình hệ thống Load Balancer
4.2.2 Tổng quan về công nghệ Clustering
Clustering là một kiến trúc nhằm đảm bảo nâng cao khả năng sẵn sàng cho các hệ thống mạng máy tính. Clustering cho phép sử dụng nhiều máy chủ kết hợp
với nhau tạo thành một cụm (cluster) có khả năng chịu đựng hay chấp nhận sai sót
(fault-tolerant) nhằm nâng cao độ sẵn sàng của hệ thống mạng. Cluster là một hệ
thống bao gồm nhiều máy chủ được kết nối với nhau theo dạng song song hay phân tán và được sử dụng như một tài nguyên thống nhất. Nếu một máy chủ ngừng hoạt động do bị sự cố hoặc để nâng cấp, bảo trì, thì toàn bộ công việc mà máy chủ này
CHƯƠNG 4: CÁC GIẢI PHÁP BẢO MẬT CHO HỆ THỐNG
cluster) mà không làm cho hoạt động của hệ thống bị ngắt hay gián đoạn. Quá trình này gọi là “fail-over”; và việc phục hồi tài nguyên của một máy chủ trong hệ thống (cluster) được gọi là “fail-back”.
Hình 4. 3: Mô hình cơ bản của một hệ thống Clustering
4.2.3 Các yêu cầu của một hệ thống Cluster
Yêu cầu về tính sẵn sàng cao (availability). Các tài nguyên mạng phải luôn
sẵn sàng trong khả năng cao nhất để cung cấp và phục vụ các người dùng cuối và giảm thiểu sự ngưng hoạt động hệ thống ngoài ý muốn.
Yêu cầu về độ tin cậy cao (reliability). Độ tin cậy cao của cluster được hiểu
là khả năng giảm thiểu tần số xảy ra các sự cố, và nâng cao khả năng chịu đựng sai
sót của hệ thống.
Yêu cầu về khả năng mở rộng được (scalability). Hệ thống phải có khả năng
dễ dàng cho việc nâng cấp, mở rộng trong tương laị Việc nâng cấp mở rộng bao
hàm cả việc thêm các thiết bị, máy tính vào hệ thống để nâng cao chất lượng dịch
vụ, cũng như việc thêm số lượng người dùng, thêm ứng dụng, dịch vụ và thêm các tài nguyên mạng khác.
Ba yêu cầu trên được gọi tắt là RAS (Reliability-Availability-Scalability), những hệ thống đáp ứng được ba yêu cầu trên được gọi là hệ thống RAS (cần phân
biệt với Remote Access Service là dịch vụ truy cập từ xa).
Cũng cần chú ý rằng hiệu quả hoạt động của hệ thống Clustering phụ thuộc
vào sự tương thích giữa các ứng dụng và dịch vụ, giữa phần cứng và phần mềm.
Ngoài ra, kỹ thuật clustering không thể chống lại các sự cố xảy ra do virus, sai sót của phần mềm hay các sai sót do người sử dụng. Để chống lại các sự cố này cần xây
dựng một cơ sở dữ liệu được bảo vệ chắc chắn cũng như có các kế hoạch khôi phục,
backup dữ liệụ
4.2.4 Cluster nhiều địa điểm phân tán
Với các hệ thống mạng lớn có các người dùng phân bố rải rác, hiệu quả của
việc phòng chống sự cố và nâng cao tính sẵn sàng của mạng sẽ được cải thiện hơn
CHƯƠNG 4: CÁC GIẢI PHÁP BẢO MẬT CHO HỆ THỐNG
điểm có thể được thiết kế theo rất nhiều cách khác nhau, trong đó phổ biến nhất là có một điểm gốc và một số điểm ở xạ
Với kiểu thiết kế đầy đủ, toàn bộ cấu trúc của điểm gốc được xây dựng lại đầy đủ ở các điểm ở xạ Điều này cho phép các điểm ở xa hoạt động độc lập và có thể xử lý toàn bộ khối lượng công việc của điểm gốc nếu cần. Trong trường hợp
này, việc thiết kế phải đảm bảo sao cho cơ sở dữ liệu và các ứng dụng giữa điểm
gốc và các điểm ở xa phải đồng bộ và được cập nhật sao lặp ở chế độ thời gian thực.
Với kiểu thiết kế thực hiện từng phần thì chỉ có các thành phần cơ bản là
được cài đặt ở các điểm ở xa nhằm: Xử lý các khối lượng công việc quá tải trong
các giờ cao điểm; Duy trì hoạt động ở mức cơ bản trong trường hợp điểm gốc site bị
sự cố; Cung cấp một số dịch vụ hạn chế nếu cần. Cả kiểu thiết kế đầy đủ hay từng
phần đều dùng phương cách phân tán các máy chủ rải rác về mặt địa lý. Cluster
phân tán về địa lý sử dụng mạng LAN ảo (Virtual LAN) để kết nối các mạng khu
vực lưu trữ SAN (storage area network) qua những khoảng cách lớn.
4.2.5 Các mô hình Load Balancing hiện nay 4.2.5.1 Client-side load balancing 4.2.5.1 Client-side load balancing
CHƯƠNG 4: CÁC GIẢI PHÁP BẢO MẬT CHO HỆ THỐNG 4.2.5.2 Server-side load balancing
Hình 4. 5: Mô hình Server-side load balancing
4.2.6 Chế độ hoạt động của Network Load Balancing
Mỗi máy chủ trong cluster được gọi là một nút (cluster node), và có thể được
thiết lập ở chế độ chủ động (active) hay thụ động (passive). Khi một nút ở chế dộ
chủ động, nó sẽ chủ động xử lý các yêu cầụ Khi một nút là thụ động, nó sẽ nằm ở
chế độ dự phòng nóng (stanby) chờ để sẵn sàng thay thế cho một nút khác nếu bị
hỏng. Nguyên lý hoạt động của Cluster có thể biểu diễn như trong hình
Hình 4. 6: Nguyên lý hoạt động của một Cluster
Trong một cluster có nhiều nút có thể kết hợp cả nút chủ động và nút thụ động. Trong những mô hình loại này việc quyết định một nút được cấu hình là chủ động hay thụ động rất quan trọng. Để hiểu lý do tại sao, hãy xem xét các tình huống
CHƯƠNG 4: CÁC GIẢI PHÁP BẢO MẬT CHO HỆ THỐNG
- Nếu một nút chủ động bị sự cố và có một nút thụ động đang sẵn sàng, các
ứng dụng và dịch vụ đang chạy trên nút hỏng có thể lập tức được chuyển sang nút
thụ động. Vì máy chủ đóng vai trò nút thụ động hiện tại chưa chạy ứng dụng hay
dịch vụ gì cả nên nó có thể gánh toàn bộ công việc của máy chủ hỏng mà không ảnh hưởng gì đến các ứng dụng và dịch vụ cung cấp cho người dùng cuối (Ngầm định
rằng các các máy chủ trong cluster có cấu trúc phần cứng giống nhau).
- Nếu tất cả các máy chủ trong cluster là chủ động và có một nút bị sự cố, các
ứng dụng và dịch vụ đang chạy trên máy chủ hỏng sẽ phải chuyển sang một máy
chủ khác cũng đóng vai trò nút chủ động. Vì là nút chủ động nên bình thường máy