Trang Chủ Tài chính Cá nhân C ++ Lập trình: 10 Mẹo chống hacker - núm vú

C ++ Lập trình: 10 Mẹo chống hacker - núm vú

Mục lục:

Video: Cách viết virus mã hóa dữ liệu, WannaCry hoạt động như thế nào ? 2025

Video: Cách viết virus mã hóa dữ liệu, WannaCry hoạt động như thế nào ? 2025
Anonim

Là một lập trình C + +, bạn cần học những điều bạn nên làm trong mã C ++ để tránh viết các chương trình dễ bị hacker tấn công. Ngoài ra còn có các tính năng mà bạn có thể kích hoạt nếu hệ điều hành của bạn hỗ trợ chúng, chẳng hạn như Địa chỉ Không gian Giao diện ngẫu nhiên (ASLR) và Phòng Chống Thực hiện Dữ liệu (DEP).

Không giả định về đầu vào của người dùng

tầm nhìn đường hầm của trình lập trình ổn trong giai đoạn phát triển ban đầu. Tuy nhiên, tại một thời điểm nào đó, lập trình viên (hoặc tốt hơn nữa, một số lập trình viên khác không liên quan gì đến sự phát triển của mã) cần phải ngồi lại và quên đi vấn đề ngay lập tức. Cô ấy cần tự hỏi bản thân mình, "Chương trình này phản ứng như thế nào với đầu vào bất hợp pháp? "

Đây là một số quy tắc để kiểm tra đầu vào:

  • Không giả sử về độ dài của đầu vào.

  • Không chấp nhận đầu vào nhiều hơn bạn có chỗ trống trong vùng đệm có độ dài cố định (hoặc sử dụng bộ đệm có kích thước biến).

  • Kiểm tra phạm vi của mỗi giá trị số để đảm bảo rằng nó có ý nghĩa.

  • Kiểm tra và lọc các ký tự đặc biệt mà một hacker có thể sử dụng để chèn mã.

  • Không được chuyển đầu vào thô vào một dịch vụ khác, chẳng hạn như máy chủ cơ sở dữ liệu.

Và thực hiện tất cả các kiểm tra tương tự trên các giá trị được trả về từ các dịch vụ từ xa. Hacker có thể không ở phía đầu vào, anh ta có thể ở phía phản ứng.

Xử lý thất bại Tạm thời

Chương trình của bạn nên phản ứng hợp lý đối với những thất bại xảy ra trong chương trình. Ví dụ, nếu cuộc gọi của bạn đến một hàm thư viện trả về một nullptr, chương trình sẽ phát hiện ra điều này và làm một cái gì đó hợp lý.

Hợp lý ở đây được hiểu một cách khá tự do. Chương trình không cần phải đánh hơi xung quanh để tìm ra chính xác tại sao chức năng đã không trả lại một địa chỉ hợp lý. Nó có thể là yêu cầu được cho quá nhiều bộ nhớ do đầu vào không hợp lý. Hoặc nó có thể là nhà xây dựng phát hiện một số loại đầu vào bất hợp pháp.

Không quan trọng. Vấn đề là chương trình nên khôi phục lại trạng thái của nó tốt nhất có thể và thiết lập cho bit tiếp theo của đầu vào mà không bị hỏng hoặc hư hỏng cấu trúc dữ liệu hiện có như heap.

Duy trì nhật ký chương trình

Tạo và duy trì các bản ghi thời gian thực cho phép ai đó khôi phục lại những gì đã xảy ra trong trường hợp thất bại về bảo mật. (Thực tế, điều này cũng đúng với trường hợp có bất kỳ loại thất bại nào) Ví dụ: bạn có thể muốn đăng nhập mỗi lần ai đó đăng nhập vào hoặc ra khỏi hệ thống của bạn.

Bạn chắc chắn muốn biết ai đã đăng nhập vào hệ thống của bạn khi một sự kiện bảo mật xảy ra - đây là nhóm có nhiều nguy cơ mất an ninh nhất và người đáng ngờ nhất khi tìm kiếm thủ phạm.Ngoài ra, bạn sẽ muốn đăng nhập bất kỳ lỗi hệ thống nào sẽ bao gồm hầu hết các trường hợp ngoại lệ.

Một chương trình sản xuất trong thế giới thực có một số lượng lớn các cuộc gọi trông giống như sau:

log (DEBUG, "Người dùng% s nhập mật khẩu hợp pháp", sUser);

Đây chỉ là một ví dụ. Mỗi chương trình sẽ cần một số loại chức năng đăng nhập. Có hay không nó thực sự được gọi là log () là không quan trọng.

Thực hiện theo một quy trình phát triển tốt

Mỗi chương trình phải tuân theo quy trình phát triển chính thức và được cân nhắc kỹ lưỡng. Quá trình này phải bao gồm ít nhất các bước sau:

  • Thu thập và yêu cầu tài liệu, bao gồm các yêu cầu bảo mật.

  • Xem lại thiết kế.

  • Tuân theo một tiêu chuẩn mã hóa.

  • Thử nghiệm đơn vị.

  • Thực hiện các bài kiểm tra chấp nhận chính thức dựa trên yêu cầu ban đầu.

Ngoài ra, các cuộc đánh giá đồng đẳng phải được tiến hành tại các điểm chính để xác minh rằng các yêu cầu, thiết kế, mã và thủ tục kiểm tra chất lượng cao và đáp ứng các tiêu chuẩn của công ty.

Thực hiện kiểm soát phiên bản tốt

Phiên bản kiểm soát là một điều kỳ lạ. Thật tự nhiên không phải lo lắng về phiên bản 1. 1 khi bạn đang ở dưới khẩu súng để có được phiên bản 1. 0 ra khỏi cửa và vào tay người đang chờ đợi của người đang ở ngoài. Tuy nhiên, kiểm soát phiên bản là một chủ đề quan trọng cần phải được giải quyết sớm bởi vì nó phải được xây dựng trong thiết kế ban đầu của chương trình và không bắt buộc vào sau này.

Một khía cạnh gần như nhỏ của kiểm soát phiên bản là biết phiên bản của chương trình người dùng đang sử dụng. Khi người dùng gọi đến và nói, "Nó thực hiện điều này khi tôi nhấp vào đó", bàn trợ giúp thực sự cần biết phiên bản của chương trình người dùng đang sử dụng. Anh ta có thể mô tả một vấn đề trong phiên bản của anh ta đã được khắc phục trong phiên bản hiện tại.

Xác thực người dùng an toàn

Xác thực người dùng phải đơn giản: Người dùng cung cấp tên tài khoản và mật khẩu, và chương trình của bạn sẽ xem tên tài khoản trong một bảng và so sánh mật khẩu. Nếu mật khẩu khớp, người dùng được xác thực. Nhưng khi nói đến chống hack, không có gì là đơn giản.

Trước tiên, không bao giờ tự lưu mật khẩu vào cơ sở dữ liệu. Đây được gọi là lưu trữ chúng trong rõ ràng và được coi là rất xấu hình thức. Nó quá dễ dàng cho một hacker có được bàn tay của mình vào tập tin mật khẩu. Thay vào đó, hãy lưu một biến đổi mật khẩu an toàn.

Quản lý các phiên họp từ xa

Bạn có thể đưa ra các giả định nhất định khi tất cả ứng dụng của bạn chạy trên một máy tính. Một điều, một khi người sử dụng đã chứng thực bản thân mình, bạn không cần phải lo lắng về anh ta được biến đổi thành một người khác. Các ứng dụng giao tiếp với máy chủ từ xa không thể giả định này - một hacker đang lắng nghe trên đường dây có thể đợi cho đến khi người dùng xác nhận chính mình và sau đó bắt giữ phiên làm việc.

Lập trình an toàn có thể làm gì để tránh tình trạng này? Bạn không muốn liên tục hỏi người dùng về mật khẩu của mình chỉ để đảm bảo rằng kết nối không bị cướp. Giải pháp thay thế là thiết lập và quản lý một phiên . Bạn thực hiện việc này bằng cách yêu cầu máy chủ gửi ứng dụng từ xa một cookie phiên khi người dùng đã xác thực thành công.

Tắc nghẽn mã của bạn

Mã khó hiểu là hành động làm cho tệp thi hành khó khăn cho một hacker hiểu rõ nhất có thể.

Logic là đơn giản. Càng dễ dàng hơn khi một hacker hiểu mã của bạn hoạt động như thế nào, thì hacker sẽ dễ dàng tìm ra các lỗ hổng.

