2011-08-04 38 views
26

Gần đây, chúng tôi đã phát triển và xuất bản ứng dụng ngân hàng di động trên cửa hàng ứng dụng, cho một tổ chức ngân hàng lớn. Ngân hàng đã thuê một công ty bảo mật để thực hiện tấn công đạo đức trên ứng dụng để xem liệu nó có bị xâm phạm dữ liệu bí mật hay không.Cách bảo vệ ứng dụng IPA khỏi hacks nếu kỹ thuật đảo ngược có thể là

Gần đây chúng tôi đã nhận được báo cáo hacking từ công ty, mặc dù không có vấn đề bảo mật nghiêm trọng, chứa danh sách tất cả các tệp lớp, tên phương thức và mã lắp ráp của dự án.

Bây giờ, khách hàng khẳng định rằng chúng tôi khắc phục các lỗ hổng bảo mật này và tái xuất bản ứng dụng. Tuy nhiên, chúng tôi không có bất kỳ ý tưởng làm thế nào họ quản lý để có được tất cả các chi tiết này từ IPA của ứng dụng. Tôi đã tìm kiếm trên SO này và tìm thấy một bài đăng cụ thể đề cập đến liên kết this, cho biết bạn không thể lưu ứng dụng của mình khỏi bị tấn công.

Vui lòng giúp tôi cách khắc phục các lỗ hổng bảo mật này hoặc nếu không thể, cách thuyết phục khách hàng.

Chỉnh sửa: Gần đây, chúng tôi đã xem trang this. Có vẻ như EnsureIT từ Arxan có thể ngăn chặn ứng dụng IPA từ kỹ thuật đảo ngược. Bất cứ ai có kinh nghiệm với điều này?

+1

Bạn nên kiểm tra câu hỏi này: http://stackoverflow.com/questions/5556849/iphone-ipad-app-code-obfuscation-is-it-possible-worth-it – andreamazz

+0

Cám ơn câu trả lời của bạn andreamzz. Tuy nhiên, câu trả lời được chấp nhận trong bài viết nói rằng obfuscation trong mục tiêu C là không thể, và phương pháp thủ công đã được mô tả, sẽ là quá tẻ nhạt và tốn thời gian để kết hợp trong một ứng dụng đã hoàn thành. – Vin

+0

hack hợp pháp? nếu ai đó cố gắng hack hóc búa? – peko

Trả lời

9

luôn luôn một rủi ro liên quan. Ngay cả khi bạn không tự giới thiệu các lỗ hổng, nền tảng này có thể cho phép khai thác mà cuối cùng có thể cung cấp một điểm vào cho một kẻ tấn công độc hại.

Đối với câu hỏi của bạn: Đó là không phải an toàn để giả định rằng một URL được mã hóa cứng, ngay cả khi bị che khuất ngoài niềm tin, không thể bị bóc ra khỏi sản phẩm của bạn. Luôn luôn thiết kế ứng dụng của bạn sao cho an toàn dữ liệu người dùng được đảm bảo (càng nhiều càng tốt) ngay cả khi được xây dựng trong các tài nguyên bị xâm phạm. Nếu kiến ​​thức về URL đó một mình đặt ra một mối đe dọa an ninh, sau đó toàn bộ cách tiếp cận của bạn và API khách hàng của bạn vốn đã không an toàn. Hãy nhớ rằng những thông tin như vậy có thể bị bắt bởi một cuộc tấn công trung gian (và các phương thức tấn công khác).

Tránh bảo mật do tối tăm. Lưu trữ dữ liệu nhạy cảm chỉ trên đĩa nếu nó là cần thiết. Theo quy tắc, không cho phép lưu trữ PIN/TAN.

Vài suy nghĩ có thể (hoặc không thể) thuyết phục khách hàng của bạn rằng ứng dụng của bạn là an toàn như nó có thể là:

  • Chừng nào các ứng dụng chạy trên một thiết bị không jailbreak, nó không chắc rằng kẻ tấn công, ngay cả với kiến ​​thức về nội bộ ứng dụng của bạn đều có thể truy cập bất kỳ dữ liệu người dùng nào, vì iPhone thường không cung cấp cơ hội can thiệp vào ứng dụng của bạn
  • Nếu kẻ tấn công có thể truy cập dữ liệu người dùng của bạn và cung cấp bạn đã được bảo vệ dữ liệu đó với tất cả các phương tiện có sẵn trong iOS (-> keychain -> crypto chip -> ...), thì đó không phải lỗi của bạn. Điều đó có nghĩa là thiết bị đã bị bẻ khóa hoặc có lỗ hổng đối với chính hệ thống đã bị khai thác, bạn không thể làm bất cứ điều gì về khả năng.
  • Không thể ngăn kỹ thuật đảo ngược ứng dụng của bạn. Ngay cả khi bạn đã nỗ lực nhiều hơn vào việc làm xáo trộn, một kẻ tấn công với động lực mạnh mẽ vẫn có thể có được những gì anh ta muốn. Khách hàng của bạn cần quen với điều này vì đó là sự thật.
  • Các nền tảng khác bị lỗ hổng tương tự, nhưng trên iPhone ít nhất bạn có môi trường hơi đóng và giảm nguy cơ bị tấn công bằng trojans và tương tự.
  • Các chính phủ và công ty bảo mật bị tấn công thường xuyên, mặc dù giờ đây họ nên tự bảo vệ mình. Điều này có nghĩa là cuộc sống vốn đã không an toàn, đối phó với nó.
+0

Quan điểm của bạn là giống như, hey ngay cả goverments bị hack như vậy tại sao tôi không nên? nghiêm túc điều này không có đối số. bạn không thể giả định rằng thiết bị không bị ngắt quãng, vv .. Nhưng như bạn đã nói KHÔNG có bảo mật thông qua sự tối tăm. – peko

+0

Tôi đã làm cho điểm đó chỉ để đưa mọi thứ vào quan điểm. Nó không có nghĩa là một cái cớ vì không quan tâm đến an ninh chút nào. Thay vào đó nó nên giải thích rằng, ngay cả với các biện pháp an ninh tinh vi nhất, bạn không bao giờ có thể chắc chắn 100% sản phẩm của bạn được an toàn. – Toastor

+3

Tất nhiên tôi không thể cho rằng thiết bị không bị bẻ khóa. Nhưng tôi có thể giả định rằng người dùng với thiết bị bẻ khóa đó biết họ đang làm gì khi anh ta đang bẻ khóa và anh ta có thể thỏa hiệp an ninh cho thiết bị của mình. Do đó, nếu do jailbreak người dùng mất dữ liệu cá nhân, quan trọng đối với kẻ tấn công, đó là trách nhiệm của chính họ. – Toastor

1

tôi gần đây đã được nghiên cứu trên này và tôi thấy bài viết này hữu ích, đặc biệt là phần trích dẫn:

Mã cho ứng dụng gốc được lưu trữ dưới dạng một tập tin thực thi nhị phân, mà là tiếp tục được mã hóa; giải mã của nó chỉ được thực hiện khi tệp thực thi được bộ xử lý nạp vào bộ nhớ truy cập ngẫu nhiên và toàn bộ quá trình giải mã xảy ra ở cấp phần cứng. Đó là lý do tại sao rất khó để tạo ra các công cụ giải mã ngoại tuyến. Cách duy nhất để giải mã dữ liệu nhị phân được mã hóa là trên một thiết bị đã được bẻ khóa với một vài công cụ đặc biệt được cài đặt.

Security in iOS: Protecting .ipa File Content by Stoyan Stoyanov

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