Bảo mật ứng dụng Web: kiểm tra thâm nhập thủ công hay quét tự động GIỚI THIỆU Với hơn90% cácứng dụng Web cómắc các lỗi bảo mậtvà hơn 70%các tấncông là vào các giao thức HTTP/S. Chính vì vậy, các tổ chức cần phải bổ sung các công cụ mạng để bảo đảm cho cácứng dụng Web của họ. Tỷ lệ phần trăm củacác tấn công xuấthiện trên cổng80 và 443dường như rất lớn, mặt khác ở đây là các cổngnày gần như là cửa trước để tổ chứctruyền thông online. Ngày nay,khi các ứng dụng Webngày càng trở nên phứctạp thì một số lượng lớn các dữ liệu nhạy cảm trongđó có thôngtin cá nhân,tài chính,y tế được trao đổi và lưu trữ. Các khách hàng không chỉ mong đợi mà chính bản thân họ còn yêu cầu cần được bảo mật các thông tin này.Nhưng việcđánh giá một ứng dụng Websẽ điđến đâu bằngviệc kiểmtra ứng dụng theophươngpháp thủ công haybằng các công cụ và hệ thống tự động.Nó cho ta thấy từ các khái niệm, bằng việc môhình hóa rủi ro bảo mật được giới thiệutrong các ứng dụngcũng như các biện pháp đốiphó khác được thêm vàobổ sung.Sự bảo mật cần phải đượcxem như là các thànhphần quan trọng kháctrong mỗi ứng dụng, phải được phântích, xem xét qua từng bước trong mỗi chukỳ sử dụng củaứng dụng. Việc tìmra các lỗ hổng trong các ứng dụngWeb có thể đượcthực hiệnbằng nhiều cách: Tự động Bằngcác công cụ quét Sự phân tích tĩnh Thủ công Kiểm tra sự thâm nhập Xem xét lại code Mục đích chính củabài viết này là để kiểmtra các phươngpháp phát hiện lỗ hổng đặcbiệt là việc so sánh giữa phương pháp tự động và phương pháp kiểm tra sự thâm nhập thủ công. LỊCH SỬ Việc kiểmtra sự thâm nhậpbảo mật thủ công là phương pháp đã có từ lâu. Các nhà phát triển kiểmtra cáclỗ hổng ứng dụngcủa họ và các vấn đề trong suốt thờigian tồn tại của ứngdụng. Tuy nhiên, khimà cáctấn công ngày càng tinh vivà các ứngdụng phức tạp ngàymột tăng thì mụctiêu của cácchuyên gialà tìm ravà khaithác các vấnđề bảo mật như vậy càng thể hiện rõ. Những người này được biết đếnnhư là các “cây kiểmtra”. Việc kiểm tra tự độngcác ứng dụng Webđược đưa ra năm 1992.Khi đó các web còn khá sơ sài và các trình duyệtweb chỉ đủ để có thể quản lý sự phức tạp của các ứng dụng động. Mục tiêu chính củacáccôngcụ này là tự động quá trình kiểmtra ứngdụng web và các lỗiliên quanvới mục đích tìm ra các lỗ hổng. CÁC LOẠI LỖ HỔNG Nhìn chung,hầu hết cácứng dụng webđều cóthể nhóm thànhmột trong hai loại: kỹ thuật và logic. Các lỗ hổng kỹ thuật được biết đếnnhư là: Cross-SiteScripting (XSS), Injection Flaws(cáckhe hở dễ bị xâmnhập) và Buffer Overflows (tràn bộ đệm). Còncác lỗ hổng logicthì khó khăn hơntrong việc phân loại ra. Các lỗ hổng này liên quan đến tính logic củaứng dụng mànó chưahề được dự định từ trước. Ví dụ: vào đầunăm 2002, một người đã cố ý sử dụnglỗ hổng logic để vòng tránh được sự kiểm tra tính hợp lệ củacác thôngtin cá nhân cần thiết trong ứng dụng MicrosoftHotmail -cho phépngườidùng thiếtlập lại mậtkhẩu bằng việc đoán câu trả lời với mỗi câu hỏi bảomật đơn lẻ. CÁC LỖ HỔNG KỸ THUẬT Các công cụ và các hệ thốngtự độngcho việc kiểm tra các lỗ hổng kỹ thuật phải bao gồm cả tính phương pháp và tínhtoàn diện.Xem xét qua ứng dụng đăngký cho MicrosoftHotmail. Biểu mẫu này bao gồm xấp xỉ 30 thành phần cần thiết: một số bị ẩn, mộtsố được trưng bày. Mỗi thành phần của biểu mẫu này là tiềm ẩn nguy cơ Cross-SiteScripting,InjectionFlaws, Buffer Overflows hayImproperError Handling. Bạn cóbiết rằng có tới hơn70 kỹ thuật khácnhau cóthể được sử dụng để khám phá Cross-SiteScripting. Điều này cho thấyrằng biểu mẫu đăngký cần phải cóhơn 2000 lần testmới có thể test thấu đáo. Các hệ thống cũngnhư công cụ như crawl hay phân tích và kiểmtra ứng dụngweb tốthơn so với cách kiểm tra thủ công các ứng dụng. Tuynhiên các công cụ đang kiểmtra và đangquét thường khôngphát hiện hết được 100%cáclỗ hổng kỹ thuật, không có lý do nào có thể tin tưởng rằng điều này sẽ xảy ra trong tươnglai gần. Cuộc chạy đuaban đầu tồn tại với các công cụ quét đang có nhiều vấn đề trong cụ thể như: - Trìnhkhách sinh các URL - Các hàm JavaScript - Ứng dụng logout - Các hệ thống dựatrên phiên liên lạcyêu cầu chỉ rõcác đườngdẫn người dùng - Đệ trìnhform tự động - Các password - Các website“vôtận” với các sessionID dựa trên URL ngẫu nhiên Các công cụ bảo mật ứng dụngweb tự động đang ngàycàng được hoàn thiện, các cuộc chạy đua giữa hai phương pháp thủ công và tự động này đều cầncó điểm chung và cần đượclàmsáng tỏ. Thứ nhất, đánhgiá tự động sẽ giảm bất kỳ sự khôngchắc chắnnào (hướng tích cực). Ngược lại, thời gian sẽ là nguyên nhân khôngkhả thi của kiểm tra thủ công vớicác lỗ hổng kỹ thuật để tăngtừ khó khăn nhỏ đến không thể khikích thước và phạm vị ứngdụng tăng. Trongnhiều tổ chức kinh doanh,nó sẽ không đơn giản để giảm thời gian, sự cố gắng và tiền cầnđể truy cập hàng nghìn các ứng dụngweb đangtồn tại.Thứ hai, vai trò của con người ảnh hưởngđến việckiểm tra hàngnghìn đếnhàng triệu các lỗ hổng kỹ thuật là chủ đề đáng nói và khôngthể tin tưởng một cách tuyệtđối. Quan điểm củacác nhànghiên cứu của công ty IDClà “Vấn đề là sự thời gian và giá thành. Việc làm thủ công là tốn thời gian và giá thành. Nhưng nếu bạn có những người làm việc tốt thực sự thì nó sẽ rất an toàn, còn nếu không, họ sẽ chỉ nhìn vào các dòng code mỗi ngày. Với phần mềm quét, bạn có thể làm các công việc này nhanh hơn, rẻ hơn và có thể bao phủ nhiều vùng lãnh thổ địa lý.” CÁC LỖ HỔNG LOGIC Các lỗ hổng logic có thể được khám phábằng việc hiểu một ứngdụnglàm việc như thế nào và bằng việc tìm racác yếu điểm của nó. Khicả công cụ tự độngvà kỹ năng kiểmtra đều không tích cực thông quamột ứng dụng web, thìchính khiđó bạnsẽ phải cầnđến hiểu ứng dụnglàm việc như thế nàovà quá trình logic nằm dưới nó ra sao.Việc hiểu sự logic của một ứngdụngsẽ chophép kiểmtra sự thâm nhập thủ công để phávỡ logic kinh doanhvàphơi bày ra các lỗ hổng bảo mật.Ví dụ: một ứng dụngcó thể hướng vào người dùng từ điểm Ađến điểm Brồi đến điểm C, trong đó,điểmB tồn tại một kiểm tra bảo mật hợp lệ.Sự xemxét thủ công tại Acủa ứng dụngcó thể cho thấyrằng nó là hoàntoàn có thể đi trực tiếp từ điểm Ađến điểm C bằng việc thông quaviệc hợp lệ từ điểm B. THỐNG KÊ Dựa vào phântích gần đây của 100website,các con số thống kê dưới đây đã được đưa ra: - 36%các websitecó kiểm trathủ côngpháthiện kémhơn số lỗ hổngso với phươngpháptự động. - 17%kiểm tra thủ công phát hiện cáclỗ hổngtrong khiđó quét tự độngkhôngthể thấymột lỗ hổng nào. - 46%việc tìmkiếm của các kiểm tra viên thủ công và công cụ quét tự động đã được bổ sung. Các thống kê có thể sai lạc, vàcông thức80-20 không cầnthiết để áp dụng.Vì việc tìm được 80% các lỗ hổng làkhông đủ nếu một lỗ hổng lớnbị bỏ qua. KẾT LUẬN Ở phần trên chúngta đã được nghegiới thiệu về các phương pháp khác nhau được sử dụng để khám phá các lỗ hổng trong bảo mật ứng dụng web.Cả hai phương pháp kiểm tra thủ công và bằng các công cụ tự độngđều cóthể được sử dụng để khámphá các lỗ hổng trong các ứng dụng.Các công cụ tự độngcó hạn chế của nó, tuy nhiên nếu sử dụng đúng, các côngcụ tự động có thể đượcsử dụng trongcác tổ chức để tìm ra một dãy các lỗ hổng, việcnày làm cho chúngta có thể tiết kiệm được tiền và thời gian. Với cách kiểm tra thủ công được sử dụng để tăngkết quả cho các lỗ hổnglogic. Cáctổ chức từ đó sẽ quyết định sự trộn lẫn củaviệc quét tự độngvới quét thủ công để đưa ra ứngdụng webcó bảomật tốt nhất. . Bảo mật ứng dụng Web: kiểm tra thâm nhập thủ công hay quét tự động GIỚI THIỆU Với hơn90% cácứng dụng Web cómắc các lỗi bảo mậtvà hơn 70%các tấncông là vào các giao thức. là để kiểmtra các phươngpháp phát hiện lỗ hổng đặcbiệt là việc so sánh giữa phương pháp tự động và phương pháp kiểm tra sự thâm nhập thủ công. LỊCH SỬ Việc kiểmtra sự thâm nhậpbảo mật thủ công. lỗ hổng trong bảo mật ứng dụng web. Cả hai phương pháp kiểm tra thủ công và bằng các công cụ tự động ều cóthể được sử dụng để khámphá các lỗ hổng trong các ứng dụng. Các công cụ tự độngcó hạn chế