ݺߣ

ݺߣShare a Scribd company logo
Bảo mật trong ứng
dụng web
Nguyễn Thế Vinh
Công ty cổ phần Con Tự Học
http://www.contuho.com
Nội dung
• Giới thiệu các lỗ hổng thường gặp
• Demo khai thác một số lỗ hổng
• Cách phòng chống các lỗ hổng
• Công cụ ra quét
Bảo mật ứng dụng web
ESPN (2009)
Sony Pictures bị hack (2011)
Ebay (2014)
Các sân bay ở Việt Nam 2016
Tại sao phải bảo mật ứng dụng Web
• Web Application là mục tiêu số 1 của các hacker
 75% các cuộc tấn công nhằm vào tầng Application (Gartner)
• Hầu hết các Web Application đều có lỗ hổng
 95% Web Application có lỗ hổng (Imperva)
 78% Web App có lỗ hổng dễ khai thác (Sysmantec)
 67% Web App bị lợi dụng để phát tán Malware (Sysmantec)
Các lỗ hổng thường
gặp
Injection
• Nhân tố
 Bất cứ ai, hệ thống nào có thể gửi dữ liệu không tin cậy vào hệ thống
• Khả năng tấn công
 DỄ
• Độ phổ biến
 Phổ biến
• Khả năng phát hiện
 Trung bình
• Mức độ ảnh hưởng
 Nghiêm Trọng: đánh cắp, phá hủy dữ liệu…
Injection (tiếp)
• Injection là?
 Đánh lừa ứng dụng, nhằm tiêm một hay nhiều đoạn code, câu lệnh ngoài ý
muốn vào chương trình.
• Các loại Injection
 SQL
 LDAP
 OS Command
 Xpath
 …
SQL Injection
http://www.sample.com?SampleID=1
“SELECT * FROM Sample WHERE SampleID=1”
http://www.sample.com?SampleID=1; DROP TABLE Product
“SELECT * FROM Sample WHERE SampleID=1; DROP TABLE
Product”
SQL Injection (tiếp)
Demo
Injection: Cách phòng chống
• Hạn chế dùng command text
 Nếu dùng thì nên dùng SqlParameter
• Sử dụng Stored Procedured
 Lưu ý các trường hợp build query động trong stored
• Escape tất cả các dữ liệu đầu vào
• Phân quyền (user sql) mức thấp nhất có thể
• White list input validation
 VD: Tên chỉ chấp nhận [A-Za-z ]
Broken authentication &
Session Management
• Các chức năng authentication, authorization được thi công không
đúng khiến attacker dễ dàng đánh cắp mất khẩu, quyền truy cập (tạm
thời hoặc vĩnh viễn)
Broken authentication &
Session Management
• Cookie: authenticated=1
Broken authentication &
Session Management
• Kiểm tra thông tin đăng nhập:
 Session[“UserName”] != null
Broken authentication &
Session Management
• HTTP là protocol không có trạng thái (stateless protocol)
 Đơn giản chỉ có: HTTP request, HTTP response
 Tất cả dữ liệu luôn được gửi qua HTTP Request
• Làm thế nào để lưu giữ trạng thái?
 Client: cookies
 Server: sessions
• Các ứng dụng thướng lưu trữ SessionID trong cookie, URL
 Vấn đề: Mất SessionID là  mất mật khẩu
• Nhiều cách để đánh cắp SessionID
 packet sniffing – (Wifi công cộng)
 HttpReferrer logs, if sessionId is in the URL
Broken authentication &
Session Management
Demo
Broken authentication &
Session Management
Broken authentication &
Session Management
• Sử dụng SSL!
 Sniff Cookies (session ID) khó khắn hơn
 Nếu không sử dụng SSL ở mọi nơi được thì hãy dùng ở form login
• Sử dụng httponly cookie
• Thiết lập timeout cho session, cookie
 Hủy session khi logout
• Không sử dụng mode SessionID qua URL, mà dùng cookie
• Mã hóa cookie nếu cần thiết
• Không ghi session ID ra log.
• Kiểm tra password cũ khi đổi. Gửi email xác nhận tới email cũ nếu
đổi email
Cross-Site Scripting (XSS)
• Cho phép Attacker có thể thực thi một đoạn Script trên trình duyệt
của Victim. Để đánh cắp cookie (session id), thay đổi giao diện trang
web nhằm mục đích lừa đảo, dẫn người dùng đến trang web chứa
malware…
• Gần như website nào cũng có lỗ hổng này
Cross-Site Scripting (XSS)
• Stored XSS
 Thông qua các tính năng cho phép nhập liệu không được validate attacker
nhập các đoạn mã và được lưu giữ vào chương trình.
• Reflected XSS
 Tiêm mã thông qua URL
