Các khía cạnh độc đáo của Vòng đời phần mềm của một cuộc tấn công / công cụ đối với lỗ hổng phần mềm là gì?


10

Tại trường đại học địa phương của tôi, có một câu lạc bộ máy tính sinh viên nhỏ khoảng 20 sinh viên. Câu lạc bộ có một số đội nhỏ với các lĩnh vực tập trung cụ thể, chẳng hạn như phát triển di động, robot, phát triển trò chơi và hack / bảo mật.

Tôi sẽ giới thiệu một số khái niệm phát triển nhanh cơ bản cho một vài nhóm, chẳng hạn như câu chuyện của người dùng, ước tính độ phức tạp của các tác vụ và tích hợp liên tục để kiểm soát phiên bản và xây dựng / kiểm tra tự động.

Tôi quen thuộc với một số vòng đời phát triển cơ bản, chẳng hạn như thác nước, xoắn ốc, RUP, nhanh nhẹn, v.v., nhưng tôi tự hỏi liệu có một thứ như vòng đời phát triển phần mềm để hack / vi phạm an ninh. Chắc chắn, tin tặc đang viết mã máy tính, nhưng vòng đời của mã đó là gì? Tôi không nghĩ rằng họ sẽ quá quan tâm đến việc bảo trì, vì một khi vi phạm đã được tìm thấy và vá lỗi, mã khai thác vi phạm đó là vô ích.

Tôi tưởng tượng vòng đời sẽ giống như:

  1. Tìm khoảng cách trong bảo mật
  2. Khai thác khoảng cách trong bảo mật
  3. Mua tải trọng
  4. Sử dụng tải trọng

Những loại khác biệt (nếu có) có trong vòng đời phát triển của phần mềm khi mục đích của sản phẩm là vi phạm bảo mật?


4
ai nói có bất kỳ hình thức nào trong việc hack bất cứ điều gì
ratchet freak

1
Dang, bốn câu trả lời tốt rồi. Sẽ rất khó để chọn chỉ một.
David Kaczynski

@DavidKaczynski bạn cũng có thể xem xét yêu cầu này về Bảo mật thông tin , để có quan điểm của những người thực sự thiết kế các loại phần mềm khác nhau. Và có sự khác biệt lớn, tùy thuộc vào yêu cầu bảo mật ...
AviD

@AviD cảm ơn, tôi nghĩ rằng tôi đã nhận được một số câu trả lời xuất sắc ở đây liên quan đến thực tế là vòng đời phát triển cho phần mềm xâm lấn vốn không khác biệt. Tôi muốn tìm hiểu thêm về các mục tiêu hoặc tùy chọn của phần mềm xâm lấn một khi bảo mật bị vi phạm, như lây nhiễm vi-rút máy tính, tạo cửa hậu hoặc bắt chước người dùng để lấy dữ liệu.
David Kaczynski

1
@DavidKaczynski nhưng quan điểm của tôi là nó vốn khác nhau - hay đúng hơn, đang phát triển một loại khác với loại khác. Xem ví dụ câu trả lời của Terry làm ví dụ, và so sánh chúng với virus, và một lần nữa với zero-day, và một lần nữa với Stuxnet, và ... Một số sẽ được thiết kế chính xác, một số được ném ra qua đêm, tùy thuộc vào bối cảnh và yêu cầu khác nhau .
AviD

Câu trả lời:


7

Bạn đang nói về loại mã nào?

Có nhiều công cụ bảo mật được sử dụng trong quá trình hack, bao gồm các máy quét như nmap , sqlmap , Nessus và nhiều công cụ khác. Tôi sẽ tưởng tượng họ có cùng loại vòng đời phần mềm như mọi ứng dụng khác.

Mặt khác, có mã khai thác. Mã được viết để tận dụng một tình huống & khai thác rất cụ thể. Tôi rất nghi ngờ những người cần bất kỳ vòng đời nào cả. Tuy nhiên, nhiều mã khai thác cũng được tích hợp với khung khai thác lớn hơn như Metasploit .


Sau khi thảo luận với @AviD, tôi muốn thêm vào một vài điểm.

Nó sẽ rất khác nhau cho các tình huống cụ thể.

Một số mã khai thác có thể được đưa ra để tính đến cửa sổ trước khi ngày không được vá. Mã có thể được vội vã vì lý do khác là tốt. Xem: CRIME - Làm thế nào để đánh bại người kế vị BEAST? cho một ví dụ tuyệt vời về điều này. Một người đã viết một đoạn mã PoC để nhanh chóng chứng minh quan điểm của mình. Không có phương pháp vòng đời phần mềm nào được tính đến cho các mã như thế này.

