SlideShare 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
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

SQL Injection
SQL InjectionSQL Injection
SQL Injection
CongDoanVan1
 
Tổng quan về an toàn và bảo mật thông tin
Tổng quan về an toàn và bảo mật thông tinTổng quan về an toàn và bảo mật thông tin
Tổng quan về an toàn và bảo mật thông tin
Nguyen Thi Lan Phuong
 
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
 
XSS & SQL injection
XSS & SQL injectionXSS & SQL injection
XSS & SQL injection
Thieu Mao
 
Mô hình 3 lớp
Mô hình 3 lớpMô hình 3 lớp
Mô hình 3 lớp
Bình Trọng Án
 
Bai giang atbmtt
Bai giang atbmtt Bai giang atbmtt
Bai giang atbmtt Hà Vũ
 
Rest API Security - A quick understanding of Rest API Security
Rest API Security - A quick understanding of Rest API SecurityRest API Security - A quick understanding of Rest API Security
Rest API Security - A quick understanding of Rest API Security
Mohammed Fazuluddin
 
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
 
DerbyCon 7 - Hacking VDI, Recon and Attack Methods
DerbyCon 7 - Hacking VDI, Recon and Attack MethodsDerbyCon 7 - Hacking VDI, Recon and Attack Methods
DerbyCon 7 - Hacking VDI, Recon and Attack Methods
Patrick Coble
 
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
 
Báo cáo thực tập
Báo cáo thực tậpBáo cáo thực tập
Báo cáo thực tậpLuc Cao
 
Sql injection
Sql injectionSql injection
Sql injection
Sasha-Leigh Garret
 
XXE injection - Nguyễn Tăng Hưng
XXE injection - Nguyễn Tăng HưngXXE injection - Nguyễn Tăng Hưng
XXE injection - Nguyễn Tăng Hưng
Võ Thái Lâm
 
Đề tài: Nghiên cứu Hệ thống Honeypots và Honeynet nhằm nghiên cứu một số kỹ t...
Đề tài: Nghiên cứu Hệ thống Honeypots và Honeynet nhằm nghiên cứu một số kỹ t...Đề tài: Nghiên cứu Hệ thống Honeypots và Honeynet nhằm nghiên cứu một số kỹ t...
Đề tài: Nghiên cứu Hệ thống Honeypots và Honeynet nhằm nghiên cứu một số kỹ t...
Viết thuê trọn gói ZALO 0934573149
 
SSRF exploit the trust relationship
SSRF exploit the trust relationshipSSRF exploit the trust relationship
SSRF exploit the trust relationship
n|u - The Open Security Community
 
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
 
Web application-security
Web application-securityWeb application-security
Web application-security
Visla Team
 
Bài 7: Xác thực và quản lý tài khoản - Giáo trình FPT
Bài 7: Xác thực và quản lý tài khoản - Giáo trình FPTBài 7: Xác thực và quản lý tài khoản - Giáo trình FPT
Bài 7: Xác thực và quản lý tài khoản - Giáo trình FPT
MasterCode.vn
 
Cơ sở an toàn thông tin chương 2
Cơ sở an toàn thông tin chương 2Cơ sở an toàn thông tin chương 2
Cơ sở an toàn thông tin chương 2
NguynMinh294
 

What's hot (20)

SQL injection
SQL injectionSQL injection
SQL injection
 
SQL Injection
SQL InjectionSQL Injection
SQL Injection
 
Tổng quan về an toàn và bảo mật thông tin
Tổng quan về an toàn và bảo mật thông tinTổng quan về an toàn và bảo mật thông tin
Tổng quan về an toàn và bảo mật thông tin
 
Báo cáo SQL injecttion
Báo cáo SQL injecttionBáo cáo SQL injecttion
Báo cáo SQL injecttion
 
XSS & SQL injection
XSS & SQL injectionXSS & SQL injection
XSS & SQL injection
 
Mô hình 3 lớp
Mô hình 3 lớpMô hình 3 lớp
Mô hình 3 lớp
 
Bai giang atbmtt
Bai giang atbmtt Bai giang atbmtt
Bai giang atbmtt
 
Rest API Security - A quick understanding of Rest API Security
Rest API Security - A quick understanding of Rest API SecurityRest API Security - A quick understanding of Rest API Security
Rest API Security - A quick understanding of Rest API Security
 
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 ...
 
DerbyCon 7 - Hacking VDI, Recon and Attack Methods
DerbyCon 7 - Hacking VDI, Recon and Attack MethodsDerbyCon 7 - Hacking VDI, Recon and Attack Methods
DerbyCon 7 - Hacking VDI, Recon and Attack Methods
 
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)
 
Báo cáo thực tập
Báo cáo thực tậpBáo cáo thực tập
Báo cáo thực tập
 
Sql injection
Sql injectionSql injection
Sql injection
 
XXE injection - Nguyễn Tăng Hưng
XXE injection - Nguyễn Tăng HưngXXE injection - Nguyễn Tăng Hưng
XXE injection - Nguyễn Tăng Hưng
 
Đề tài: Nghiên cứu Hệ thống Honeypots và Honeynet nhằm nghiên cứu một số kỹ t...
Đề tài: Nghiên cứu Hệ thống Honeypots và Honeynet nhằm nghiên cứu một số kỹ t...Đề tài: Nghiên cứu Hệ thống Honeypots và Honeynet nhằm nghiên cứu một số kỹ t...
Đề tài: Nghiên cứu Hệ thống Honeypots và Honeynet nhằm nghiên cứu một số kỹ t...
 