Bước đơn giản nhất bạn có thể thực hiện là đảm bảo rằng bạn chỉ phát hành phiên bản Release của chương trình mà không bao gồm thông tin biểu tượng gỡ lỗi. Khi bạn tạo tệp dự án lần đầu tiên, hãy đảm bảo chọn cả phiên bản Gỡ lỗi và Phiên bản phát hành.

Không bao giờ bao giờ, phân phối các phiên bản của ứng dụng của bạn với thông tin biểu tượng bao gồm.

Ký mã của bạn bằng chứng nhận số

Ký hiệu mã hoạt động bằng cách tạo ra một mã băm an toàn của mã thực thi và kết hợp nó với chứng chỉ do cơ quan phát hành chứng chỉ hợp lệ cấp. Quy trình hoạt động như sau: Công ty tạo chương trình phải đăng ký bản thân với một trong các cơ quan chứng nhận.

Một khi cơ quan chứng nhận được thuyết phục rằng Công ty của tôi là một thực thể phần mềm hợp lệ, nó sẽ cấp chứng chỉ. Đây là một số dài mà mọi người có thể sử dụng để xác minh rằng người giữ chứng chỉ này là Công ty của tôi ở San Antonio nổi tiếng.

Sử dụng mã hoá bảo mật ở bất cứ nơi nào cần thiết

Giống như bất kỳ cảnh báo tốt nào, lời cảnh báo này có nhiều phần. Đầu tiên, "Sử dụng mã hóa bất cứ nơi nào cần thiết. "Điều này có xu hướng làm suy nghĩ về việc truyền đạt thông tin tài khoản ngân hàng qua Internet, nhưng bạn nên suy nghĩ tổng quát hơn.

Dữ liệu đang được truyền đạt qua Internet hoặc qua một phạm vi nhỏ hơn thường được gọi chung là Dữ liệu trong Chuyển động. Dữ liệu trong Motion nên được mã hóa trừ khi nó không có hại cho một hacker.

Dữ liệu được lưu trữ trên đĩa được gọi là Dữ liệu ở phần còn lại. Dữ liệu này cũng phải được mã hóa nếu có cơ hội bị mất, đánh cắp hoặc sao chép đĩa. Các doanh nghiệp thường mã hóa ổ cứng trên máy tính xách tay của công ty trong trường hợp máy tính xách tay bị mất cắp tại máy quét an ninh tại sân bay hoặc để ở trong một chiếc taxi ở đâu đó.

Các thiết bị lưu trữ di động nhỏ, chẳng hạn như ổ đĩa nhỏ, đặc biệt dễ bị mất - dữ liệu trên các thiết bị này phải được mã hóa.

C ++ Lập trình: 10 Mẹo chống hacker - núm vú

Lựa chọn của người biên tập

Làm thế nào để Lưu tệp vào OneDrive từ iPad của bạn - núm vú

Làm thế nào để Lưu tệp vào OneDrive từ iPad của bạn - núm vú

Chia sẻ là chăm sóc và bạn có thể lưu tệp Word, Excel hoặc PowerPoint vào iPad hoặc máy tính để bàn của bạn trực tiếp vào thư mục OneDrive. Sau khi tệp tin trên OneDrive, những người khác có quyền truy cập vào thư mục trên OneDrive có thể mở tệp. Họ có thể mở nó trong Văn phòng cho ứng dụng iPad, Office ...

Làm thế nào để liên kết đến một tập tin cục bộ trong Office 2011 for Mac - núm vú

Làm thế nào để liên kết đến một tập tin cục bộ trong Office 2011 for Mac - núm vú

Một trong các công cụ hữu ích nhất trong Office 2011 cho mac là khả năng tạo siêu liên kết đến bất cứ đâu. Bạn có thể liên kết đến bất kỳ tập tin nào trên máy tính của bạn; những tập tin này là các tập tin địa phương. Để kết nối với các tệp cục bộ, bạn có thể sử dụng hai loại liên kết: Tuyệt đối: Loại liên kết này có chứa ...

Cách đăng nhập vào OneDrive từ phần mềm

Cách đăng nhập vào OneDrive từ phần mềm

OneDrive là một thành phần của Office 365, Dịch vụ trực tuyến của Microsoft. Trước khi bạn có thể lưu trữ, chia sẻ, hoặc đồng chỉnh sửa các tập tin trên OneDrive từ iPad, bạn phải đăng nhập vào OneDrive. Đọc tiếp để tìm hiểu cách đăng nhập từ Office cho iPad và đăng nhập từ một trình duyệt web. OneDrive ...