Reflected XSS
Demo
Stored XSS
Demo
XSS – Cách phòng chống
• Tuyệt đối không bao giờ tin tưởng dữ liệu người dùng nhập vào
• “Escape” tất cả dữ liệu trước khi hiển thị ra
 JavaScript parameters, URL parameters, STYLE elements
 Remove script tags, and possibly anything with a SRC attribute
• Không dùng HTTP GET cho các request thay đổi dữ liệu
 Không thì 1 thẻ IMG cũng có thể xóa nội dung trên web
• Sử dụng HttpOnly để bảo vệ cookie
• Built-in protection
 ASP.NET Request Validation (ASP.NET 4.0)
 AntiXSS library (ASP.NET 4.5)
• NWebSec
XSS – Validation & Encoding every
where
Insecure Direct Object Reference
• Tham khảo một ví dụ
 http://www.company.com/employeeprofile.aspx?id=emp1
 Tính năng xem và chỉnh sửa thông tin cá nhân của mỗi nhân viên
 Lập trình viên không dùng ID của user hiện tại mà lại lấy qua URL
 => Employe 1 có thể xem
http://www.company.com/employeeprofile.aspx?id=emp2
• Phân quyền chỉ ẩn menu chức năng, nhưng khi truy cập bằng đường
dẫn vẫn vào được.
Insecure Direct Object Reference
Cách phòng chống
• Chỉ phân quyền, hạn chế ở Front-end là chưa đủ
• Tất cả các tài nguyên phải được chỉ định mức độ an ninh và được
kiểm tra quyền
• Lưu ý các API lấy dữ liệu rất dễ bị lãng quên check quyền.
Security Misconfiguration
• Bảo mật tốt là ta phải bảo mật ở tất cả các tầng
 Application (Source Code)
 Application Server (OS)
 Web Server
 Database server
 …
• Thông thường thiết lập mặc định của các tầng, ứng dụng thường kém bảo
mật
 Default password
 FTP Anonymous
 Directory listing
 Error page
 Permission
 MIME Type
 Unused port open
Security Misconfiguration
• Đọc kỹ tài liệu hướng dẫn của các phần mềm khi triển khai
• Chịu có theo dõi các tạp chí, blog công nghệ để cập nhật các thông tin
về bảo mật
• Dùng phần mềm quét hệ thống
 Microsoft Baseline Security Anlyzer …
• Disable tất cả các port không dùng
• Disable, đổi password mặc định
• Không show báo lỗi chi tiết đến người dùng cuối
 Custom Errorpage
Sử dụng phần mềm, component có lỗ
hổng
• Luôn cập nhật bản mới nhất có thể
• Theo dõi website của hãng để có thông tin về lỗ hổng, bản vá sớm
nhất
• Không sử dụng phần mềm crack, hay dùng phần mềm không rõ
nguồn gốc trên server.
Upload
• Attacker có thể upload 1 trang mã nguồn (aspx, php), virus, backdoor
lên server, dựa vào tính năng upload không validate.
• Lỗ hổng này rất nghiêm trọng, Attacker có thể chiếm toàn quyền
kiểm soát server thông qua lỗ hổng này
• Developer mới nào code tính năng upload hầu như cũng mắc phải lổ
hổng này.
Demo
Upload – Cách phòng chống
 Validate ui chưa đủ
 Kiểm tra header file
 Không dùng tên file truyền từ client lên
 Validate đuôi file hợp lệ
 Cài phần mềm virus lên server
 Tính năng upload nên viết, kiểm nghiệm và đóng gói thành các thư viện
dùng chung.
Download
• Attacker có thể download các file nhạy cảm từ server
 Các file config
 Mã nguồn
• Developer mới nào code tính năng download hầu như cũng mắc phải
lổ hổng này.
Demo
Download – Cách phòng chống
• Không sử dụng filename truyền từ phía client
 Nên sử dụng ID thông qua các bảng quản lý
• Nếu vẫn sử dụng thì remove hết các ký tự “..”
• Kiểm tra đuôi file, chỉ cho phép dowload những file có đuôi trong
danh sách được phép.
OWASP
• OWASP (Open Web Application Security Project) là 1 dự án mở về
bảo mật ứng dụng web, 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 toàn và kiểm
định mã nguồn
 Các thư viện và tiêu chuẩn điều khiển an toàn thông tin
 Các nghiên cứu mới nhất về bảo mật ứng dụng web
 Các maillist uy tín về thông tin bảo mật
Một vài projects của OWASP
Zed Attack Proxy (ZAP)
Easy to use integrated penetration testing tool for finding
vulnerabilities in web applications
Security Shepherd
CBT application for web and mobile application security awareness
and education
Dependency Check
Utility that identifies project dependencies and checks if there are any
known, publicly disclosed, vulnerabilities
O-Saft
Tool to show information about SSL certificates and tests the SSL
connections for given list of ciphers and various configurations
Source: https://www.owasp.org
OWASP vs CWE/SANS
Both are like
different sides of the
same coin
PCI DSS points to
both as industry best
practices
Optimal: Be familiar
with both!
OWASP
Top 10
CWE/SANS
Top 25
Source: http://www.docstoc.com/docs/115032367/2010-CWESANS-Top-25-with-OWASP-Top-10-and-PCI-DSS-V2-Mapping
Các phần mềm sử dụng phát hiện
sớm lỗ hổng
• CAT.NET
• OWASP Dependency Check
• Burp suite
• Acunetix
• MBSA – Microsoft baseline security analyzer

More Related Content

What's hot (20)

Lập trình web - HTML cơ bản
Lập trình web - HTML cơ bảnLập trình web - HTML cơ bản
Lập trình web - HTML cơ bản
Nhóc Nhóc
Báo cáo thực tập hàng tuần - Các chuẩn bảo mật web (OWASP)
Báo cáo thực tập hàng tuần - Các chuẩn bảo mật web (OWASP)Báo cáo thực tập hàng tuần - Các chuẩn bảo mật web (OWASP)
Báo cáo thực tập hàng tuần - Các chuẩn bảo mật web (OWASP)
Luc Cao
Nghiên cứu một số hình thức tấn công website phổ biến và các giải pháp phòng ...
Nghiên cứu một số hình thức tấn công website phổ biến và các giải pháp phòng ...Nghiên cứu một số hình thức tấn công website phổ biến và các giải pháp phòng ...
Nghiên cứu một số hình thức tấn công website phổ biến và các giải pháp phòng ...
Thịt Xốt Cà Chua
Báo cáo SQL injecttion
Báo cáo SQL injecttionBáo cáo SQL injecttion
Báo cáo SQL injecttion
Duy Nguyenduc
400 câu hỏi thi trắc nghiệm ASP.NET có đáp án - Thiết kế website kinh doanh 2
400 câu hỏi thi trắc nghiệm ASP.NET có đáp án - Thiết kế website kinh doanh 2400 câu hỏi thi trắc nghiệm ASP.NET có đáp án - Thiết kế website kinh doanh 2
400 câu hỏi thi trắc nghiệm ASP.NET có đáp án - Thiết kế website kinh doanh 2
Nhận Viết Đề Tài Trọn Gói ZALO 0932091562
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Khoa Học Máy Tính Chọn Lọc
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Khoa Học Máy Tính Chọn LọcDanh Sách 200 Đề Tài Báo Cáo Thực Tập Khoa Học Máy Tính Chọn Lọc
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Khoa Học Máy Tính Chọn Lọc
Dịch vụ viết bài trọn gói ZALO: 0909232620
Hướng dẫn sử dụng Selenium ide
Hướng dẫn sử dụng Selenium ideHướng dẫn sử dụng Selenium ide
Hướng dẫn sử dụng Selenium ide
Thiện Dương
Hệ thống thông tin quản lý trong doanh nghiệp và kế toán tiền mặt
Hệ thống thông tin quản lý trong doanh nghiệp và kế toán tiền mặtHệ thống thông tin quản lý trong doanh nghiệp và kế toán tiền mặt
Hệ thống thông tin quản lý trong doanh nghiệp và kế toán tiền mặt
Dịch vụ viết bài trọn gói ZALO 0917193864
[Khóa luận tốt nghiệp] - Tìm hiểu và triển khai Snort/SnortSam
[Khóa luận tốt nghiệp] - Tìm hiểu và triển khai Snort/SnortSam[Khóa luận tốt nghiệp] - Tìm hiểu và triển khai Snort/SnortSam
[Khóa luận tốt nghiệp] - Tìm hiểu và triển khai Snort/SnortSam
Tiki.vn
Sql injection demo - it-slideshares.blogspot.com
Sql injection   demo - it-slideshares.blogspot.comSql injection   demo - it-slideshares.blogspot.com
Sql injection demo - it-slideshares.blogspot.com
phanleson
Security Bootcamp 2013 - OWASP TOP 10- 2013
Security Bootcamp 2013 - OWASP TOP 10- 2013Security Bootcamp 2013 - OWASP TOP 10- 2013
Security Bootcamp 2013 - OWASP TOP 10- 2013
Security Bootcamp
Luận văn: Nghiên cứu công nghệ tìm kiếm (Mã nguồn mở) Lucene
Luận văn: Nghiên cứu công nghệ tìm kiếm (Mã nguồn mở) LuceneLuận văn: Nghiên cứu công nghệ tìm kiếm (Mã nguồn mở) Lucene
Luận văn: Nghiên cứu công nghệ tìm kiếm (Mã nguồn mở) Lucene
Dịch vụ viết bài trọn gói ZALO 0917193864
Windows Registry Auditing Cheat Sheet ver Oct 2016 - MalwareArchaeology
Windows Registry Auditing Cheat Sheet ver Oct 2016 - MalwareArchaeologyWindows Registry Auditing Cheat Sheet ver Oct 2016 - MalwareArchaeology
Windows Registry Auditing Cheat Sheet ver Oct 2016 - MalwareArchaeology
Michael Gough
ChuyenDeANM ung dung he thong IDS securityonion vao giam sat moi truong mang ...
ChuyenDeANM ung dung he thong IDS securityonion vao giam sat moi truong mang ...ChuyenDeANM ung dung he thong IDS securityonion vao giam sat moi truong mang ...
ChuyenDeANM ung dung he thong IDS securityonion vao giam sat moi truong mang ...
nataliej4
Tấn công sql injection sử dụng câu lệnh select union
Tấn công sql injection sử dụng câu lệnh select unionTấn công sql injection sử dụng câu lệnh select union
Tấn công sql injection sử dụng câu lệnh select union
Nguyễn Danh Thanh
Những nguyên tắc cơ bản xây dựng hệ thống an toàn thông tin trong doanh nghiệp
Những nguyên tắc cơ bản xây dựng hệ thống an toàn thông tin trong doanh nghiệpNhững nguyên tắc cơ bản xây dựng hệ thống an toàn thông tin trong doanh nghiệp
Những nguyên tắc cơ bản xây dựng hệ thống an toàn thông tin trong doanh nghiệp
CIO Vietnam
SQL Injection
SQL InjectionSQL Injection
SQL Injection
CongDoanVan1
Đề tài: tấn công qua mạng và cách phòng chống
Đề tài: tấn công qua mạng và cách phòng chốngĐề tài: tấn công qua mạng và cách phòng chống
Đề tài: tấn công qua mạng và cách phòng chống
Thái Phan Minh
Tìm hiểu keylogger và thiết kế chương trình keylogger
Tìm hiểu keylogger và thiết kế chương trình keyloggerTìm hiểu keylogger và thiết kế chương trình keylogger
Tìm hiểu keylogger và thiết kế chương trình keylogger
Vũ Mạnh Sơn
Lập trình web - HTML cơ bản
Lập trình web - HTML cơ bảnLập trình web - HTML cơ bản
Lập trình web - HTML cơ bản
Nhóc Nhóc
Báo cáo thực tập hàng tuần - Các chuẩn bảo mật web (OWASP)
Báo cáo thực tập hàng tuần - Các chuẩn bảo mật web (OWASP)Báo cáo thực tập hàng tuần - Các chuẩn bảo mật web (OWASP)
Báo cáo thực tập hàng tuần - Các chuẩn bảo mật web (OWASP)
Luc Cao
Nghiên cứu một số hình thức tấn công website phổ biến và các giải pháp phòng ...
Nghiên cứu một số hình thức tấn công website phổ biến và các giải pháp phòng ...Nghiên cứu một số hình thức tấn công website phổ biến và các giải pháp phòng ...
Nghiên cứu một số hình thức tấn công website phổ biến và các giải pháp phòng ...
Thịt Xốt Cà Chua
Hướng dẫn sử dụng Selenium ide
Hướng dẫn sử dụng Selenium ideHướng dẫn sử dụng Selenium ide
Hướng dẫn sử dụng Selenium ide
Thiện Dương
[Khóa luận tốt nghiệp] - Tìm hiểu và triển khai Snort/SnortSam
[Khóa luận tốt nghiệp] - Tìm hiểu và triển khai Snort/SnortSam[Khóa luận tốt nghiệp] - Tìm hiểu và triển khai Snort/SnortSam
[Khóa luận tốt nghiệp] - Tìm hiểu và triển khai Snort/SnortSam
Tiki.vn
Sql injection demo - it-slideshares.blogspot.com
Sql injection   demo - it-slideshares.blogspot.comSql injection   demo - it-slideshares.blogspot.com
Sql injection demo - it-slideshares.blogspot.com
phanleson
Security Bootcamp 2013 - OWASP TOP 10- 2013
Security Bootcamp 2013 - OWASP TOP 10- 2013Security Bootcamp 2013 - OWASP TOP 10- 2013
Security Bootcamp 2013 - OWASP TOP 10- 2013
Security Bootcamp
Windows Registry Auditing Cheat Sheet ver Oct 2016 - MalwareArchaeology
Windows Registry Auditing Cheat Sheet ver Oct 2016 - MalwareArchaeologyWindows Registry Auditing Cheat Sheet ver Oct 2016 - MalwareArchaeology
Windows Registry Auditing Cheat Sheet ver Oct 2016 - MalwareArchaeology
Michael Gough
ChuyenDeANM ung dung he thong IDS securityonion vao giam sat moi truong mang ...
ChuyenDeANM ung dung he thong IDS securityonion vao giam sat moi truong mang ...ChuyenDeANM ung dung he thong IDS securityonion vao giam sat moi truong mang ...
ChuyenDeANM ung dung he thong IDS securityonion vao giam sat moi truong mang ...
nataliej4
Tấn công sql injection sử dụng câu lệnh select union
Tấn công sql injection sử dụng câu lệnh select unionTấn công sql injection sử dụng câu lệnh select union
Tấn công sql injection sử dụng câu lệnh select union
Nguyễn Danh Thanh
Những nguyên tắc cơ bản xây dựng hệ thống an toàn thông tin trong doanh nghiệp
Những nguyên tắc cơ bản xây dựng hệ thống an toàn thông tin trong doanh nghiệpNhững nguyên tắc cơ bản xây dựng hệ thống an toàn thông tin trong doanh nghiệp
Những nguyên tắc cơ bản xây dựng hệ thống an toàn thông tin trong doanh nghiệp
CIO Vietnam
Đề tài: tấn công qua mạng và cách phòng chống
Đề tài: tấn công qua mạng và cách phòng chốngĐề tài: tấn công qua mạng và cách phòng chống
Đề tài: tấn công qua mạng và cách phòng chống
Thái Phan Minh
Tìm hiểu keylogger và thiết kế chương trình keylogger
Tìm hiểu keylogger và thiết kế chương trình keyloggerTìm hiểu keylogger và thiết kế chương trình keylogger
Tìm hiểu keylogger và thiết kế chương trình keylogger
Vũ Mạnh Sơn