SSRF exploit the trust relationship
SSRF exploit the trust relationshipSSRF exploit the trust relationship
SSRF exploit the trust relationship
 
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)
 
Web application-security
Web application-securityWeb application-security
Web application-security
 
Bài 7: Xác thực và quản lý tài khoản - Giáo trình FPT
Bài 7: Xác thực và quản lý tài khoản - Giáo trình FPTBài 7: Xác thực và quản lý tài khoản - Giáo trình FPT
Bài 7: Xác thực và quản lý tài khoản - Giáo trình FPT
 
Cơ sở an toàn thông tin chương 2
Cơ sở an toàn thông tin chương 2Cơ sở an toàn thông tin chương 2
Cơ sở an toàn thông tin chương 2
 

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

Trung tâm đào tạo
Trung tâm đào tạoTrung tâm đào tạo
Trung tâm đào tạoLuc Cao
 
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 congtoan
 
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 armitageSecurity Bootcamp
 
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
 
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 2
SYSTEM HACKING - TUẦN 2SYSTEM HACKING - TUẦN 2
SYSTEM HACKING - TUẦN 2Con Ranh
 
SYSTEM HACKING - TUẦN 1
SYSTEM HACKING - TUẦN 1SYSTEM HACKING - TUẦN 1
SYSTEM HACKING - TUẦN 1
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
 
Kiểm-thử-phần-mềmBC.pptx
Kiểm-thử-phần-mềmBC.pptxKiểm-thử-phần-mềmBC.pptx
Kiểm-thử-phần-mềmBC.pptx
QuangUyH
 
Dự Đoán Lỗ Hổng Phần Mềm Dựa Trên Kỹ Thuật Khai Phá Dữ Liệu _08300812092019
Dự Đoán Lỗ Hổng Phần Mềm Dựa Trên Kỹ Thuật Khai Phá Dữ Liệu _08300812092019Dự Đoán Lỗ Hổng Phần Mềm Dựa Trên Kỹ Thuật Khai Phá Dữ Liệu _08300812092019
Dự Đoán Lỗ Hổng Phần Mềm Dựa Trên Kỹ Thuật Khai Phá Dữ Liệu _08300812092019
hanhha12
 
Dự Đoán Lỗ Hổng Phần Mềm Dựa Trên Kỹ Thuật Khai Phá Dữ Liệu
Dự Đoán Lỗ Hổng Phần Mềm Dựa Trên Kỹ Thuật Khai Phá Dữ Liệu Dự Đoán Lỗ Hổng Phần Mềm Dựa Trên Kỹ Thuật Khai Phá Dữ Liệu
Dự Đoán Lỗ Hổng Phần Mềm Dựa Trên Kỹ Thuật Khai Phá Dữ Liệu
nataliej4
 
Linux web hosting (Thuyet trinh)
Linux web hosting (Thuyet trinh)Linux web hosting (Thuyet trinh)
Linux web hosting (Thuyet trinh)An Pham
 

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

Trung tâm đào tạo
Trung tâm đào tạoTrung tâm đào tạo
Trung tâm đào tạo
 
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
 
Owasp top 10
Owasp top 10Owasp top 10
Owasp top 10
 
Tan cong
Tan congTan cong
Tan cong
 
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
 
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
 
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
 
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
 
ATTT.pptx
ATTT.pptxATTT.pptx
ATTT.pptx
 
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
 
SYSTEM HACKING - TUẦN 2
SYSTEM HACKING - TUẦN 2SYSTEM HACKING - TUẦN 2
SYSTEM HACKING - TUẦN 2
 
SYSTEM HACKING - TUẦN 1
SYSTEM HACKING - TUẦN 1SYSTEM HACKING - TUẦN 1
SYSTEM HACKING - TUẦN 1
 
Threat hunting.pptx
Threat hunting.pptxThreat hunting.pptx
Threat hunting.pptx
 
Ch12phanmem
Ch12phanmemCh12phanmem
Ch12phanmem
 
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
 
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
 
Kiểm-thử-phần-mềmBC.pptx
Kiểm-thử-phần-mềmBC.pptxKiểm-thử-phần-mềmBC.pptx
Kiểm-thử-phần-mềmBC.pptx
 
Dự Đoán Lỗ Hổng Phần Mềm Dựa Trên Kỹ Thuật Khai Phá Dữ Liệu _08300812092019
Dự Đoán Lỗ Hổng Phần Mềm Dựa Trên Kỹ Thuật Khai Phá Dữ Liệu _08300812092019Dự Đoán Lỗ Hổng Phần Mềm Dựa Trên Kỹ Thuật Khai Phá Dữ Liệu _08300812092019
Dự Đoán Lỗ Hổng Phần Mềm Dựa Trên Kỹ Thuật Khai Phá Dữ Liệu _08300812092019
 
Dự Đoán Lỗ Hổng Phần Mềm Dựa Trên Kỹ Thuật Khai Phá Dữ Liệu
Dự Đoán Lỗ Hổng Phần Mềm Dựa Trên Kỹ Thuật Khai Phá Dữ Liệu Dự Đoán Lỗ Hổng Phần Mềm Dựa Trên Kỹ Thuật Khai Phá Dữ Liệu
Dự Đoán Lỗ Hổng Phần Mềm Dựa Trên Kỹ Thuật Khai Phá Dữ Liệu
 
Linux web hosting (Thuyet trinh)
Linux web hosting (Thuyet trinh)Linux web hosting (Thuyet trinh)
Linux web hosting (Thuyet trinh)
 

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
  • 3.
  • 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