2. NỘI DUNG THUYẾT TRÌNH
1. Giới thiệu tổng quan
2. Quy trình một cuộc tấn công
3. Mục đích các cuộc tấn công
4. Cách tấn công phổ biến
5. Kiểm thử bảo mật ứng dụng web
6. Tài liệu đọc thêm
3. 1. GIỚI THIỆU TỔNG QUAN
• Ứng dụng web
• Được thiết kế dựa trên nền web
• Truy cập ứng dụng ở bất cứ nơi đâu.
• Tiềm ẩn nhiều nguy cơ bảo mật
• Vấn đề an ninh chưa được quan tâm đúng mức
4. 1. GIỚI THIỆU TỔNG QUAN
• Kiểm thử ứng dụng web
• Khác với kiểm thử truyền thống
• Yêu cầu kiến thức chuyên sâu hệ thống
• Kiểm thử chỉ mang tính tương đối
5. 2.QUY TRÌNH MỘT CUỘC TẤN CÔNG
Bao gồm 3 bước:
• Thu thập thông tin (Information Gathering)
• Quyét và dò tìm (Scanning)
• Tấn công (Attacking)
6. THU THẬP THÔNG TIN
• Thăm dò địa chỉ của trang web
• Điều tra thông tin nhà phát triển
• Tìm hiểu các tài liệu công bố trên mạng
• Kiểm tra và ghi chép lại thông tin có được
Xác định được hạ tầng và công nghệ của mục tiêu
7. QUYÉT VÀ DÒ TÌM
• Sử dụng các công cụ quét hệ thống (Tham khảo: http://www.insecure.org)
• Tìm các đường có thể xâm nhập
• Duyệt qua các lỗi thường gặp
• Xây dựng hệ thống giả định
Tìm ra lỗ hỏng của hệ thống, đưa ra cách tấn công phù hợp
8. TẤN CÔNG
• Kết nối tới các cổng nhạy cảm
• Vượt mặt hệ thống xác thực (ID/Mật khẩu)
• Chạy các truy vấn hệ thống
• Chặn toàn bộ các đường kết nối khác
Làm chủ hệ thống và thực hiện mục đích tấn công
9. 3. MỤC ĐÍCH CÁC CUỘC TẤN CÔNG
• Đánh cắp (Seal)
• Gián đoạn hệ thống (Disrupt activities)
• Quấy rối (Embarrass)
• Game (Play game)
• ….
10. ĐÁNH CẮP
• Thông tin cá nhân
• Tài khoản thẻ tín dụng
• Dữ liệu bí mật
Dữ liệu tài chính, kế hoạch kinh doanh….
• Sở hữu trí tuệ
Phần mềm, âm nhạc, sản phẩm online…
11. GIÁN ĐOẠN HỆ THỐNG
• Gián đoạn tạm thời một vài dịch vụ
• Làm tê liệt toàn bộ hệ thống
• Gây tổn thất về mặt tài chính và con người
• Tạo lợi thế cạnh tranh với đối thủ
12. QUẤY RỐI
• Thay đổi nội dung của trang web
• Đưa các hình ảnh hoặc thông tin bất lợi
• Mạo danh website để thực hiện những hành vi xấu
• Gây tổn hại đến uy tín và tinh thần
13. GAME
• Nâng cấp cho nhân vật hoặc vượt mặt thử thách
• Kinh doanh trên các sản phẩm ảo
14. 4. CÁCH TẤN CÔNG PHỔ BIẾN
• Lợi dụng lỗi của ứng dụng (Software Bugs)
• Tấn công qua cookie (Cookie)
• Giả mạo thông tin (Spoofing)
• Từ chối dịch vụ (DDoS)
• Tấn công mạng (Network Attacks)
15. LỢI DỤNG LỖI CỦA ỨNG DỤNG
• Tràn bộ nhớ đệm (Buffer Overflows)
• Thực thi lệnh shell (Command Line Execution)
• Sử dụng cửa sau (Backdoors)
• Khai thác CGI (CGI Programs)
• Lợi dụng lỗi của ngôn ngữ lập trình (Java, PHP, Javascript, AtiveX)
16. TẤN CÔNG QUA COOKIE
• Đọc thông tin cookie được lưu khi duyệt web
• Giả mạo cookie để vượt qua lớp chứng thực
• Thay đổi thông tin cookie để chiếm quyền hệ thống
• Lợi dụng lỗ hỏng bảo mật của trình duyệt
17. GIẢ MẠO THÔNG TIN
• Là hình thức giả mạo thông tin nhằm để truy cập hệ thống hoặc hợp
thức hóa một công việc nào đó
Giả mạo Email (Email Spoofing)
Giả mạo IP (IP Spoofing)
Giả mạo DNS (DNS Spoofing)
Giả mạo Website (Web page Spoofing)
…..
18. TỪ CHỐI DỊCH VỤ
• Nhiều máy tính gộp lại tạo thành mạng lưới (botnet)
• Cùng lúc kết nối tới máy chủ mục tiêu
• Khiến máy chủ mục tiêu bị tê liệt
• Các dịch vụ bị tạm ngừng trong 1 thời gian
19. 5. KIỂM THỬ BẢO MẬT ỨNG DỤNG WEB
• Kiểm thử các yêu cầu và thiết kế (Requirements & Design Testing)
• Kiểm thử mã nguồn của ứng dụng (Application Code Testing)
• Kiểm thử triển khai (Deploying Testing)
• Kiểm thử xâm nhập (Penetration Testing)
20. KIỂM THỬ CÁC YÊU CẦU VÀ THIẾT KẾ
• Kiểm thử các yêu cầu
• Trusted Computational Base (TCB)
• Kiểm thử quyền truy cập
• Xác định những phần cần bảo mật
• Kiểm thử vấn đề phía người dùng
21. KIỂM THỬ MÃ NGUỒN CỦA ỨNG DỤNG
• Kiểm thử cửa hậu
• Kiểm thử dữ liệu rác & tràn bộ đệm
• Kiểm thử ID và Password
• Kiểm thử thông tin rò rỉ
• Kiểm thử sử dụng GET và POST
• Kiểm thử SQL Injection
• Kiểm thử tấn công Cookie
• Kiểm thử mã nguồn bên thứ 3
22. KIỂM THỬ TRIỂN KHAI
• Cài đặt mặc định
• Mật khẩu mặc định
• Quốc tế hóa ứng dụng
• Program Forensics
23. 6. TÀI LIỆU ĐỌC THÊM
• Book:
Writing Secure Code. Redmond, Howard, M., and David LeBlanc
Web Server, Security, and Maintenance.Upper Saddle River, NJ: Prentice-Hall PTR, 2000
• Website:
• Computer System Security: An Overview, SEI STR
www.sei.cmu.edu/str.descriptions/security.html
• Cross Site Scripting Explained
www.microsoft.com/technet.treeview/default.asp?url=/technet/security
• User Input in SQL Statement: AdCycle SQL Command Insertion Vulnerability
www.qdefense.com/Advisories/QDAV-2001-7-2.html
Notas del editor
Web app, hệthốngquảnlý, WebMailThông qua internet. Không phải phân phối và cài đặt phần mềmCôngnghệliêntụcthayđổi, 1 côngcụbảomậtrasauđánhbaicôngcụratrướcChưacóchuẩnchínhthứcvềanhninh web, giớihạnbớikiếnthứcvàcôngnghệ, bảomậtchỉmangtínhtươngđối
Gõsai URL, tìmđượctênmáychủ, phầnmềm, phầncứng, cấuhìnhmáychủVd: hui.edu.vnSử dung côngcụtìmkiếm, phầnmềmbênthứ 3- Tìmhiểuvề con ngườivàcôngnghệOpen source, out sourcecing, Ghichéplạicácthông tin, xácnhậnlạicáclỗhỏngbảomật
- Quyét port, Ping sweep, ICMP (used to determine which of a range of IPaddresses map to live computers)- Đưaracác con đườngcóthểđivàohệthốngCáclỗithườnggặpkhisửdụngphầncứng, phầnmềm, source code, open sourceĐưaracáinhìntổngquanvềđườngđinướcbướcđểvàohệthống
Kếtnốivớimáychủthông qua cáclỗibảomậtVượtmặtcáchệthốngđăngnhậpchứngthậtVi dụ: GiốngnhưtrênphimKhôngchophépcáckếtnốikhácxâmnhậpvàohệthống
Thayđổinội dung bìnhthườngtrêntrang webĐưacácthông tin bấtlợivớiviệckinhdoanhhoặchìnhảnhkhôngphùhợplên webLấythông tin tàikhoảncủa website qua nhữngchỗkhácđểthựchiệnhành vi xấuTổnhạiđếndanhdựvàtinhthần
Mangtínhvuivẻlàchính, Báncácsảnphẩmảotrong game, hoặcnhânvậttrong game đểlấytiền
Lỗhỏngbảomậtđượctìmthấynguyênnhânlàdo yếukémtrongviệcthiếtkếvàthựchiệncácyêucầuhệthống an ninhVớiviệcsửdụngkỹthuậttấncôngphổbiếnthìkẻtấncôngdễdàngchiếmquyềntoànbộhệthốngBiêtcáchtấncôngthìmớibiếtđượcnguyênnhângâylỗivàcáchphòngtránhvà
Cookie làdữliệuđượclưutrữ ở máyngườidùngChứacácthông tin cơbảnkhingườidùngsửdụngứngdụng webID, Têntruycập, mậtkhẩu, email, thông tin tàikhoản
Giảmạorằngmột e-mail đượcgửitừngườikhácGiaothức (IP) (DNS) giảmạo, giảvờrằngdữliệuđếntừmộtmáytínhđáng tin cậyGiảmạo website, giảvờrằngtrangnàylàđếntừmộtnguồnđáng tin cậy;
Another aspect of the testing management’s risk assessment is todetermine how much value will be lost if the application is attacked.The morevaluable the assets maintained by the application, the more likely that some-one will spend a significant amount of time and effort to break in.
Mỗi ứng dụng web được xây dựng đều yêu cầu một tập các yêu cầu server cũng như client, cần kiểm tra các yêu cầu về cài đặt cũng như là thiết kế cả từ phía server và clientTCB Tạo ra các vành đai bảo vệ cho từng tầng của ứng dụng web (hardware, application) có những file có thể truy cập bằng browser có những file cần truy cập bằng SSHMột điều rất quan trọng trong ứng dụng web là cần xác định xem ai có thể truy cập được vào ứng dụng và truy cập vào những phần nào (ghi file đọc file, thư mục)Các dữ liệu cần được backup sao lưu thường xuyên (tránh các tình trạng overload server hoặc shutdown systems từ những attacker bên ngoài)Bảo vệ thông tin người dùng khi truy cập ứng dụng web của chúng ta, có các quy định về sử dụng cho từng trang trong ứng dụng web)
Bảo đảm là tất cả các cửa hậu đều được đóng lại trước khi tung ra sản phẩm lên webMục đích của việc kiểm tra tràn bộ đệm là để xem chương trình chịu được mức xử lý dữ liệu lớn đến mức độ nào, copy-and-paste một dữ liệu lớn vào phần input và submit dữ liệu đi, kèm theo kiểm thử biên Nhập dữ liệu <script>, <html> vào các ô input hoặc các dữ liệu không mong muốn để kiểm tra chương trìnhKiểm tra ID và Password, xem từng user có vô đúng quyền của user đó không, và kiểm thử cả quyền của super user Tìm kiếm cái chỗ chứa username và password khi lần đầu tiên cài đặtXem lại tất cả các chỗ comment, đôi khi thông tin sẽ bị rò rĩ thông qua những comment, tuyệt đối không để lại thông tin nhạy cảm nào trong comment Kiểm tra các trang lỗi xem thông tin server có bị tiết lộ thông qua lỗi này không Bảo đảm rằng đã tắt chức năng duyệt thư mục trên web browserKiểm thử XSS, POST, GET. Method GET lưu lại trên server, POST thì không nếu dùng HTTPS Bảo đảm rằng các thông tin nhạy cảm không được truyền trên XSSKiểm tra SQL Injecting một lỗi rất phổ biến ở các website open sourceKiểm thử tấn công bằng cách thay đổi cookie để chiếm quyền supper user
Xem lại tất cả các cài đặt mặc định khi chương trình được triển khai trên môi trường thậtChương trình không nên để các mật khẩu mặc định khi cài đặt chương trình, nên thay đổi mật khẩu sau khi triển khai xongỨng dụng web đang được triển khai ở quốc gia và vùng lảnh thổ nào, nên lựa chọn ngôn ngữ phù hợp với từng vùngVấn đề pháp lý rất quan trọng nhưng thường ý được quan tâm đối với ứng dụng web, nên xem xétĐể lai dấu vết khi có bất kỳ một thay đổi nào đó trên hệ thống