HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
Ngô Thị Lan
PHAN TÍCH, DANH GIA CÁC CONG CỤ NGUON MỞ ĐIÊN HÌNH CHO
KIEM TRA LO HONG BAO MAT UNG DUNG WEB
Chuyên ngành: Khoa hoc máy tính
Mã số: 60.48.01.01
TÓM TẮT LUẬN VĂN THẠC SĨ
HÀ NỘI -2015
Trang 2Luận văn được hoàn thành tại:
HỌC VIEN CÔNG NGHỆ BƯU CHÍNH VIÊN THONG
Người hướng dẫn khoa học: PGS.TSKH Hoàng Đăng Hải
11801017077 .5 Phản biện 2: 0G TH In n0 0000 050
Luận văn sẽ được bảo vệ trước Hội đông châm luận văn thạc sĩ tại Học viện
Công nghệ Bưu chính Viễn thông
Có thê tìm hiệu luận văn tại:
- Thư viện của Học viện Công nghệ Bưu chính Viễn thông
Trang 3MO DAU
Những năm gần đây ti lệ các website tồn tại lỗ hồng bao mật khá cao, không chỉ ở trong nước mà còn trên thế giới Theo một số liệu thống kê đã được cung cấp
[3] tỉ lệ các website tồn tại lỗ héng bao mật ở Việt Nam lên đến 40% Trong khi đó
tỉ lệ này ở khu vực Châu Á là 36%, Châu Âu 15%, Châu Mỹ 5% và Châu Phi 33% Việc tan công một lỗ hong web đã trở nên khá dé dàng với những kẻ tan công, trong khi việc phòng ngừa từ phía quản trị mạng, quản trị Website còn lỏng lẻo, nhất là
đôi với các cơ quan, tô chức Nhà nước.
Những lỗ hồng bảo mật tổn tại trên website chủ yếu xuất phát từ việc thiếu quy trình kiểm tra đánh giá cũng như kinh nghiệm về lập trình an toàn của đội ngũ lập trình viên Đặc biệt, một số lượng lớn các website có lỗ hồng là của các ngân hàng mới thành lập hoặc cơ cấu lại, chưa có sự đầu tư đúng mức về an ninh
Với mong muốn đưa ra được giải pháp phòng ngừa công cụ phát hiện lỗ
hồng bảo mật hữu hiệu nhằm giúp cho các cơ quan, tổ chức Nhà nước trong việc
đối phó với van dé an toàn bảo mật website hiện nay, luận văn lựa chọn đề tài
“Phân tích, đánh giá các công cụ nguồn mở điền hình cho kiểm tra lỗ hồng bao mật
ứng dụng web” Mục đích hướng tới của luận văn là nghiên cứu tìm hiểu về lỗ hồng
bảo mật ứng dụng web; phân tích, đánh giá một sỐ công cụ mã nguồn mở điển hình cho kiểm tra lỗ hồng bảo mật ứng dụng web; thực hiện thử nghiệm kiểm tra một lỗ
hông bảo mật điên hình của ứng dụng web với một công cụ mã nguôn mở.
Kết quả của luận văn là một module kiểm thử phát hiện lỗ hồng bảo mật website có thê phục vụ cho các tô chức, cơ quan Nhà nước.
Luận văn bao gôm các nội dung chính sau:
- Nghiên cứu về các lỗ hổng bảo mật điển hình trên website theo tiêu chuẩn
OWASP.
Trang 4- Phan tích, đánh giá phương pháp phát hiện lỗ hồng bao mật và một số công cụ mã nguồn mở điền hình cho kiểm tra lỗ hồng bảo mật ứng dung web.
- _ Xây dựng mô hình hệ thống và một module phát hiện một lỗ hồng bảo mật
điển hình là lỗ hong SQL Injection và triển khai thử nghiệm, đánh giá kết
quả.
Trang 5CHUONG 1 KHÁI QUAT VE AN TOÀN BAO MAT VÀ LO
HONG BAO MAT UNG DUNG WEB 1.1 An toàn bao mật ứng dụng Web
1.1.1 Khái quát về an toàn bảo mật
Các phương pháp bảo vệ an toàn thông tin dữ liệu có thé chia làm ba nhóm
Bảo vệ an toàn thông tin bằng biện pháp hành chính.
Bảo vệ an toàn thông tin bằng các biện pháp kỹ thuật phần cứng Bảo vệ an toàn thông tin bằng biện pháp kỹ thuật phần mềm.
Khái niệm về an toàn thông tin rat rộng, song nhìn chung gôm các nội dung
bảo vệ thông tin như sau:
Tính bí mật: Bảo vệ thông tin đối với chủ sở hữu hợp pháp, chống kẻ bất hợp
pháp (không có quyên truy nhập) xem được thông tin.
Tính toàn vẹn: Bảo vệ thông tin chống bị sửa đổi trái phép.
Tính khả dụng: Bảo vệ đề thông tin luôn sẵn có đối với người truy nhập hợp
Tính xác thực của thông tin: bao gồm xác thực đối tác, xác thực thông tin trao đôi.
Tính chống chối bỏ: đảm bảo người gửi thông tin không thê thoái thác trách
nhiệm về thông tin mà mình đã gửi.
1.1.2 Hiện trạng về tình hình bảo mật website
Trong thời gian vài năm vừa qua, các hệ thống thông tin của Việt Nam, đặc
biệt là các ứng dụng web nói chung và các trang tin điện tử (Website) nói riêng đã
trở thành mục tiêu tân công của nhiêu nhóm tội phạm mạng ở cả trong nước và
nước ngoài Tổng kết tình hình an ninh mạng nửa đầu năm 2015 cho thấy trung bình mỗi tháng xuất hiện hơn 1.000 trang giả mạo Facebook nham lay cắp thông tin
Trang 6tài khoản, lừa tiền người dùng Ngoài ra, 13.9 triệu tin nhắn rác được phát tán mỗi ngày, 30% website ngân hàng tồn tại lỗ hồng Đây là những nét chính trong bức tranh về an toàn thông tin nói chung tại Việt Nam trong 6 tháng đầu năm [3.2.4].
1.2 Các lỗ hỗng bảo mật phổ biến trên website
1.2.1 Lỗi tiêm mã (Injection)
1.2.2 Lỗi xác thực, quản lý phiên (Broken Authentication and Session
1.2.3.L6i chéo trang (Cross-Site Scripting -XSS)
1.2.4 Tham chiếu trực tiếp doi tượng không an toàn (Insecure Direct
Object References)
1.2.5 Cau hình bảo mật sai (Security Misconfiguration)
1.2.6.L6 dit liệu nhạy cam (Sensitive Data Exposure)
1.2.7.Sai sót trọng kiểm soát truy cập mức chức năng (Missing Function
Level Access Control)
1.2.8 Gid mao yéu cau xuyén trang (Cross-Site Request Forgery -CSRF)
1.2.9 Sử dụng các thành phan có lỗ hồng đã biết (Using Known Vulnerable
1.2.10 Chuyển hướng và chuyến tiếp không hop lệ (Unvalidated Redirects
and Forwards)
1.3 Các giải pháp đảm bảo an toàn thông tin cho các trang tin điện tử
1.3.1 Một số giải pháp an toàn kiến trúc hệ thong - Một số giải pháp an toàn mạng VPN:
- Một số giải pháp an toàn mạng WLAN
Trang 71.3.2 Một số giải pháp an toàn phương tiện kết nối - Một số giải pháp an toàn Router
1.3.3 Giải pháp an toàn hệ thống phòng thủ và bảo vệ
- Giải pháp an toàn Firewall
- Giải pháp an toàn Anti-virus
1.3.4 Giải pháp an toàn hệ thong máy chủ
- Giải pháp an toàn máy chủ Unix/Linux
- Giải pháp an toàn máy chủ Windows
1.3.5 Giải pháp an toàn máy chủ phục vụ web- Giải pháp đảm bảo an toàn máy chủ
- Giải pháp an toàn Webserver
- Giải pháp an toàn Cơ sở dtr liệu
1.4 Kết luận chương.
Chương | đã trình bày khái quát về an toàn thông tin, van dé an toàn bảo mật
cho ứng dụng web nói chung và trang tin điện tử (website) nói riêng Nội dung chương cũng đã trình bày về hiện trang an toàn bảo mật website, các lỗ héng bảo
mật điền hình trên website, các giải pháp đảm bảo an toàn trang tin điện tử Thông qua chương này ta cũng nắm được một cách tổng quan về bảo mật ứng dụng web, lỗ hồng bảo mật của ứng dụng web, các biện pháp phòng chống tấn công, bảo đảm an
toàn ứng dụng web Chương sau chúng ta sẽ đi sâu tìm hiểu các phương thức phát
hiện, một số công cụ điểm hình cho kiểm tra phát hiện lỗ hồng bảo mật cho ứng
dụng web.
Trang 8CHƯƠNG 2 PHAN TÍCH, ĐÁNH GIA MOT SO PHƯƠNG
PHAP VA CONG CU KIEM TRA LO HONG BAO MAT UNG
DUNG WEB
2.1 Các lỗ hồng bảo mật dién hình theo tiêu chuẩn OWASP
OWASP (Open Web Application Security Project) là 1 dự án mở về bao mật
ứng dung web [10-12], dự án là sự cỗ gắng chung của cộng đồng với mục đích giúp các doanh nghiệp có thể phát triển, mua và bảo trì các ứng dụng web một cách an
toàn OWASP cung câp cho công đông nhiêu nguôn “tài nguyên” khác nhau:
« _ Công cụ và tiêu chuẩn về an toàn thông tin
« _ Các bộ chuân về kiểm tra bảo mật ứng dụng, lập trình an toan và kiểm định
mã nguồn
« Cac thư viện và tiêu chuan điều khién an toàn thông tin « Cac nghiên cứu mới nhất về bảo mật ứng dụng web
« Cac maillist uy tín về thông tin bảo mật
Tất cả những gì OWASP cung cấp đều là miễn phí và mở cho bắt cứ ai có nhu cầu nâng cao bảo mật thông tin Điều này giúp OWASP ko bị phụ thuộc vào các nhà tài
trợ, đưa ra những thông tin chính xác, khách quan, không thiên vi va có giá tri ứng
dụng cao Các thành viên chủ chốt của OWASP đều là các tình nguyện viên, bao gồm Ban quản trị, Ban điều hành toàn cầu, lãnh đạo các chi nhánh, lãnh đạo các dự
Trang 9STTTiéu chiChi tiéu Phuong
phap SQL Injection - Chiếm quyền điều khiển Website, cơ sở
dữ liệu của hệ thống
- Giả mạo danh tính, sửa đổi, xáo trộn dữ liệu, thay đổi & phơi bày đữ liệu, ăn cắp,
thêm xóa đữ liệu.
- Upshell, Chiếm quyền điều khiển Server,
- Giả mạo danh tính, sửa đổi, xáo trộn dữ liệu, thay đổi & phơi bay dit liệu, ăn cắp,
thêm xóa đữ liệu.
- Upshell, Chiếm quyền điều khiển Server, Local attack
CRLF- Cross Site Scripting vulnerabilities
- Proxy and web server cache poisoning
- Web site defacement
- Hijacking the client’s session- Client web browser poisoning
câu hình bảo vệ username và passwordbảo vệ file trong htaccess.
Black-box
Trang 105 Remote - Thực thi những câu lệnh có thé gây ton | Black-box Commands hại cho hệ thông như xóa database, người
execution dùng xem được nội dung file config,
- Deface Website Tuy nhiên nó chỉ chạy
trên trình duyệt phía client và chỉ tắn công vào bề mặt Website, không làm thay đổi
cấu trúc mã nguồn, cơ sở đữ liệu của
Website trên Server.
2.3 Phân tích, đánh giá các phương pháp kiểm tra lỗ hỗng bảo mật ứng
dụng web
Kiểm tra 16 hong bảo mật đối với ứng dụng web chính là việc làm thé nào dé
có thê chỉ ra những lỗ hồng đang tồn tại trên hệ thống một cách đầy đủ và khoa học nhất Điều này quả là một công việc rất khó khăn Chính vì vậy, người ta đã tìm cách đưa ra các phương pháp kỹ thuật kiểm tra dé nhằm đơn giản hoá công việc này, đồng thời đảm bảo đủ tin cậy rằng hệ thống sau khi được kiểm tra sẽ có được một báo cáo day đủ và chính xác nhất có thé Các phương pháp kiểm tra lỗ hồng bảo mật pho biến nhất hiện nay là: phương pháp đánh giá hộp đen, đánh giá hộp trắng, đánh giá hộp xám Mỗi phương pháp kiểm tra trên đều có những ưu và nhược điểm riêng, chúng ta sẽ xem xét một cách chi tiết ở phần sau đây [3,2].
Trang 112.3.1 Phương pháp kiểm tra hộp đen
Phương pháp kiểm tra hộp den (Black Box) các lỗ hồng bảo mật trên ứng dung web thực hiện kiêm tra các ứng dụng từ bên ngoài, phía giao diện người dùng.
Tức là quan sát các dữ liệu được chuyên đến ứng dụng và các dữ liệu từ ứng dụng
xuất ra mà biết mã nguồn hay hệ thống bên trong Quá trình chuyền dữ liệu từ bên ngoài đến ứng dụng có thể thực hiện bằng thủ công hoặc sử dụng công cụ tự
2.3.2 Phương pháp kiểm tra hộp trắng
Phương pháp kiểm tra hộp trắng (White Box) các lỗ hong bao mật trên ứng dụng web là kiểm tra, phân tích, tìm kiếm lỗi trực tiếp trên mã nguồn của ứng dụng Phương pháp này thường được thực hiện bởi nhà phát triển Quá trình xác định lỗ hồng dựa trên mã nguồn có thé được thực hiện thủ công hoặc bang cong cu.
2.3.3 Phương kiểm tra hộp xám
Phương pháp kiểm tra hộp xám (Grey Box) được sử dụng để kiểm tra khi
những thông tin được biết bên trong hệ thống mang tính hạn chế Thực chất đây là phương pháp kết hợp giữa kiểm tra Black Box và White Box Trong phương pháp
này, kiểm tra viên có thé được xem tài liệu thiết kế, truy cập CSDL Với những
thông tin có được, kiểm tra viên có thể có kịch bản kiểm tra tốt hơn khi lên kế hoạch kiểm tra Việc kiểm tra có thé được tiến hành với vai trò người dùng cuối hoặc nhà phát triển phần mềm [3,2].
2.4 Phân tích, đánh giá một số công cụ kiểm tra lỗ hỗng bảo mật ứng
dụng web
2.4.1 Công cụ Acunetix
Acunetix là công cụ thương mại với các khả năng kiểm tra lỗi bảo mật rất
mạnh và được xếp thứ 3 trong s6 các công cụ thương mại [12] Acunetix hỗ trợ tất cả các phương thức kiểm tra như kiểm tra thủ công hoặc kiểm tra tự động Công cu
này cho phép quét thông qua máy Client với mọi ứng dụng web Với mỗi công
Trang 12nghệ Tuy nhiên Acunetix đưa đến người sử dụng với phí rất đắt, với 3995 USD/1năm cho một bản quyên.
2.4.2 Công cụ AppScan
AppScan là công cụ thương mại rất mạnh dùng dé quét các lỗ hồng bao mật
ứng dụng web [3,2,15] Công cụ này có thể quét được những ứng dụng phát triển
trên nền tảng công nghệ khác nhau, mạnh hơn Acunetix đối với việc quét các ứng dụng phát triển băng PHP Ví dụ, với lỗ hong rất phổ biến là Local File Inclusion, nếu quét bằng Acunetix thì độ chính xác là 57,35% công cụ AppScan là 100% Ngoài ra AppScan là một công cụ dễ sử dụng, sau khi quét có thé đưa ra những báo
cáo rõ ràng và đầy đủ Công cụ này đứng đầu trong bảng xếp hạng về tính năng
trong số các công cụ thương mại Tuy nhiên mức phí hàng sử dụng hàng năm tất
cao, 17700 $/1năm cho một bản quên [3,15]
2.4.3 Công cụ Nikto
Là một phần mềm mã nguồn mở với tính năng Web Server Scanner, tinh
năng kiểm tra các máy chủ Web [3,15] 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.
2.4.4 Công cụ WebScarab
Webscarab là một framework được viết bằng Java phục vụ cho việc phân
tích những ứng dụng web với hai giao thức hỗ trợ HTTP và HTTPS [3,15] Đây là
công cụ miễm phí, việc sử dụng không hoàn toàn tự động và yêu cầu người kiểm tra
phải có kiến thức chắc về an toàn ứng dụng web, nên có thể coi đây là công cụ khó
sử dụng so với các công cụ có phí khác WebScarab có khả năng phi lại hoặc thay
đổi tham số ứng dụng trước khi đi trình những yêu cầu, phản hồi giữa trình duyệt và
Trang 13ứng dụng web Ngoài ra, công cụ còn cho phép thực hiện một số chức năng hữu ích
khác như [3,2,15]:
2.4.5 Công cụ OWASP ZAP.
ZAP là sản pham open-source, nguồn https://www.owasp.org.
ZAP cho phép người dùng có thé thực hiện nhiều tác vụ nhằm dò tìm điểm yêu trên ứng dung web.
ZAP cung cấp công cụ quét tự động cũng như một bộ công cụ cho phép tìm các lỗ hồng an ninh băng phương pháp thủ công.
2.5 Kết luận chương
Chương 2 đã trình bày về các lỗ hồng bảo mật điển hình cho ứng dụng web theo tiêu chuẩn OWASP; đưa ra tiêu chí và các chỉ tiêu đánh giá mức độ an toàn bảo mật cho các ứng dụng web; phân tích, so sánh các phương pháp kiểm tra lỗ hồng bảo mật ứng dụng web; phân tích, đánh giá một số công cụ phần mềm nguồn
mở kiểm tra lỗ hồng bảo mật ứng dụng web Trên cơ sở phân tích, đánh giá các
công cụ, ta có thể lựa chọn công cụ phần mềm nguồn mở phù hợp để xây dựng một ứng dụng thử nghiệm kiêm tra lỗ hông bảo mật như sẽ được trình bày trong chương
tiếp theo.
Trang 14CHƯƠNG 3: THU NGHIEM KIEM TRA LO HONG SQL INJECTION VOI CONG CU NGUON MO
3.1 Quy trình kiểm tra lỗ hỗng báo SQL Inejection
Hình 3 1 Quy trình rà quét của lỗ hỗng
3.2 Các phương pháp phát hiện lỗ hong SQL Injection
3.1.2 Mô hình phát hiện lỗ hỗng theo phương pháp Black Box
Các bước ở phương pháp này bao gồm:
- Footprinting: Ở bước này hacker tìm hiểu các thông tin về Website và hệ thống để thu thập được càng nhiều thông tin càng tốt, hacker có thể sử dụng các công cụ sẵn có hoặc open soure dé thu thập thông tin.
Trang 15- Scanning: Sau khi đã thu thập đầy đủ các thông tin cần thiết, hacker sẽ bat đầu rà quét các port giao tiếp của Website và người dùng, nắm biết được các port đang mở, các giao dịch đang được thực hiện, các giao thức đang được sử dụng dé duy trì và truyền tải lưu lượng của Website và các lỗi của Website.
- Exploit: Là bước quan trong dé chứng minh được rang lỗ hồng trên Website thu được từ các công cụ rà quét có thực sự gây ra những ảnh hưởng cho hệ thông hay mat mát dir liệu hay ko, hacker có thé tan công khai thác thử nghiệm các lỗ hồng đó, thường thì những lỗ hồng được các công cụ rà quét tim được thì đều có
các công cụ khai thác chúng, tùy vào từng 16 hông mà có các công cụ chuyên biệt.
- Update patches: Ở bước này thông thường thì Người quản trị mới có quyền thực hiện, người kiểm thử có thể gửi các văn bản thông báo hướng dẫn hỗ trợ cho
Người quản tri thực hiện
- Report: Bước này bao gồm các báo cáo phân tích các tình huống, lỗ hồng được đặt ra và đã tìm được nếu được các mỗi nguy hiểm mà Website đang gặp phải, đưa ra các hình thức, biện pháp khắc phục, chi phí khắc phục cho phía khác hàng
được biết.
Nhập địa chỉ URL
3.1.2 Mô hình phát hiện lỗ héng theo phương pháp white Box
Kiểm tra lỗ hông SQL Injection: