Ghi chép: Theo dõi bàn phím (keylogger) và cách phòng chống.

Ghi chép: Theo dõi bàn phím và cách phòng chống.

Trong một post trước nói về cách bảo vệ password chống keylogger, tôi nhận được một cái comment: “when you’re typing your password, you should use your mouse.”. Một người bạn của tôi hay banking online vừa rồi cũng tái mặt vì phát hiện một con keylogger trong máy. Tìm hiểu thêm về cách dùng chuột chống keylogger mới thấy vấn đề anti-keylogger hay và cũng phức tạp. Tôi viết post này vừa để tự tìm hiểu vừa chia sẻ với mọi người.

1- Khái niệm

Theo dõi bàn phím (keystroke logging hoặc keylogging) là hành động bí mật ghi lại các phím đã được gõ của bàn phím. Từ các phím đã được ghi lại đó, người theo dõi có thể biết được nội dung văn bản đã gõ hoặc username, password của người bị theo dõi và các thông tin khác.

Có rất nhiều cách để theo dõi bàn phím: dùng phần mềm, phần cứng ghi lại các phím đã gõ hoặc bắt các tín hiệu điện từ, tín hiệu âm thanh của bàn phím phát ra khi gõ. Các thiết bị, phần mềm theo dõi bàn phím gọi là keylogger.

Tác hại của keylogger:

Hầu hết người dùng máy tính hiện nay (nhất là dùng Windows) đều có khái niệm về virus và cách phòng chống virus. Tuy nhiên, các virus thường chỉ gây phiền toái (máy chạy chậm, hỏng phần mềm, v.v…), tác hại đến người dùng không lớn. Trong khi đó, nếu bị nhiễm keylogger, tác hại sẽ nguy hiểm hơn nhiều:

  • Hacker biết được password sẽ đọc trộm được các dữ liệu bảo vệ bằng password đó (đọc trộm thư chẳng hạn).
  • Hacker có thể đăng nhập vào hộp thư, blog của bạn, giả danh bạn để phát đi những thông điệp rất có hại.
  • Ở mức cao hơn, hacker có thể chiếm địa chỉ email, blog bằng cách thay đổi password do đó chủ nhân không đăng nhập được nữa, bị mất địa chỉ email hoặc blog đó.
  • Nếu bạn giao dịch ngân hàng, mua bán qua mạng, hacker sẽ lấy tiền trong tài khoản ngân hàng của bạn.
  • và mọi thứ bạn làm trên máy tính sẽ bị theo dõi, xem trộm và lợi dụng.

Vì vậy việc phòng chống keylogger có thể nói là còn quan trọng hơn cả phòng chống virus nữa.

2 – Các loại keylogger

2.1- Các phần mềm theo dõi bàn phím (software keyloggers)

Các phần mềm được bí mật cài vào máy tính cần theo dõi để ghi lại các phím đã gõ gồm có 5 loại sau:

  • Phần mềm keylogger chạy trong máy ảo: trên máy bị theo dõi, cài một máy ảo tối thiểu. Trong máy ảo đó chạy phần mềm keylogger. Đây là một cách làm khó nhưng tinh vi vì hệ điều hành chính vẫn giữ nguyên, không bị thay đổi nên rất khó phát hiện. Blue Pill là một ví dụ của loại malware này được công bố năm 2006, lúc đầu được tác giả coi là 100% không thể phát hiện được. Nhưng sau đó chính tác giả cũng phát triển một kỹ thuật có thể phát hiện được loại malware này.
  • Phần mềm keylogger chạy trong nhân hệ điều hành: loại phần mềm này khó viết và cũng khó diệt. Chúng được lập trình dưới dạng một rootkit xâm nhập vào nhân hệ điều hành và hoạt động như một driver bàn phím do đó có thể bắt mọi thông tin từ bàn phím chuyển cho hệ điều hành.
  • Phần mềm keylogger dùng giao diện lập trình (API) của bàn phím: loại phần mềm này dùng các hàm của API liên tục thăm dò trạng thái bàn phím, từ đó có thể ghi lại các phím đã gõ. Dễ viết nhưng làm tăng mức độ sử dụng CPU và cũng có thể bỏ sót phím.
  • Phần mềm bắt các dữ liệu nhập vào web form: một web form là nơi người dùng nhập dữ liệu vào, ví dụ màn hình đăng nhập Gmail. Phần mềm loại này nói chặt chẽ thì không phải ghi các phím đã gõ mà ghi lại các dữ liệu do người dùng nhập vào các web form: username, password, v.v…. trước khi dữ liệu đó được chuyển lên Internet, trước cả khi dữ liệu được mã hóa trong một kết nối dùng giao thức https. Đây là một trong những cách phổ biến để ăn trộm password.
  • Phần mềm bắt các gói dữ liệu của mạng: loại này có thể tìm được các password không mã hóa.