Phần mềm độc hại được vũ khí hóa như stuxnet hoặc FLAME có thể làm được. Phần mềm đóng gói như Metasploit làm.

Vì vậy, câu trả lời đúng là ... nó phụ thuộc.


Chúng tôi chưa có một cuộc họp chính thức nào để thảo luận về các mục tiêu hoặc các con đường có thể vi phạm an ninh, vì vậy tôi không thể nói loại mã nào chúng tôi sẽ phát triển (hoặc nếu chúng tôi sẽ sử dụng phần mềm / công nghệ hiện có để đáp ứng các mục tiêu của chúng tôi). Tôi vẫn quan tâm tìm hiểu các loại kỹ thuật chính thức để tận dụng hệ thống bị xâm nhập, như tạo backtime, bắt chước người dùng, lây nhiễm máy tính với virus, v.v. Tôi cho rằng loại câu hỏi đó có thể phù hợp hơn với Bảo mật CNTT
David Kaczynski

3

Tôi không thấy lý do tại sao nên có bất kỳ vòng đời phát triển cụ thể khác nhau tùy thuộc vào mục đích của sản phẩm.

Phần mềm được phát triển để vi phạm bảo mật có thể có tuổi thọ như bất kỳ loại phần mềm nào khác và sẽ yêu cầu cùng một lượng bảo trì và công việc.

Những người tạo ra phần mềm khác nhau sẽ áp dụng các vòng đời khác nhau tùy theo nhu cầu của họ.


3

Các mô hình phát triển mà bạn chỉ định chỉ là mô hình phát triển. Chúng cực kỳ hữu ích khi bạn thực hiện phát triển kỹ thuật - khi bạn có yêu cầu, khi bạn phải tạo hoặc sửa đổi kiến ​​trúc hệ thống hoặc thiết kế thành phần, khi bạn cần xây dựng hoặc sửa đổi sản phẩm và các thử nghiệm liên quan và khi bạn phát hành cho khách hàng.

Tôi không chắc chắn rằng các mô hình này có thể được áp dụng trực tiếp cho các dự án định hướng nghiên cứu hơn, nơi bạn đang cố gắng trả lời các câu hỏi hoặc tìm hiểu thêm về một hệ thống (hoặc các điểm yếu bảo mật của hệ thống, trong trường hợp cụ thể của bạn).

Tôi nghi ngờ rằng các mô hình lặp / tăng dần, như các phương thức nhanh và mô hình Xoắn ốc sẽ hữu ích nhất để tạo thành một cơ sở. Trong mỗi lần lặp, bạn có thể làm việc để trả lời các câu hỏi hoặc xác định thêm các tham số để làm việc, có thể bao gồm hoặc không bao gồm việc viết bất kỳ mã nào. Có lẽ các phương pháp nghiên cứu khoa học khác nhau cũng có thể cung cấp một nền tảng thú vị.


1

Hacking gần đây đã chứng kiến ​​sự chuyên nghiệp hóa mạnh mẽ, tránh xa các tin tặc đơn lẻ làm điều đó "vì lulz" hoặc để đạt được danh tiếng, hướng tới sự hợp tác giữa các chuyên gia với mục tiêu kiếm tiền. Kết quả đã được các "bộ công cụ hack" thương mại hoàn chỉnh như bộ công cụ khai thác Blackhole nơi các điểm yếu phần mềm cụ thể có thể dễ dàng tích hợp như các plugin. Tôi cho rằng các sản phẩm như vậy được phát triển khá chính xác như mọi sản phẩm phần mềm khác.

Rõ ràng cũng có một thị trường đang phát triển để khai thác 0 ngày .


1

Life-Cyle không bao giờ phụ thuộc vào mã. Nó khá phụ thuộc vào các yếu tố khác như:

  1. Thời gian
  2. Ngân sách
  3. Bản chất của khách hàng
  4. Bản chất của sản phẩm

Trong kịch bản của bạn, phương pháp Agile Life Cyle sẽ hữu ích nhất. Lý do là bạn cần liên quan đến khách hàng của mình trong quá trình phát triển và phải xác minh các thông số chất lượng chấp nhận được của sản phẩm. Phương pháp nhanh nhẹn sẽ giúp bạn rất nhiều để cải thiện Phần mềm hack của bạn thông qua việc thu thập phản hồi của khách hàng và sau đó dần dần làm việc trên cơ sở gia tăng .


Điều này có vẻ hơi chủ quan. Bạn có gợi ý rằng các phương pháp Vòng đời khác KHÔNG liên quan đến khách hàng trong quá trình phát triển hoặc xác minh các tham số chất lượng chấp nhận được không? Tất nhiên đó không phải là duy nhất cho Agile.
Jay Stevens
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.