Có thể một số người còn chưa từng nghiên cứu, tìm cách để phát hiện và khắc phục các lỗ hổng trong hệ thống của họ Từ thực tiễn trên, em nhận thấy vấn đề về chất lượng của các sản ph
Trang 1ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
ĐỖ THỊ HUỆ
NGHIÊN CỨU MỘT SỐ CÔNG CỤ ĐỂ ĐÁNH GIÁ SẢN PHẨM
AN TOÀN BẢO MẬT THÔNG TIN
LUẬN VĂN THẠC SĨ HỆ THỐNG THÔNG TIN
Hà Nội – 2014
Trang 2ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
ĐỖ THỊ HUỆ
NGHIÊN CỨU MỘT SỐ CÔNG CỤ ĐỂ ĐÁNH GIÁ SẢN PHẨM
AN TOÀN BẢO MẬT THÔNG TIN
Ngành: Công nghệ thông tin
Chuyên ngành: Hệ thống thông tin
Mã số:60480104
LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
NGƯỜI HƯỚNG DẪN KHOA HỌC 1: TS HỒ VĂN HƯƠNG
NGƯỜI HƯỚNG DẪN KHOA HỌC 2: TS NGUYỄN VIẾT THẾ
Hà Nội – 2014
Trang 4LỜI CAM ĐOAN
Tôi xin cam đoan kết quả đa ̣t được của luâ ̣n văn là sản phẩm của cá nhân tôi , không sao chép nguyên văn của người khác Trong toàn bô ̣ nô ̣i dung của luâ ̣n văn , những phần được trình bày hoă ̣c là của cá nhân tôi hoă ̣c là được tổ hợp từ nhi ều nguồn tài liệu khác nhau Tất cả các tài liê ̣u tham khảo đều có xuất xứ rõ ràng và được trích dẫn đúng quy đi ̣nh
Tôi xin hoàn toàn chi ̣u trách nhiê ̣m với lời cam đoan của mình
Hà Nội, năm 2014
Đỗ Thị Huệ
Trang 5MỤC LỤC
LỜI CAM ĐOAN 4
MỤC LỤC 5
DANH MỤC KÝ HIỆU VÀ TỪ VIẾT TẮT 8
DANH MỤC HÌNH VẼ 9
DANH MỤC BẢNG 11
MỞ ĐẦU 12
CHƯƠNG I: TỔNG QUAN VỀ AN TOÀN BẢO MẬT THÔNG TIN 14
1.1 Thực trạng an toàn thông tin 14
1.1.1 An ninh an toàn thông tin tại Việt Nam và trên thế giới 14
1.1.2 Nguy cơ mất an toàn thông tin trong cổng thông tin điện tử 15
1.2 Tiêu chí và công cu ̣ đánh giá an toàn thông tin 17
1.2.1 Giới thiệu các tiêu chuẩn đánh giá hệ thống an toàn thông tin 17
1.2.2 Công cụ phân tích, dò quét lỗ hổng bảo mật trong cổng thông tin điện tử 24
CHƯƠNG II: NGHIÊN CỨU CÁC KỸ THUẬT PHÂN TÍCH, DÒ QUÉT VÀ LỰA CHỌN CÔNG CỤ ĐÁNH GIÁ CỔNG THÔNG TIN ĐIỆN TỬ 30
2.1 Nghiên cứu một số lỗ hổng trong cổng thông tin điện tử 30
2.1.1 SQL injection 30
2.1.2 XSS ……… 31
2.1.3 CSRF 31
2.1.4 Tràn bộ đệm 33
2.2 Nghiên cứu các kỹ thuật phân tích lỗ hổng cổng thông tin điện tử 33
2.2.1. Kỹ thuật phân tích tĩnh 33
2.2.2. Kỹ thuật phân tích động 33
2.3 Thuật toán phát hiện lỗ hổng trong cổng thông tin điện tử 37
2.3.1. Học máy 37
2.3.2. Cây phân tích cú pháp truy vấn 37
43
Trang 62.3.4. Fuzzing 45
2.4 Công cụ dò quét lỗ hổng trong cổng thông tin điện tử 49
2.4.1 Bkav Web Scan 49
2.4.2 Acunetix Web Vulnerability Scanner 51
2.4.3 IBM Rational AppScan 56
2.5 Đánh giá các công cụ dò quét lỗ hổng website 58
2.5.1 Đánh giá kỹ thuật và thuật toán sử dụng 58
2.5.2 Khả năng ứng dụng thực tiễn 58
CHƯƠNG III: ĐỀ XUẤT LỰA CHỌN CÔNG CỤ, XÂY DỰNG QUY TRÌNH ĐÁNH GIÁ CỔNG THÔNG TIN ĐIỆN TỬ VÀ TRIỂN KHAI ÁP DỤNG TRONG THỰC TIỄN 63
3.1 Đề đánh giá cổng thông tin điện tử 63
3.2 Đề xuất quy trình triển khai, đánh giá cổng thông tin điện tử 63
3.2.1 Mục đích 63
3.2.2 Phạm vi áp dụng 63
3.2.3 Lưu đồ 64
3.2.4 Mô tả quy trình thực hiện 65
3.2.5 Đánh giá quy trình 67
3.3 Áp dụng quy trình triển khai đánh giá cổng thông tin điện tử Công ty NEO sử dụng công cụ Acunetix 68
3.3.1 Xây dựng kịch bản đánh giá 68
3.3.2 Thực hiện đánh giá 69
3.3.3 Kết quả đánh giá 75
3.4 Áp dụng quy trình triển khai đánh giá cổng thông tin điện tử Đại học công nghệ - Đại học Quốc gia Hà nội sử dụng công cụ Acunetix 83
3.4.1 Xây dựng kịch bản đánh giá cổng thông tin điện tử 83
3.4.2 Thực hiện đánh giá 84
3.4.3 Kết quả đánh giá 85
Trang 73.5 Kết quả thực tiễn áp dụng 87
3.5.1 Thống kê số lƣợng lỗ hổng phát hiện theo từng loại 87
3.5.2 Thống kê số lƣợng lỗ hổng phát hiện theo mức độ nghiêm trọng 88
3.5.3 Thống kê các lỗi phổ biến 89
KẾT LUẬN 90
TÀI LIỆU THAM KHẢO 92
Trang 8DANH MỤC KÝ HIỆU VÀ TỪ VIẾT TẮT
LAN Local Area Network
DOS Denial of Service
CC Common Criteria
XSS Cross-Site Scripting
TCP Transmission Control Protoco
UDP User Datagram Protocol
ARP Address Resolution Protocol
URL Uniform Resource Locator
Trang 9DANH MỤC HÌNH VẼ
Hình 2.1:Một thông báo lỗi được trả về liên quan tới hệ quản trị CSDL 35
Hình 2.2: Một thông báo trả về liên quan tới cấu trúc CSDL 35
Hình 2.3: Kiến trúc V1p3R 36
Hình 2.4 Kiến trúc mô hình 38
Hình 2.5: Cây phân tích cú pháp cho câu truy vấn SELECT 40
Hình 2.6 Cây phân tích cú pháp của câu truy vấn SELECT cụ thể 41
Hình 2.7: Cây phân tích cú pháp của truy vấn hợp lệ 42
Hình 2.8: Cây phân tích cú pháp của câu truy vấn không hợp lệ 43
Hình 2.9: Quá trình sinh ra dữ liệu kiểm thử trong CFG 44
Hình 2.10:Vector tấn công hệ thống đa mức 46
Hình 2.11: Các kiểu bất thường vào mô hình báo cáo lỗi khác nhau 47
Hình 2.12: Cấu trúc logic của fuzzer 47
Hình 2.13: Ví dụ về một kịch bản fuzz và kết quả trả về từ một SUT 48
Hình 2.14: Quá trình fuzzing bao gồm các kịch bản fuzz và một hệ thống giám sát 49
Hình 3.1: Giao diện thu thập dữ liệu 69
Hình 3.2: Cấu trúc website 70
Hình 3.3: Giao diện chính của Acunetix 71
Hình 3.4: Nhập địa chỉ và tuỳ chọn quét 71
Hình 3.5: Chọn Scaning Profile 72
Hình 3.6: Thông tin về server 73
Hình 3.7: Chọn Login sequence 73
Hình 3.8: Kết thúc quá trình tuỳ chọn 74
Hình 3.9: Giao diện khi đang thực hiện quét 74
Hình 3.10: Màn hình sau khi thực hiện quét xong 75
Hình 3.11: Giao diện chi tiết từng lỗi 75
Hình 3.12: Mức độ cảnh báo 76
Hình 3.13: Giao diện xuất báo cáo 78
Trang 10Hình 3.14 : Báo cáo 79
Hình 3.15: Tuỳ chọn xuất báo cáo 80
Hình 3.16: Chọn lần quét để xuất báo cáo 80
Hình 3.17: Giao diện xuất báo cáo ra các định dạng 81
Hình 3.18: Chi tiết về file nguồn phát sinh lỗi 81
Hình 3.19: Khuyến cáo để thực hiện vá lỗi 82
Hình 3.20: Kết quả đánh giá 85
Hình 3.21: Danh sách số lượng các lỗi 85
Hình 3.22: Chi tiết lỗi HTML form without CSRF protection 86
Hình 3.23: Thống kê lỗ hổng phát hiện theo từng loại 88
Hình 3.24: Thống kê lỗ hổng theo mức độ nghiêm trọng 88
Hình 3.25: Thống kê các lỗi thường gặp 89
Trang 11DANH MỤC BẢNG
Bảng 1-1 Tỉ lệ các sản phẩm đƣợc đánh giá theo từng năm 22
Bảng 2-1 So sánh giữa các công cụ 60
Bảng 2-2 So sách các công cụ về mặt công cụ hỗ trợ 61
Bảng 2-3 So sánh một số công cụ về mặt chức năng 61
Bảng 3-1 Nội dung quy trình 65
Bảng 3-2 Kịch bản đánh giá 68
Bảng 3-3 Kết quả theo kịch bản 77
Bảng 3-4 Kịch bản đánh giá 83
Bảng 3-5: Kết quả đánh giá theo kịch bản 86
Trang 12MỞ ĐẦU 1) Lý do chọn đề tài
Ngày nay với sự phát triển vượt bậc của công nghệ thông tin, nhu cầu về vấn đề trao đổi thông tin ngày càng trở nên phổ biến Khi lượng thông tin trao đổi càng nhiều,
và có ý nghĩa càng quan trọng thì vấn đề an toàn bảo mật thông tin cũng trở nên bức thiết
Để đáp ứng được nhu cầu của con người, hàng loạt các hệ thống về bảo mật an toàn thông tin được ra đời Các hệ thống này đã giúp cho công việc, hoạt động của con người trở nên đơn giản và tiết kiệm rất nhiều thời gian, tiền bạc Bên cạnh các lợi ích
mà các hệ thống về bảo mật và an toàn thông tin đem lại thì việc mất mát, lộ lọt thông tin cũng gây tổn rất lớn cho các tổ chức sử dụng chúng
Đặc biệt, vấn đề mất an ninh an toàn cổng thông tin điện tử đang được xem là vấn
đề nóng không chỉ của Việt Nam mà là của toàn thế giới Các con số thống kê hàng năm về tình trạng mất an ninh trong các cổng thông tin điện tử là vấn đề đáng lo ngại của toàn xã hội, toàn thế giới Sở dĩ các website này bị tấn công do đang tồn tại rất nhiều lỗ hổng an ninh chưa được khắc phục
Ngoài ra, có một vấn đề đặt ra là chính những nhà quản trị mạng, quản trị website vẫn chưa thể đánh giá được các hệ thống mà mình đang quản lý Có thể một số người còn chưa từng nghiên cứu, tìm cách để phát hiện và khắc phục các lỗ hổng trong hệ thống của họ
Từ thực tiễn trên, em nhận thấy vấn đề về chất lượng của các sản phẩm an toàn bảo mật thông tin là vấn đề đang nhận được sự quan tâm từ nhiều phía Cùng với lý do trên
và niềm đam mê, em đã quyết định chọn đề tài “Nghiên cứu một số công cụ để đánh giá sản phẩm an toàn bảo mật thông tin” làm luận văn tốt nghiệp với mong muốn tìm hiểu, nghiên cứu về an toàn bảo mật thông tin, cũng như các kỹ thuật, phương pháp để phát hiện lỗ hổng trong cổng thông tin điện tử Đồng thời, tìm hiểu các công cụ kiểm tra, đánh giá sản phẩm an toàn bảo mật thông tin
2) Bố cục luận văn
Luận văn được chia làm 3 chương:
Chương 1: Chương này trình bày tổng quan về lý thuyết mật mã, an toàn bảo mật thông tin Đồng thời, giúp ta nắm được thực trạng an toàn thông tin, nguy cơ mất an toàn thông tin trong cổng thông tin điện tử ở Việt Nam và trên thế giới Chương đầu tiên này cũng giới thiệu tổng quan về các công cụ và tiêu chí đánh giá an toàn thông tin
Chương 2: Nghiên cứu các kỹ thuật phân tích, dò quét và lựa chọn công cụ đánh giá cổng thông tin điện tử Chương này nghiên cứu một số lỗ hổng trong cổng thông tin điện tử, các kỹ thuật phân tích, thuật toán dò quét để phát hiện các lỗ hổng này
Trang 13Nghiên cứu một số công cụ quét website phổ biến, trên cơ sở đó so sánh, đánh giá và
đề xuất lựa chọn công cụ đánh giá cổng thông tin điện tử
Chương 3 của luận văn sẽ xây dựng và đề xuất quy trình đánh giá cổng thông tin điện
tử Đồng thời đề xuất lựa chọn công cụ sử dụng để đánh giá cổng thông tin điện tử, triển khai áp dụng đánh giá một số cổng thông tin điện tử trong thực tiễn
Kết luận
Phần này trình bày các kết luận chung của luận văn: bao gồm các kết quả đã đạt được
và hướng nghiên cứu, phát triển trong tương lai
Trang 14CHƯƠNG I: TỔNG QUAN VỀ AN TOÀN BẢO MẬT THÔNG TIN
1.1 Thực trạng an toàn thông tin
1.1.1 An ninh an toàn thông tin tại Việt Nam và trên thế giới
Trong xã hội hiện đại, việc sử dụng internet đã trở thành thói quen cũng như yêu cầu công việc không thể thiếu đối với các cá nhân trong các doanh nghiệp cũng như trong các cơ quan nhà nước Người dùng nhờ có internet có thể làm việc từ xa, sử dụng các ứng dụng đào tạo tập trung và nhiều tiện ích khác Tuy nhiên, bên cạnh các lợi ích mà internet mang lại thì cũng có rất nhiều nguy cơ có thể xảy ra do mất an ninh
an toàn mạng cũng như tiềm ẩn trong việc mất an toàn của các máy tính cá nhân tham gia mạng
Thực trạng an toàn thông tin của hệ thống mạng LAN
Theo báo cáo về tính an toàn của các mạng LAN và website của Việt Nam của một tổ chức quốc tế thì Việt Nam là một trong 3 nước yếu nhất
Còn theo báo cáo của Bộ Công An thì hơn 90% các mạng nội bộ của các cơ quan Đảng, Chính phủ và các Ngân hàng bị xâm nhập, lấy dữ liệu
Có rất nhiều nguyên nhân dẫn tới tình trạng này trong đó có thể kể tới một số nguyên nhân như: Năng lực kỹ thuật của nhân viên quản trị mạng còn yếu kém, việc đầu tư thiết bị an ninh mạng còn thiếu đồng bộ, thiếu công nghệ phù hợp với hoàn cảnh Việt Nam Hơn nữa Việt nam còn là một trong những điểm yêu thích của hacker quốc tế
Để hạn chế được mức độ ảnh hưởng của việc mất an toàn mạng trong việc bảo mật các dữ liệu quan trọng, nhà nước cũng đã ban hành các quy định: Quy định về sử dụng internet của Bộ công an(QĐ 71/2004/QĐ - BCA) nghiêm cấm các máy tính có tài liệu
dữ liệu bí mật kết nối internet, quyết định của Bộ trưởng bộ tài chính(2615/QĐ - BTC) các máy tính trong ngành tài chính có các tài liệu quan trọng không được mở trang tin
và ứng dụng ngay trên máy
An toàn của máy tính cá nhân tham gia mạng
Chỉ riêng năm 2010, đã có tới 58,6 triệu lượt máy tính tại Việt Nam bị nhiễm vi rút Theo đó, trung bình một ngày đã có hơn 160 nghìn máy tính bị nhiễm vi rút Các chuyên gia an ninh mạng đánh giá, đây là con số báo động về tình hình vi rút máy tính tại Việt Nam
Còn theo báo cáo của onsummerreport của Mỹ về tình trạng lây nhiễm vi rút và
mã độc thì có đến 58,2 triệu máy tính từng bị lây nhiễm ít nhất một loại mã độc gây ảnh hưởng đến tính năng và hiệu suất hoạt động của máy tính; chi phí sửa chữa các
Trang 15thiệt hại từ những vụ xâm nhập và lây nhiễm mã độc tại Mỹ đã lên đến gần 4 tỷ USD trong năm 2011 Báo cáo cũng cho biết có khoảng 9,2 triệu người Mỹ là nạn nhân của hình thức tấn công lừa đảo Với mạng xã hội Facebook, báo cáo cho biết có đến 9,8 triệu người dùng Facebook tại Mỹ bị người khác sử dụng trái phép tài khoản, gây tổn hại danh tiếng, hoặc dùng cho mục đích quấy rối, đe dọa, lừa đảo Tình trạng này dẫn đến có khoảng 28,5 triệu người dùng Facebook phải thay đổi thông tin trong hồ sơ cá nhân trong năm 2012 nhằm mục đích bảo vệ sự riêng tư
Năm 2011, Bộ công an cũng đã phát hiện loại malware, trojan chuyên lấy cắp thông tin mật lây nhiễm qua usb hoặc thâm nhập qua cửa hậu vào máy tính và tự động đánh cắp những văn bản nhạy cảm trong máy tính về địa chỉ bên ngoài Hiện nay cũng
có một loại virut lây lan rất nhanh qua USB có tên w32.UsbFakedrive Tỷ lệ rất cao các thiết bị lưu trữ usb bán trên thị trường hiện nay có cài đặt sẵn mã độc
1.1.2 Nguy cơ mất an toàn thông tin trong cổng thông tin điện tử
Vấn đề mất an ninh an toàn không chỉ là ở việc mất an ninh mạng và máy tính cá nhân tham gia mạng Thực trạng vấn đề này trong nước ta hiện đang rất đáng lo ngại Các số liệu khảo sát về thực trạng mất an toàn thông tin trong cổng thông tin điện tử sau đây sẽ làm rõ hơn về nhận định này
Thực trạng mất an toàn cổng thông tin điện tử tại Việt Nam
Năm 2011
Theo thống kê của trang web Zone-H – chuyên thống kê các website bị tấn công trên toàn cầu, chỉ trong 20 ngày đầu tháng 6 năm 2011, có khoảng 446 website ".vn"
đã bị hacker tấn công, trong đó có 16 trang chứa tên miền “.gov.vn” Chỉ tính riêng
tuần đầu tiên của tháng 6 cũng đã có 407 website tên miền vn bị hacker tấn công
Cũng theo tìm hiểu, năm 2011, hàng loạt website của các tổ chức lớn tại Việt Nam đồng loạt bị tấn công bởi một nhóm hacker nổi tiếng tại Iran, với mục đích thông qua việc hack các trang web, chúng muốn bán những thông tin trợ giúp an ninh mạng, web hosting và dịch vụ mạng
Một sự kiện cũng được chú ý trong năm 2011 đó là: gần 200 website Việt nam bị tấn công trong vòng một đêm Đêm ngày 3/7/2011, gần 200 website có tên miền vn và com, net nằm trên một số server đã bị tấn công
Năm 2012
Theo khảo sát mới nhất của Microsoft, trong năm 2012 có 2.500 website của Việt Nam tiếp tục là mục tiêu tấn công của hacker Không chỉ các website của doanh nghiệp, Chính phủ, mà cả những website của các công ty bảo mật hàng đầu Việt Nam cũng bị tấn công
Còn theo tổng kết tình hình an ninh mạng của Bkav năm 2012 thì: An ninh mạng tại các cơ quan doanh nghiệp không được cải thiện Trong năm 2012 vẫn có tới 2.203
Trang 16website của các cơ quan doanh nghiệp tại Việt Nam bị tấn công, chủ yếu thông qua các lỗ hổng trên hệ thống mạng So với năm 2011 (có 2.245 website bị tấn công), con
số này hầu như không giảm
Năm 2013
Thông tin từ công ty an ninh mạng Bkav ngày 20/8 vừa qua cho biết, trong 30 ngày kể từ 20/7/2013 tới 20/8/12013 có 437 website của các cơ quan, doanh nghiệp tại Việt Nam bị hacker xâm nhập, trong đó có 16 trường hợp gây ra bởi hacker trong nước, 421 trường hợp do hacker nước ngoài “Đình đám” nhất trong tháng 7/2013 vừa qua là việc hàng loạt website của các báo điện tử lớn đã bị tấn công bằng phương thức
từ chối dịch vụ (DDoS) dài ngày như Tuổi trẻ, VietNamNet, Dân Trí… Những đợt tấn công đã khiến nhiều báo trong tình trạng nghẽn truy cập, thậm chí tê liệt trong thời gian ngắn
Theo báo cáo bảo mật Intelligence Report của hãng Symantec, số lượng các lỗ hổng bảo mâ ̣t phát si nh trong nửa đầu năm 2013 đã tăng lên 16% so với cùng thời điểm này năm 2012
Thực trạng mất an toàn cổng thông tin điện tử trên thế giới
Không riêng gì Việt Nam, vấn đề mất an ninh an toàn còn là vấn đề đáng lo ngại của toàn thế giới Trong đó không thể không kể tới các vụ tấn công an ninh website tại một số nước lớn như: Mỹ, Nga, Trung quốc
Tại Mỹ, gần đây nhất, 6 ngân hàng gồm Bank of America, JPMorgan Chase, Citigroup, US Bank, Wells Fargo và PNC đã phải chịu các cuộc tấn công từ chối dịch
vụ bởi một nhóm tuyên bố có quan hệ mật thiết với Trung Đông
Với Trung Quốc, ngày 25/08/2013 hàng loạt các website đã bị đánh sập Chính phủ Trung Quốc đã phải thừa nhận đây là cuộc tấn công quy mô lớn nhất từ truớc đến nay nhắm vào những website có tên miền cn
Ngày 9/5/2012, chỉ hai ngày sau khi Tổng thống Nga Vladimir Putin tuyên thệ nhận chức, nhóm tin tặc nổi tiếng Anonymous tuyên bố trên Twitter đã đánh sập cổng thông tin Chính phủ nước Nga (tại địa chỉ www.kremlin.ru), đồng thời khẳng định sẽ tiến hành thêm nhiều đợt tấn công tương tự khác vào các website của Chính phủ nước này Người dùng Internet tại Nga cho hay, họ đã không thể truy cập vào trang chủ của Cổng thông tin Chính phủ Nga trong vài phút vào ngày 9/5/2012 Trước đó một ngày, vào ngày 8/5, nhóm tin tặc giấu mặt đã tấn công vào website của Virgin Media - một trong những nhà cung cấp dịch vụ Internet lớn nhất tại Anh
Vấn đề an ninh an toàn mạng cho các doanh nghiê ̣p nói chung và các doanh nghiệp Việt Nam nói riêng chưa thấy có dấu hiê ̣u suy giảm về mức đô ̣ và số lượng Tô ̣i phạm mạng liên tục sáng tạo ra những cách thức tấn công mới và tinh vi nhằm đánh cắp
Trang 17thông tin quan trọng của các doanh nghiê ̣p ở mọi quy mô Vì thế để tiếp tục khai thác những mặt mạnh mà công nghê ̣ thông tin và Internet mang lại cho hoạt đô ̣ng kinh doanh, các doanh nghiê ̣p nên song song , chủ đô ̣ng phối kết hợp áp dụng các biê ̣n pháp
an ninh bảo mâ ̣t để phòng ngừa, ngăn chặn và giảm thiểu các mối đe dọa an ninh thông tin
Như vậy, các con số trên một lần nữa làm dấy lên lo ngại về sự mất an toàn, bảo mật của các website Việt nam cũng như trên thế giới Trên thực tế , các mối đe dọa luôn hiện hữu và ngày càng gia tăng cả về số lượng và chất lượng Những cuộc tấn công ngày càng có chủ đích hơn và được thực hiện bởi những tin tặc có kỹ năng cao Những con số thống kê của các hãng nghiên cứu uy tín về các mối đe dọa cho thấy, tỷ lê ̣ năm sau cao hơn năm trước và với mức độ ngày càng tinh vi hơn
Thực trạng này cho thấy, an ninh mạng vẫn chưa thực sự được quan tâm tại các cơ quan, doanh nghiệp Hầu hết cơ quan doanh nghiệp của Việt Nam chưa bố trí được nhân sự phụ trách an ninh mạng hoặc năng lực và nhận thức của đội ngũ này chưa tương xứng với tình hình thực tế Đó là những nguyên nhân chính
Để giải bài toán về an toàn thông tin tại Việt Nam, ông Ngô Việt Khôi - Giám đốc Kinh doanh của Trend Micro Việt Nam cho rằng ngoài nâng cao ý thức cho doanh nghiệp, cần chuẩn bị một nguồn nhân lực chuyên nghiệp trong lĩnh vực này Bên cạnh đó, từng bước nghiên cứu, phát triển các công cụ bảo vệ do chính Việt Nam làm chủ hoàn toàn Các cơ quan, doanh nghiệp hãy nghĩ đến những giải pháp phòng vệ nhiều lớp và đầu tư cho công nghệ nội địa ưu việt
Đặc biệt, để hạn chế được các nguy cơ mất an ninh an toàn cổng thông tin điện tử, mỗi cá nhân, doanh nghiệp cần phải đánh giá được mức độ an toàn của website mà mình sở hữu Hiện nay có rất nhiều tiêu chí và công cụ được sử đụng để dò quét và đánh giá mức độ an toàn của cổng thông tin điện tử Tổng quan về các công cụ và tiêu chí này sẽ được trình bày trong phần sau(1.3) của luận văn
1.2 Tiêu chí và công cụ đánh giá an toàn thông tin
Để đánh giá sản phẩm an toàn thông tin, có rất nhiều tiêu chuẩn được sử dụng tại Việt Nam cũng như trên thế giới Ở đây, em xin giới thiệu về một số tiêu chuẩn được
sử dụng khá rộng rãi ở Việt nam là Tiêu chuẩn chung CC, tiêu chuẩn 140-2 và tiêu chuẩn iso 27000
1.2.1 Giới thiệu các tiêu chuẩn đánh giá hệ thống an toàn thông tin
a) Tiêu chuẩn chung CC
Giới thiệu
CC là kết quả tổng quát tất cả những thành tựu của những năm lại đây trong lĩnh vực ATTT Lần đầu tiên tài liệu tại mức như vậy có chứa những mục đề cập đến những người sử dụng, những người sản xuất và những người đánh giá sản phẩm CNTT
Trang 18Các cơ chế PP và ST của CC cho phép những người sử dụng và những người sản xuất phản ánh đầy đủ quan điểm của mình về các yêu cầu an toàn và những vấn đề bảo
vệ, mặt khác cho những người đánh giá khả năng phân tích mối tương ứng lẫn nhau giữa các yêu cầu, những sự cần thiết của những người sử dụng, những vấn đề bảo vệ
và những phương tiện bảo vệ sản phẩm CNTT
Những người thiết kế CC đã tiếp tục cách tiếp cận của FC hướng tới từ chối sự phân chia thống nhất an toàn và tăng cường tính mềm dẻo những giải pháp được đề xuất trong chúng bằng cách tiến hành những sự phân chia sắp xếp bộ phận mà nhờ đó những người sử dụng và những người sản xuất nhận được những khả năng bổ sung về
sự lựa chọn những yêu cầu và sự thích ứng của chúng đối với các vấn đề ứng dụng của mình
Chuẩn CC dành chú ý đặc biệt cho sự đảm bảo hiện thực hoá các yêu cầu chức năng mà sự đảm bảo được đảm bảo bằng kiểm định độc lập và phân tích sản phẩm CNTT cũng như ứng dụng các công nghệ tương ứng trên tất cả các giai đoạn thiết kế
và hiện thực hoá nó
Như vậy là các yêu cầu của CC chiếm thực tế toàn bộ các khía cạnh an toàn các sản phẩm CNTT và công nghệ chế tạo chúng và cũng chứa tất cả các tài liệu ban đầu cần thiết cho những người sản xuất và những người thiết kế để tạo nên PP và ST Ngoài ra, những yêu cầu của CC thực tế là một bộ bách khoa đầy đủ về ANTT vì rằng
có thể sử dụng nó như là sách tra cứu về an toàn CNTT
Chuẩn CC đánh dấu một mức độ mới việc chuẩn hoá CNTT nâng nó lên tầm quốc
tế Đằng sau đó thấy được triển vọng thực tế của việc tạo ra không gian thông tin an toàn thống nhất mà trong đó chứng nhận an toàn các hệ thống xử lý thông tin sẽ được thực hiện ở mức độ sâu sắc mở ra những khả năng để tích hợp các hệ thống thông tin quốc gia đến lượt mình lại mở ra những lĩnh vực hoàn toàn mới ứng dụng CNTT
Quy trình đánh giá:
Tiêu chuẩn CC được đánh giá theo quy trình gồm 7 mức
EAL1:Mức đảm bảo an toàn được kiểm định chức năng
EAL2:Mức đảm bảo an toàn được kiểm định cấu trúc
EAL3:Mức đảm bảo an toàn được kiểm định và kiểm tra có phương pháp
EAL4:Mức đảm bảo an toàn được thiết kế, kiểm định và duyệt lại có phương pháp EAL5:Mức đảm bảo an toàn được thiết kế và kiểm định bán hình thức
EAL6:Mức đảm bảo an toàn được kiểm định và thiết kế có thẩm định bán hình thức EAL7:Mức đảm bảo an toàn được kiểm định và thiết kế có thẩm định hình thức, mức này thể hiện kiểm định hộp trắng
Tiêu chuẩn này đưa ra các yêu cầu an toàn cho một mô- đun mật mã sử dụng trong một hệ thống an toàn, dùng để bảo vệ thông tin nhạy cảm, nhưng chưa được phân loại
Trang 19(nghĩa là các thông tin không thuộc dạng tuyệt mật, tối mật theo cách phân loại của Mỹ) Tiêu chuẩn này đưa ra 4 mức an toàn tăng dần từ 1 đến 4 Các mức an toàn này bao quát hết các ứng dụng và môi trường mà các module mật mã được triển khai Quy trình đánh giá
Sau đây là các Mức an toàn với cấp độ chặt chẽ khác nhau
Mức an toàn 1
Mức an toàn 1 cung cấp khả năng an toàn thấp nhất Mô-đun mật mã đáp ứng mức
an toàn này chỉ cần thỏa mãn một số yêu cầu rất cơ bản, như phải sử dụng ít nhất một thuật toán mật mã đã được phê chuẩn hoặc một chức năng an toàn đã được phê chuẩn Không bắt buộc phải có cơ chế an toàn vật lý nào trong mô- đun mật mã ở mức này, ngoại trừ các yêu cầu cơ bản đối với các thành phần được tạo ra bởi nhà sản xuất Một
ví dụ về mô- đun mật mã có mức an toàn 1 là bảng mạch mã hóa của máy tính cá nhân
Mức an toàn 1 cho phép các thành phần phần mềm và phần sụn của mô- đun mật
mã được thực thi trong các hệ thống máy tính đa mục đích, sử dụng hệ điều hành chưa được kiểm định, phù hợp với một số ứng dụng có mức an toàn thấp, trong đó khả năng kiểm soát các vấn đề về an ninh vật lý, an ninh mạng và các thủ tục quản trị có thể ở mức hạn chế hoặc không có
Mức an toàn 2
Mức an toàn 2 tăng thêm các cơ chế an toàn vật lý so với Mức an toàn 1 bằng cách thêm các yêu cầu về khả năng chống can thiệp (tamper-evidence) như việc đóng hộp cách ly (coating), đóng dấu niêm phong (seal) hoặc đưa các khóa cứng an toàn (pick-resistant lock) vào phần vỏ hoặc nắp đóng mở của mô- đun mật mã Việc đóng hộp cách ly hoặc dán tem niêm phong là nhằm chống lại sự can thiệp hoặc lấy cắp khóa mật mã ở dạng rõ (plaintext cryptographic key) hoặc các Tham số an toàn quan trọng (CSP - Critical Security Parameter) thông qua cách tiếp cận trực tiếp vào mô- đun mật
mã Dấu niêm phong và khóa cứng an toàn được đưa vào phần vỏ hoặc nắp đậy là nhằm chống lại việc truy cập trái phép mô- đun mật mã
Để đạt Mức an toàn 2 thì tối thiểu phải có cơ chế xác thực dựa trên vai trò (role- based authentication) thực thi bởi mô-đun mật mã nhằm cho phép từng vai trò người dùng được thực thi một tập dịch vụ xác định trên mô- đun mật mã
Mức an toàn 2 cho phép các thành phần phần mềm hoặc phần sụn trong mô- đun mật mã được thực thi trên các hệ thống máy tính đa mục đích nhưng hệ điều hành phải thỏa mãn các yêu cầu chức năng đưa ra bởi PP ở Phụ lục B của tiêu chuẩn FIPS 140- 2
và được đánh giá đạt EAL2 theo CC
Mức an toàn 3
Ngoài các yêu cầu đưa ra ở Mức an toàn 2, Mức an toàn 3 ngăn chặn các xâm nhập thông qua truy cập vào CSP Các cơ chế an toàn vật lý yêu cầu ở Mức an toàn 3
Trang 20mặt vật lý, sử dụng hoặc sửa đổi mô- đun mật mã khá cao Các cơ chế an toàn vật lý
có thể bao gồm việc sử dụng rào chắn mạnh và chu trình phát hiện/phản ứng với các can thiệp để hủy bỏ tất cả CSP dạng rõ khi có hành động mở nắp/tháo vỏ các mô- đun mật mã
Mức an toàn 3 yêu cầu các cơ chế xác thực dựa trên định danh (identity- based authentication), đây là sự nâng cao so với cơ chế xác thực dựa trên vai trò (role-based authentication) ở Mức an toàn 2 Mô- đun mật mã sẽ xác thực định danh của một tác
tử (người dùng, tiến trình máy) và xác nhận rằng tác tử này đủ thẩm quyền để được đưa vào một nhóm người dùng xác định nào đó và nó có thể thực thi một tập dịch vụ thích hợp được chỉ định cho nhóm đó
Mức an toàn 3 yêu cầu đầu vào và đầu ra của CPS dạng rõ (bao gồm cả đầu vào và đầu ra của CPS dạng rõ sử dụng thủ tục phân chia tri thức) phải được thực thi trên các cổng tách biệt về mặt vật lý hoặc các giao diện tách biệt về mặt lôgic, các giao diện này liên lạc với nhau bằng đường truyền tin cậy Các CPS có thể được nhập vào hoặc xuất ra từ mô- đun mật mã ở dạng đã mã hóa (vì thế có thể chuyển đi trên các hệ thống không an toàn)
Mức an toàn 3 cho phép các thành phần phần mềm hoặc phần sụn trong mô-đun mật mã được thực thi trên các hệ thống máy tính đa mục đích nhưng hệ điều hành phải thỏa mãn các yêu cầu chức năng đưa ra bởi PP (ở Phụ lục B của tiêu chuẩn FIPS 140-
2) và được đánh giá đạt EAL3 + ADV_SPM.1 theo CC
Mức an toàn 4
Đây là mức an toàn cao nhất Ở mức an toàn này, các cơ chế an toàn vật lý cung cấp một vỏ bọc hoàn chỉnh để bảo vệ mô- đun mật mã hướng đến việc phát hiện và phản ứng với tất cả các cố gắng truy cập trái phép về vật lý Việc thâm nhập vào mô- đun mật mã theo mọi hướng sẽ bị phát hiện với khả năng rất cao và kết quả là tất cả CSP dạng rõ sẽ được hủy bỏ ngay lập tức Mô-đun mật mã có Mức an toàn 4 thích hợp cho việc sử dụng trong các môi trường không có sự bảo vệ về mặt vật lý
Mức an toàn 4 cũng bảo vệ mô- đun mật mã khỏi bị tổn thương về an toàn trong các điều kiện môi trường hoặc sự thay đổi bất thường vượt khỏi điều kiện hoạt động thông thường của mô- đun như về điện thế và nhiệt độ Việc thay đổi có chủ ý vượt ra khỏi điều kiện hoạt động thông thường có thể được kẻ tấn công sử dụng để phá vỡ sự phòng thủ của mô- đun mật mã Một mô- đun mật mã yêu cầu phải được thiết kế các tính năng bảo vệ trong môi trường cụ thể nhằm đáp ứng vấn đề thay đổi và hủy bỏ CSP hoặc phải vượt qua được quá trình kiểm tra lỗi nghiêm ngặt nhằm đảm bảo chắc chắn rằng mô-đun sẽ không bị ảnh hưởng bởi các tác động vượt quá điều kiện hoạt động thông thường, dẫn đến việc bị can thiệp về mặt an toàn
Mức an toàn 4 cho phép phần mềm hoặc phần sụn trong mô- đun mật mã hoạt động trên các hệ thống máy tính đa mục đích nhưng hệ điều hành phải thỏa mãn các
Trang 21yêu cầu chức năng đưa ra bởi PP (ở Phụ lục B của tiêu chuẩn này) và được đánh giá đạt EAL4 theo CC
Tương ứng với bốn Mức an toàn nói trên, tiêu chuẩn này đưa ra các yêu cầu thích hợp cho từng mức an toàn Ở mức an toàn càng cao thì yêu cầu đưa ra càng chặt chẽ Các yêu cầu an toàn đưa ra liên quan đến việc thiết kế và thực thi an toàn một mô- đun mật mã, xuất phát từ các mục tiêu an toàn về mặt chức năng ở mức cao nhằm mục đích:
- Triển khai và thực thi các chức năng an toàn đã được phê duyệt để bảo vệ thông tin nhạy cảm
- Bảo vệ mô- đun mật mã khỏi việc bị sử dụng hoặc hoạt động trái phép
- Ngăn ngừa sự tiết lộ nội dung của mô- đun mật mã, bao gồm khóa mã và CSP dạng rõ
- Ngăn ngừa việc sửa đổi trái phép mà không bị phát hiện đối với mô- đun mật mã
và các thuật toán mật mã, đó là các sửa đổi, thay thế, chèn thêm và xóa bỏ trái phép khóa mã cũng như CPS
- Cung cấp các biểu thị về trạng thái hoạt động của mô-đun mật mã
- Đảm bảo rằng mô- đun mật mã hoạt động chính xác trong các chế độ hoạt động
đã được phê chuẩn
- Phát hiện ra các lỗi trong quá trình hoạt động của mô- đun mật mã và ngăn chặn
sự tiết lộ dữ liệu nhạy cảm cũng như CSP từ kết qủa của các lỗi này
- Thực trạng đánh giá và sử dụng mô-đun mật mã
- Chương trình phê chuẩn mô- đun mật mã (CMVP - Cryptographic Module Validation Program) được xây dựng để công nhận các mô-đun mật mã phù hợp với FIPS 140-1/FIPS 140- 2 và một số tiêu chuẩn cơ sở khác CMVP được thực hiện với sự kết hợp của NIST (Mỹ) và Cơ quan an toàn thông tin CSE (Canada) Các sản phẩm được công nhận là phù hợp với FIPS 140- 2 theo chương trình này
sẽ được chấp nhận ở tất cả các cơ quan của cả hai chính phủ và được sử dụng để bảo vệ thông tin nhạy cảm của các cơ quan này Mục tiêu của CMVP là thúc đẩy việc sử dụng các mô- đun mật mã đã qua phê duyệt và cung cấp cho người sử dụng một thước đo về an toàn khi dùng các thiết bị bảo vệ thông tin có chứa các mô- đun mật mã Theo CMVP, nhà sản xuất mô- đun mật mã hoàn toàn độc lập với các phòng kiểm thử đã được công nhận Chương trình công nhận các phòng kiểm thử quốc gia (NVLAP) chứng nhận cho các phòng kiểm thử đủ điều kiện đánh giá mô- đun mật mã
- Theo khảo sát thì hầu hết các sản phẩm BM&ATTT được đánh giá theo CC, khi
có chứa một mô- đun mật mã thì mô-đun mật mã cũng đồng thời được đánh giá theo FIPS 140-1/FIPS 140- 2
Trang 22Bảng 1-1 Tỉ lệ các sản phẩm được đánh giá theo từng năm
ISO/IEC 27001 là tiêu chuẩn quy định các yêu cầu đối với việc xây dựng và áp dụng hệ thống quản lý an toàn thông tin (Information Security Management System – ISMS) nhằm đảm bảo tính bảo mật, tính nguyên vẹn và tính sẵn sàng đối với tài sản thông tin của các tổ chức/doanh nghiệp Việc áp dụng một hệ thống quản lý an toàn thông tin sẽ giúp các tổ chức/doanh nghiệp ngăn ngừa, hạn chế các tổn thất trong sản xuất, kinh doanh liên quan tới việc hư hỏng, mất mát các thông tin, dữ liệu quan trọng
Bộ tiêu chuẩn ISO/IEC 27000 gồm các tiêu chuẩn sau:
- ISO/IEC 27000 quy định các vấn đề về từ vựng và định nghĩa (thuật ngữ)
- ISO/IEC 27001:2005 các yêu cầu đối với hệ thống quản lý an toàn thông tin
- ISO/IEC 27002:2007 qui phạm thực hành mô tả mục tiêu kiểm soát an toàn thông tin một các toàn diện và bảng lựa chọn kiểm soát thực hành an toàn tốt nhất
- ISO/IEC 27003:2007 các hướng dẫn áp dụng
- ISO/IEC 27004:2007 đo lường và định lượng hệ thống quản lý an toàn thông tin
để giúp cho việc đo lường hiệu lực của việc áp dụng ISMS
- ISO/IEC 27005 quản lý rủi ro an toàn thông tin
- ISO/IEC 27006 hướng dẫn cho dịch vụ khôi phục thông tin sau thảm hoạ của công nghệ thông tin và viễn thông
- Hiện nay, việc áp dụng hệ thống quản lý an toàn thông tin ISO/IEC 27001 đã được triển khai rộng khắp ở hầu hết các quốc gia trên thế giới Tại Việt nam, thời gian qua một số tổ chức ngân hàng, tài chính,công nghệ thông tin,… cũng bắt đầu quan tâm triển khai áp dụng hệ thống này và bước đầu đã có được những kết quả nhất định
Đối tượng áp dụng
Tiêu chuẩn ISO/IEC 27001:2005 có thể được áp dụng rộng rãi cho nhiều loại hình
tổ chức ( các tổ chức thương mại, cơ quan nhà nước, các tổ chức phi lợi nhuận… ) Đặc biệt là các tổ chức mà các hoạt động phụ thuộc nhiều vào công nghệ thông tin, máy tính, mạng máy tính, sử dụng cơ sở dữ liệu như: ngân hàng, tài chính, viễn thông,…Một hệ thống ISMS hiệu lực, phù hợp, đầy đủ sẽ giúp bảo vệ các tài sản
Trang 23thông tin cũng như đem lại sự tin tưởng của các bên liên quan như đối tác, khách hàng… của tổ chức
ISO/IEC 27001 là một phần của hệ thống quản lý chung của các tổ chức, doanh nghiệp
do vậy có thể xây dựng độc lập hoặc kết hợp với các hệ thống quản lý khác như ISO
9000, ISO 14000
Lợi ích
1 Chứng tỏ sự cam kết đảm bảo sự an toàn về thông tin ở mọi mức độ
2 Đảm bảo tính sẵn sàng và tin cậy của phần cứng và các cơ sở dữ liệu
3 Bảo mật thông tin, tạo niềm tin cho đối tác, khách hàng
4 Giảm giá thành và các chi phí bảo hiểm
5 Nâng cao nhận thức và trách nhiệm của nhân viên về an ninh thông tin
Các bước triển khai
Về cơ bản, các bước triển khai hệ thống ISO/IEC 27001 có nhiều điểm tương đồng với áp dụng ISO 9000 & ISO 14000… Tuy nhiên, đây là hệ thống quản lý an toàn thông tin nên có một số điểm cần chú trọng khi xây dựng như: xác định đầy đủ các tài sản thông tin, nhận biết và đánh giá mối nguy, lựa chọn các biện pháp xử lý mối nguy thích hợp…
Các bước cơ bản cần thực hiện để đạt được chứng nhận hệ thống quản lý an toàn thông tin ISO/IEC 27001:
1) Cam kết của Lãnh đạo về xây dựng hệ thống quản lý an toàn thông tin cho tổ chức 2) Phổ biến, đào tạo nhận thức về tiêu chuẩn ISO/IEC 27001 cho cán bộ
3) Thiết lập hệ thống tài liệu theo yêu cầu tiêu chuẩn ISO/IEC 27001
4) Xây dựng chính sách, mục tiêu và phạm vi của hệ thống ISMS
5) Phân tích, đánh giá các rủi ro về an toàn thông tin trong phạm vi của hệ thống 6) Thiết lập các biện pháp kiểm soát rủi ro
7) Lựa chọn mục tiêu và các biện pháp kiểm soát
hệ thống quản lý khác như ISO 9000, ISO 14000…
Ngoài các tiêu chuẩn trên, Điều 38 của chương V trong bản dự thảo Luật an toàn thông tin số có quy định rõ các chứng nhận, công bố hợp quy và đánh giá, kiểm định
an toàn thông tin
Trang 24Như vậy, các tiêu chuẩn vừa được giới thiệu được sử dụng để đánh giá hệ thống an toàn thông tin và các module mật mã Tuy nhiên, do giới hạn về mặt thời gian, phạm
vi của luận văn chỉ đi đánh mức độ an toàn bảo mật của cổng thông tin điện tử theo các bước 5,6,7 trong tiêu chuẩn ISO/IEC 27001
1.2.2 Công cụ phân tích, dò quét lỗ hổng bảo mật trong cổng thông tin điện tử a) Công cụ dò quét lỗ hổng cổng thông tin điện tử
Trong quá trình đánh giá an ninh của một ứng dụng web, kỹ thuật dò quét lỗ hổng của web site là một việc vô cùng quan trọng và đòi hỏi một công cụ phát hiện tinh vi Điều tối quan trọng trong kỹ thuật quét bảo mật web không phải ở số lượng các cuộc tấn công mà một máy quét có thể phát hiện, mà là sự phức tạp và triệt để khi quét lỗi SQL injection, Cross Site Scripting và các lỗ hổng quan trọng khác
Một số công cụ được sử dụng để dò quét lỗ hổng website đó là:
Acunetix web Vulnerability Scanner
Acunetix WVS tự động kiểm tra các ứng dụng Web để tìm kiếm các lỗ hổng bảo mật như SQL Injection, hay Cross-Site Scripting, tìm kiếm những chính sách đối với mật khẩu đăng nhập cũng như các phương thức xác thực vào Web Site Với giao diện đồ họa thân thiện, những Report đầy đủ cho phép bạn kiểm tra những vấn đề trên máy chủ và ứng dụng Web
Bkav Scan
Được chạy trên nền tảng điện toán đám mây, WebScan của Bkav cho phép người dùng kiểm tra an ninh website của mình mà không cần phải cài đặt Người dùng chỉ cần truy cập web scan.bkav.com.vn và thực hiện quét Công cụ này cũng có thể đồng thời kiểm tra nhiều website
AppScan
AppScan cho phép kiểm tra những ứng dụng được phát triển trên nền web, dễ dàng kiểm tra và phát hiện lỗ hổng AppScan kiểm tra nhiều lỗ hổng bảo mật, như Cross-Site Scripting, HTTP Response Spliting, và một vài dạng tấn công phổ biến khác, phát hiện các Trojan và Backdoor đang tồn tại trên máy chủ Web và nhiều hơn nữa
Webinspect
Một công cụ tìm kiếm lỗ hổng trên ứng dụng Web rất hiệu quả SPI Dynamics‟ WebInspect với những công cụ trợ giúp người dùng nhận dạng ra những lỗ hổng bảo mật trên ứng dụng Web WebInspect có thể giúp kiểm tra các Web Server cấu hình đã chuẩn chưa, và cố gắng thử một vài dạng tấn công như Prameter Injection, Cross-site Scripting, Directory Traversal
Whisker/Libwhisker
Một công cụ với thư viện mở rất phong phú giúp tìm kiếm các lỗ hổng bảo mật trên ứng dụng Web Libwhisker một tính năng của ngôn ngữ Perl – Module cho phép kiểm tra ứng dụng HTTP Cung cấp những tính năng giúp kiểm tra máy chủ HTTP bằng cách lấy những sự hiểu biết về bảo mật, những nguy cơ tấn công để kiểm tra các lỗ
Trang 25hổng bảo mật Whisker là một công cụ tìm kiếm lỗ hổng bảo mật sử dụng Libwhisker nhưng giờ có công cụ khác hiệu quả hơn đó là Nikto cũng sử dụng Libwhisker
N-Sealth
Là một phiên bản thương mại, ứng dụng cho việc tìm kiếm các lỗ hổng bảo mật trên máy chủ Web Phần mềm tự động update thường xuyên hơn các phần mềm miễn phí như Whisker/libwhisker hay Nikto, nhưng nhiều lỗi mới trên Web cũng không phát hiện kịp thời và nhanh chóng Phần mềm bao gồm hơn 30.000 lỗ hổng có thể Scan và khai thác trực tiếp, cùng với hàng tá những cập nhật hàng ngày Dễ dàng triển khai kết hợp với những Scan lỗ hổng bảo mật khác như: Nessus, ISS Internet Scanner, Retina, SAINT và Sara, bao gồm các tính năng khác N-sealth là phiên bản chỉ dành riêng cho Windows và không thể download Source Code
Nikto
Là một phần mềm mã nguồn mở với tính năng Web Server Scanner, tính năng kiểm tra các máy chủ Web Bao gồm hơn 3200 phương thức nhận diện các file, lỗi logic nguy hiểm, hỗ trợ hơn 625 phiên bản Web Server, bao gồm những lỗi trên 230 Web Server khác nhau Tính năng Scan kết hợp với các Plugins luôn được update tự động đảm bảo đưa ra kết quả đầy đủ và chính xác nhất Là một công cụ rất hữu hiệu nhưng không được update thường xuyên Các lỗi mới nhất thường được update chậm
và không thể tìm thấy
Như vậy, có rất nhiều công cụ được sử dụng để phân tích và dò quét lỗ hổng trong các website, webserver trên thị trường Trên đây chỉ là một số công cụ được giới thiệu với những đặc trưng và thế mạnh riêng Trong đó một số công cụ như Acunetix, AppScan hay Webscan là những công cụ được sử dụng rộng dãi vì chúng có thể phát hiện được các lỗ hổng nghiêm trọng và có ảnh hưởng lớn sự an toàn bảo mật website, nhờ vào các thuật toán, nền tảng công nghệ Chi tiết về các cộng cụ này sẽ được giới thiệu sâu hơn trong phần 2.4 của luân văn
b) Công cụ phân tích gói tin và sniffer
Wire Shark
Một chương trình tóm gói tin Sniffer Packet hay nhất Wireshark là một tool viết
bằng mã nguồn mở hỗ trợ phân tích các giao thức trên Unix và Windows Nó cho phép lấy thông tin hiệu quả từ các giao tiếp trên mạng sau đó save vào đĩa cưng Bạn có thể
có nhiều lựa chọn trong việc tóm các giao tiếp trên mạng, bạn cũng có thể phân tích nội dung của các gói tin cụ thể Wireshark có nhiều tính năng mạnh mẽ bao gồm một chế độ lọc thông tin hiệu quả, cho phép chúng ta xem từng phiên, từng giao tiếp trên mạng Nó cũng hỗ trợ hàng trăm giao thức khác nhau Một trong các lý do Wireshark
thay thế Ethereal đó là các lỗ hổng bảo mật của nó
Webscarab
Trang 26Một khung hoạt động cho phép phân tích các ứng dụng giao tiếp sử dụng giao thức HTTP và HTTPS Một dạng rất đơn giản, WebScarab lưu các Request và Response cho phép tái sử dụng trong các phiên làm việc khác WebScarab được thiết kế cho mọi người muốn xem hoạt động của các ứng dụng sử dụng giao thức HTTP(S), tuy nhiên công cụ này cũng cho phép phát triển và sửa những lỗi khó, hoặc cho phép nhận biết những lỗ hổng bảo mật trên các ứng dụng được thiết kế và triển khai
Kismet
Một tool rất hiệu quả để Sniffer gói tin trên mạng Wireless Kismet là một chương trình với giao diện command hỗ trợ giao thức 802.11 với tính năng Network Detector, Sniffer, và hoạt đông như một thiết bị giám sát IDS Nó tự động phát hiện những gói tin thuộc các Protocol như TCP, UDP, ARP, và các gói tin DHCP, được ghi lại bằng Wireshark/TCPDump Tools này còn được sử đụng để Wardriving, Warwalking, và wareflying
KisMac
Giao diện đồ họa để thực hiện Sniffer trên hệ điều hành Mac OS X Công cụ rất phổ biến cho máy Mac OS X thường là một tính năng và được đổi tên là Kismet Không như giao diện console của Kismet, KisMAC có giao diện đồ họa dễ dàng thực hiện và lọc các kết quả Sniffer được trên môi trường đồ họa.Kết hợp với Pcap cho phép import các kết quả và vài khả năng giải mã cho phép thực hiện xác thực vào các
Do đó nó hỗ trợ ít tính năng hơn, nó rất hiệu quả trong xác định những yếu tố nào đang làm cho hệ thống mạng bị nghẽn, các giao tiếp thực tế chiếm băng thông trên mạng
Ettercap
Với tính năng Sniffer trên môi trương LAN Switch hiệu quả và bảo mật Ettercap với tính năng Network sniffer/interceptor/logger trên mạng LAN Công cụ này cũng hỗ trợ nhiều giao thức khác nhau Ngoài tính năng trên giao diện hợp lý và tính năng lọc kết quả cũng khá hấp dẫn Có nhiều mức độ có thể triển khai mang lại hiệu quả cao trong quá trình Sniffering, nhiều Plugins đã hỗ trợ Hỗ trợ LAN Switch
và có khả năng OS fingerprint (đoán hệ điều hành của các máy tính online trên mạng)
NetStumbler
Là một công cụ miễn phí trên Windows thực hiện Sniffer trên chuẩn 802.11 Netstumbler được biết đến như một công cụ tốt nhất trên Windows để tìm kiếm những
Trang 27Access Points đang hoạt động Nó cũng có phiên bản cung cấp cho WinCE cho các PDA với tên gọi là Ministumbler Đây là một Tool hoàn toàn miễn phí nhưng Code của nó không được cung cấp miễn phí Nó sử dụng để tìm kiếm Wireless Access Point hiệu quả hơn Kismet và KisMAC
Ngrep
Ngrep được cung cấp bởi GNU, được áp dụng trên lớp Network của mô hình OSI Ngrep cho phép hiển thị thông tin Sniffer được dưới nhiều dạng như ở dạng bình thường là Hexa.Với tính năng lọc khá tốt và thường kết hợp với tcpdump và snoop Tóm lại, nói về các công vụ Sniffer và phân tích gói tin thì mỗi công cụ đều có những ưu điểm riêng Một số công cụ có giao diện đồ hoạ đẹp và dễ sử dụng như: Wire shark hay KisMac, cũng có một số công cụ tuy giao diện đồ hoạ không tốt nhưng
lại tốn ít tài nguyên và yêu cầu phần cứng thấp hơn như Tcpdump Tuỳ thuộc vào các
Hệ điều hành, hệ thống mạng khác nhau như LAN, Wireless lại có những công cụ hỗ trợ việc phân tích và sniffe khác nhau Như vậy, tuỳ vào mục đích sử dụng và quan điểm của từng người, họ sẽ có thể lựa chọn cho mình những công cụ phù hợp và mang lại hiệu quả cao Tuy nhiên, hiện nay công cụ Wire shark được sử dụng nhiều hơn cả
vì nó đáp ứng được yêu cầu của nhiều đối tượng sử dụng
c) Công cụ dò tìm mật khẩu
GFILANguard
FI LANguard Network Security Scanner (N.S.S.) có lẽ là một công cụ thông dụng nhất đối với những nhà quản trị mạng GFI sẽ quét toàn bộ hệ thống mạng (OS và application) của bạn để dò tìm những lỗ hổng mà hacker có thể lợi dụng để tấn công Nói theo cách khác, GFI sẽ đóng vai trò là một hacker mũ trắng để dò tìm lỗ hổng, sau
đó nó sẽ gửi message cho người quản trị (thường là gửi mail theo như cấu hình mặc định) để thông báo về những lỗ hổng trong hệ thống Điều này sẽ giúp cho người quản trị có được thông tin kịp thời và nhanh chóng khắc phục trước khi hacker thật sự tấn công
Cain & Abel
Trên hệ thống UNIX thường dùng các tài nguyên miễn phí còn trên nền tảng Windows thì thường không phải như vậy Trên nền tảng Windows có nhiều Tools cho phép Crack password nhưng rất ít tools cho phép tóm các gói tin trên mạng giải mã ngược lại để lấy được Password mong muốn Cain & Abel là một tools vừa có thể Crack Password trên windows khi ngồi tại máy tính hay có thể tóm các gói tin trên mạng và giải mã ngược lại sử dụng: Dictionary và Bruforce Attack
Ngoài ra Cain & Abel là một công cụ Sniffer khá hiệu quả
d) Công cụ an ninh mạng
Nmap
Trang 28Scan tất cả những gì có thể Scan được trên Network Một Scanner đa chức năng
mà cũng luôn cả đa các OS
Tuy niên, sở dĩ Nmap được sử dụng rộng rãi bởi vì nó các phiên bản tương ứng với các OS khác nhau (Unix, Linux, Windows)
Nmap hỗ trợ nhiều kỹ thuật scan port bao gồm các kỹ thuật như : TCP, XMAS, SYN, Null Scan, Windows Scan, ACK Scan
Squared HiJackFree
Spyware là một trong số những phiền toái “ngán ngẩm” nhất khi PC mắc phải Không giống như virus, spyware thường hoạt động ngầm trên hệ thống để tìm cách đánh cắp thông tin dữ liệu người dùng Đó là lý do vì sao để bảo vệ máy tính tốt hơn, người dùng nên sắm thêm một công cụ ngăn spyware hiệu quả HiJackFree là một giải pháp thật sự hữu ích khi có thể bổ sung tính năng cho trình diệt virus đã có trên máy Ngoài khả năng ngăn ngừa tức thời spyware khi chúng xâm nhập vào máy, HiJackFree còn có thể quét toàn bộ hệ thống để phát hiện và tận diệt Ngoài ra, HiJackFree cung cấp một số tiện ích nhỏ gọn khá hữu dụng như công cụ thống kê chương trình nào đang sử dụng các cổng TCP của bạn, các chương trình khởi động cùng máy
Như vậy, có rất nhiều công cụ được sử dụng để ngăn chặn spyware hay virus, là một trong những vấn đề đáng lo ngại của người dùng máy tính Các công cụ vừa được giới thiệu giúp mang lại những thông tin hữu ích trong việc phòng ngừa chúng Tuy nhiên, trong số những công cụ trên, Nmap là công cụ được sử dụng rộng rãi hơn cả vì
nó có thể sử dụng cho nhiều hệ điều hành vào Scan port với nhiều kỹ thuật khác nhau
e) Công cụ dùng trong mạng wireless
Vistumbler
Vistumbler là chương trình phân tích sóng Wi-Fi mã nguồn mở đầu tiên được phát hành vào năm 2007 và được cập nhật mới nhất vào năm 2010 Vistumbler hiển thị thông tin cơ bản về AP, bao gồm chính xác cách mã hóa và xác thực, cả SSID và RSSI của AP
InSSIDer
Trang 29InSSIDer là phần mềm phân tích sóng Wi-Fi mã nguồn mở khá mới hiện nay, cho phép hiển thị thông tin chi tiết về danh sách các AP, tuy nhiên InSSIDer chỉ hiển thị được RSSI mà không hiển thị chính xác phương thức xác thực của AP, không hiển thị được nhiễu và tỉ lệ nhiễu trên tín hiệu (SNR)
NetSurveyor
NetSurveyor là công cụ miễn phí nhưng ở dạng nguồn đóng, được cập nhật lần cuối vào năm 2009, khi thực thi sẽ hiển thị các thông tin cơ bản của các AP, nhưng các thông tin về phương thức xác thực và mã hóa lại không được hiển thị chi tiết (chỉ cho biết có hay không có mã hóa) và không cho phép người dùng tùy biến bất cứ điều gì
Kismet
Kismet là phần mềm mã nguồn mở rất nổi tiếng, chuyên phân tích, bắt gói tin và phát hiện xâm nhập, chạy trên các hệ điều hành Windows, MacOS X, Linux và BSD Kismet hiển thị thông tin chi tiết về các AP, bao gồm cả SSID của các mạng ẩn, báo cáo mức độ nhiễu, mức độ nhiễu trên tín hiệu Bạn có thể bắt các gói tin được truyền
đi qua mạng không dây ở dạng thô và lưu lại thành file PCAP, từ đó bạn có thể dùng các công cụ khác như Wireshark, TCPdump để phân tích tiếp
Xirrus Wi-Fi Inspector
Là phần mềm nguồn đóng miễn phí, cùng với việc hiển thị thông tin chi tiết về các
AP, Xirrus Wi-Fi Inspector cung cấp bộ Radar và hiển thị một biểu đồ theo từng quãng 8 phút Xirrus Wi-Fi Inspector cũng hiển thị tín hiệu, địa chỉ của các kết nối hiện tại Ngoài ra, Xirrus Wi-Fi Inspector cung cấp một công cụ đơn giản cho phép bạn kiểm tra các thành phần chính trong kết nối mạng và liên kết đến trang kiểm tra tốc độ và chất lượng kết nối
Meraki Wi-Fi Stumbler
Là phần mềm dạng Web-based (giao diện web), có thể sử dụng miễn phí trên trang của Meraki tại địa chỉ: http://tools.meraki.com/stumbler Meraki Wi-Fi Stumbler hỗ trợ hầu hết tất cả các loại trình duyệt trên các máy tính Mac, PC và có thể chạy ở chế
độ ngoại tuyến (offline) Meraki Wi-Fi Stumbler cung cấp những thông tin cơ bản của
AP như: mức tín hiệu, biểu đồ dạng cột cho mỗi kênh
KisMAC
Nếu bạn là người dùng Mac, có thể KisMAC sẽ hữu ích cho bạn, đây là công cụ an ninh và phân tích rất tốt Gần tương tự như Kismet, KisMAC có thể tìm được những mạng Wi-Fi ẩn Ngoại trừ chạy trên hệ điều hành MAC OS, các chức năng của KisMAC giống như Kismet
Kết chương: Như vậy, qua chương này chúng ta đã phần nào nắm được thực trạng của
vấn đề mất an toàn bảo mật thông tin Đặc biệt là mất an ninh an toàn trong cổng thông tin điện tử Vấn đề đặt ra là cần có giải pháp để đánh giá được mức độ an toàn bảo mật
Trang 30thông tin Trong chương 1 cũng đã trình bày tổng quan về các tiêu chí và công cụ để đánh giá sản phẩm an toàn bảo mật thông tin Tuy nhiên để có thể hiểu được sâu hơn
về mặt kỹ thuật cũng như hệ thống các công cụ đánh giá an toàn bảo mật thông tin, chương 2 của luận văn sẽ trình bày chi tiết vấn đề này
CHƯƠNG II: NGHIÊN CỨU CÁC KỸ THUẬT PHÂN TÍCH, DÒ QUÉT
VÀ LỰA CHỌN CÔNG CỤ ĐÁNH GIÁ CỔNG THÔNG TIN ĐIỆN TỬ
2.1 Nghiên cứu một số lỗ hổng trong cổng thông tin điện tử
2.1.1 SQL injection
a Khái niệm
Đây là lỗ hổng có ảnh hưởng trực tiếp tới cơ sở dữ liệu của website Đây không chỉ là khuyết điểm của riêng SQL Server mà nó còn là vấn đề chung cho toàn bộ các
cơ sở dữ liệu khác như Oracle, MS Access hay IBM DB2
Khi hacker gửi những dữ liệu (thông qua các form), ứng dụng Web sẽ thực hiện và trả về cho trình duyệt kết quả câu truy vấn hay những thông báo lỗi có liên quan đến
cơ sở dữ liệu Và nhờ những thông tin này mà hacker biết được nội dung cơ sở dữ liệu
và từ đó có thể điều khiển toàn bộ hệ thống ứng dụng
b Nguyên nhân lỗi
SQL injection là lỗi trong quá trình lập trình Web về phần truy xuất cơ sở dữ liệu của lập trình viên
- Lập trình viên vẫn thường mắc những lỗi cơ bản khi áp dụng vào ứng dụng web
do không hiểu rõ hết các đặc điểm mã hóa Những lỗi thông thường bao gồm: không mã hóa dữ liệu quan trọng như khóa, certificates và mật khẩu, lưu trữ các khóa bảo mật trong bộ nhớ bằng các cơ chế không an toàn, cơ chế tạo số ngẫu nhiên không đảm bảo, sử dụng sai thuật toán
- Dữ liệu do người dùng nhập vào được sử dụng trực tiếp làm thành phần của câu truy vấn mà không qua bước kiểm tra
- Kiểm tra kĩ giá trị nhập vào của người dùng, thay thế những kí tự như „ ; v v
- Hãy loại bỏ các kí tự meta như “',",/,\,;“ và các kí tự extend như NULL, CR, LF, trong các string nhận được từ:
o Dữ liệu nhập do người dùng đệ trình
o Các tham số từ URL
Trang 31o Các giá trị từ cookie
Đối với các giá trị numeric, hãy chuyển nó sang integer trước khi thực hiện câu truy vấn SQL, hoặc dùng ISNUMERIC để chắc chắn nó là một số integer
Dùng thuật toán để mã hoá dữ liệu
2.1.2 XSS
a Khái niệm
XSS là một lỗ hổng có thể phát sinh ở các phần của một website, nơi mà người
dùng có thể nhập dữ liệu vào và sau đó nhận được một cái gì đó Chủ yếu XSS nằm ở phần: search, error message, web form
Đây là một lỗ hổng phổ biến, có rất nhiều trang web bị mắc phải lỗi này, chính vì thế lỗ hổng này ngày càng được nhiều người quan tâm
b Nguyên nhân gây lỗi
- Người thiết kế ứng dụng web không kiểm tra kỹ dữ liệu do người dùng nhập vào
- Các biến không được người lập trình xử lý trước khi hiện ra trình duyệt
c Giải pháp và cách phòng chánh
- Với những dữ liệu, thông tin nhập của người dùng, người thiết kế ứng dụng Web
cần phải thực hiện vài bước cơ bản sau:
- Tạo ra danh sách những thẻ HTML được phép sử dụng
- Xóa bỏ thẻ <script>
- Lọc ra bất kì một đoạn mã JavaScript/Java/VBScript/ActiveX/Flash Related nào
- Lọc dấu nháy đơn hay kép
- Lọc kí tự Null ( vì khả năng thêm một đoạn mã bất kì sau kí tự Null khiến cho ứng dụng dù đã lọc bỏ Script vẫn không nhận ra do ứng dụng nghĩ rằng chuỗi đã kết thức từ kí tự Null này
- Đối với người dùng, cần cấu hình lại trình duyệt để nhắc nhở người dùng có cho thực thi ngôn ngữ kịch bản trên máy của họ hay không? Tùy vào mức độ thực thi nguồn tin mà người dùng sẽ quyết định
- Lỗi XSS có thể tránh được khi máy chủ Web đảm bảo những trang phát sinh được mã hoá thích hợp Tuy nhiên việc mã hoá tất cả dữ liệu không đáng tin cậy
có thể tốn tài nguyên và ảnh hưởng đến khả năng thực thi của một số máy chủ
Trang 32có thể lừa người dùng thực hiện một số tác vụ lên ứng dụng bị lỗi CSRF như xóa bài, thêm người dùng, thay đổi email, thay đổi mật khẩu của nạn nhân
b Nguyên nhân lỗi
Nguyên nhân dẫn tới lỗi này là do lập trình viên không tuân thủ các quy tắc bảo vệ CSRF khi thiết kế và sử dụng câu lệnh trên cơ sở dữ liệu Ngoài ra việc sử dụng phương thức Post trong các form hoặc thực thi đầu cuối cũng là nguyên nhân gây ra lỗ hổng này
c Cách phòng tránh
Dựa trên nguyên tắc của CSRF là “lừa trình duyệt của người dùng (hoặc người dùng) gửi các câu lệnh HTTP”, các kỹ thuật phòng tránh sẽ tập trung vào việc tìm cách phân biệt, hạn chế các câu lệnh giả mạo Có nhiều lời khuyến cáo được đưa ra, tuy nhiên cho đến nay vẫn chưa có biện pháp nào có thể phòng chống triệt để CSRF Sau đây là một số kỹ thuật được sử dụng
- Trang web gây ra những thay đổi về trạng thái như chèn cơ sở dữ liệu, sử dụng các thông báo xác nhận
Theo báo cáo thì nhiều người nghĩ rằng việc yêu cầu xác nhận cho những hành động của người dùng cung cấp khả năng bảo vệ, chống lại được CSRF
- Sử dụng POST
Mọi kịch bản của tệp… đòi hỏi sử dụng HTTP POST Điều này là do bản chất nền tảng của web Các trang sử dụng phương thức GET thì các thông số có thể được đánh dấu, lưu trữ và di chuyển Vì vậy các yêu cầu GET bị gửi các kịch bản làm thay đổi dữ liệu là điều không mong muốn Do đó các form có ảnh hưởng như vậy nên dùng phương thức POST và các thực thi đầu-cuối nên tìm các tham
số POST Bên cạnh hiệu quả này thì nó còn giúp chống lại các yêu cầu nhúng ảnh trong các cuộc tấn công CSRF Tuy nhiên có rất nhiều trang web trên internet với các lỗ hổng XSS vì vậy kẻ tấn công có thể dễ dàng tìm thấy một trang web từ đó khởi động một cuộc tấn công dựa trên POST Điều này không phải nói rằng các ứng dụng web không nên sử dụng phương thức POST nhưng
nó cũng không có nghĩa là đảm bảo an toàn
- Sử dụng Captcha
Captcha được dùng để ngăn chặn các kịch bản tự động từ các form đệ trình trên trang web Đó là một quá trình một máy tính yêu cầu một người dùng hoàn tất một kiểm tra đơn giản mà máy tính có thể dễ dàng tạo ra và đánh giá nhưng không thể tự nó giải quyết được Chúng thường đưa ra hình ảnh méo mó của những văn bản và yêu cầu người dùng nhập lại Vì máy tính không thể tự giải
Trang 33quyết Captcha nên bất kỳ người dùng nào nhập vào lời giải đúng sẽ được xem là con người
- Sử dụng cookie riêng biệt cho phần quản trị
- Thiết kế hệ thống log: một vài framework ghi tất cả các thông tin, dữ liệu xử lý vào các file log Điều này là rất nguy hiểm nếu như đó là các thông tin nhạy cảm như mật khẩu, số tài khoản…
2.1.4 Tràn bộ đệm
a Khái niệm
Lỗi tràn bộ nhớ đệm hay gọi tắt là lỗi tràn bộ đệmlà một lỗi lập trình có thể gây ra một ngoại lệ truy nhập bộ nhớ máy tính và chương trình bị kết thúc, hoặc khi người
dùng có ý phá hoại, họ có thể lợi dụng lỗi này để phá vỡ an ninh hệ thống
b Nguyên nhân lỗi
Phát sinh từ khả năng lập trình yếu kém của những nhà lập trình Đơn cử là sự cẩu thả trong kiểm tra kích thước dữ liệu nhập vào
c Cách phòng chánh
- Người thiết kế Web cần phải kiểm tra kĩ kích thước dữ liệu trước khi sử dụng
- Dùng Referer trong HTTP Header để kiểm tra yêu cầu có phải xuất phát từ máy người dùng
2.2 Nghiên cứu các kỹ thuật phân tích lỗ hổng cổng thông tin điện tử
2.2.1 Kỹ thuật phân tích tĩnh
Phân tích tĩnh là quá trình phân tích mã nguồn câu lệnh truy vấn SQL được tạo ra
từ đầu vào người dùng mà không cần thực thi chương trình Công việc này sẽ giúp lập trình viên hiểu biết tốt hơn về mã nguồn ứng dụng, kiểm soát được luồng dữ liệu, đồng thời phát hiện và xác định được các lỗ hổng SQL Injection có thể tiềm ẩn trong ứng dụng
Kỹ thuật phân tích tĩnh phát hiện lỗ hổng XSS
Kỹ thuật này không chỉ phát hiện các lỗ hổng XSS do không kiểm soát được các
dữ liệu không đáng tin cậy mà còn phát hiện được cả các lỗ hổng XSS do không có đủ
dữ liệu đáng tín cậy để kiểm tra
Kỹ thuật này bao gồm 2 phần
Phần 1: Phân tích chuỗi thích hợp để theo dõi các chuỗi con không đáng tin cậy Phần 2: Kiểm tra các script không đáng tin cậy sử dụng kỹ thuật ngôn ngữ hình thức[1]
2.2.2 Kỹ thuật phân tích động
Kỹ thuật phân tích động là phương pháp phân tích các thông tin nhận được trong quá trình thực thi ứng dụng để phát hiện các lỗ hổng Các thông tin này có thể bao gồm: Các phản hồi nhận được từ ứng dụng Web, các thông báo lỗi…Phân tích động có
Trang 34thể được thực hiện tại thời điểm kiểm thử ứng dụng trong quá trình phát triển xây dựng, hoặc thời điểm sau khi ứng dụng được phát hành[2]
Mục tiêu của kỹ thuật này là để phát hiện ra các lỗ hổng bảo mật trong chương trình khi nó đang thực hiện các truy vấn bất hợp pháp/ truy vấn logic sai, truy vấn UNION, truy vấn bổ sung [7]
Phương pháp phân tích động có lợi thế hơn phương pháp phân tích tĩnh vì không phải lúc nào mã nguồn của ứng dụng web cũng được công bố Tuy nhiên, những lỗ hổng này phải được vá hay sữa chữa bởi các lập trình viên, mà không phải tất cả các lập trình viên đều có thể sử dụng phương pháp này để tìm kiếm lỗ hổng trên ứng dụng
Phương pháp tiếp cận
Kỹ thuật tiếp cận này bao gồm 4 bước
Bước 1: Phục hồi cấu trúc ứng dụng Web
Giai đoạn này nhằm mục đích thu thập thông tin về cấu trúc của các ứng dụng Web cần kiểm tra, bao gồm các trang và siêu liên kết có thể kết nối tới một trang khác Về
cơ bản, trong giai đoạn này công cụ hoạt động như một trình thu thập web, bằng cách điều hướng và tải trang web (tĩnh hoặc động) dựa trên các siêu liên kết
Bước 2: Xác định các Đầu vào ứng dụng web cũng được gọi là "điểm nóng"
Giai đoạn này sẽ dựa trên cấu trúc website xây dựng được từ bước 1, để xác định các thông số đầu vào trong các form HTML Đây chính là điểm khởi đầu cho các cuộc tấn công ở bước 3
Bước 3:Thực hiện các cuộc tấn công
Trên cơ sở các thông số dễ bị tổn thương, công cụ được sử dụng trong kỹ thuật (V1p3R)bắt đầu tiêm chuỗi SQL trong đầu vào, sử dụng một bộ biến heuristic có sẵn trong cơ sở tri thức của mình Chi tiết sẽ được trình bày trong phần sau
Bước 4: Báo cáo kết quả thử nghiệm
Trang 35V1p3R sẽ tạo ra tập file log, nơi mà tất cả các bước của cuộc tấn công được ghi nhận Giai đoạn này sẽ theo dõi tất cả các thông tin về các cuộc tấn công thành công, cũng như các trang, tham số, HTTP header dễ bị tổn thương Giai đoạn này cũng sinh
ra các tri thức mới dựa trên các kết quả đầu ra chính xác hoặc không chính xác của ứng dụng web và sẽ được sử dụng để tạo ra dữ liệu thử nghiệm mới, nghĩa là lặp đi lặp lại cách tiếp cận thông qua Bước III cho đến khi nó kết thúc danh sách các thông số được liệt kê
Khai thác thông tin từ các message lỗi
Có rất nhiều kiểu message lỗi có thể trả ra nếu một trang web bị lỗi, mà từ đó có thể thực hiện các cuộc tấn công
Ví dụ:
Hình 2.1:Một thông báo lỗi được trả về liên quan tới hệ quản trị CSDL
Các thông báo này cung cấp thông tin về các hệ quản trị CSDL (Microsoft SQL Server)và dữ liệu truy cập (ODBC) Nó cũng cung cấp thông tin về phương ngữ SQL được sử dụng, (Transact-SQL trong ví dụ này)
Phía dưới là một lỗi xảy ra cho thấy các truy vấn gửi đến cơ sở dữ liệu đã được xây dựng bằng cách soạn các chuỗi được định nghĩa trong mã nguồn với các giá trị của các đầu vào mà không được thực hiện lọc
Loại thông báo lỗi thứ 2 liên quan tới cấu trúc của cơ sở dữ liệu, và giúp phát hiện
ra kiểu, tên của các trường trong các bảng
Ví dụ thông báo lỗi sau:
Hình 2.2: Một thông báo trả về liên quan tới cấu trúc CSDL
Trang 36Thông báo này cho biết trong CSDL có một bảng có tên là “user”, trong bảng này
có một trường là “id” Từ đây có thể tiếp tục tấn công để khai thác thông tin về CSDL của webiste này
Nói chung, V1p3R cố gắng so khớp các thông báo lỗi xuất ra bởi hệ thống với một thư viện các biểu thức thông thường, được xác định cho 15 mẫu lỗi sản xuất bởi 5 DBMS khác nhau
Rõ ràng, một thư viện như vậy có thể dễ dàng mở rộng thêm nhiều mẫu nữa Khi kết hợp các mẫu, như thể hiện trong ví dụ trên, dựa vào các thông tin mà ứng dụng web trả ra, nó có thể sử dụng để tiếp tục tấn công
Khai thác thông tin từ các đầu ra hợp lệ
Nếu một trang web không xuất ra các thông báo lỗi, V1p3R có thể thu thập thông tin về cấu trúc của cơ sở dữ liệu bằng cách áp dụng kỹ thuật gọi là SQL injection suy luận(inferential SQL injection) Kỹ thuật này chỉ gồm việc sẽ có được một trả lời đúng hay sai khi tiêm(injection), từ đó có thể khai thác được thông tin CSDL
Sau đây, là chi tiết về kiến trúc của công cụ hỗ trợ trong kỹ thuật này V1p3R
Hình 2.3: Kiến trúc V1p3R
Công cụ này được phát triển bằng ngôn ngữ Perl, một ngôn ngữ khá phổ biến
Đầu tiên “Crawler” sẽ thu thập thông tin và dựng lại cấu trúc trang web(bước 1) Sau đó các điểm nóng sẽ được xác định (bước 2) Từ đó “injector ” sẽ thực hiện gửi các yêu cầu tới ứng dụng web sử dụng các SQL string library(bước 3) Cuối cùng các thông báo lỗi trả ra từ ứng dụng web sẽ được so sánh với Error patterns libraray Nếu
Trang 37lỗi được xác định của DBMS nào thì V1p3R sẽ thực hiện tiêm các câu lệnh đặc biệt tương ứng Nếu một thông báo là mới, chưa xác định được của DBMS nào thì V1p3R cung cấp khản năng xác định các mẫu cơ sở dữ liệu mới và lưu chúng vào thư viện Cuối cùng là lưu các thông tin báo cáo vào Testlog(bước 4)
2.3 Thuật toán phát hiện lỗ hổng trong cổng thông tin điện tử
2.3.1 Học máy
Sử dụng một trình thu thập web để tìm các lỗ hổng trong các ứng dụng web và tạo
ra mã tấn công bằng cách sử dụng danh sách mẫu và kỹ thuật tấn công Sử dụng các
mã tấn công được tạo ra, các lỗ hổng SQL injection có thể được tìm thấy Vì phương pháp này sử dụng học máy, nên nó có hiệu quả hơn so với kiểm thử thâm nhập truyền thống Tuy nhiên, phương pháp này không thể phát hiện tất cả lỗ hổng
2.3.2 Cây phân tích cú pháp truy vấn
Cây phân tích cú pháp truy vấn SQL là một cấu trúc dữ liệu được sử dụng để phân tích cú pháp của một câu lệnh truy vấn SQL[8] Thuật toán này được dùng trong
phương pháp phân tích tĩnh Người lập trình viên ứng dụng Web cung cấp phần mã
nguồn cứng (hard - coded) của cây phân tích cú pháp và phần của người dùng cung cấp được biểu diễn như là nút lá trống trong cây phân tích cú pháp Các nút này đại diện cho chuỗi rỗng và chủ ý của người lập trình viên là cho người dùng gán các giá trị hợp lệ cho các nút lá này Các nút lá chỉ có thể là đại diện cho một nút trong kết quả truy vấn, nó phải là giá trị của một chuỗi và nó phải được đặt ở vị trí hợp lệ
Ý tưởng của thuật toán sử dụng cây phân tích cú pháp truy vấn là phân tích các truy vấn được tạo ra từ người sử dụng có tuân theo các cấu trúc cú pháp của câu lệnh truy vấn như nhà phát triển ứng dụng mong muốn hay không Do vậy, mục tiêu chính của
kỹ thuật này là để xác định xem các đầu vào do người dùng nhập xem nó có đúng với mong muốn của người lập trình hay không[8]
Trang 38Hình 2.4 Kiến trúc mô hình
Ban đầu, người dùng truyền vào một câu lệnh truy vấn SQL hoặc truyền vào các tham số để thực hiện câu truy vấn thông qua ứng dụng web sẽ được thu thập bởi “Thu thập truy vấn” Các đầu vào này sẽ được sử dụng trong pha phân tích cú pháp cây truy vấn Trong pha này, hệ thống sẽ trả ra các câu truy vấn và gửi nó tới một công cụ phân tích cú pháp Ở đây, công cụ sẽ so sánh cấu trúc của cây phân tích với cấu trúc được sinh ra theo mô hình Nếu cấu trúc của câu truy vấn được so sánh là giống thì truy vấn
là hợp lý và được quyền truy xuất vào CSDL, ngược lại thì sẽ bị từ chối và chặn lại.[6]
Để xác định cú pháp của một ngôn ngữ, người ta sử dụng văn phạm phi ngữ cảnh CFG (Context Free Grammar) hay còn gọi là văn phạm BNF (Backers Naur Form) Mục đích của phần này là xây dựng một văn phạm G để sản sinh ra câu lệnh truy vấn Xét câu lệnh truy vấn SELECT SQL đơn giản:
SELECT <select_list> FROM <from_clause> WHERE <where_clause>
Trong trường hợp này, Văn phạm G = (∑, ∆, P, S), trong đó:
- ∑: tập hợp các ký hiệu kết thúc (terminal symbols)
∑ = {SELECT, FROM, WHERE, *, OR, AND, NOT, = | < | > | <= | >= | !=}
- ∆: tập hợp các ký hiệu không kết thúc (nonterminal symbols)
Trang 39∆ = {select_statement, select_list, from_clause , where_clause, id_list, id,
table_list, boolean_condition, boolean_terminate, boolean_factor, condition, value,
comparison_operator, string_literal, number, literal}
- S ∆: là ký hiệu không kết thúc, được sử dụng làm ký hiệu bắt đầu của văn
phạm S = select_statement
- P: tập hợp các luật sinh, trong đó mỗi luật sinh bao gồm vế trái là một ký hiệu
không kết thúc, mũi tên, vế phải là một chuỗi các ký hiệu kết thúc và/hoặc các ký hiệu
không kết thúc Các luật sinh như sau:
<select_statement> → SELECT <select_list> <from_clause> <where_clause>
<select_list> → <id_list> | *
<idn> → <id> | (| <id> |)
<id_list> → <idn> | <idn>, <id_list>
<from_clause> → FROM <table_list>
<table_list> → <id_list>
<where_clause> → WHERE <boolean_condition>
<boolean_condition> → <boolean_condition> OR <boolean_terminate>
| <boolean_terminate>
<boolean_terminate> → <boolean_terminate> AND <boolean_factor>
<boolean_factor> → NOT <conditionn> | <conditionn>
<conditionn> → <condition> | (| <condition> | )
<condition> → <value> <comparison_operator> <value>
<value> → <idn> | <string_literal> | <numbern>
<numbern> → <number> | (| <number> |)
<literaln> → <literal> | (| <literal> |)
<string_literal> → „ <literaln> ‟
<comparison_operator> → = | < | > | <= | >= | !=
Với các suy dẫn như trên, ta có thể biểu diễn dưới dạng cây phân tích cú pháp truy
vấn như sau:
Trang 40SELECT <select_list> <from_clause> <where_clause>
<select_list> <from_clause> <where_clause>
Hình 2.5: Cây phân tích cú pháp cho câu truy vấn SELECT
Ví dụ: xét câu truy vấn SELECT có cú pháp cụ thể sau
SELECT * FROM usertable WHERE uname = „?‟ AND password = „?‟
Cây phân tích cú pháp của truy vấn trên sẽ nhƣ sau