Một số phần mềm keylogger hiện nay còn có thể:

  • Ghi lại nội dung clipboard: vì vậy các password dài, phức tạp nhập bằng cách copy/paste qua clipboard có thể bị mất theo cách này.
  • Chụp ảnh, thậm chí quay phim màn hình và/hoặc ghi lại chuyển động của chuột: các keylogger loại này có thể phát hiện được các password nhập bằng bàn phím ảo trên màn hình (mà một số site ngân hàng hay dùng) hoặc các password dùng ảnh đồ họa.

Các dữ liệu ghi được, được chuyển cho hacker bằng một trong các cách:

  • Dữ liệu được tự động tải lên một site của hacker.
  • Dữ liệu định kỳ được tự động chuyển bằng email đến địa chỉ nhận của hacker.
  • Dữ liệu được chuyển qua mạng không dây bằng một thiết bị lắp trộm vào máy bị theo dõi.
  • Keylogger cho phép hacker từ xa đăng nhập vào máy để đọc các dữ liệu đã ghi được.

2.2 – Các thiết bị phần cứng theo dõi bàn phím.

Thiết bị phần cứng theo dõi bàn phím (hardware keylogger) là một thiết bị điện tử lắp chen vào giữa đường cáp của bàn phím nối với máy tính hoặc thậm chí lắp vào ngay bên trong bàn phím.

Các dữ liệu về các phím đã gõ được lưu vào bộ nhớ trong của thiết bị.

Hacker cần phải sờ được vào máy tính để lắp thiết bị này và đọc dữ liệu nó ghi được. Một máy tính để bàn có thể bị lắp loại thiết bị này mà người dùng không để ý nên không phát hiện được. Nhưng với máy tính xách tay thì hầu như không có chỗ để lắp.

Ví dụ tại đây chào bán các hardware keylogger lắp vào chân bàn phím có thể tự động gửi email những thứ đã ghi được qua kết nối Wifi của bản thân nó, hoặc các keylogger lắp vào chân màn hình có bộ nhớ 2GB có thể quay phim màn hình (giá 194USD).

2.3 – Thiết bị bắt sóng của bàn phím không dây

Bàn phím không dây cần truyền dữ liệu từ bàn phím tới bộ thu bằng sóng vô tuyến. Các thiết bị loại này sẽ bắt các sóng đó, giải mã để tìm ra các phím đã gõ.

2.4 – Thiết bị thu âm bàn phím

Mỗi phím trên bàn phím khi gõ phát ra âm thanh hơi khác nhau. Một thiết bị thu âm cực nhạy khi thu đủ một số lượng âm nhất định có thể giúp cho hacker dò ra được các phím đã gõ.

2.5 – Thiết bị thu sóng điện từ của bàn phím

Mỗi phím của bàn phím có dây khi bị gõ cũng phát ra một sóng điện từ có thể thu được ở khoảng cách tới 20m.

2.6 – Thử dùng một keylogger

Firefox có một add-ons cũng gọi là Keylogger được quảng cáo là

Nếu bạn lo lắng vì không biết con mình làm gì trên Internet ?

Nếu đêm bạn không ngủ được vì không biết chồng mình lọ mọ gì với máy tính vào lúc 2 giờ sáng?

Add-ons này dành cho bạn!!

Bạn có thể nhấn vào link trên và cài thử xem sao?

3 – Các biện pháp phòng chống keylogger.

Do có rất nhiều cách theo dõi bàn phím như nói ở trên, nên cách phòng chống keylogger cũng rất đa dạng. Không có thứ khóa nào chống được mọi loại trộm mà chỉ làm giảm khả năng bị trộm đi mà thôi.

Dưới đây điểm vài cách chính, phổ biến. Không có cách nào vạn năng, bạn tự chọn và thậm chí có thể phối hợp vài cách tùy theo nhu cầu bảo mật của bạn.

3.1 – Dùng một hệ điều hành sạch

Một trong những cách hiệu quả để chống các phần mềm keylogger là dùng Linux. Cho đến nay, vì nhiều lý do (xem tại đâytại đây), Linux hầu như không có các loại phần mềm độc hại (malware, gồm virus, spyware, keylogger, worm, …), các khe hở an ninh của nó cũng ít và khó khai thác.

