강력한 보안은 보안 마인드에서 시작하고 민감한 정보의 이용과 저장을 최소화하는 노력의 결과물이라는 것이 개인적인 보안에 대한 생각이다.
SmartFace의 10 Most Common Security Mistakes 포스트에서 소개된 모바일 앱 개발 시 간과하기 쉬운 보안에 대한 실수 10가지와 권고 사항을 위주로 발췌 해 보았다.
- 중요한 데이터는 저장하지 않는 구조로 설계하고 KeyChain & KeyStore에 암호가 저장되도록 함
- Numeric 데이터를 입력 시 특수문자를 허용하거나 Alphanumeric을 허용 함으로서 행킹코드가 들어오는 것을 프론트엔드 밸리데이션을 통해 방지
- 서버 기반의 컨트롤에만 의존하지 말아야 함. 앱 자체의 백 엔드를 보호하는데에도 신경을 써야함
- HTTPS는 항상 중요한 정보 송수신 때에는 사용되어야 하며, 디바이스에서 제공되는 범용인증서보다는 앱과 서버 간에 독자적으로 사용 가능한 custom certificate 활용
- Obfuscation(코드 난독화)을 거치도록 하며, 특히 안드로이드 필수
- 코멘트라인을 상용버전 업로드시 모두 삭제하기
- “꼭” 필요한 Permission 사용한다. 주소록은 해킹의 주목표 중에 하나라는 것을 간과하면 안 된다.
- 암호화는 암호를 푸는 키도 암호화하고 Runtime 중에 암호화 키를 다운로드 허용하지 않기
- 어플리케이션이 Rooted/Jailbroken 디바이스인지 체크하여 앱 아키텍쳐에 반영
- 어플리케이션 바이너리 파일이 해커로부터 보호 (cross-platform native frameworks 사용 DOM Payload)
SmarFace는 C++ 짜여진 Core와 자바스크리립트 엔지을기반으로한 듀얼 플랫폼 Native App을 개발 할 수 있는 플랫폼을 제공한다.

개발 프로젝트관리 관점에서 연상 해본다면, 알면서 간과하는 보안 문제로 야기되는 ‘시니컬한’ 프로젝트관리 요소 5개를 꼽는다면;
- 보안은 개발자가 몫으로 생각하는 무지한 현업 (또는 요청/의로인)
- 게으른 개발자 (보안에 대한 공부 또는 쉽게 코딩하려는 게으름)
- 프로젝트팀 내에 보안전문가의 부재 또는 리뷰 절차 부재
- 위 3가지 부분을 알면서도 프로젝트를 잘 끌고 가는 PM
- 그리고, 이를 승인해주는 Stakeholder.