Trong các bài trước tôi đã giới thiệu với các bạn các thông tin cơ bản về
- Hiểu về An ninh thông tin và các khái niệm liên quan.
- Các nguy cơ thường trực trong an ninh thông tin
Hôm nay tôi sẽ đi vào thực tế với các kiến thức về an ninh thông tin liên quan tới các ứng dụng thực tế.
1. An ninh dữ liệu các ứng dụng điện toán đám mây
Mới xuất hiện cách đây không lâu, tuy nhiên điện toán đám mây (cloud computing) đã trở thành một xu thế tất yếu. Storage as a service (STaaS), Infrastructure as a service (IaaS), Platform as a service (PaaS), Software as a service (SaaS); ví dụ như hệ điều hành trên trình duyệt (WebOS), hay ứng dụng Mindjet có thể sử dụng ngay trên trình duyệt. Phát hành cùng Windows 8 mới đây, hàng loạt những phần mềm, dịch vụ như Offices 365, Skydrive,…đều hỗ trợ người dùng lưu trữ tài liệu cả trên máy tính cá nhân và trên kho dữ liệu của họ. Dữ liệu được lưu trữ trên mây, và các ứng dụng client chỉ việc kết nối đến server bằng tài khoản người dùng là có thể tải về dữ liệu. Nó cũng làm cho việc chia sẻ tài liệu giữa người dùng với nhau trở nên dễ dàng hơn bao giờ hết. Tuy nhiên, sự dễ dàng thường đi kèm hàng loạt những nguy cơ tiềm ẩn. Lỗ hổng “aaS” có mặt ở mọi nơi
- Trước tiên, hãy xem xét các loại “aaS” mà một công ty phải đối phó khi bắt đầu: Engineering aaS (kỹ thuật như là một dịch vụ). Có những vấn đề gây ra bởi sự thật rằng phần mềm được viết bởi những người không (hoặc rất ít) được đào tạo về bảo mật. Đó không phải là lỗi của họ, bởi vì thông thường những người được đào tạo để viết nên các phần mềm có thể không hiểu về khoa học máy tính, bảo mật nói chung. Họ chỉ tập trung vào vấn đề tạo ra sản phẩm có thể đáp ứng được yêu cầu khách hàng. Rất nhiều lỗ hổng bảo mật như SQL Injection, XSS, Xpath Injection…có thể cùng xuất hiện ở một chương trình, ứng dụng cả ở dịch vụ lưu trữ đám mây và các ứng dụng triển khai trên máy khách hàng. Bên cạnh đó, còn có những máy chủ web, ứng dụng server và phần mềm quản trị cơ sở dữ liệu server. Chúng đều có thể tiềm ẩn lỗi.
- Lỗ hổng bán hàng như 1 dịch vụ (Sales aaS): có rất nhiều thứ gây ra khi cơ sở hạ tầng dịch vụ đám mây không làm những gì mà nó cam kết về bảo mật, hoặc khi cơ sở hạ tầng thay đổi sau khi hợp đồng dịch vụ được kí kết. Trong khi đó bạn có một bản cam kết về tầng dịch dụ (Service Level Agreement – SLA) trong đó có nói về vấn đề bảo mật mà không có quy định, điều khoản nào nói rằng bạn phải tự bảo vệ dịch vụ của mình thì SLA thường chỉ đem lại cho bạn một phần chi phí bồi thường nếu có vấn đề gì xảy ra, tuy nhiên chi phí để duy trì sự an toàn dịch vụ của bạn đã vượt quá con số đó. Vì thế, khi chọn nhà cung cấp dịch dụ đám mây, cần chú ý những điều khoản về bảo mật của họ.
Lỗ hổng quản lý sản phẩm và marketing như 1 dịch vụ (Product management and marketing aaS): gây ra bởi các yêu cầu của ứng dụng và hiệu năng của cơ sở hạ tầng làm việc để chống lại các nguy cơ bảo mật tốt nhất. Trải nghiệm người dùng là nhân tố chính khi thiết kế và xây dựng sản phẩm, và thường được sử dụng như là một cái cớ để bỏ qua các yêu cầu an toàn. Tuy nhiên, khi triển khai bảo mật, nó thực sự tiết kiệm thời gian và tiền bạc mà không ảnh hưởng đến trải nghiệm người dùng. Cuối cùng, nhưng không kém phần quan trọng là tất cả mọi người phải đối phó với lỗ hổng quản lý như là một dịch vụ (Management aaS): gây ra bởi việc thiếu hệ thống quản lý và theo dõi tốt.Nó có thể gây ra việc các ứng dụng đưuọc triển khai một phiên bản sai, ở một nơi không đúng yêu cầu hoặc sai cấu hình, và dữ liệu khởi tạo mà không cần kiểm soát truy cập và cấu hình cơ sở dữ liệu. Ngoài ra, còn gây ra bởi việc thiếu các ưu tiên bảo mật, quy trình và thông tin ở cấp quản lý, dẫn đến thiếu các mục tiêu an toàn, hoặc sự phối hợp giữa các phương pháp không tốt, thực hiện mục tiêu bảo mật sai. Như chúng ta đã biết, khi các ứng dụng và dữ liệu được chuyển lên mây, nó sẽ đối mặt với một thế giới toàn những lỗ hổng dịch vụ. Vì thế, làm thế nào một công ty đối mặt với những lỗ hổng này? Sau đây là một số bước giúp giảm số lượng lỗ hổng dịch vụ hoặc giảm thiểu ảnh hưởng từ nó:
- Hiểu rằng các ứng dụng đang chạy và dữ liệu được lưu trữ đều không thay đổi các yêu cầu bảo mật dữ liệu. Bảo mật cần phải dựa trên các yêu cầu nghiệp vụ cho từng ứng dụng cụ thể và tính tự nhiên của dữ liệu, không cần biết rằng dữ liệu được lưu trữ ở đâu. Bảo mật dữ liệu trong truyền tin và mọi hoạt động sử dụng đều phải tuân thủ các yêu cầu: bí mật, toàn vẹn và sẵn sàng. Sự thực thi ứng dụng bất cẩn và nhân tố con người là những nguồn gây ra các ảnh hưởng là những nguyên nhân còn lại khiến cho dữ liệu có thể không an toàn.
- Khi xây dựng, triển khai ứng dụng và dữ liệu của nó, cần sử dụng một chu trình phát triển phần mềm bảo mật (SDLC), chu trình này sẽ thực sự tiết kiệm thời gian và tiền bạc. Nó sẽ giải quyết lỗ hổng “Marketing aaS” bằng cách tích hợp những yêu cầu bảo mật vào tiến trình phát triển; giải quyết lỗ hổng “Sales and Maanagement aaS” với mô hình đe dọa (Threat Models), phân tích trên bề mặt của tấn công và kịch bản triển khai (Attack Surface Analysis and Deployment stage). Một quy trình SDLC cũng thẩm định lại sao cho không còn lỗ hổng dịch vụ nào sau quá trình triển khai nữa. Cuối cùng, nó giải quyết vấn đề kỹ thuật như 1 dịch vụ (Engineering aaS) với thiết kế an toàn, mã hóa (coding) và kiểm thử đi kèm với đào tạo kiến thức và tham chiếu tài liệu cung cấp bởi các chuyên gia bảo mật.
An ninh dữ liệu các ứng dụng di động
Bất cứ nền tảng gì bắt đầu trở nên phổ biến, thì vấn đề bảo mật cũng từ đó được nhắc đến nhiều hơn. Ngày nay, các thiết bị di động thông minh (smartphone) phổ biến hơn bao giờ hết với rất nhiều nền tảng như: iOS, Android, BlackBerry, Windows Phone, Symbian, Palm… Sự phát triển mạnh mẽ của iOS và Android đã dẫn đến những vấn đề như: dữ liệu người dùng liệu có được an toàn trên thiết bị di động không? Chúng bảo vệ dữ liệu bằng cách nào? Sử dụng chúng có còn đảm bảo tính riêng tư của người dùng không (ví dụ thông tin về vị trí thiết bị)? Đó là những thách thức với bảo mật. Vậy bảo mật dữ liệu trên nền tảng di động có gì khác so với các nền tảng khác (PC hay Server)?
- Chúng là những thiết bị thường chỉ đáp ứng cho một người sử dụng
- Chứa những thông tin quan trọng (như thông tin giao dịch ngân hàng qua mobile banking, thông tin riêng tư của bạn bè trong danh bạ…)
- Các ứng dụng trên chúng cũng là những điều khác biệt lớn. Ứng dụng không thể xử lý dữ liệu lớn, hay hỗ trợ lập trình được.
Ứng dụng di động ngày nay vô cùng phong phú, đa dạng. Hầu hết các nhà sản xuất hệ điều hành hiện nay (Google, Microsoft, BlackBerry…) đều có kho ứng dụng riêng, lập trình viên có thể viết phần mềm và đưa lên. Các phần mềm này đều phải qua bước kiểm duyệt chặt chẽ của nhà phát triển hệ điều hành. Tuy nhiên, vẫn có những phần mềm vượt qua được cơ chế đó. Do đó, đòi hỏi người sử dụng phải thận trọng khi cài đặt. Do sự tiện dụng, rất nhiều các thông tin quan trọng ngày nay được người sử dụng lưu trực tiếp trong điện thoại. Hầu như người dùng không quan tâm đến các thông báo quan trọng khi cài đặt ứng dụng, ví dụ như đòi quyền truy cập mạng, nhắn tin, truy cập danh bạ… dẫn đến các hậu quả xấu như lộ thông tin danh bạ, thông tin người dùng, các tin nhắn quan trọng… Đó là còn chưa kể đến việc người dùng cài ứng dụng lậu (hệ điều hành đã bị bẻ khóa có thể cài đặt ứng dụng bất kỳ), không rõ nguồn gốc, và chúng có thể truy cập được tới tài khoản root (tài khoản cao nhất trong hệ điều hành. Một số loại mã độc điển hình trên nền tảng di động, và ảnh hưởng của nó đến an ninh thông tin
- Cabir (hay còn gọi là Caribe, SybmOs/Cabir, Symbian/Cabir và EPOC.cabir): là một loại sâu máy tính phát hiện năm 2004. Nó được thiết kế để lây nhiễm vào các smartphones chạy hệ điều hành Symbian. Nó lây nhiễm qua Bluetooth, và cần sự tương tác của người dùng để có thể kích hoạt. Đây được biết đến như một loại mã độc đầu tiên, và không gây tác hại cho người dùng.
- Commwarrior: phát hiện ngày 7-3-2005, lây nhiễm vào smartphone qua MMS. Nó tự phát tán bằng cách gửi MMS đến tất cả những tên trong danh bạ người dùng.
- RedBrowser: là một trojan phát triển dựa trên java. Nó giả dạng một phần mềm có tên RedBrowser, cho phép người dùng đến các trang wap mà không cần kết nối WAP. Trong quá trình cài đặt, nó sẽ yêu cầu quyền gửi tin nhắn. Vì thế, nếu người dùng chấp nhận, nó sẽ gửi tin nhắn đến tổng đài trả phí do kẻ phát tán quản lý. Chương trình này cũng kết nối đến mạng xã hội (facebook, twitter…) để lấy thông tin liên lạc của bạn bè người sử dụng và gửi cho họ tin nhắn chứa link download chính nó để phát tán.
- PmCryptic.A: một mã độc trên hệ điều hành Windows Mobile, có chức năng kiếm tiền cho chủ nhân. Khi đã xâm nhập được vào máy tính nạn nhân, nó tiến hành gọi điện đến một số điện thoại trả phí của kẻ phát tán.
- Ngoài ra còn rất nhiều mã độc nguy hiểm khác được phát hiện như: Phage, Flexispy…
- Ngày nay, với sự phát triển mạnh mẽ của các nền tảng cross-platform (đa nền tảng – Java, .Net framework…), mã độc cũng sử dụng các thư viện có thể hoạt động trên nhiều nền tảng khác nhau.
Phần mềm nghe lén, theo dõi
- Vấn nạn này đang dần hiện hữu và biến đổi khôn lường. Sự phát triển của chúng, và nhu cầu sử dụng nó đang tăng lên. Người sử dụng thường không để ý, thậm chí không thể phát hiện được các phần mềm này trên thiết bị của mình. Nó có thể ghi lại mọi thông tin sử dụng như tin nhắn, cuộc gọi, vị trí, các thông tin duyệt web…
- Thiệt hại do nó gây ra không thể lường hết được. Ví dụ một cuộc gọi quan trọng cho đối tác bị ghi âm lại, truyền cho đối thủ kinh doanh, giao dịch ngân hàng, các thông tin nhạy cảm khác như mật khẩu, tài khoản người dùng… bị đánh cắp.
- Cách bảo vệ thông tin trên các thiết bị di động
- Có rất nhiều cách để bảo vệ điện thoại nói chung, smartphone nói riêng khỏi các nguy cơ về an ninh thông tin nói trên:
- Đặt mật khẩu cho máy, thường xuyên thay đổi mật khẩu.
- Lưu trữ thông tin quan trọng ở nơi khác, hoặc bằng phần mềm chuyên nghiệp.
- Cài đặt phần mềm an ninh trên di động để tránh việc cài các phần mềm nghe nghe lén, theo dõi.
- Sử dụng các phần mềm đã được kiểm chứng an toàn, không sử dụng phần mềm lậu, bẻ khóa hệ điều hành…
- …
An ninh các ứng dụng thông thường
Ứng dụng desktop : đa người dùng
- Hiện nay, nền tảng desktop đang đang giảm dần. Tuy nhiên cũng không thể phủ nhận lợi ích từ nó, và sẽ vẫn còn tiếp tục phát triển trong nhiều năm nữa.
- Khi sao lưu dữ liệu, chúng ta cần đảm bảo vấn đề an toàn, toàn vẹn dữ liệu. Tránh việc sao lưu không hoàn toàn, hay ghi đè khi khôi phục dẫn đến việc dữ liệu bị hỏng.
- Với những ứng dụng xử lý dữ liệu lớn, hoặc chia nhỏ dữ liệu để làm việc thì khi ghép dữ liệu để cho ra kết quả, cần cẩn trọng để không xảy ra vấn đề chồng lấn, mất mát, trùng lặp dữ liệu.
- Cũng như ứng dụng trên di động, nó chứa hầu hết toàn bộ các thông tin số của người dùng. Hơn nữa, số lượng, hình thức, cách hoạt động của mã độc trên hệ điều hành destop rất phức tạp, đa dạng, khó lường.
- Với đặc điểm nhiều thông tin quan trọng, loại hình mã độc phức tạp như trên, chúng ta cần hết sức cảnh giác khi sử dụng bất kỳ phần mềm nào. Sau đây là một số cách bảo vệ thông tin:
- Đặt mật khẩu mạnh cho các ứng dụng chứa thông tin quan trọng, nhạy cảm.
- Sử dụng phần mềm lưu trữ chuyên nghiệp như TrueCrypt.
- Cài đặt phần mềm diệt virus, update hệ điều hành thường xuyên.
- Mã hóa thông tin, sử dụng các biện pháp mã hóa cao cấp của hệ điều hành (Ubuntu có giải pháp mã hóa thư mục Home của người sử dụng, Windows có Bitlocker Driver Encryption…).
- Cẩn trọng khi giao dịch, trao đổi, nói chuyện qua mạng với người không quen biết.
- Và các cách thông thường khác: sử dụng phần mềm bản quyền.
Ứng dụng web
- Ứng dụng web nói chung luôn là mồi ngon cho hacker do tính tiện dụng của nó và dữ liệu chứa nhiều thông tin nhạy cảm của nhiều người dùng. Công nghệ bảo mật web cũng từ đó được chú ý, coi trọng hơn.
- Các ứng dụng web hiện nay khá phổ biến (Google Drive, Mindmap…). Thay vì phải cài phần mềm trên máy tính cá nhân, người dùng có thể đăng nhập trực tiếp trên nền tảng web để sử dụng các dịch vụ đó.
- Nguy cơ trên các ứng dụng này rất nhiều. Điển hình như dịch vụ MegaUpload gần đây bị dừng hoạt động vì sử dụng thông tin người dùng (các file người dùng upload lên, phân phối tràn lan, vi phạm bản quyền). Hay như việc lộ, bị đánh cắp mật khẩu số lượng lớn của dịch vụ mạng xã hội Twitter đã khiến người dùng lo lắng về bảo mật của họ.
- Có rất nhiều lỗi ứng dụng web phải đối mặt như: SQL Injection, XSS, XPath Injection, Local (Remote) File Inclution, CSRF, Code Execution, Information Disclosure…
Phương thức chung đảm bảo an ninh thông tin
Cách tốt nhất để đảm bảo an ninh thông tin đó là: luôn luôn kiểm tra các thông tin trả về, thông tin log hệ thống (Auditing). Theo đó, có 7 bước để thực hiện quá trình kiểm tra thông tin [5]:
- Bước 1: Chỉ định người kiểm tra thông tin: Nên chọn một chuyên gia ở bên ngoài thay vì trong công ty. Việc này nhằm đảm bảo tính khách quan, độc lập. Tuy nhiên, cần chọn người có đủ kiến thức, kỹ năng, kinh nghiệm làm việc.
- Bước 2: Trao quyền hạn cho người kiểm tra. Họ cần phải có đủ quyền để thực hiện công việc của mình, tuy nhiên cũng không được trao quá nhiều dẫn đến việc bị lộ thông tin không cần thiết.
- Bước 3: Đánh giá hệ thống: Người kiểm tra đưa ra đánh giá ban đầu về hệ thống sau khi đọc các tài liệu, báo cáo.
- Bước 4: Phỏng vấn người trực tiếp quản lý hệ thống. Đây là phần mất thời gian nhất. Người kiểm tra phỏng vấn quy trình làm việc của hệ thống, thông tin vào ra… thông qua người quản lý trực tiếp (phần mềm và thiết bị).
- Bước 5: Kiểm tra hoạt động của hệ thống và đưa ra đánh giá. Người kiểm tra tự mình rà soát hệ thống, phân tích thông tin log, các hoạt động thông thường, các trường hợp đặc biệt (hệ thống bị đổ vỡ đột ngột, quá nhiều người dùng…)
- Bước 6: Chuẩn bị báo cáo.
- Bước 7: Trình diễn báo cáo.
Công việc này cần được tiến hành thường xuyên để duy trì an ninh thông tin. Khi xảy ra sự cố, có thể phát hiện ngay và khắc phục kịp thời. Khi có sự cố về an ninh xảy ra, cũng cần tiến hành ngay công việc này, để khắc phục, đưa ra chính sách mới về an toàn cho hệ thống.
Kết luận
Trong thời đại hiện nay, nhu cầu truy cập, tìm kiếm thông tin là vô cùng quan trọng, thiết yếu. Tuy nhiên, môi trường mạng, các ứng dụng chưa bao giờ là an toàn với thông tin. Vì thế khi xây dựng một ứng dụng, dù trực tuyến hay không thì chúng ta phải luôn luôn đặt vấn đề đảm bảo an ninh thông tin lên hàng đầu. Ba bài viết này nêu lên một số các khái niệm, nguy cơ, cách phòng tránh những nguy cơ, hiểm họa có thể xảy ra với thông tin. Với những kiến thức đó, hy vọng các ứng dụng sẽ trở nên an toàn hơn và người dùng thực sự yên tâm khi sử dụng chúng.