Vì vậy chỉ cần dùng Linux, nguy cơ bị theo dõi đã giảm đi đáng kể.

Tuy nhiên, nếu cẩn thận hơn, có thể dùng Linux theo một trong những cách dưới đây:

Chạy Linux từ đĩa CD: Tải một bản Linux nổi tiếng (để chắc rằng nó không có sẵn keylogger) từ trên mạng về. Kiểm tra số md5 để chắc chắn nó là nguyên bản rồi ghi vào đĩa CD. Khởi động máy tính từ đĩa CD đó để dùng bản Linux đó. Hệ điều hành đó sạch vì trước đó nó không có keylogger và khi sử dụng keylogger cũng không thể cài vào đĩa CD.

Đây có lẽ là cách an toàn nhất, được các chuyên gia khuyên dùng khi giao dịch ngân hàng trên mạng (xem tại đâytại đây).

Nhược điểm:

  • Chỉ đề phòng được keylogger phần mềm, các loại khác nói ở trên thì không chống được.
  • Thời gian khởi động lâu. Mỗi lần dùng phải kết nối Internet, cài đặt bộ gõ tiếng Việt. (Để gõ tiếng Việt trong Firefox, cài add-ons AVIM là nhanh nhất.) Nếu định dùng thêm các phần mềm bảo mật khác thì mỗi lần dùng cũng phải cài lại vì kết quả cài không ghi được vào đĩa CD.
  • Về nguyên tắc, nếu bản Linux đó có khe hở an ninh thì trong thời gian bạn dùng, hacker từ mạng vẫn có thể xâm nhập vào được.

Vì vậy nếu dùng cách này, an toàn và tiện nhất là làm như sau:

  • Cài bản Linux định dùng lên ổ cứng. Cập nhật tất cả các bản vá mới nhất để đảm bảo là nó không có các khe hở an ninh (đến thời điểm đó).
  • Cài đặt, cấu hình tất cả những thứ cần thiết.
  • Dùng một phần mềm công cụ tạo bản Linux mới (Remastersys, …) từ bản đã sẵn sàng nói trên rồi ghi nó vào đĩa CD để dùng.

Chạy Linux từ ổ USB: cài một bản Linux vào ổ USB. Khởi động máy cho nó boot từ ổ USB đó. Cách này khắc phục được vài nhược điểm nêu trên: khởi động nhanh hơn; chỉ cần kết nối Internet và cài bộ gõ một lần đầu; có thể cài, cấu hình, tùy biến mọi thứ như với một bản Linux thông thường một lần, các thay đổi sẽ được ghi lại vào USB; có thể cập nhật các bản vá an ninh trong quá trình sử dụng.

Nhược điểm là USB có thể ghi được. Vì vậy trong quá trình sử dụng, keylogger có thể thâm nhập và cài vào USB.

Chạy Linux dành riêng trên ổ cứng: trên ổ cứng, cài một vài hệ điều hành trên các vùng ổ cứng (partitions) khác nhau (xem thêm tại đây). Khi khởi động máy sẽ có menu để chọn khởi động hệ điều hành nào.

Dành riêng một bản Linux chỉ để cho các công việc cần bảo mật (giao dịch ngân hàng, thư điện tử, …), không làm các việc khác để giảm tối đa khả năng lây nhiễm keylogger từ Internet. Khi nào cần bảo mật, khởi động máy vào bản Linux đó. Khi dùng xong, restart lại máy vào hệ điều hành khác (Windows hoặc Linux) dành cho các công việc bình thường.

Cách này nhanh và tiện hơn dùng USB nhưng cũng có nhược điểm như USB: keylogger có khả năng cài được vào ổ cứng.

3.2 – Hạn chế đăng nhập vào tài khoản chính

Khi thường xuyên đăng nhập thì khả năng bị lấy trộm password cũng cao hơn. Vì vậy:

  • Với email: không dùng hộp thư chính mà dùng hộp thư phụ như đã nêu ở đây. Cách này chỉ tránh bị mất email chính, nhưng không tránh được bị xem trộm thư nếu password hộp thư phụ bị lấy trộm.
  • Với blog: dùng cách đăng bài qua email, không trực tiếp đăng nhập vào blog (tất nhiên là phải bảo mật địa chỉ email cẩn thận).

3.3 – Hạn chế khả năng bị cài keylogger

