2011-04-21 43 views
9

Cách tốt nhất (hoặc bất kỳ) nào để theo dõi một ứng dụng ASP.NET để đảm bảo rằng nó an toàn và nhanh chóng phát hiện xâm nhập? Làm thế nào để chúng tôi biết chắc chắn rằng, ngay bây giờ, ứng dụng của chúng tôi là hoàn toàn kiên quyết?Giám sát ASP.NET và SQL Server để bảo mật

Chúng tôi chuẩn bị khởi chạy ứng dụng web ASP.NET 4, với dữ liệu được lưu trữ trên SQL Server. Máy chủ web chạy trong IIS trên một cá thể Windows Server 2008 và máy chủ cơ sở dữ liệu chạy trên SQL Server 2008 trên một cá thể Win 2008 riêng biệt.

Chúng tôi đã xem xét các khuyến nghị bảo mật của Microsoft và tôi cho rằng ứng dụng của chúng tôi rất an toàn. Chúng tôi đã thực hiện "bảo vệ theo chiều sâu" và được coi là một loạt các vectơ tấn công.

Vì vậy, chúng tôi "cảm thấy" tự tin, nhưng không có khả năng hiển thị thực tế nào về bảo mật của hệ thống của chúng tôi. Làm thế nào chúng ta có thể biết ngay lập tức nếu ai đó đã thâm nhập? Làm cách nào chúng tôi có thể biết liệu một gói hàng nào đó đã được gửi trên một trong các máy chủ của chúng tôi? Làm thế nào chúng ta có thể biết nếu một sự rò rỉ dữ liệu đang được tiến hành?

Một số khái niệm, công cụ, phương pháp hay nhất, v.v. là gì?

Cảm ơn trước, Brian

Suy nghĩ bổ sung 4/22/11

Chris, cảm ơn vì những quan sát cá nhân rất hữu ích và lời khuyên dưới đây.

Cách tiếp cận tốt, toàn diện để giám sát hoạt động ứng dụng hiện tại cho bảo mật là gì? Ngoài cảnh giác liên tục trong việc áp dụng các phương pháp hay nhất, bản vá, v.v., tôi muốn biết chính xác những gì đang xảy ra bên trong hệ thống của tôi ngay bây giờ. Tôi muốn có thể quan sát và phân tích hoạt động của nó theo một cách rõ ràng cho tôi biết lưu lượng truy cập nào là đáng ngờ và điều đó không xảy ra. Cuối cùng, tôi muốn thông tin này hoàn toàn chính xác và dễ tiêu hóa.

Làm cách nào để chúng tôi đạt được hiệu quả đó? Sẽ không phải là một giải pháp tốt bao gồm đăng nhập giám sát, hoạt động cơ sở dữ liệu, hoạt động ASP.NET, vv ngoài các gói tin trên dây? Một số ví dụ về cách giả sử một tư thế an toàn mạnh mẽ là gì?

Brian

Trả lời

1

Tôi chưa thử, nhưng Lenny Zeltser đã hướng tôi đến OSSEC, một hệ thống phát hiện xâm nhập dựa trên máy chủ liên tục giám sát toàn bộ máy chủ để phát hiện bất kỳ hoạt động đáng ngờ nào. Điều này trông giống như những gì tôi muốn!

Tôi sẽ thêm thông tin khác khi tôi có cơ hội kiểm tra đầy đủ thông tin đó.

OSSEC có thể được tìm thấy tại http://www.ossec.net/

2

Tôi có thể nói một số suy nghĩ - nhưng tôi rất vui khi biết thêm ý tưởng.

Làm thế nào chúng ta có thể biết ngay lập tức nếu ai đó xâm nhập?

Đây không phải là dễ dàng như vậy và theo ý kiến ​​của tôi, ** một ý tưởng là làm cho một số bẫy ** bên backoffice của bạn, cùng với màn hình cho lần đăng nhập tăng gấp đôi từ ip khác nhau.

