티스토리 뷰

OWASP


안녕하세요~ 오늘은 다시 본업으로 돌아와서 모바일 앱 보안에 대해서 써보려고해요.


왜 모바일앱을 공격할까?

앱을 통해 데이터에 접근 가능하기 때문입니다. 침입자들은 서비스의 정보를 탈취하기위해 여러가지 시도를 하는데 그중에 하나의 방법이라고 생각하면 됩니다. 침입자가 상대적으로 모바일앱이 서버보다는 쉽게 획득할 수 있어서 더 그런것 같아요.

현재의 많은 앱들은 원할한 인터페이스 제공과 사용자에게 최고의 기능을 경험하도록 하는 것에 중점을 두고 있습니다. 이러한 점이 취약점에 노출될 수 있는 경우를 만들기도 합니다.

모바일 앱 보안은 다른 분야와 같이 그 중요성이 점점 커지고 있습니다. 모바일 보안 침해는 해커에 의해서 사용자 사생활에 실시간으로 접근할 수 있을 뿐만아니라, 현재 위치, 은행 정보, 개인 정보 등과 같은 데이터도 공개 될 수 있어요.



설계 단계에서 보안 고려하기

많은 기업들이 개발 완료 후 출시전 품질점검에서 보안에 대한 테스트를 진행합니다. 이렇게되면 개발 프로덕트의 많은 변경이 필요하게 될 수 있습니다. 심하게는 엄청난 리스크를 안고 가거나 출시가 불가능 할 수 있습니다. 따라서 보안은 설계 단계부터 고려되어야 합니다.


반응형

 

개발 단계에서 보안 고려하기

공격자들이 정적/동적분석 자동화 툴을 활용하여 앱 서비스의 코드 취약점을 찾아냅니다. 이러한 이유 때문이더라도 자동화 툴을 이용하여 코드의 취약점을 파악하고 해결하는 것이 좋습니다.

개발 단계에서 디버깅용으로 사용하던 기능들이 사용자들에게 제공될 경우 문제가 될 수 있습니다. 공격자들이 이러한 플래그값을 알아내고 정보를 얻을 수 있는 다양한 시도를 할 수 있습니다. 또한 리버스 엔지니어링으로도 찾을 가능성 또한 있다고 생각하셔야 합니다.

그리고 코드 탬퍼링을 통해 플래그 설정이 가능하지 않더라도 내부 코드에 관련한게 있다면 강제 호출을 통해 기능을 악용하기도 합니다. 따라서 이러한 백도어가 사용자들에게 제공되지 않도록 출시전 꼭 확인해야 합니다.

서드파티 기술 도입하기

개발자가 진행하기 어려운 부분이라고 판단될 경우, 안정성이 확인되고 검증된 오픈소스 및 서드파티 보안 솔루션에 대한 고려가 필요합니다

흔히 사용되는 암호화 알고리즘 라이브러리는 공격자들에게도 널리 알려져있기 때문에 코드/바이너리 분석시 암호화 키 같은 주요 정보도 분석이 가능합니다. 개발자들이 안전하지 않은 알고리즘이나 파라미터를 사용하거나 암호화 키를 안전하게 다루지 않을 때 공격으로 이루어질 수 있습니다

코드 템퍼링의 경우 앱이 루팅된 상태에서 공격이 진행되기 때문에 루팅 탐지 기능 적용도 권장하고 있습니다. 이외에도 메모리/모듈 탐지, 함수 Hooking 탐지 기능을 추가하여 달성하고자 하는 보안 수준을 맞추시는걸 권장합니다.

리버스 엔지니어링은 공격자가 모바일 앱을 코드 수준으로 역변환하는 분석 기법으로 이를 방지하기 위해 코드 난독화 툴 적용을 권장하고 있습니다. 흔히 우리가 아는 프로가드는 제한된 기능만 제공하지만 활용 가능합니다

테스트 단계에서 고려할 내용

마지막으로 테스트 단계에서는 개발한 앱에 대해 침투 테스트까지 진행해야 실제 공격에 대비할 가능성이 높아집니다.


우선 이렇게 적어봤어요. 더 자세한 내용들은 다음에 더 자세히 설명 드릴게요! 감사합니다~


반응형