Thiết bị và phần mềm keylogger có thể được hacker cài trực tiếp vào máy tính. Vì vậy bảo vệ máy tính (cất giữ, đăng nhập phải có mật khẩu) là những cách cần làm.

Cài đặt và sử dụng tốt các phần mềm anti-spyware để phát hiện và diệt phần mềm keylogger cũng là một biện pháp khác.

Để tránh phần mềm keylogger thâm nhập từ Internet có thể dùng các biện pháp phòng chống virus thông thường (không vào những site không tin cậy, không nhấn vào các link đáng ngờ trong thư điện tử, không dùng các ổ USB đã cắm vào các máy không tin cậy, đặc biệt là không cài các phần mềm từ các nguồn không tin cậy, v.v…).

3.4 – Tự động nhập username, password.

Một trong những cách tránh dùng bàn phím nhập password là dùng các phần mềm quản lý password (password manager) có tính năng tự động nhập password (và cả username).

Các phần mềm quản lý password có nhiều loại:

  • Phần mềm độc lập: ví dụ Keepass, một phần mềm chạy được trên khá nhiều hệ điều hành, kể cả các thiết bị cầm tay. Những phần mềm loại này lưu password trong một file cơ sở dữ liệu trên máy tính. Vì vậy muốn dùng trên nhiều máy thì nên lưu cơ sở dữ liệu đó trong một nơi lưu trữ online, dropbox chẳng hạn.
  • Phần mềm add-ons của Firefox: ví dụ LastPass, RoboForm, Mitto, … Các dịch vụ này lưu password dưới dạng mã hóa trên site của hãng, vì vậy bạn buộc phải tin tưởng vào hãng đó.

Khi đã khai địa chỉ site đăng nhập và username, password vào phần mềm quản lý password, mỗi lần mở site đó, username/password sẽ được tự động nhập vào các trường tương ứng và site tự động đăng nhập.

Những phần mềm nói trên có khả năng tạo các password ngẫu nhiên rất dài (tới hàng nghìn bit). Loại password đó rất mạnh và không thể dò tìm bằng các chương trình dò tìm password được. Nhưng nó cũng không thể nhớ và nhập bằng bàn phím được.

Password ngẫu nhiên, dài chỉ nhập được bằng hai cách: copy/paste hoặc dùng các phần mềm quản lý password để nhập tự động. Nếu copy/paste thì nội dung password khi copy sẽ lưu vào clipboard và có thể bị đọc trộm bởi các keylogger có chức năng theo dõi clipboard.

Có những phần mềm quản lý password có khả năng tự động nhập password không cần dùng clipboard để tránh keylogger theo dõi clipboard.

3.5 – Password dùng một lần (One-time passwords – OTP)

Các password dùng một lần chỉ có giá trị đăng nhập một lần, lần sau vẫn dùng password đó sẽ không đăng nhập được phải dùng password mới. Do vậy nếu keylogger có bắt được password cũng không dùng được.

Một số ngân hàng thường dùng password loại này. Mỗi lần trước khi đăng nhập vào tài khoản, báo cho ngân hàng bằng một cách nào đó, ngân hàng sẽ gửi password vào mobile phone của bạn. Lần sau muốn đăng nhập lại phải xin password mới.

Site KYPS cung cấp dịch vụ này miễn phí. Với mỗi site bạn cần đăng nhập, khai username, password của site với KYPS, KYPS sẽ cung cấp một danh sách các password dùng một lần cho site đó. Mỗi lần đăng nhập, nhập password của KYPS, KYPS sẽ tự động thực hiện đăng nhập vào site dùng username/password mà bạn đã khai.

3.6 – Bàn phím ảo (On-screen keyboards)

Để tránh dùng bàn phím vật lý, có thể dùng bàn phím ảo. Ví dụ add-ons Keylogger Beater của Firefox cài một bàn phím ảo lên màn hình. Khi cần nhập password, dùng chuột nhấn vào các phím ảo để nhập.

Loại bàn phím ảo này tránh được các keylogger theo dõi bàn phím vật lý, nhưng không tránh được các keylogger có khả năng theo dõi dữ liệu chuyển từ chương trình này sang chương trình khác cũng như các keylogger có khả năng theo dõi chuột hoặc quay phim màn hình.

3.7 – Phần mềm làm nhiễu bàn phím

Phần mềm làm nhiễu bàn phím chen vào giữa các phím gõ thật một số phím giả ngẫu nhiên (nhưng vẫn giữ nguyên tác dụng của phím thật). Phần mềm keylogger sẽ ghi lại cả phím thật và phím giả do đó không thể tìm ra password thật.