một cái bẫy có thể bất cứ điều gì bạn có thể nghĩ đến, ví dụ một tổ chức phi trang thực sự mà nói "tạo quản trị mới", hoặc "mật khẩu quản trị sự thay đổi", trên backoffice, và có ai có thể nhận được trong và cố gắng để làm cho một quản trị viên mới chắc chắn là kẻ xâm nhập - tất nhiên cái bẫy này phải được biết chỉ trên bạn, hoặc người nào khác không có ý nghĩa cho điều đó.Để bảo mật hơn, bất kỳ thay đổi nào đối với quản trị viên đều cần có mật khẩu thứ hai và nếu một ai đó cố thực hiện thay đổi thực sự trên tài khoản quản trị viên hoặc cố gắng thêm bất kỳ quản trị viên mới nào và không thực hiện được mật khẩu thứ hai này một kẻ xâm nhập.

cách để theo dõi một ứng dụng ASP.NET

Tôi nghĩ rằng bất kỳ công cụ giám sát các trang đối với một số thay đổi văn bản, có thể giúp về điều đó. Ví dụ: Network Monitor này có thể giám sát văn bản cụ thể trên trang của bạn và thông báo cho bạn hoặc thực hiện một số hành động nếu không tìm thấy văn bản này, điều đó có nghĩa là một số văn bản sẽ thay đổi trang.

Vì vậy, bạn có thể thêm một số văn bản ẩn đặc biệt và nếu không tìm thấy, bạn có thể biết chắc chắn rằng một số thay đổi cốt lõi của trang và có thể là thay đổi tệp.

Làm thế nào chúng ta có thể biết nếu một gói của một số loại đã được lắng đọng trên một trong các máy chủ của chúng tôi

Đây có thể là bất kỳ trang aspx nạp vào máy chủ của bạn và hành động như một trình duyệt tập tin. Đối với điều này không xảy ra tôi đề nghị để thêm tập tin web.config vào thư mục được sử dụng để tải lên dữ liệu, và trên web.config này không cho phép bất cứ điều gì để chạy.

<configuration> 
    <system.web> 
     <authorization> 
     <deny users="*" /> 
     </authorization> 
    </system.web> 
</configuration> 
+0

Một vài điều ở đây: 1. Cách duy nhất là "cái bẫy" các trang sẽ có sẵn là nếu họ là một trong hai kiến ​​thức công cộng hoặc truy cập bằng cách tìm kiếm google. Tốt hơn hết là không cho phép các trang quản trị của bạn có thể tìm kiếm được. 2. Việc giám sát văn bản bị thiếu không phải là cách hay để xác định xem một trang có thay đổi hay không. Thường xuyên hơn văn bản mới không được thêm vào như trái ngược với một người nào đó loại bỏ các công cụ cũ. 3. Không có lý do gì trong thế giới ngày nay có thư mục tải lên ngay từ đầu. Lưu trữ nó trong cơ sở dữ liệu nơi bạn đã sao lưu đơn giản. – NotMe

+0

@Chris Cảm ơn bạn đã ghi chú, có bạn có quyền về điều đó. Tôi chỉ thực hiện một số ý tưởng ở đây phù hợp với một số trường hợp, không phải trên tất cả các trường hợp, có lẽ không phải là những trường hợp tốt nhất, tôi sẽ thích tìm hiểu thêm từ các câu trả lời khác. – Aristos

2

Cụm từ bạn đang tìm kiếm là Intrusion Detection System (IDS). Có một thuật ngữ có liên quan được gọi là Intrusion Prevention System (IPS).

Lưu lượng truy cập màn hình của IDS đến máy chủ của bạn ở cấp IP và sẽ gửi cảnh báo dựa trên phân tích lưu lượng truy cập phức tạp.

IPS là thế hệ tiếp theo của IDS thực sự cố gắng chặn một số hoạt động nhất định.

Có nhiều hệ thống mã nguồn mở và thương mại sẵn có bao gồm Snort, SourceFire, Endaceothers.

