Last Updated on 2월 12th, 2020, By
 In AppSealing News

기업의 많은 핵심 비즈니스가 언제 어디서나 사용할 수 있는 모바일 앱으로 이동했다는 것은 인터넷 트래픽의 4분의 3 이상이 모바일 디바이스에 설치된 앱을 통해서 발생되고 있다는 사실로 확인할 수 있습니다. 이러한 시나리오에서 앱은 일반적으로 사용자 정보를 저장하고 금융 거래를 수반하므로 개발자는 앱 보안 요구 사항을 최우선으로 고려 해야합니다. 종종 보안은 이러한 앱이 살아 남느냐? 망하느냐의 갈림길의 선택 요소가 되며, 사이버 공격으로 인한 위협으로부터 안전한 앱을 가려 내기 위한 필수적인 요소가 됩니다.

 

좋은 소식은 앱을 만드는 과정에서 대부분의 보안 기능을 개발자가 관리 할 수 ​​있다는 것입니다. 개발자는 앱 보안 생태계에서 모범 실천 사례를 인지하여 제품에 문제가 없도록 해야합니다. 다음은 모바일 앱이 보안 취약점을 차단하고 고객의 신뢰를 계속 유지할 수 있도록 개발자가 통합할 수 있는 상위 10 가지 실천 사례 목록입니다.

 

  1. 시큐어 코딩

시큐어 코딩은 보안 위협에 대한 최우선적이며 가장 빈번한 방어책입니다. 이 방법을 적극적으로 채택하면 공개적으로 사용 가능한 코드 기반의 리버스 엔지니어링 공격을 방어할 수 있습니다. 시큐어 코딩의 실천은 리버스 엔지니어링을 방지하기 위한 바이너리 보호를 수반합니다. 이 실천은 결과적으로 사기 행위를 방지하고 수익 손실을 막는데 도움이 됩니다.

 

  1. 종단간 데이터의 암호화

대부분의 사용자 데이터는 서버에 저장되므로 개발자는 모든 데이터베이스 테이블을 암호화하고 필수 인증 키없이 읽을 수 없도록 해야합니다. 사용자가 호스트 서버를 제어 할 수 없으므로 호스트 서버에 보관되는 데이터의 보안이 개발자의 주된 책임임을 명심 해야합니다. 개발자는 악의적인 공격자가 어떠한 조건에서도 호스팅된 데이터에 액세스하지 못하도록 해야합니다.

 

  1. 보안성 검토 후 3rd party 라이브러리 및 확장 프로그램 사용하기

보안 전문가는 해커가 취약점을 이용하여 공격이 가능한 3rd party 라이브러리 및 확장 프로그램를 찾을 수 있습니다. 개발자는 종종 3rd party 라이브러리나 확장 프로그램을 상세한 보안 검토 없이 사용하곤 합니다. 이러한 라이브러리는 악성코드를 삽입할 수 있는 벡터 역할을 할 수 있으므로 앱 무결성을 해치게 됩니다.

 

  1. 보안적으로 안전한 API

잘못 설계된 API는 다른 노드, 데이터베이스 및 모바일 앱간에 발생하는 데이터 푸시를 통해 악의적인 활동을 수행할 수 있도록 돕는 게이트웨이 역할을 하게됩니다. 개발자는 모든 종류의 인젝션을 방어하도록 API를 작성해야하며, OAuth와 같은 적절한 인증 메커니즘을 사용하여 리소스를 보호해야 합니다.

 

  1. 매크로 수준에서의 조작 감지 메커니즘

동적이고, 상시적으로 감시하는 보안 계층이 앱에 준비되어야만, 어떠한 악의적 접근이라도 추적하여 앱의 무결성을 보장할 수 있습니다. 이 과정을 통해 허가받지 않은 접근을 방어하게 됩니다.

 

  1. 안전한 세션 관리

모바일 장치의 사용자 세션은 쿠키를 통해 데스크톱보다 오래 지속되기 때문에 사용자 편의를 고려하여 세션을 적절하게 처리하는 것이 까다로워집니다. 개발자의 도전 과제는 사용자 환경이 손상되지 않은 상태에서 사용자 데이터와 코드가 보호되는지 확인하는 것입니다. 이를 위한 해결책은 예측 가능한 세션이 없다는 것을 이용하는 것입니다. 개발자는 세션 정보가 계속 변경되도록 앱을 구성 해야합니다.

 

  1. 진보된 암호화 사용

개발자는 SHA-256 해시를 사용한 AES 암호화 알고리즘과 같은 가장 진보된 암호화 표준을 사용하여 모든 키가 보호되고 있음을 보장해야 합니다. 또한 이러한 키 값이 애플리케이션 자체에 하드 코딩되지 않도록 해야 합니다. 키와 인증서는 동시에 액세스하여 알고리즘을 무효화할 수 있으므로 각각 보안을 유지하도록 해야 합니다.

 

  1. 강력한 전송 단계 보호

클라이언트와 서버간의 데이터 교환에 있어 SSL(Secure Socket Layer)을 사용하는 것이 복잡한 보안의  문제를 해결할 수 있는 방법으로 여겨집니다. 하지만 SSL외에도 훨씬 더 많은 데이터 전송 보안이 있습니다. 서버와의 통신이 이루어지기 전에 타사에서 발급한 SSL의 적절한 인증 절차를 수행하고, 적절한 길이의 안전한 키를 사용해야 합니다.

 

  1. 엄격한 테스트

개발자는 종종 “Time to Market” 목표를 충족시키기 위해 코드 기반 및 종속성을 안전하지 않게 만드는 불충분한 테스트 전략을 채택하여 앱을 공격에 노출되게 만듭니다. OWASP 표준은 보안 표준에 대한 앱의 엄격하고 최신 준수를 보장하는 가이드 역할을 합니다. 지속적인 침투 테스트를 통해서 발견된 취약점은 즉시 패치해야 합니다. 따라서 개발자는 빌드가 릴리즈되기 전까지 화이트 해커 역할을 수행해야 합니다.

 

  1. 안전하지 않은 데이터 저장소

사용자 디바이스의 스토리지 환경이 보안 침해에 영향을 받을 수 있기 때문에 사용자의 디바이스에 중요한 정보를 저장하는 것은 바람직하지 않습니다. 더 중요한 점은 사용자 디바이스의 스토리지에 저장된 데이터의 취약점입니다. 사용자는 디바이스의 “새는” 동작을 인지하기 어려우며, 결국 앱에 대한 신뢰도를 약화시킬 수 있습니다. 이러한 문제를 대응하는 해답은 서버의 보안된 환경에 모든 중요한 데이터를 저장하는 것입니다.

 

요컨대, 모바일 앱의 보안 측면은 비즈니스 목표를 달성하는 데 중요한 역할을 하지만 유지 보수성, 성능 및 최상의 사용자 경험에 대한 요구 사항과 정교하게 조화를 이루어야 합니다.

 

Dustin Hong
Dustin Hong
Dustin은 잉카엔트웍스의 앱실링 비즈니스 개발을 이끌고 있습니다. 그는 사이버 보안, IT, 컨텐츠 및 애플리케이션 보안 분야의 소프트웨어 개발과 혁신에 많은 관심을 가지고 있습니다. 또한 사이버 보안 세계에서 주요 사건의 대상, 이유 및 방법에 대해 다양한 사람들에게 공유하고 토론하는 것을 좋아합니다. 업계 동향 및 모범 사례에 대한 그의 견해는 기사, 백서에 실려있으며, 여러 보안 행사에서 유사 주제로 발표를 하였습니다.

Leave a Comment