Một ví dụ của loại phần mềm này có tại đây.

Một loại phần mềm làm nhiễu bàn phím khác là KeyScrambler Personal, một add-ons của Firefox (mới chỉ có trên Windows). Phần mềm này mã hóa dữ liệu về các phím đã gõ ở mức nhân của hệ điều hành, do đó keylogger có bắt được dữ liệu dọc đường từ bán phím tới trình duyệt cũng không đọc được.

3.8 – Phần mềm nhận dạng tiếng nói hoặc chữ viết tay.

Để tránh dùng bàn phím nhập password, có thể dùng phần mềm nhận dạng tiếng nói. Người dùng đọc password và phần mềm sẽ chuyển thành ký tự nhập vào ô password.

Tương tự như vậy, với một số loại máy tính có màn hình cảm ứng người dùng có thể dùng bút viết password lên màn hình dưới dạng chữ viết tay. Phần mềm nhận dạng sẽ chuyển chữ viết tay thành các ký tự tương ứng để nhập vào ô password.

Hai cách nhập trên có thể tránh được keylogger theo dõi bàn phím vật lý nhưng không tránh được các keylogger theo dõi dữ liệu chuyển từ phần mềm này sang phần mềm khác hoặc keylogger chụp ảnh màn hình.

Một phần mềm nhận dạng tiếng nói cho Linux có tại đây nhưng không biết có dùng để nhập password được không.

3.9 – Một số phương pháp khác.

Ngoài các phương pháp nói trên, còn rất nhiều phương pháp khác để chống keylogger khi cần nhập password. Một vài phương pháp nêu dưới đây:

  • Một số phương pháp đã nêu ở đây.
  • Thủ thuật gõ nhiều nơi: gõ một vài ký tự đầu của password vào ô password, chuyển con trỏ chuột sang một ô khác của trình duyệt, ví dụ ô Search, gõ một số ký tự ngẫu nhiên tại đó, chuyển con trỏ chuột về ô password gõ tiếp các ký tự khác, … Với cách gõ đó, keylogger sẽ ghi cả ký tự password lẫn ký tự ngẫu nhiên.
  • Thủ thuật gõ password không theo thứ tự: ví dụ đầu tiên gõ một số ký tự cuối của password, đưa con trỏ chuột về vị trí đầu, gõ tiếp vài ký tự đầu của password, tiếp theo đưa con trỏ chuột vào giữa, gõ tiếp mấy ký tự giữa.
  • Thủ thuật copy/paste/remove password không theo thứ tự: tương tự cách trên, một password dài có thể được copy từng đoạn rồi paste vào ô password không theo thứ tự thật (đầu tiên nhập đoạn cuối, sau đó đến đoạn đầu rồi cuối cùng là đoạn giữa). Hoặc trong password chen vào một số ký tự ngẫu nhiên, sau khi nhập, bôi đen các ký tự đó rồi xóa nó đi.

Tuy nhiên nếu keylogger ghi được cả hoạt động của con trỏ chuột hoặc chụp ảnh màn hình thì các cách trên không hiệu quả.

11 thoughts on “Ghi chép: Theo dõi bàn phím (keylogger) và cách phòng chống.

  1. Pingback: Một bản Linux an toàn của bộ Quốc phòng Mỹ « ZXC232-Phần mềm tự do nguồn mở – Free and opensource software

  2. Cứ gì chơi game với thanh toán trực tuyến. Blogger cũng cần phải dè chừng vậy. Này nhé, một ngày xấu trời nào đó tự dưng bạn lại không mở cửa vào nhà của mình được, mà dữ liệu bấy lâu nay tâm huyết bỗng dưng mất sạch thế có phải là đau hết cả mình mẩy không? Cẩn tắc vô áy náy.
    Bài viết rất hay. Thanks.

  3. Pingback: Một bản Linux an toàn của bộ Quốc phòng Mỹ « Blog Company

  4. Pingback: Tường thuật trận đấu TQN vs. Sinh tử lệnh « ZXC232-Phần mềm tự do nguồn mở – Free and opensource software

  5. Pingback: Một bản Linux an toàn của bộ Quốc phòng Mỹ | MrLong

  6. em muốn tìm ra cái keylog trong máy ,để lấy lại cái bình luận em viết mà chưa kịp đăng.chứ em ko quan trong về máy bị dính virus gì, anh giúp em được ko,

Bình luận về bài viết này