Trong lập trình iOS nói riêng và lập trình nói chung, bảo mật là một vấn đề rất quan trọng, đặc biệt là với những ứng dụng tài chính, mạng xã hội. Do đó các lập trình viên luôn phải đặt vấn đề này lên hàng đầu, bài viết dưới đây sẽ giới thiệu qua 5 phương pháp để tăng cường tính bảo mật cho ứng dụng của bạn.
1. Lưu các dữ liệu nhạy cảm ở một nơi an toàn
Như các bạn đã biết, trong hệ sinh thái của Apple, chúng ta có một thuật ngữ rất phổ biến đó là KeyChain. Đó là một công nghệ bảo mật rất mạnh của Apple, nó cho phép chúng ta lưu các dữ liệu cá nhân tối mật như mật khẩu, số điện thoại hay email vòa một vùng đặc biệt tối mật trong thiết bị của mình. Bản chất KeyChain là một hardware module ( từ các thiết bị sử dụng chip A7 trở lên) và nó được backup ở trên iCloud. Làm việc trực tiếp với KeyChain khá là phức tạp, do đó chúng ta sẽ cần có một thư viện là Locksmith. để giúp cho việc sử dụng KeyChain trở nên dễ dàng hơn.
Trong trường hợp bạn muốn mã hóa dữ liệu của mình, thì chúng ta có thể sử dụng Core Data hoặc đơn giản hơn là Realm.
2. Bao bọc lại tầng network layer
Từ iOS 9.0, chúng ta có App Transport Security (ATS) được kích hoạt mặc định, do vậy bạn phải sử dụng HTTPS thay vì HTTP thiếu bảo mật như trước. Tuy nhiên ATS vẫn có thể bị disable. Điều này sẽ không sao nếu như bạn đang trong quá trình phát triển và phía server không có SSL, nhưng ở trên App Store sẽ không bao giờ gọi các HTTP request và ATS vẫn cần phải kích hoạt.
Theo thống kê của NowSecure có 80% trong tổng số 201 ứng dụng miễn phí được download nhiểu nhất bỏ qua ATS, và tôi hy vọng con số này sẽ khả quan hơn trong năm nay.
Mặc dù HTTPS hiệu quả, nhưng nó không thể bảo vệ bạn khỏi phương thức tấn công Man in the Middle, nhưng SSL Pinning thì có. Nếu bạn có sử dụng Alamofire trong project của mình, thì sẽ rất dễ sử dụng kỹ thuật này. Điểm bất tiện duy nhất đó là app phải luôn được update mỗi khi key SSL của server thay đổi.
3. Sử dụng các secret key
Các secret key không nên được lưu trong repository, thay vòa đó bạn có thể sử dụng cocoapods-keys để xáo trộn chúng. Việc xáo trộn này bản chất không phải là thử thách lớn đối với hacker, nhưng ít nhất thì các dữ liệu raw secret của bạn sẽ không nằm trong Git history. Một cuộc khảo sát trên GitHub chỉ ra rằng có hơn 40 nghìn commit có nguy cơ làm lộ ra các API key. Một hành động tuy nhỏ, nhưng sẽ gây ra hậu quả khá nghiêm trọng và đáng cần phải lưu ý.
4. Cẩn thận với các thư viện bên thứ 3.Be careful with 3rd party integration
Việc này khá là khó, nhưng bạn cũng cần phải cảnh giác và chọn lọc tối đa các thư viện nếu cần phải sử dụng chúng. Cách đơn giản nhất mặc dù không đảm bảo 100% đó là update chúng tới phiên bản hoàn thiện và mới nhất. Tuyết đối không disable ATS cho các thư viện, kể cả khi có yêu cầu
5. Học hỏi và trau dồi kiến thức bảo mật
Công nghệ càng ngày càng phát triển, do đó việc học tập trau dồi kiến thưc là không hề thừa. Ở repository này bạn có thể tìm thấy các nguồn tài nguyên về bảo mật cần thiết cho lập trình iOS. Cũng như các khóa học ở Techmaster cũng cung cấp rất nhiều kiến thức về bảo mật.
Và trước khi kết thúc, tôi muốn chia sẻ hai kinh nghiệm nhỏ như sau:
Thứ nhất đó là chúng ta không nên print hoặc log ra các câu lệnh quan trọng, chúng được thiết kế với vai trò là debug, nhưng hacker có thể dễ dàng tìm thấy lỗ hổng từ những câu lệnh print đơn giản này. Tiếp theo đó là đừng bỏ quên tính năng static analysis report của XCode. Bạn có thể bật tính năng này bằng cách ấn tổ hợp phím ⇧⌘B. Công cụ này giúp hiển thị các lỗi logic, memory leak, các biến không sử dụng và bug khác.
Nguồn bài viết: https://medium.com/@elviocavalcante/5-steps-to-improve-your-terminal-appearance-on-mac-osx-f58b20058c84
Khóa học lập trình di động tại Techmaster:
Để cài đặt MacOSX lên phần cứng không phải Apple liên hệ chuyên gia cài Hackintosh:
- Nguyễn Minh Sơn: 01287065634
- Huỳnh Minh Sơn: 0936225565
- Website: caidatmacos.com
Bình luận