Nguy cơ bị "hack" luôn có ở các chương trình ứng dụng
29/09/2009
 |
Ông Nguyễn Thành Nam
|
Hội thảo xoay quanh các chủ đề: Tầm quan trọng của an ninh ứng dụng; Bẻ khoá phần mềm, phương pháp và cách phòng chống; Các kỹ thuật gian lận trong trò chơi trực tuyến. Đây là một hội thảo chuyên ngành nên thu hút sự quan tâm của nhiều doanh nghiệp làm phần mềm và doanh nghiệp ứng dụng giải pháp CNTT.
Tầm quan trọng của an ninh ứng dụng
Theo ông Nguyễn Thành Nam, hội viên VNISA, Trưởng nhóm OWASP Việt Nam, thuật ngữ an ninh mạng đã có từ cách đây 30 năm cùng với sự xuất hiện của các thiết bị phòng chống như tường lửa… Với sự phát triển hạ tầng CNTT, xuất hiện các giao thức mạng an toàn hơn, hệ điều hành ngày càng hoàn thiện, các thiết bị bảo vệ hệ thống cũng trở nên an toàn hơn nên các hacker rất khó tấn công vào hạ tầng mạng…
Thay vào đó, chương trình ứng dụng lại phát triển khá nhiều, đa dạng; nhu cầu cải tiến làm cho nó trở nên phức tạp và xuất hiện không ít các lỗ hổng… Đây chính là nguyên nhân dẫn đến xu hướng tấn công vào các chương trình ứng dụng. Đặc biệt là các ứng dụng viết trên nền web (Web Application). Hình thức tấn công khá phổ biến hiện nay là dựa vào lỗ hổng về cơ sở dữ liệu dùng đoạn mã SQL và tấn công chèn mã độc vào website mục tiêu (kịch bản chéo trang)…
Ông Nam cho biết, “không ai có thể đảm bảo được phần mềm làm ra không có lỗi”. Bất kỳ thiết bị nào có sử dụng chương trình cài đặt như chiếc ĐTDĐ, iPhone… khi kết nối vào mạng đều có thể là đối tượng của các cuộc tấn công.
Vấn đề là chúng ta cần tuân thủ nghiêm ngặt các quy định về ATTT trong tổ chức để hạn chế những rủi ro… Chẳng hạn, phòng thủ nhiều tầng, chia sẻ nhiệm vụ (những việc quan trọng phải do ít nhất 2 người làm), quyền hạn tối thiểu (phân quyền vừa đủ chức năng thực hiện công việc, trong trường hợp bị tấn công cũng hạn chế hậu quả). Đối với nhà phát triển ứng dụng, cần thực hiện tốt các quy trình bảo mật (ISO 270001, MS SDL, DHS Build Security In…), xem an ninh là một tính năng và luôn kiểm tra sản phẩm phần mềm thật kỹ trước khi bàn giao cho khách hàng…
Về phía người dùng, cần ý thức về ATTT, yêu cầu sản phẩm phần mềm phải đạt tiêu chuẩn như đã cam kết, lựa chọn nhà sản xuất có uy tín, thực hiện tốt các quy trình phát triển phần mềm như CMMi, các quy trình bảo mật thông tin như ISO 27001...
Bẻ khoá phần mềm và cách phòng chống
 |
Ông Nguyễn Minh Nhật |
Ông Nguyễn Minh Nhật, thành viên diễn đàn VN Security đã trình bày quy trình phát triển một phần mềm thương mại, bao gồm phân tích yêu cầu; thiết kế; viết mã và biên dịch; kiểm tra, sửa lỗi; nâng cấp. Ngoài ra, những bước bẻ khoá phần mềm như dịch ngược mã nguồn và phân tích chương trình; sửa đổi hàm kiểm tra mã bản quyền và mã người dùng nhập sao cho kết quả luôn luôn đúng. Điều đó có nghĩa là đã đăng ký phần mềm bản quyền…
Một số phương pháp để hạn chế bẻ khoá phần mềm như kỹ thuật chống gỡ rối (anti-debugging). Phương pháp này dựa trên việc kiểm tra chương trình có bị chương trình khác gỡ rối hay không; quét toàn bộ các tiến trình đang chạy trong hệ thống theo mẫu có sẵn để phát hiện các trình gỡ rối thông dụng. Phương pháp chống vá, chống sửa đổi chương trình (anti-patching) yêu cầu kiểm tra định kỳ tính toàn vẹn của mô đun liên quan đến các tập tin và bộ nhớ khi chương trình được chạy.
.JPG.aspx) |
Ông Nguyễn Phi Kha |
Ngoài ra, phương pháp chống phân tích mã (anti-disassembly) cũng thực hiện việc quét bộ nhớ các tiến trình đang chạy trong hệ thống; đóng gói và mã hoá tập tin thực thi, đặt mật khẩu hoặc khoá thích hợp để giải mã tập tin trên bộ nhớ trước khi thực thi; làm rối mã (code obfuscation) nhằm mục đích gây khó khăn cho việc tìm hiểu cách thức hoạt động của một chương trình; ảo hoá và mã hoá những đoạn mã quan trọng…
Ông Nguyễn Phi Kha, Kỹ sư trưởng Công ty Galactic Mantis (Singapore) còn giới thiệu các hình thức, công cụ, các kỹ thuật gian lận thường gặp trong trò chơi trực tuyến như gian lận tốc độ, sửa dữ liệu trong bộ nhớ, sửa mã lệnh, chặn và sửa gói tin trên mạng và một số phương pháp phòng chống gian lận…