Tóm lại, bạn nên xem xét thêm một trong các hệ thống này vào danh sách kết hợp của bạn để theo dõi thời gian thực và có khả năng chặn các hoạt động nguy hiểm.


Tôi muốn thêm một chút thông tin ở đây vì khu vực nhận xét chỉ hơi nhỏ.

Điều chính bạn cần hiểu là các loại tấn công bạn sẽ thấy. Chúng sẽ nằm trong phạm vi từ các tập lệnh tự động tương đối không phức tạp đến các cuộc tấn công được nhắm mục tiêu rất tinh vi. Họ cũng sẽ tấn công mọi thứ mà họ có thể thấy từ trang web đến IIS, .Net, Mail server, SQL (nếu có thể truy cập được), ngay bên dưới tường lửa của bạn và các máy/dịch vụ tiếp xúc khác. Một cách tiếp cận wholistic là cách duy nhất để thực sự theo dõi những gì đang xảy ra.

Nói chung, một trang web/công ty mới sẽ bị tấn công bằng các tập lệnh tự động trong vòng vài phút (tôi muốn nói là tối đa 30 giây) sẽ phát trực tiếp. Đó là lý do số một trong những cài đặt mới của MS Windows giữ cho mạng bị khóa nghiêm trọng trong khi cài đặt. Heck, tôi đã thấy máy đóng đinh trong vòng 30 giây sau khi được bật lần đầu tiên.

Cách tiếp cận tin tặc/sâu lấy là quét liên tục phạm vi rộng của địa chỉ IP, điều này được theo dõi với dấu vân tay máy cho những người phản hồi. Dựa trên hồ sơ, họ sẽ gửi một số loại tấn công theo cách của bạn. Trong một số trường hợp, bước lược tả bị bỏ qua và chúng tấn công một số cổng bất kể phản hồi. Cổng 1443 (SQL) là một điểm chung.

Mặc dù hình thức phổ biến nhất của cuộc tấn công, những người tự động là đến nay dễ nhất để đối phó với. Tắt các cổng không sử dụng, tắt ICMP (phản hồi ping) và có tường lửa thích hợp sẽ giữ hầu hết các máy quét đi.

Đối với các cuộc tấn công theo kịch bản, hãy đảm bảo bạn không hiển thị các gói thường được cài đặt như PhpMyAdmin, công cụ quản trị web của IIS hoặc thậm chí Remote Desktop bên ngoài tường lửa của bạn. Ngoài ra, hãy loại bỏ bất kỳ tài khoản nào có tên "quản trị", "quản trị viên", "khách", "sa", "dbo", v.v. Cuối cùng, hãy đảm bảo mật khẩu của bạn KHÔNG được phép là tên ai đó và chắc chắn KHÔNG phải là tên mặc định được vận chuyển với một sản phẩm.

Dọc theo các dòng này, đảm bảo máy chủ cơ sở dữ liệu của bạn KHÔNG thể truy cập trực tiếp bên ngoài tường lửa. Nếu vì lý do nào đó, bạn phải có quyền truy cập trực tiếp thì ít nhất là thay đổi cổng # nó phản hồi và thực thi mã hóa.

Sau khi tất cả điều này được thực hiện đúng và bảo đảm các dịch vụ duy nhất được tiếp xúc phải là các dịch vụ web (cổng 80/443). Các mục vẫn có thể bị khai thác là các lỗi trong IIS, .Net hoặc ứng dụng web của bạn.

Đối với IIS và .net, bạn PHẢI cài đặt các bản cập nhật cửa sổ từ MS khá nhiều ngay khi chúng được phát hành. MS đã rất tốt về việc đẩy các bản cập nhật chất lượng cho các cửa sổ, IIS và .Net. Hơn nữa phần lớn các bản cập nhật là dành cho các lỗ hổng đã được khai thác trong tự nhiên. Máy chủ của chúng tôi đã được đặt để tự động cài đặt bản cập nhật ngay sau khi chúng khả dụng và chúng tôi có không bao giờ được ghi vào ngày này (quay trở lại ít nhất khi máy chủ 2003 được phát hành).