Similar to Bảo mật ứng dụng web (20)

Web application-security
Web application-securityWeb application-security
Web application-security
Visla Team
Báo cáo hàng tuần - Các chuẩn bảo mật web (OWASP)
Báo cáo hàng tuần - Các chuẩn bảo mật web (OWASP)Báo cáo hàng tuần - Các chuẩn bảo mật web (OWASP)
Báo cáo hàng tuần - Các chuẩn bảo mật web (OWASP)
Luc Cao
Trung tâm đào tạo
Trung tâm đào tạoTrung tâm đào tạo
Trung tâm đào tạo
Luc Cao
Tim hieu lo hong web va cach phong chong
Tim hieu lo hong web va cach phong chongTim hieu lo hong web va cach phong chong
Tim hieu lo hong web va cach phong chong
Vu Trung Kien
báo cáo thực tập Athena - tuần1
báo cáo thực tập Athena - tuần1báo cáo thực tập Athena - tuần1
báo cáo thực tập Athena - tuần1
Luc Cao
Owasp top 10
Owasp top 10Owasp top 10
Owasp top 10
Linh Hoang
Tan cong
Tan congTan cong
Tan cong
toan
Advance Penetration Test with Armitage - Nguyễn Trần Tường Vinh
Advance Penetration Test with Armitage - Nguyễn Trần Tường VinhAdvance Penetration Test with Armitage - Nguyễn Trần Tường Vinh
Advance Penetration Test with Armitage - Nguyễn Trần Tường Vinh
Security Bootcamp
Thu 6 04 advance penetration test with armitage
Thu 6   04 advance penetration test with armitageThu 6   04 advance penetration test with armitage
Thu 6 04 advance penetration test with armitage
Security Bootcamp
Kiểm thử bảo mật web
Kiểm thử bảo mật webKiểm thử bảo mật web
Kiểm thử bảo mật web
Minh Tri Nguyen
Những lỗi bảo mật web thường gặp ở phần application
Những lỗi bảo mật web thường gặp ở phần applicationNhững lỗi bảo mật web thường gặp ở phần application
Những lỗi bảo mật web thường gặp ở phần application
Ngoc Dao
ATTT.pptx
ATTT.pptxATTT.pptx
ATTT.pptx
ssuser1d7b58
Bảo mật ứng dụng ASP.NET
Bảo mật ứng dụng ASP.NETBảo mật ứng dụng ASP.NET
Bảo mật ứng dụng ASP.NET
HUST
SYSTEM HACKING - TUẦN 1
SYSTEM HACKING - TUẦN 1SYSTEM HACKING - TUẦN 1
SYSTEM HACKING - TUẦN 1
Con Ranh
SYSTEM HACKING - TUẦN 2
SYSTEM HACKING - TUẦN 2SYSTEM HACKING - TUẦN 2
SYSTEM HACKING - TUẦN 2
Con Ranh
Threat hunting.pptx
Threat hunting.pptxThreat hunting.pptx
Threat hunting.pptx
SugarCane18
Bài giảng hack web.ppt
Bài giảng hack web.pptBài giảng hack web.ppt
Bài giảng hack web.ppt
SninhCng1
Bài 4: Bảo mật máy chủ, ứng dụng, dữ liệu và mạng - Giáo trình FPT
Bài 4: Bảo mật máy chủ, ứng dụng, dữ liệu và mạng - Giáo trình FPTBài 4: Bảo mật máy chủ, ứng dụng, dữ liệu và mạng - Giáo trình FPT
Bài 4: Bảo mật máy chủ, ứng dụng, dữ liệu và mạng - Giáo trình FPT
MasterCode.vn
ểm-ٳử-ần-ềm.ٳ
ểm-ٳử-ần-ềm.ٳểm-ٳử-ần-ềm.ٳ
ểm-ٳử-ần-ềm.ٳ
QuangUyH
Web application-security
Web application-securityWeb application-security
Web application-security
Visla Team
Báo cáo hàng tuần - Các chuẩn bảo mật web (OWASP)
Báo cáo hàng tuần - Các chuẩn bảo mật web (OWASP)Báo cáo hàng tuần - Các chuẩn bảo mật web (OWASP)
Báo cáo hàng tuần - Các chuẩn bảo mật web (OWASP)
Luc Cao
Trung tâm đào tạo
Trung tâm đào tạoTrung tâm đào tạo
Trung tâm đào tạo
Luc Cao
Tim hieu lo hong web va cach phong chong
Tim hieu lo hong web va cach phong chongTim hieu lo hong web va cach phong chong
Tim hieu lo hong web va cach phong chong
Vu Trung Kien
báo cáo thực tập Athena - tuần1
báo cáo thực tập Athena - tuần1báo cáo thực tập Athena - tuần1
báo cáo thực tập Athena - tuần1
Luc Cao
Tan cong
Tan congTan cong
Tan cong
toan
Advance Penetration Test with Armitage - Nguyễn Trần Tường Vinh
Advance Penetration Test with Armitage - Nguyễn Trần Tường VinhAdvance Penetration Test with Armitage - Nguyễn Trần Tường Vinh
Advance Penetration Test with Armitage - Nguyễn Trần Tường Vinh
Security Bootcamp
Thu 6 04 advance penetration test with armitage
Thu 6   04 advance penetration test with armitageThu 6   04 advance penetration test with armitage
Thu 6 04 advance penetration test with armitage
Security Bootcamp
Những lỗi bảo mật web thường gặp ở phần application
Những lỗi bảo mật web thường gặp ở phần applicationNhững lỗi bảo mật web thường gặp ở phần application
Những lỗi bảo mật web thường gặp ở phần application
Ngoc Dao
Bảo mật ứng dụng ASP.NET
Bảo mật ứng dụng ASP.NETBảo mật ứng dụng ASP.NET
Bảo mật ứng dụng ASP.NET
HUST
SYSTEM HACKING - TUẦN 1
SYSTEM HACKING - TUẦN 1SYSTEM HACKING - TUẦN 1
SYSTEM HACKING - TUẦN 1
Con Ranh
SYSTEM HACKING - TUẦN 2
SYSTEM HACKING - TUẦN 2SYSTEM HACKING - TUẦN 2
SYSTEM HACKING - TUẦN 2
Con Ranh
Bài giảng hack web.ppt
Bài giảng hack web.pptBài giảng hack web.ppt
Bài giảng hack web.ppt
SninhCng1
Bài 4: Bảo mật máy chủ, ứng dụng, dữ liệu và mạng - Giáo trình FPT
Bài 4: Bảo mật máy chủ, ứng dụng, dữ liệu và mạng - Giáo trình FPTBài 4: Bảo mật máy chủ, ứng dụng, dữ liệu và mạng - Giáo trình FPT
Bài 4: Bảo mật máy chủ, ứng dụng, dữ liệu và mạng - Giáo trình FPT
MasterCode.vn
ểm-ٳử-ần-ềm.ٳ
ểm-ٳử-ần-ềm.ٳểm-ٳử-ần-ềm.ٳ
ểm-ٳử-ần-ềm.ٳ
QuangUyH

