Chú ý bài viết này của mình chỉ là cảnh báo và giúp mọi người tránh khỏi những sai lầm khi sử dụng những mạng lưới công cộng.
Không khuyến khích các bạn sử dụng cách này để thực hiện những hành vi trái pháp luật nhằm lấy thông tin của người dùng internet.
Tại sao mình viết chủ đề này?
Kể từ khi internet ra đời, đem lại những lợi ích vô cùng to lớn cho chúng ta. Trong sản xuất, trong học tập, trong quản lý, trong giao thương, giao tiếp xã hội..., Có thể nói, internet giúp tạo nên thế giới phẳng hơn, phát triển nhanh hơn.
Với sự phát triển mạnh mẽ như vậy, sẽ luôn có khả năng xuất hiện những lỗ hổng về công nghệ mà chúng ta không lường trước được. Nhưng chúng ta luôn có thể giảm thiểu tối đa những lỗ hổng bảo mật bằng những công cụ sẵn có.
Trong bài này, mình nói về lỗ hổng bảo mật của giao thức HTTP, và cách mà người lạ có thể lấy được thông tin đăng nhập của người dùng khi truy cập vào những website mà không có chứng chỉ bảo mật này.
Mình cũng sẽ hướng dẫn các bạn tạo một website có được giao thức HTTPs một cách nhanh chóng và đơn giản. Bạn cũng có thể tìm hiểu sâu hơn về HTTP và HTTPs ở những bài viết tiếp theo của mình.
1. Mô tả kịch bản của hacker
Dựng một kênh wifi free.
Enable wireshark để capture lại tất cả request đi qua kênh wifi này.
Xác định website mục tiêu.
Đánh cắp thông tin đăng nhập của người dùng.
2. Thực tế mình đã làm
Trong bài viết này, mình không tập trung vào việc dựng wifi.
Vì vậy mình sẽ giả lập rằng máy tính của mình chính là trung gian giữa các trang web và server.
Nào giờ hãy cùng mình thực hành nhé.
2.1. Install Wireshark, start capture lại các gói tin
Nếu bạn chưa có wireshark thì có thể cài đặt wireshark nhé.
Nếu dùng ubuntu thì làm theo các bước sau:
sudo apt update
sudo apt install wireshark
sudo usermod -aG wireshark $(whoami)
Sau đó thì khởi động lại máy tính
sudo reboot
Open wireshark và start capture lại gói tin.
2.2. Truy cập một trang web không có chứng chỉ bảo mật và thực hiện đăng nhập
Ở đây mình truy cập vào một trang web nghe nhạc online mà mình tự dựng lên.
2.3. Tìm kiếm các gói tin gửi qua network lúc đăng nhập để đọc data
Sau khi thực hiện đăng nhập, mình vào giao diện của wireshark và filter các gói tin dạng POST và có IP đích là ip của trang mình đăng nhập.
Tiếp đó mình click vào một record và thử đọc data của gói tin đó
Bất ngờ chưa, chúng ta có thể dễ dàng đọc được data mà mình vừa nhập vào.
2.4. Điều gì xảy ra nếu mình đọc gói tin của một website có chứng chỉ bảo mật
Ok, vậy là chúng ta đã có thể dễ dàng đọc được gói tin mà không có chứng chỉ bảo mật.
Tiếp theo, mình thử thực hiện tương tự với một website có chứng chỉ bảo mật xem sao.
Ở trang này có sử dụng domain, nên để tìm được IP đích, mình dùng câu lệnh ping hoặc traceroute để xem được IP đích của domain đó
Sau khi tìm được IP đích, mình tiếp tục vào wireshark để thực hiện tìm các gói tin được gửi tới địa chỉ này.
Mình thử tìm một vài gói tin để đọc data, nhưng thấy thật sự khó hiểu. Bởi vì data đó đã được encrypt
Điều này chứng tỏ data mình gửi đi tới trang https://dashboard.sunteco.vn đã được encrypt trước khi gửi qua internet. Liệu rằng mình có thể tìm cách giải mã được những data này, hãy upvote và subscribe để đón đọc bài viết tiếp theo của mình nhé.
3. Thảo luận
Trong bài viết này, mình đã cho các bạn thấy việc lộ dữ liệu người dùng khi không có một chứng chỉ bảo mật đáng tin cậy.
Với vai trò là một nhà phát triển phần mềm, và trong quá trình phát triển phần mềm. Thì chúng ta phải luôn tìm cách đảm bảo rằng data gửi đi phải được encrypted.
Vì vậy mình luôn lựa chọn sở hữu một chứng chỉ bảo mật cho website của mình.
Về câu chuyện của mình, khi phải tự đi mua chứng chỉ SSL với chi phí hàng năm là khá cao (có loại lên tới cả gần 1 triệu đồng/năm), rồi sau đó config nó lại vào website, với mỗi loại web server lại có một cách config khác nhau, và một tỷ việc nhỏ nhặt khác. Mình thấy rằng nó là khá mất thời gian.
Vì vậy mình đã sử dụng tính năng publish service của Sunteco Cloud, để sở hữu chứng chỉ bảo mật cho website của mình hoàn toàn free.
Hướng dẫn về các dịch vụ của Sunteco Cloud tại đây.
Bảo mật là một chủ đề dài xuyên suốt, trên đây là một hiểu biết đơn giản của mình về HTTP và HTTPS. Nếu có bất kỳ góp ý nào hãy comment cho mình biết ngay nhé.