Ngoài ra, bạn cần cập nhật các bản cập nhật cho tường lửa của mình. Cách đây không lâu, một trong những bức tường lửa của Cisco có một lỗi mà nó có thể bị choáng ngợp. Thật không may nó cho phép tất cả lưu lượng truy cập đi qua khi điều này xảy ra. Mặc dù cố định khá nhanh, nhưng mọi người vẫn bị đóng búa sau một năm vì quản trị viên không thể theo kịp các bản vá của IOS. Vấn đề tương tự với bản cập nhật cửa sổ. Rất nhiều người đã bị tấn công đơn giản vì họ không thể áp dụng các bản cập nhật có thể ngăn chặn được nó.

Các cuộc tấn công được nhắm mục tiêu nhiều hơn sẽ khó xử lý hơn một chút. Số lượng tin tặc công bằng đang diễn ra sau khi các ứng dụng web tùy chỉnh. Những thứ như đăng bài để liên hệ với chúng tôi và biểu mẫu đăng nhập. Các bài đăng có thể bao gồm JavaScript, khi được quản trị viên xem, có thể khiến thông tin đăng nhập được chuyển ra hoặc có thể dẫn đến việc cài đặt các trình ghi nhật ký chính hoặc Trojans trên máy tính người nhận.

Vấn đề ở đây là bạn có thể bị xâm phạm mà không hề biết. Các biện pháp bảo vệ bao gồm đảm bảo không thể gửi HTML và JavaScript thông qua trang web của bạn; có kiểm tra spam và virus (và liên tục cập nhật) tại máy chủ thư, v.v. Về cơ bản, bạn cần xem xét mọi cách có thể để thực thể bên ngoài có thể gửi một cái gì đó cho bạn và làm điều gì đó về nó. Rất nhiều Fortune 500 công ty tiếp tục bị ảnh hưởng bởi những thứ như thế này ... Google bao gồm.

Hy vọng điều trên sẽ giúp người khác. Nếu như vậy và nó dẫn đến một môi trường an toàn hơn thì tôi sẽ là một chàng trai hạnh phúc. Thật không may hầu hết các công ty không giám sát lưu lượng truy cập để họ không có ý tưởng chỉ cần bao nhiêu thời gian được chi tiêu bởi các máy của họ chống lại rác thải này.

+0

Cảm ơn, Chris, điều này rất hữu ích. Bạn có biết bất kỳ giải pháp nào được tích hợp trực tiếp hơn với ASP.NET và SQL Server không? – BrianFinkel

+0

@BrianFinkel: Khá thẳng thắn là bạn không muốn bất cứ thứ gì "tích hợp trực tiếp". Một IDS/IPS hoạt động tốt hơn nếu đó là một sản phẩm riêng biệt đang giám sát toàn bộ mạng. Kinh nghiệm của chúng tôi là một trang web sẽ trải nghiệm một nỗ lực hack mới ít nhất 3 giây một lần. Những nỗ lực này có thể là bất cứ điều gì từ việc thăm dò các trang web về lỗ hổng, cố gắng truy cập các cổng khác nhau, gửi các gói để thử và "đi" qua tường lửa, gửi gói mù với hy vọng rằng cơ sở dữ liệu, thư hoặc loại máy chủ khác nằm trong cấu hình mặc định và phản hồi. – NotMe

+0

@ BrianFinkel: Điểm là, nếu bạn CHỈ nhìn vào hai phần đó, thì bạn đang thiếu một bức tranh rất lớn thực sự. Tôi đã nhìn thấy mọi người vào một mạng từ xa đơn giản chỉ vì họ đã có thể crack một máy chủ web được tích hợp vào một máy in đã xảy ra tiếp xúc. Làm thế nào là cho sự khéo léo? – NotMe

Các vấn đề liên quan