Bảo mật ứng dụng web

  • 1. Bảo mật trong ứng dụng web Nguyễn Thế Vinh Công ty cổ phần Con Tự Học http://www.contuho.com
  • 2. Nội dung • Giới thiệu các lỗ hổng thường gặp • Demo khai thác một số lỗ hổng • Cách phòng chống các lỗ hổng • Công cụ ra quét
  • 5. Sony Pictures bị hack (2011)
  • 7. Các sân bay ở Việt Nam 2016
  • 8. Tại sao phải bảo mật ứng dụng Web • Web Application là mục tiêu số 1 của các hacker  75% các cuộc tấn công nhằm vào tầng Application (Gartner) • Hầu hết các Web Application đều có lỗ hổng  95% Web Application có lỗ hổng (Imperva)  78% Web App có lỗ hổng dễ khai thác (Sysmantec)  67% Web App bị lợi dụng để phát tán Malware (Sysmantec)
  • 9. Các lỗ hổng thường gặp
  • 10. Injection • Nhân tố  Bất cứ ai, hệ thống nào có thể gửi dữ liệu không tin cậy vào hệ thống • Khả năng tấn công  DỄ • Độ phổ biến  Phổ biến • Khả năng phát hiện  Trung bình • Mức độ ảnh hưởng  Nghiêm Trọng: đánh cắp, phá hủy dữ liệu…
  • 11. Injection (tiếp) • Injection là?  Đánh lừa ứng dụng, nhằm tiêm một hay nhiều đoạn code, câu lệnh ngoài ý muốn vào chương trình. • Các loại Injection  SQL  LDAP  OS Command  Xpath  …
  • 12. SQL Injection http://www.sample.com?SampleID=1 “SELECT * FROM Sample WHERE SampleID=1” http://www.sample.com?SampleID=1; DROP TABLE Product “SELECT * FROM Sample WHERE SampleID=1; DROP TABLE Product”
  • 14. Demo
  • 15. Injection: Cách phòng chống • Hạn chế dùng command text  Nếu dùng thì nên dùng SqlParameter • Sử dụng Stored Procedured  Lưu ý các trường hợp build query động trong stored • Escape tất cả các dữ liệu đầu vào • Phân quyền (user sql) mức thấp nhất có thể • White list input validation  VD: Tên chỉ chấp nhận [A-Za-z ]
  • 16. Broken authentication & Session Management • Các chức năng authentication, authorization được thi công không đúng khiến attacker dễ dàng đánh cắp mất khẩu, quyền truy cập (tạm thời hoặc vĩnh viễn)
  • 17. Broken authentication & Session Management • Cookie: authenticated=1
  • 18. Broken authentication & Session Management • Kiểm tra thông tin đăng nhập:  Session[“UserName”] != null
  • 19. Broken authentication & Session Management • HTTP là protocol không có trạng thái (stateless protocol)  Đơn giản chỉ có: HTTP request, HTTP response  Tất cả dữ liệu luôn được gửi qua HTTP Request • Làm thế nào để lưu giữ trạng thái?  Client: cookies  Server: sessions • Các ứng dụng thướng lưu trữ SessionID trong cookie, URL  Vấn đề: Mất SessionID là  mất mật khẩu • Nhiều cách để đánh cắp SessionID  packet sniffing – (Wifi công cộng)  HttpReferrer logs, if sessionId is in the URL
  • 21. Demo
  • 23. Broken authentication & Session Management • Sử dụng SSL!  Sniff Cookies (session ID) khó khắn hơn  Nếu không sử dụng SSL ở mọi nơi được thì hãy dùng ở form login • Sử dụng httponly cookie • Thiết lập timeout cho session, cookie  Hủy session khi logout • Không sử dụng mode SessionID qua URL, mà dùng cookie • Mã hóa cookie nếu cần thiết • Không ghi session ID ra log. • Kiểm tra password cũ khi đổi. Gửi email xác nhận tới email cũ nếu đổi email
  • 24. Cross-Site Scripting (XSS) • Cho phép Attacker có thể thực thi một đoạn Script trên trình duyệt của Victim. Để đánh cắp cookie (session id), thay đổi giao diện trang web nhằm mục đích lừa đảo, dẫn người dùng đến trang web chứa malware… • Gần như website nào cũng có lỗ hổng này
  • 25. Cross-Site Scripting (XSS) • Stored XSS  Thông qua các tính năng cho phép nhập liệu không được validate attacker nhập các đoạn mã và được lưu giữ vào chương trình. • Reflected XSS  Tiêm mã thông qua URL
  • 27. Demo
  • 29. Demo
  • 30. XSS – Cách phòng chống • Tuyệt đối không bao giờ tin tưởng dữ liệu người dùng nhập vào • “Escape” tất cả dữ liệu trước khi hiển thị ra  JavaScript parameters, URL parameters, STYLE elements  Remove script tags, and possibly anything with a SRC attribute • Không dùng HTTP GET cho các request thay đổi dữ liệu  Không thì 1 thẻ IMG cũng có thể xóa nội dung trên web • Sử dụng HttpOnly để bảo vệ cookie • Built-in protection  ASP.NET Request Validation (ASP.NET 4.0)  AntiXSS library (ASP.NET 4.5) • NWebSec
  • 31. XSS – Validation & Encoding every where
  • 32. Insecure Direct Object Reference • Tham khảo một ví dụ  http://www.company.com/employeeprofile.aspx?id=emp1  Tính năng xem và chỉnh sửa thông tin cá nhân của mỗi nhân viên  Lập trình viên không dùng ID của user hiện tại mà lại lấy qua URL  => Employe 1 có thể xem http://www.company.com/employeeprofile.aspx?id=emp2 • Phân quyền chỉ ẩn menu chức năng, nhưng khi truy cập bằng đường dẫn vẫn vào được.
  • 33. Insecure Direct Object Reference Cách phòng chống • Chỉ phân quyền, hạn chế ở Front-end là chưa đủ • Tất cả các tài nguyên phải được chỉ định mức độ an ninh và được kiểm tra quyền • Lưu ý các API lấy dữ liệu rất dễ bị lãng quên check quyền.
  • 34. Security Misconfiguration • Bảo mật tốt là ta phải bảo mật ở tất cả các tầng  Application (Source Code)  Application Server (OS)  Web Server  Database server  … • Thông thường thiết lập mặc định của các tầng, ứng dụng thường kém bảo mật  Default password  FTP Anonymous  Directory listing  Error page  Permission  MIME Type  Unused port open
  • 35. Security Misconfiguration • Đọc kỹ tài liệu hướng dẫn của các phần mềm khi triển khai • Chịu có theo dõi các tạp chí, blog công nghệ để cập nhật các thông tin về bảo mật • Dùng phần mềm quét hệ thống  Microsoft Baseline Security Anlyzer … • Disable tất cả các port không dùng • Disable, đổi password mặc định • Không show báo lỗi chi tiết đến người dùng cuối  Custom Errorpage
  • 36. Sử dụng phần mềm, component có lỗ hổng • Luôn cập nhật bản mới nhất có thể • Theo dõi website của hãng để có thông tin về lỗ hổng, bản vá sớm nhất • Không sử dụng phần mềm crack, hay dùng phần mềm không rõ nguồn gốc trên server.
  • 37. Upload • Attacker có thể upload 1 trang mã nguồn (aspx, php), virus, backdoor lên server, dựa vào tính năng upload không validate. • Lỗ hổng này rất nghiêm trọng, Attacker có thể chiếm toàn quyền kiểm soát server thông qua lỗ hổng này • Developer mới nào code tính năng upload hầu như cũng mắc phải lổ hổng này.
  • 38. Demo
  • 39. Upload – Cách phòng chống  Validate ui chưa đủ  Kiểm tra header file  Không dùng tên file truyền từ client lên  Validate đuôi file hợp lệ  Cài phần mềm virus lên server  Tính năng upload nên viết, kiểm nghiệm và đóng gói thành các thư viện dùng chung.
  • 40. Download • Attacker có thể download các file nhạy cảm từ server  Các file config  Mã nguồn • Developer mới nào code tính năng download hầu như cũng mắc phải lổ hổng này.
  • 41. Demo
  • 42. Download – Cách phòng chống • Không sử dụng filename truyền từ phía client  Nên sử dụng ID thông qua các bảng quản lý • Nếu vẫn sử dụng thì remove hết các ký tự “..” • Kiểm tra đuôi file, chỉ cho phép dowload những file có đuôi trong danh sách được phép.
  • 43. OWASP • OWASP (Open Web Application Security Project) là 1 dự án mở về bảo mật ứng dụng web, 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 toàn và kiểm định mã nguồn  Các thư viện và tiêu chuẩn điều khiển an toàn thông tin  Các nghiên cứu mới nhất về bảo mật ứng dụng web  Các maillist uy tín về thông tin bảo mật
  • 44. Một vài projects của OWASP Zed Attack Proxy (ZAP) Easy to use integrated penetration testing tool for finding vulnerabilities in web applications Security Shepherd CBT application for web and mobile application security awareness and education Dependency Check Utility that identifies project dependencies and checks if there are any known, publicly disclosed, vulnerabilities O-Saft Tool to show information about SSL certificates and tests the SSL connections for given list of ciphers and various configurations Source: https://www.owasp.org
  • 45. OWASP vs CWE/SANS Both are like different sides of the same coin PCI DSS points to both as industry best practices Optimal: Be familiar with both! OWASP Top 10 CWE/SANS Top 25 Source: http://www.docstoc.com/docs/115032367/2010-CWESANS-Top-25-with-OWASP-Top-10-and-PCI-DSS-V2-Mapping
  • 46. Các phần mềm sử dụng phát hiện sớm lỗ hổng • CAT.NET • OWASP Dependency Check • Burp suite • Acunetix • MBSA – Microsoft baseline security analyzer