Series bảo mật nhập môn – Bảo mật cơ bản cho developer
Giới thiệu Bảo mật là một vấn đề rất tốn kém và phức tạp. Gần như hệ thống nào cũng có lỗ hổng (cả phần mềm lẫn phần cứng), các hacker có thể thông qua các lỗ hổng này để tấn công hệ thống. Việc đảm bảo hệ thống bảo mật là trách nhiệm của rất nhiều bên: Sys admin, network, ...
Giới thiệu
Bảo mật là một vấn đề rất tốn kém và phức tạp. Gần như hệ thống nào cũng có lỗ hổng (cả phần mềm lẫn phần cứng), các hacker có thể thông qua các lỗ hổng này để tấn công hệ thống.
Việc đảm bảo hệ thống bảo mật là trách nhiệm của rất nhiều bên: Sys admin, network, manager và developer. Do mình không chuyên về bảo mật nên mình không rành về việc config hệ thống mạng, setup tường lửa v…v, do đó mình sẽ không chém gió lung tung về mảng này. Thay vào đó, mình sẽ cùng các bạn tiếp cận khía cạnh bảo mật dưới góc nhìn của một developer.
Những kiến thức trong series này rất cơ bản, dễ học, nhưng chúng sẽ vô cùng hữu ích, giúp bạn tránh phải những sai lầm bảo mật “ngớ ngẩn, cơ bản” khi code. Dù cho bạn code C hay C++, Java C# hay PHP, bạn cũng sẽ học được vài điều bổ ích qua series này.
Tóm tắt series
Trách nhiệm của developer là phải đảm bảo rằng code mình viết ra sẽ không có lỗi bảo mật (Đừng để như các bạn bên Lotte Cinema nhé!). Trong series này, chúng ta đóng vai hacker để tấn công hệ thống mình viết. Thông qua đó, chúng ta sẽ cùng tìm hiểu về những lỗ hổng bảo mật thường thấy khi code và tìm cách vá lỗi.
Một số vấn đề được đề cập trong series (Sẽ được cập nhật sau):
- Sự nguy hiểm khi sử dụng HTTP. Tại sao phải dùng HTTPS để truyền dữ liệu.
- Lỗ hổng bảo mật XSS nguy hiểm đến mức nào.
- Lưu trữ cookie – Tưởng không hại ai ngờ hại không tưởng
- Giấu thông tin server – Tránh con mắt của người đời và kẻ xấu
- Sửa đổi param – Đừng bao giờ tin tưởng “bọn” user
- SQL Injection – Lỗ hổng bảo mật thần thánh
- Cross Site Attack – Những cú lừa ngoạn mục
- Quản lý mật khẩu – Tưởng dễ ăn mà không đơn giản
Đa phần các lỗi bảo mật này đã được ngăn chặn trong các framework. Tuy vậy, nhiều trang web vẫn bị dinh một số lỗi vì sự … ngớ ngẩn hoặc sơ suất của chính developer. Do đó, hãy theo dõi series và cố gắng áp dụng những kiến thức này vào code để tránh dính các lỗi này nhé.
Internet Security SystemĐây là series hướng dẫn bảo mật cho developer, không phải là hướng dẫn làm hacker nhé. Kiến thức trong series giúp bạn code, giúp bạn vá lỗi chứ không giúp bạn tấn công hệ thống khác hay lừa đảo người dùng. Bạn nào muốn tầm sư học đạo về bảo mật có thể tìm thánh bảo mật Juno_okyo nhé.
Chuẩn bị “đồ chơi”
Không cần chuẩn bị quá nhiều “đồ chơi” phức tạp, bạn chỉ cần một số phần mềm cơ bản sau:
- Google Chrome Developer Tool: Bộ Developer Tool này đi kèm với Google Chrome, hỗ trợ bạn trong việc debug, fix lỗi, chạy JavaScript và … tấn công Website =))).
- Add-on EditThisCookie: Dùng để nghịch và chỉnh sửa cookie.
- Fiddler: Phần mềm này là một web-proxy, hỗ trợ bạn kiểm tra các HTTP request từ máy tới server, đo performance, kiểm lỗi bảo mật, giả lập tấn công Man In The Middle, ….
Một số tool khác sẽ được giới thiệu thêm sau.
Cảnh báo!
Trước khi dạy võ, sư phụ luôn dặn các đồ đệ rằng: Học võ là để cường thân kiện thể, hành hiệp giúp đời, không phải để đi bắt nạt kẻ yếu. Trước khi bắt đầu series, mình cũng muốn khuyên các bạn điều tương tự: Học về security để xây dựng hệ thống bảo mật tốt hơn, để giúp đỡ hệ thống khác, chứ không phải để đi hack hay phá hoại.
Vì lý do đạo đức, nếu phát hiện lỗi trong các hệ thống khác, các bạn nên thông báo cho quản trị chứ đừng nên phá hoại. Ranh giới giữa “tìm hiểu lỗ hổng” và “phá hoại hệ thống” nó mong manh lắm. Với các hệ thống quan trọng. bạn có thể bị truy tố để vào tù bóc lịch cho lỗ ass nở hoa chứ chẳng chơi :v.
Một điều mình sẽ nhắc đi nhắc lại trong suốt series là: Đừng bao giờ tin tưởng người dùng!! Đừng bao giờ tin tưởng những thứ người dùng nhập vào, đừng nghĩ đằng người dùng không biết sửa javascript, không biết nghịch lung tung. Dưới danh nghĩa người dùng, hacker có để mọi phương cách để tấn công hệ thống. Nhớ đấy nhé!
Series này tham khảo theo course Hack Yourself First trên pluralsight và một số nguồn khác. Series này có phụ đề nên khá dễ học, các bạn khá tiếng Anh có thể học thử.
Techtalk via toidicodedao