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, 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.

Internet Security System

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):

Đ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é.

shutterstock_188832089

Đâ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.

496484-security-breach

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, Web Security OWASP Top 10 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ử.

Advertisements

9 thoughts on “Series Bảo Mật Nhập Môn – Bảo mật cơ bản cho developer”

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s