Mới đây, trong chuyến làm việc tại Mát- xcơ- va, chuyên gia an toàn thông tin Steve Lipner đã chia sẻ với tác giả bài báo nhiều vấn đề xung quanh chủ đề đang được đề cập đến ở đây. Steve Lipner là con người kỳ lạ, những ghi chép của ông về vấn đề các lỗ hổng (vulnerability) trong phần mềm đã được thực hiện từ 40 năm về trước. Giờ đây, ông đang làm việc cho Microsoft và chịu trách nhiệm về chiến lược an toàn trong phát triển phần mềm, mà nòng cốt của nó là chính sách Security “Phát triển chu kỳ sống an toàn của phần mềm” (Development Lifecycle SDL) được hãng này phê duyệt vào năm 2004.
Xét về bản chất, SDL là tập hợp những kinh nghiệm thực tế, những cách thức tiếp cận đã được kiểm nghiệm và những công cụ giúp lập trình viên viết nên những đoạn mã an toàn. Có lẽ điều thú vị nhất khi mới tiếp cận với SDL là bộ công cụ giúp viết mã an toàn và để kiểm tra (test) ứng dụng nhằm tìm ra các lỗ hổng. Một số công cụ trước đây chỉ được dùng trong nội bộ hãng Microsoft, nay đã được công bố rộng rãi cho những người quan tâm sử dụng. Phần lớn các công cụ này không chỉ hữu ích đối với những chuyên gia xây dựng phần mềm mà còn đối với tất cả những người làm việc trong lĩnh vực an toàn thông tin. Trong vòng hai năm gần đây, số lượng các công cụ đã tăng lên đáng kê và chức năng của chúng được giới thiệu sau đây.
BinScope Binary Analyzer
Chẳng phải ngẫu nhiên mà chúng ta bỏ nhiều thời gian vào việc tìm cách vượt qua cơ chế bảo mật Data Execution Prevention (DEP) và Address Space Layout Randomization (ASLR) - những công nghệ được sử dụng trong hệ điều hành nhằm ngăn chặn việc khai thác một số lỗ hổng bảo mật, ví dụ như lỗi tràn bộ đệm. Chúng thực sự là rào cản đáng kể đối với những người viết exploit. Khả năng khai thác các lỗ hổng bảo mật phụ thuộc rất nhiều vào việc có vượt qua được rào cản này hay không.
Để hình dung được các yêu cầu của SDL trong vấn đề này, hãy xem xét một trường hợp: “Bất kỳ ứng dụng nào cũng phải được bảo vệ bắt buộc bởi DEP và ASLR”. Để đáp ứng yêu cầu này, mã nguồn bắt buộc phải được biên dịch với các thông số tương ứng là /NXCOMPAT và /DYNAMICBASE. Đó chỉ là một trong số các yêu cầu. Với sự trợ giúp của Binscope SDL người ta có thể biết được ứng dụng có tuân thủ hết các khuyến cáo và yêu cầu SDL hay không. Bên cạnh đó, Binscope cũng thông báo về việc sử dụng các cấu trúc bị cấm dùng hay không nên dùng, ví dụ như sử dụng con trỏ dẫn tới hàm toàn cục.
AppVerifier
AppVerifier cũng là một công cụ phân tích, nhưng chức năng của nó là để phân tích động mã máy (native code) và phát hiện các lỗi của lập trình viên, những lỗi khó có thể bắt được trong quá trình kiểm tra thông thường. Phân tích động có nghĩa là chương trình sẽ được phân tích ngay trong quá trình hoạt động của nó (runtime test). AppVerifier theo dõi hoạt động của chương trình và kiểm tra xem nó có thực hiện những hành động nguy hiểm nào không. Ví dụ, nếu chương trình thực hiện tạo ra một đối tượng mà không có mô tả an toàn (security descriptor), hay truyền tham số vào hàm API theo cách không an toàn... thì AppVerifier sẽ đưa ra những cảnh báo thích hợp.
Attack Surface Analyzer Beta
Nhiệm vụ của Attack Surface Analyzer, như tên gọi của nó, là xác định bề mặt tấn công. Đây là một trong những công cụ mới nhất từ phòng thí nghiệm Microsoft. Công cụ phân tích này cho phép theo dõi những sự thay đổi trong hệ thống, xảy ra sau một tập hợp các hành động nhất định. Ví dụ, bằng cách “chụp hình” hệ thống trước và sau khi cài đặt phần mềm, rồi so sánh chúng, có thể xác định được mọi sự thay đổi: xuất hiện các file mới, bản ghi mới trong registry, các dịch vụ (service) mới, các thành phần ActiveX mới, các cổng mới được mở, thay đổi trong danh sách ACL .v.v.
Code Analysis for C/C++
Việc phân tích tự động mã nguồn để tìm ra các dấu hiệu có lỗ hổng được gọi là kiểm tra tĩnh (static test). Code Analysis for C/C++ là một công cụ phân tích mã tĩnh tiêu chuẩn (standard static code analyzer) và được cài đặt ngầm định vào một số phiên bản Visual Studio. Nó hỗ trợ tự động tìm kiếm trong mã máy (native code) các khả năng rò rỉ bộ nhớ, các ngoại lệ (exclusion) không bị bẫy, các vấn đề liên quan đến hiệu năng và các lỗ hổng an toàn.
Microsoft Code Analysis Tool .NET (CAT .NET)
Đây cũng là công cụ để thực hiện việc kiểm tra tĩnh, nhưng là dành để phân tích mã quản lý được (managed code) như C#, Visual Basic .NET, J#, và hướng tới đối tượng chính là các ứng dụng web. CAT .NET cho phép tìm ra các điểm yếu tiềm ẩn mà có thể về sau mới bị khai thác thông qua các chuỗi tấn công như Cross-Site Scripting (XSS), SQL Injection và XPath Injection. Trước khi được công bố rộng rãi thì công cụ này chỉ được sử dụng trong phạm vi hãng Microsoft.
FxCop
Đây cũng là một công cụ kiểm tra tĩnh để phân tích mã có thể quản lý (managed code). Thực ra, nó không kiểm tra mã nguồn mà kiểm tra mã đối tượng đã được biên dịch. Về bản chất, FxCop kiểm tra các chương trình .NET xem có tuân thủ đúng các khuyến cáo về xây dựng thư viện .NET Framework hay không. FxCop phân tích mã CIL (Common Intermediate Language - ngôn ngữ trung gian được Microsoft phát triển cho nền tảng .NET) để xây dựng và duyệt đồ thị các lệnh gọi hàm trong nó nhằm kiểm tra xem có tồn tại các vấn đề sai sót hay không trong số hơn 200 vấn đề đã được biết.
Anti - Cross Site Scripting (Anti - XSS) Library
Rất nhiều lỗ hổng có thể được cảnh báo trước bằng cách cung cấp cho các nhà phát triển những công cụ thích hợp. Theo cách tiếp cận này, Anti - XSS ra đời nhằm mục đích giảm thiểu khả năng thực hiện tấn công XSS lên các ứng dụng web. Điểm đáng chú ý ở đây là trong Anti - XSS chứa Security Runtime Engine (SRE), mà về bản chất nó giống như là một bức tường lửa dành cho ứng dụng web - Web Application Firewall (WAF). Anti - XSS hoạt động dưới dạng một môđun HTTP và đảm bảo cho các ứng dụng web thêm một lớp bảo vệ mà không cần phải biên dịch lại.
SiteLock ATL Template
Nếu từng đọc các bài viết nói về tấn công lên thành phần ActiveX thì chúng ta sẽ biết lỗi trong thành phần ActiveX nguy hiểm như thế nào. Thư viện SiteLock Active Template không thể giúp loại trừ các lỗi có trong phần mã, nhưng có thể giảm đáng kể khả năng khai thác các lỗi này. Với sự trợ giúp của ATL ta có thể hạn chế việc thực thi các thành phần ActiveX bằng cách sử dụng một danh sách cho trước các tên miền, các vùng an toàn. Có thể thiết lập SiteLock ATL Template để các thành phần ActiveX chỉ thực thi trong phạm vi intranet (mạng nội bộ), chứ không thực thi trên các trang thuộc mạng internet. Rõ ràng, bằng cách hạn chế khả năng khai thác các lỗ hổng, ta có thể giảm đáng kể khả năng các cuộc tấn công tiềm tàng.
Banned.h
Nếu nói về phát triển ứng dụng trên C/C++ thì nguy cơ trong code có những lệnh cho phép thực thi tấn công kiểu tràn bộ đệm (buffer overflow) và tương tự là rất lớn. Danh sách các lệnh kiểu này cũng rất dài: đó là các hàm làm việc với chuỗi ký tự (xstrcpy(), strcat(), gets(), sprintf(), printf(), snprintf(), syslog()); các hàm hệ thống (access(), chown(), chgrp(), chmod(), tmpfile(), tmpnam(), tempnam, mktemp()), và cả các lệnh gọi hệ thống (exec(), system(), popen()). Để phân tích mã nguồn và tìm ra các lệnh nguy hiểm này, ta có thể dùng công cụ phân tích tĩnh Code Analysis for C/C++ như đã nói ở trên. Tuy nhiên, vẫn còn một lựa chọn khác, đó là sử dụng file tiêu đề (header file). Đặc biệt banned.h không cho phép dùng các hàm mà từ lâu đã không được khuyến khích sử dụng (và tất nhiên là bị cấm bởi SDL).
SDL Threat Modeling Tool
Mô hình hóa hiểm họa (threat modeling) là một phần quan trọng trong việc thiết kế một sản phẩm phần mềm. Kết quả của việc mô hình hóa là một sơ đồ các thành phần chính của hệ thống tương lai cùng với các đánh dấu giới hạn tin tưởng trên đó. SDL Threat Modeling Tool là công cụ cho phép xây dựng và phân tích mô hình hiểm họa, qua đó nhận biết được những nguy hiểm tiềm tàng và đưa ra biện pháp giảm nhẹ nó.
SDL Proccess Template
Đây là khuôn mẫu (template) được phát triển cho Visual Studio. Nó tự động tích hợp các thành phần của SDL vào môi trường Visual Studio, giúp cho việc tuân thủ các yêu cầu của SDL khi tạo một dự án mới được dễ dàng hơn.
MiniFuzz File Fuzzer
Chiếu theo chính sách SDL, một trong những công đoạn bắt buộc khi kiểm tra (test) ứng dụng là fuzzing, tức là kiểm tra bằng các dữ liệu đầu vào ngẫu nhiên. Minifuzz File Fuzzer là công cụ kiểm tra mờ (fuzzy testing) cơ bản, được phát triển nhằm cho phép các chuyên gia không thuộc lĩnh vực an toàn, không có kiến thức về kiểm tra mờ cũng có thể thực hiện được việc kiểm tra này. Công cụ này đưa tới đầu vào của ứng dụng được kiểm tra các giá trị khác nhau nhằm tìm ra những ngoại lệ chưa được xử lý.
SDL Regex Fuzzer
Là công cụ kiểm tra mờ các biểu thức chính quy (Regex). SDL Regex Fuzzer cho phép kiểm tra các biểu thức chính quy để phát hiện các lỗ hổng loại “từ chối dịch vụ”. Đây là nhiệm vụ không đơn giản bởi các biểu thức chính quy thường chứa các mệnh đề có độ phức tạp hàm mũ về thời gian. Các biểu thức dạng này có thể bị lợi dụng để thực hiện tấn công từ chối dịch vụ. Công cụ SDL Regex Fuzzer cho phép tìm kiếm và chỉ ra sự có mặt của các biểu thức nguy hiểm này ngay trong quá trình phát triển ứng dụng.
Các công cụ được nhắc đến trên đây có thể tải về từ địa chỉ: http://www.microsoft.com/download/en/details.aspx?id=464. Như vậy, song song với quá trình phát triển các phần mềm ứng dụng, việc nghiên cứu các công cụ để có thể kiểm tra và tìm ra những lỗ hổng trong chương trình phần mềm là hết sức cần thiết và cần được sự quan tâm của các tổ chức hoạt động trong lĩnh vực CNTT.
19:00 | 30/04/2024
Các nhà nghiên cứu tới từ nhóm tình báo mối đe dọa Cisco Talos đã phát hiện một tác nhân đe dọa mới có nguồn gốc từ Việt Nam là CoralRaider đang thực hiện chiến dịch đánh cắp thông tin đăng nhập, dữ liệu tài chính và tài khoản mạng xã hội của nạn nhân, bao gồm cả tài khoản doanh nghiệp và quảng cáo.
10:00 | 10/04/2024
Bộ Y tế Hoa Kỳ đã đưa ra cảnh báo rằng tin tặc hiện đang sử dụng các chiến thuật lừa đảo để nhắm mục tiêu vào các bộ phận trợ giúp công nghệ thông tin (CNTT) trong lĩnh vực Chăm sóc sức khỏe và Y tế Công cộng.
09:00 | 28/03/2024
Trong 02 ngày 26 và 27/3, Đoàn công tác của Ban Cơ yếu Chính phủ do đồng chí Nguyễn Hữu Hùng, Phó Trưởng ban Ban Cơ yếu Chính phủ làm Trưởng Đoàn đã đến làm việc với Tỉnh ủy Thái Bình, Quảng Ninh và Thành ủy Hải Phòng về công tác phối hợp, tăng cường triển khai các nhiệm vụ về lĩnh vực cơ yếu, bảo mật và an toàn thông tin.
14:00 | 05/03/2024
Công ty Avast sẽ phải trả 16,5 triệu USD và bị cấm bán hoặc cấp phép dữ liệu duyệt web cho quảng cáo như một phần của thỏa thuận với Ủy ban Thương mại Liên bang (FTC) vì đã bán một lượng lớn dữ liệu duyệt web tổng hợp, có thể nhận dạng lại cho các bên thứ ba.
Khoảng giữa năm 1995, cơ quan An ninh Quốc gia Mỹ (National Security Agency - NSA) bắt đầu công bố hàng nghìn thông điệp được giải mật từ dự án VENONA. Đó là các thông điệp được truyền trong hoạt động ngoại giao và hoạt động tình báo của Liên Xô được trao đổi từ năm 1940. Trong đó, có chứa các thông tin liên quan đến Cơ quan tình báo trung ương Liên Xô (Komitet Gosudarstvennoy Bezopasnosti - KGB), Cơ quan Tình báo Quân đội Nga (Glavnoye Razvedyvatel’noye Upravleniye - GRU), Cơ quan Dân ủy Nội vụ (Narodnyy Komissariat Vnutrennikh Del - NKVD)…. Đây là kết quả hợp tác truyền thông tình báo của Mỹ, Anh và một số nước đồng minh. Bài viết dưới đây trình bày khái quát các kết quả chính và nguyên nhân thám mã thành công của dự án VENONA.
15:00 | 30/12/2018
Theo tờ Nikkei Asia, hiện tại Alibaba đang thuê máy chủ của nhà cung cấp dịch vụ viễn thông Viettel và VNPT. Từ năm 2022, Luật Bảo vệ dữ liệu cá nhân có hiệu lực, bắt buộc các công ty công nghệ nước ngoài phải lưu trữ dữ liệu ở trong nước. Nhằm đáp ứng quy định này, gã khổng lồ thương mại điện tử Trung Quốc Alibaba dự định sẽ xây dựng một trung tâm dữ liệu tại Việt Nam.
16:00 | 03/05/2024
Trong 02 ngày 25-26/4, Đoàn công tác của Ban Cơ yếu Chính phủ do đồng chí Nguyễn Hữu Hùng, Phó Trưởng ban làm Trưởng đoàn đã đến thăm và làm việc với các Tỉnh ủy: Đồng Nai, Bình Dương và Bình Phước về công tác cơ yếu, bảo mật và an toàn thông tin.
19:00 | 30/04/2024
Mới đây, Trung Quốc đã giới thiệu công cụ trí tuệ nhân tạo (AI) có khả năng chuyển văn bản thành video, tương tự ứng dụng gây sốt Sora của OpenAI.
10:00 | 07/05/2024