Recent post
Hiển thị các bài đăng có nhãn Thủ Thuật. Hiển thị tất cả bài đăng
Hôm nay đang lướt facebook thì vô tình có 1 số bạn đề cập tới Brute Force đang buồn nên viết luôn 1 bài sơ sơ nói về Brute Force và các cách để phòng chống brute force cho website hay 1 mật khẩu mạnh để phòng chống Brute Force
Brute Force là gì ?
Brute Force là 1 hình thức tấn công theo hình thức đoán mật khẩu người dùng hay mật khẩu quản trị, 1 người có khả năng brute force tốt thường sẽ nắm được tâm lí của đối phương và đoán được mật khẩu của họ. Trên thế giới nói chung, hay ở tại Việt Nam nói riêng, vấn đề về mật khẩu vẫn còn khá nhiều người lẵng lơ không coi trọng nó, đã vô tình tạo ra sơ hở để thông tin dễ dàng bị đánh cắp hay quyền quản trị bị đánh cắp, xâm chiếm.
Làm thế nào để Brute Force ?
Để dễ dàng thực hiện brute force, ta nắm được tâm lí của mục tiêu, thông thường, người dùng sẽ đặt các mật khẩu đơn giản chẳng hạn như 123456,1234567,123456789 hay đỡ hơn một chút thì hacker123, ten12345, mk123456789 việc này, ta có thể download 1 số file tổng hợp tất cả các mật khẩu của người thường dùng và thực hiện việc đoán mật khẩu.
Các cách để phòng chống Brute Force ?
Nếu bạn là 1 quản trị website, hay một người dùng có tài khoản online trên các dịch vụ online thì việc đầu tiên của bạn sẽ là đổi mật khẩu mạnh để hạn chế khả năng bị Brute Force.
Thế nào là một “Mật Khẩu Mạnh” (Password Strong) ?
Mật khẩu mạnh là 1 mật khẩu chứa ít nhất 8 – 10 kí tự gồm số (0-9) chữ (a-z) và cả những kí tự đặc biệt ($*$!)!_$) thì nó sẽ gây khó khăn cho kẻ tấn công brute force vào quản trị, hay tài khoản người dùng dịch vụ của bạn.
Ví dụ tôi có một mật khẩu như thế này sẽ được gọi là một mật khẩu mạnh
Sonic%()@Y&(!123
chỉ cần đơn giản như thế, ta đã có thể gây khó khăn cho những kẻ muốn tấn công vào bạn bằng cách Brute Force.
Nếu bạn là 1 quản trị website, hãy dùng cách thức mã hóa mật khẩu bằng md5 để tăng thêm mức độ bảo vệ mật khẩu nếu dữ liệu quản trị của website bị rò rỉ.
Kết: Qua bài viết này, có thể ít nhiều bạn cũng đã biết được ít nhiều về mức độ nguy hiểm của mật khẩu đối với người dùng nếu vẫn còn lẵng lơ, không coi trọng nó.
Nguồn: SonicQ12
- Để phòng tránh các nguy cơ có thể xảy ra, hãy bảo vệ các câu lệnh SQL là bằng cách kiểm soát chặt chẽ tất cả các dữ liệu nhập nhận được từ đối tượng Request (Request, Request.QueryString,Request.Form, Request.Cookies, and Request.ServerVariables). Ví dụ, có thể giới hạn chiều dài của chuỗi nhập liệu, hoặc xây dựng hàm EscapeQuotes để thay thế các dấu nháy đơn bằng 2 dấu nháy đơn như:
<%
Function EscapeQuotes(sInput)
sInput = replace(sInput, ” ‘ “, ” ‘ ‘ “)
EscapeQuotes = sInput
End Function
%>
+ Trong trường hợp dữ liệu nhập vào là số, lỗi xuất phát từ việc thay thế một giá trị được tiên đoán là dữ liệu số bằng chuỗi chứa câu lệnh SQL bất hợp pháp. Để tránh điều này, đơn giản hãy kiểm tra dữ liệu có đúng kiểu hay không bằng hàm IsNumeric().
Ngoài ra có thể xây dựng hàm loại bỏ một số kí tự và từ khóa nguy hiểm như: ;, –, select, insert, xp_, … ra khỏi chuỗi dữ liệu nhập từ phía người dùng để hạn chế các tấn công dạng này:
<%
Function KillChars(sInput)
dim badChars
dim newChars
badChars = array(“select”, “drop”, “;”, “–”, “insert”, “delete”, “xp_”)
newChars = strInput
for i = 0 to uBound(badChars)
newChars = replace(newChars, badChars(i), “”)
next
KillChars = newChars
End Function
%>
+ Thiết lập cấu hình an toàn cho hệ quản trị cơ sở dữ liệu
Cần có cơ chế kiểm soát chặt chẽ và giới hạn quyền xử lí dữ liệu đến tài khoản người dùng mà ứng dụng web đang sử dụng. Các ứng dụng thông thường nên tránh dùng đến các quyền như dbo hay sa.
Quyền càng bị hạn chế, thiệt hại càng ít.
Ngoài ra để tránh các nguy cơ từ SQL Injection attack, nên chú ý loại bỏ bất kì thông tin kĩ thuật nào chứa trong thông điệp chuyển xuống cho người dùng khi ứng dụng có lỗi. Các thông báo lỗi thông thường tiết lộ các chi tiết kĩ thuật có thể cho phép kẻ tấn công biết được điểm yếu của hệ thống.
Hết
Theo: http://inv.ghostteam.us/
<%
Function EscapeQuotes(sInput)
sInput = replace(sInput, ” ‘ “, ” ‘ ‘ “)
EscapeQuotes = sInput
End Function
%>
+ Trong trường hợp dữ liệu nhập vào là số, lỗi xuất phát từ việc thay thế một giá trị được tiên đoán là dữ liệu số bằng chuỗi chứa câu lệnh SQL bất hợp pháp. Để tránh điều này, đơn giản hãy kiểm tra dữ liệu có đúng kiểu hay không bằng hàm IsNumeric().
Ngoài ra có thể xây dựng hàm loại bỏ một số kí tự và từ khóa nguy hiểm như: ;, –, select, insert, xp_, … ra khỏi chuỗi dữ liệu nhập từ phía người dùng để hạn chế các tấn công dạng này:
<%
Function KillChars(sInput)
dim badChars
dim newChars
badChars = array(“select”, “drop”, “;”, “–”, “insert”, “delete”, “xp_”)
newChars = strInput
for i = 0 to uBound(badChars)
newChars = replace(newChars, badChars(i), “”)
next
KillChars = newChars
End Function
%>
+ Thiết lập cấu hình an toàn cho hệ quản trị cơ sở dữ liệu
Cần có cơ chế kiểm soát chặt chẽ và giới hạn quyền xử lí dữ liệu đến tài khoản người dùng mà ứng dụng web đang sử dụng. Các ứng dụng thông thường nên tránh dùng đến các quyền như dbo hay sa.
Quyền càng bị hạn chế, thiệt hại càng ít.
Ngoài ra để tránh các nguy cơ từ SQL Injection attack, nên chú ý loại bỏ bất kì thông tin kĩ thuật nào chứa trong thông điệp chuyển xuống cho người dùng khi ứng dụng có lỗi. Các thông báo lỗi thông thường tiết lộ các chi tiết kĩ thuật có thể cho phép kẻ tấn công biết được điểm yếu của hệ thống.
Hết
Theo: http://inv.ghostteam.us/
Navigation