Lựa chọn của người biên tập

Cách sắp xếp các tệp phương tiện cho WordPress Blog của bạn - núm vú

Cách sắp xếp các tệp phương tiện cho WordPress Blog của bạn - núm vú

Nếu bạn đã chạy blog của bạn trong bất kỳ khoảng thời gian nào, bạn có thể dễ dàng quên những tệp bạn đã tải lên bằng trình tải lên WordPress. Thư viện Truyền thông WordPress giúp bạn dễ dàng và dễ dàng khám phá những tệp nào trong thư mục Uploads của bạn. Để tìm tệp hình ảnh, video hoặc âm thanh mà bạn đã tải lên bằng cách sử dụng <

Làm thế nào để tối ưu Blog WordPress của bạn cho Công cụ Tìm kiếm - núm vú

Làm thế nào để tối ưu Blog WordPress của bạn cho Công cụ Tìm kiếm - núm vú

Bạn muốn mọi người tìm thấy blog WordPress của bạn, nếu không bạn sẽ không dành thời gian để viết nó. WordPress được trang bị để tạo ra một môi trường thân thiện với các công cụ tìm kiếm, cho phép họ điều hướng dễ dàng thông qua các kho lưu trữ, các loại và các trang của bạn. WordPress cung cấp môi trường này với một cơ sở mã sạch, nội dung dễ dàng cập nhật thông qua ...

Làm thế nào để Thực hiện Từ khoá trong trang WordPress của bạn với Permalinks

Làm thế nào để Thực hiện Từ khoá trong trang WordPress của bạn với Permalinks

Cho thứ hạng cao hơn cho trang web WordPress của bạn, sử dụng các liên kết tùy chỉnh với từ khoá. Bằng cách sử dụng các liên kết tuỳ chỉnh, bạn tự động chèn từ khoá vào URL của các bài đăng và trang của bạn, cho phép các công cụ tìm kiếm bao gồm các bài đăng và trang đó trong cơ sở dữ liệu thông tin về những chủ đề đó. Nếu trang web của bạn được lưu trữ bởi nhà cung cấp có

Lựa chọn của người biên tập

Làm thế nào để gửi chú thích để chia sẻ chúng trong OneNote 2013 - núm vú

Làm thế nào để gửi chú thích để chia sẻ chúng trong OneNote 2013 - núm vú

Một trong những phương pháp đơn giản chia sẻ một ghi chú với OneNote 2013 bằng cách gửi nó dưới dạng tệp tin tới người nhận e-mail hoặc thậm chí với Microsoft Word hoặc blog của bạn. Để gửi lưu ý hiện tại dưới dạng tệp tin, hãy làm theo các bước sau: Mở ghi chú mà bạn muốn chia sẻ trong OneNote 2013 và chọn <...

Làm thế nào để Đồng bộ hóa Ghi chú trong OneNote 2013 - núm vú

Làm thế nào để Đồng bộ hóa Ghi chú trong OneNote 2013 - núm vú

OneNote 2013 khoảng cách bản thân từ khái niệm toàn bộ các tệp lưu thủ công trong lợi của đồng bộ hóa chúng. Bạn có thể đồng bộ tập tin tự động hoặc thủ công. Điều này cho phép bạn tự do khi quản lý các tệp của mình. Làm thế nào để đồng bộ tự động trong OneNote OneNote tự động lưu các ghi chú của bạn mỗi khi bạn thực hiện bất kỳ thay đổi ở tất cả để một máy tính xách tay, phần, ...

Cách Quản lý Máy tính xách tay OneNote 2013 với SkyDrive - núm vú

Cách Quản lý Máy tính xách tay OneNote 2013 với SkyDrive - núm vú

SkyDrive có thể truy cập qua đám mây, 't có một ứng dụng SkyDrive được cài đặt trên thiết bị. Điều này giúp bạn dễ dàng quản lý máy tính xách tay OneNote 2013 từ bất kỳ thiết bị nào có truy cập internet. Cách quản lý máy tính xách tay với SkyDrive trên web Bạn có thể truy cập dịch vụ từ bất cứ thiết bị nào bạn đang sử dụng miễn là nó hỗ trợ