[세미나] [장치 뒤에 방어 : 모바일 응용 프로그램 보안] [크리스 Wysopal] [하버드 대학] [이 CS50입니다.] [CS50.TV] 안녕하세요. 내 이름은 크리스 Wysopal입니다. 나는 CTO 및 베라 코드의 공동 설립자 해요. 베라 코드는 응용 프로그램 보안 회사입니다. 우리는 다른 모든 종류의 응용 프로그램을 테스트 무엇 오늘 제가 이야기 할 것은 모바일 응용 프로그램 보안입니다. 내 배경 난 보안 연구를 해왔된다 아주 긴 시간 동안, 아마 한 사람의 약. 나는 90 년대 중반에 시작, 그리고 그것은 꽤 재미 있었다 시간 때문에 우리는 90 년대 중반의 패러다임 변화가 있었다. 갑자기 모든 사람의 컴퓨터는 모두 인터넷에 매여되었다, 그리고, 우리는 웹 응용 프로그램의 시작했다, 그리고 그게 내가보다 훨씬에 초점을 맞춘거야. 그것은 재미있다. 이제 우리는, 컴퓨팅에서 일어나는 또 다른 패러다임의 변화가 하는 모바일 애플리케이션으로의 전환이다. 나는 그 다음은 90 년대 후반에 있었던 비슷한 시간 종류의 느낌 우리는 웹 응용 프로그램을 조사하고 같은 결함을 발견했을 때 세션 관리 오류 및 SQL 인젝션 이는 정말 전에 존재하지 않았고, 갑자기 그들은 도처에 있었다 웹 응용 프로그램에서, 지금은 보내는 시간이 많은 모바일 응용 프로그램에서 찾고 야생에서 거기에 무슨 일이 일어나고 있는지를 찾고 있습니다. 모바일 응용 프로그램은 정말 지배적 인 컴퓨팅 플랫폼으로 가고있다, 그래서 우리는 정말 보안 업계에 있다면 많은 시간을 소비 할 필요가 웹 응용 프로그램에 초점을 맞추고. 2011 년 다운로드 290 억 모바일 애플 리케이션이 있었다. 그것은 2014 년까지 760 억 애플 리케이션이 될 것으로 예상거야. 올해 구입가는 686,000,000 장치가있다, 사람들이 일을 할가는 곳이야  자신의 클라이언트 컴퓨팅의 대부분은 앞으로. 나는 피델리티 투자에서 부사장으로 얘기했다 몇 달 전, 그는 그들은 단지 더 많은 트래픽을보고했다 고객 기반에서 금융 거래를하고 그들의 웹 사이트에보다 자신의 모바일 응용 프로그램에, 그래서 과거에 웹에 대한 일반적인 사용하고있다 , 당신의 주식 시세를 확인하는 포트폴리오를 관리 우리는 사실을 통해 2012 스위치에 그보고있다 모바일 플랫폼에 대한 자세한 지배한다. 어떤 범죄 행위가있을거야 물론 경우, 악의적 인 활동이기 때문에 모바일 플랫폼에 초점을 시작하는거야 사람들은로 전환 시간이 지남에로. 당신은 모바일 플랫폼을 보면, 그것은 다른 레이어로 분해하는 것이 유용 플랫폼의 위험에보고하면, 당신은 데스크톱 컴퓨터에서 할 것처럼, 당신은 다른 레이어, 소프트웨어, 운영 체제, 생각 네트워크 계층, 하드웨어 계층, 물론 모든 사람들 레이어에 취약점이있다. 같은 일이 모바일에 발생합니다. 그러나 모바일, 그것은 그 층의 일부가 떨어져 더 나쁜 것 같다. 하나의 경우, 네트워크 층은 모바일에 더욱 문제이다 많은 사람들이 자신의 사무실에서 또는 집에​​서 가지고 있기 때문에 유선 연결하거나 보안 무선 인터넷 연결이, 모바일 기기의 많은 당신은 가정의 외부에 분명히있어 또는 많은 사무실 외부, 당신은 Wi-Fi 인터넷을 사용하는 경우가 당신은 안전하지 않은 Wi-Fi 연결을 사용하고있을 수 있습니다, 공용 Wi-Fi 연결 뭔가, 우리는 모바일 애플 리케이션을 생각하면 우리가 고려해야 할 네트워크 환경은 이러한 응용 프로그램에 대한 더 위험한 것이 Wi-Fi를 사용중인 경우. 그리고 모바일 응용 프로그램의 위험에 더 들어갈 때 즉, 더 중요한 이유를 확인할 수 있습니다. 모바일 기기의 하드웨어 수준의 위험이 있습니다. 이것은 지속적인 연구의 영역입니다. 사람들은 이러한 광대역 공격 또는베이스 밴드 공격 호출 당신은 라디오를 듣고있어 펌웨어를 공격하는 곳. >>이 정말 무서운 공격 때문에 사용자가 작업을 수행 할 필요가 없습니다. 당신은 RF 범위 내에서 장치를 많이 칠 수 한 번, 그리고이 연구가 거품 때마다 것 같아 신속 곳으로 분류됩니다 사람들이 주위에 급습 말, "여기, 그것에 대해 우리에게, 그리고 그것에 대해 얘기를 중지하십시오." 광대역 영역에서 일어나는 몇 가지 조사가있다, 그러나 아주 자장 자장 것으로 보인다. 나는 그것이 일어나고 연구의 민족 국가의 유형의 더 많은 것 같아요. 활발한 연구의 영역은, 비록, 운영체제 층, 다시, 이것은 데스크톱 컴퓨팅 세계 다르다 모바일 공간에서 당신은 탈옥이라는 사람들이 팀을 가지고 있기 때문에 그리고 탈옥 일반 취약점 연구원 다릅니다. 이들은 운영 체제의 취약점을 찾기 위해 노력하고 그러나이 취약점을 찾기 위해 노력하고있는 이유는 아니다 누군가 다른 사람의 컴퓨터에 침입을 손상. 그것은 자신의 컴퓨터에 침입 할 수 있습니다. 그들은 자신의 모바일에 침입 할 자신의 모바일 운영 체제를 수정 그들은 자신이 선택한 응용 프로그램을 실행할 수 있도록 및 전체 관리 권한이있는 물건을 변경, 그들은 이것에 대해 공급 업체를 말하고 싶어하지 않는다. 그들은 흰색 모자 보안 연구원 보안 연구원 달라요 신뢰할 수있는 정보 공개를하고 그것에 대해 공급 업체를 말하려고하는. 그들은이 연구를 수행 할, 그들은 실제로 그것을 게시 할 에 악용하거나 루트킷이나 탈옥 코드, 그들은 직후처럼 전략적으로 수행 할 공급 업체 배송 새로운 운영 체제. 이 적대 관계를 모바일에 OS 레벨의 취약점과 함께, 꽤 재미있다 생각하고, 한 곳에서 우리는 그것을 볼 수있는 좋은 악용 게시 된 코드가 거기에있다 그래서 그것이하게된다 커널 레벨의 취약성에 대하여 우리는 실제로 악성 코드 작가에 의해 사용되는 사람들을 본 적이있다. 그것은 PC의 세계보다 조금 다릅니다. 그리고, 최종 층은 상부 층, 응용 층이다. 즉, 오늘 제가 이야기 할거야. >>, 다른 층이 존재하고, 다른 층은 그것으로 재생할 하지만 대부분의 응용 프로그램 계층에서 무슨 일이 일어나고 있는지에 대해 얘기하는거야 코드는 샌드 박스에서 실행되는 경우. 그것은 관리자 권한을 가지고 있지 않습니다. 그것은 장치의 API를 사용할 수 있으며 하지만 여전히 악의적 인 활동을 많이하고 많은 위험은 계층에서 일어날 수있는 즉, 모든 정보는 레이어 때문에. 애플리케이션은 디바이스의 모든 정보에 액세스 할 그들은 올바른 사용 권한이있는 경우, 그들은 장치의 다른 센서를 액세스 할 GPS 센서, 마이크, 카메라, 당신이 무엇을. 우리는 응용 프로그램 계층에 대해 얘기하더라도 우리가 위험을 많이 가지고 있어요. 모바일 환경에 대해 서로 다른의 다른 것은 모든 운영 체제 플레이어는 그것을 할 수 있습니다 블랙 베리 나 안드로이드 또는 아이폰 OS 나 윈도우 모바일, 그들 모두는, 세분화 된 권한 모델을 이것은 그들이 운영체제에 내장 된 방법 중 하나이다 당신이 생각하는 것만 큼 위험이 아니라고 생각. 당신이 거기에있는 모든 연락처를 가지고에도 불구하고, 당신의 개인 정보, 당신은 당신의 사진을 가지고, 당신은 거기에 당신의 위치를 당신이 거기에 자동 로그인에 대한 은행의 핀을 저장하고, 그것은 안전 때문에 응용 프로그램은 특정 부분에서 얻을 특정 권한이 있어야 단말기 정보, 및 사용자에 제시 할 수있다 이러한 권한은 알았지 말한다. 그것으로 문제는 항상 사용자입니다 괜찮 말했다. 보안 사람으로서, 나는 당신이 메시지를 사용자에게 표시 할 수 있습니다 알고, 정말 나쁜 일이 일어날 것 같다라고, 당신은 어떻게 하시겠습니까? 그리고 그들은 서두에있어 또는 그 반대편에 정말 유혹 무언가가있는 경우에, 같은 게임, 그들은 기다려 왔던 것을 설치 될 것입니다 그들은 괜찮 클릭 것입니다. 난 그냥 내가 이미 돼지에서 조류를 실컷하게 여기 내 슬라이드에 말을하는거야, 당신은 블랙 베리 권한 상자의 예 거기에 여기에 슬라이드를 볼 수 있습니다. 그것은 "블랙 베리 여행 응용 프로그램 사용 권한을 설정하십시오 말한다 아래 버튼을 클릭 "기본적으로 사용자가 말하려고하는 후 권한을 설정하고 저장합니다. 여기 물건을 보여줍니다 안드로이드 프롬프트이다, 그리고 실제로 거의 경고처럼 보이는 뭔가를 넣습니다. 그것은,이 항복 서명 말하는 네트워크 통신, 전화의 종류를 가지고있다 하지만, 사용자 권한, 설치를 클릭까요? 그리고 애플의 하나는 완전히 무해. 이 경고의 모든 종류를 제공하지 않습니다. 그것은 애플이 현재 위치를 사용하고자하는 단지. 물론 괜찮 클릭 것입니다. >>이 세분화 된 권한 모델은 있습니다 및 응용 프로그램은 선언 매니페스트 파일이 있어야 사용 권한은 필요하고, 그 사용자에게 표시 얻을 것이다 사용자는 I가 이러한 권한을 부여 할 말을해야합니다. 하지만 솔직 해 집시다. 사용자는 단지 항상 좋아라고 할 것입니다. 의 이러한 애플 리케이션을 요청하는 권한을 간단히 살펴 보자 거기있는 권한의 일부. 이 회사는 근위병은 작년에 설문 조사를 한 안드로이드 시장과 제 3 자 시장 분석 53,000 응용 프로그램, 그래서 이것은 모든 안드로이드입니다. 그리고 평균 응용 프로그램은 3 권한을 요청했다. 일부 프로그램은 117 권한을 요청, 그래서 분명히 이러한 이해하는 사용자에 대한 세분화하고 너무 복잡 아주 좋아합니다 그들은이 117 권한이 필요합니다이 응용 프로그램과 함께 제공하는 경우. 그것은 45 페이지 분량의 최종 사용자 사용권 계약 같다. 아마 곧 그들은처럼 옵션이 제공됩니다 권한을 인쇄하고 나에게 이메일을 보내. >>하지만 당신은 최고 흥미로운 권한의 일부를 보면 그들은 53,000 중 다운로드 한 애플 리케이션의 24 % 장치에서 요청 된 GPS 정보를 표시합니다. 8 %는 연락처를 참조하십시오. 4 %는 SMS를 전송하고, 3 %는 SMS를 받았다. 2 %는 오디오를 기록했다. 1 %는 발신 전화를 처리. 모르겠어요. 나는 앱 스토어에서 애플 리케이션의 4 %는 정말 SMS 문자 메시지를 보낼 필요가 있다고 생각하지 않습니다 그래서 그 운이 나쁜 일이 벌어지고 있음을 암시 생각합니다. 애플 리케이션의 8 %가 연락처 목록을 읽어해야합니다. 아마 필요는 없습니다. 권한에 대한 다른 흥미로운 것들 중 하나는 당신은 당신의 응용 프로그램에 공유 라이브러리에 연결하는 경우 이러한 응용 프로그램의 사용 권한을 상속, 그래서 당신의 앱은 연락처 목록을 필요로하거나 작동하는 GPS 위치를 필요로하는 경우 당신은 예를 들어, 광고 라이브러리에 링크, 해당 광고 라이브러리는 또한 연락처에 액세스 할 수있을 것이다 또한 GPS 위치를 액세스 할 수, 및 응용 프로그램의 개발자는 광고 라이브러리에서 실행중인 코드에 대해 아무것도 모른다. 그들의 응용 프로그램을 통해 수익을 창출 원하기 때문에 그들은 단지 그것을에 연결하고 있습니다. >>이 곳에와있다 내가 가진이의 몇 가지 예에 대해 이야기 할 것입니다 판도라라는 응용 프로그램 위치를 응용 프로그램 개발자 무의식적으로 정보를 누출 될 수 있습니다 자신의 사용자로부터 때문에 그들이 안으로 연결 한 라이브러리 모든 다른 응용 프로그램에서 찾고, 거기 풍경을 조사 악의적이거나하는 것을 사용자가 원하지 않았다과 뉴스에서보고 된 그 다음의 많은 검사 응용 프로그램을 - 우리는 모바일 애플 리케이션에 정적 바이너리 분석을 많이 할 그래서 우리는 그들을 검사하고 코드를 검토 한 결과 그 자체 우리는 우리가 응용 프로그램에서 위험한 행동의 우리의 상위 10 개 목록 부르는 내놓았다. 그리고 그것은, 2 절, 악성 코드로 분류 있어요 그래서 이러한 응용 프로그램은 일을 할 수 있다는 나쁜 일이됩니다 악의적 인 개인의 것이 될 가능성이있다 특히 응용 프로그램에 넣어,하지만 약간 퍼지의했다. 그것은 개발자가 괜찮 생각하는 것이 될 수있다 그러나 사용자가 악성으로 간주 될 수있을 테니까요. 그리고 두 번째 섹션에서는 취약점을 코딩 부르는 것이다, 이들은 개발자가 기본적으로 실수를하고있다 것들 아니면 그냥 안전하게 응용 프로그램을 작성하는 방법을 이해하지 않습니다,  그리고 그 위험에 응용 프로그램 사용자를 태우고있다. I에서는 이러한 통과하고 몇 가지 예를 제공하겠습니다. 참고로, 필자는 OWASP 모바일 상위 10 개 목록을 넣어했습니다. 이들은 10 문제입니다 그 OWASP에서 그룹, 오픈 웹 애플리케이션 보안 프로젝트, 그들은 작업 그룹이 모바일 상위 10 개 목록에서 작업합니다. 그들은 10 대입니다 매우 유명한 웹 상위 10 개 목록을 가지고 위험한 물건은 당신이 웹 응용 프로그램에서 사용할 수 있습니다. 그들은 모바일 같은 일을하고있어, 그들의 목록은 우리보다 조금 다릅니다. 10 명 중 6은 동일합니다. 그들은 다른 4가있다. 나는 그들이에 다른 테이크 조금 있다고 생각 모바일 애플 리케이션의 위험이 곳에 자신의 문제를 많이 실제로 애플리케이션은 백 - 엔드 서버로 통신하는 방법 또는 무엇을 백 엔드 서버에서 일어나고, 그냥 간단한 클라이언트 응용 프로그램입니다 위험한 행동이 순전히 애플 리케이션. 여기에 빨간색의 사람은이 목록의 차이입니다. 그리고 내 연구 팀 중 일부는 실제로이 프로젝트에 기여하고있다, 그래서 우리는 시간이 지남에 따라 어떻게 볼 수 있습니다,하지만 난 여기에 테이크 아웃이 생각 우리가 정말 상위 10 목록에 모바일 애플 리케이션에 무엇을 알 수 없기 때문에 그들은 정말 만, 지금은 2 ~ 3 년 동안 다닌 정말 운영 체제를 연구 할 수있는 충분한 시간이되지 않았습니다 그리고 그들이 할 수이고, 충분히 시간이되지 않았습니다 당신이 경우 악의적 인 지역 사회를 위해, 충분한 시간을 할애했습니다 모바일 애플리케이션을 통해 사용자를 공격하기 위해 노력하고, 그래서 나는이 목록이 약간 변경 될 전망이다. 하지만 지금은 이러한 걱정하는 10 가지입니다. 당신은 이동 측에 궁금 할 위치를 수행하는 악성 모바일 코드 어떻게 장치에 얻습니까? 노스 캐롤라이나 주에서는 모바일 악성 코드 게놈 프로젝트라는 프로젝트가 여기서 그들은 그들이 할 수있는만큼 모바일 악성 코드를 수집하고 분석하는 그들은, 모바일 악성 코드가 사용하는 주사 벡터를 세분화했습니다 및 86 %, 패키징이라는 기술을 사용 이 안드로이드 플랫폼에서 만입니다 당신은 정말이 재 포장을 할 수 있습니다. 이유는 안드로이드 코드에 내장되어있다 쉽게 디 컴파일입니다 달빅이라는 자바 바이트 코드입니다. 어떤 나쁜 사람이 할 수있는 것은 안드로이드 응용 프로그램을 가지고, 그것을 디 컴파일, 악성 코드를 삽입, 재 컴파일, 다음 해당 응용 프로그램의 새 버전으로 purporting 앱 스토어에 올려, 또는 어쩌면 단지 응용 프로그램의 이름을 변경. 이 게임의 일종 인 경우, 약간의 이름을 변경 그래서이 재 포장 모바일 악성 코드의 86 %가 분산되는 방식이다. 또 다른 기술이라는 업데이트가있다 재 포장과 매우​​ 유사하지만, 실제로 안으로 악성 코드를 넣지 않는다 당신이 할 일은 당신이 작은 업데이트 메커니즘에 넣어입니다. 당신은 디 컴파일, 당신이 업데이트 메커니즘에 넣어, 당신이 그것을 다시 컴파일, 다음 응용 프로그램은 장치에 악성 코드를 아래로 끌어 실행되는 경우. 지금까지 대부분의 사람들이 기술이다. 휴대폰에 정말 많은 다운로드 총격 사건에 또는 드라이브 바이 다운로드는 없습니다 피싱 공격과 같이 될 수있다. 이봐, 정말 멋진 웹 사이트를 확인 또는 당신은이 웹 사이트에 가서이 양식을 작성해야합니다 무언가를 계속 유지합니다. 사람들은 피싱 공격합니다. 같은 일이 모바일 플랫폼에서 일어날 수있는 그들 다운로드 말을 모바일 응용 프로그램을 가리 킵니다 "안녕하세요, 미국의 은행입니다." "우리는이 응용 프로그램을 사용하는 참조하십시오." "당신이 다른 응용 프로그램을 다운로드해야합니다." 이론적으로, 즉 일할 수 있습니다. 어쩌면 그것은 단지, 그것은 성공의 여부를 판정하는데 충분한 사용하지 않는 그러나 그들은 시간이 기법의 1 % 미만이 사용되는 것을 발견했다. 시간의 대부분은 정말 재 포장 코드입니다. 다른 범주라는 독립이있다 사람은 아주 새로운 응용 프로그램을 빌드 곳. 그들은 무언가로 purports 응용 프로그램을 구축 할 수 있습니다. 그것은 뭔가 다른 재 포장이 아니다, 그것은 악성 코드가 있습니다. 즉 시간의 14 %를 사용됩니다. 지금은 악성 코드가 무엇을하고 얘기하고 싶지? 거기에 첫 번째 악성 코드 중 하나 당신은 스파이웨어를 고려할 수 있습니다. 그것은 기본적으로 사용자를 스파이. 또한 이메일, SMS 메시지를 수집한다. 그것은 마이크 켜집니다. 그것은 접촉 책을 수확, 그것은 다른 사람에게를 보냅니다. 스파이 이러한 유형의 PC에 존재 사람들이 모바일 장치에서이 작업을 수행하려고하는 그래서 완벽한 의미가 있습니다. >>이의 첫 번째 예 중 하나는 비밀 SMS 리플리케이터라는 프로그램이었다. 그것은 몇 년 전에 안드로이드 마켓 플레이스에 있었다 당신이 누군가의 안드로이드 전화에 대한 액세스를했다 경우 생각했다 당신은 스파이 싶었다, 그래서 어쩌면 당신의 배우자의 것을 또는 다른 중요하고 당신이 그들의 문자 메시지를 염탐 할, 당신은이 응용 프로그램을 다운로드하여 설치하고 구성 할 수 있습니다 사본을 당신에게 SMS 문자 메시지를 보내려면 모든 SMS 문자 메시지의 그들은 얻었다. 이것은 분명히, 서비스의 앱 스토어 이용 약관 위반에 이, 그것은이되고 18 시간 이내에 안드로이드 마켓 플레이스에서 제거 그래서 사람들의 극소수이 때문에 위험이 있었다. 이제, 내가 생각하는 프로그램은 어떤 것이 어쩌면 좀 덜 자극적 호출 된 경우 시크릿 SMS 리플리케이터와 같은 아마 훨씬 더 일 것이다. 그러나 종류의 분명했습니다. 우리가 애플 리케이션을 우리가 원하지 않는이 문제가 있는지 확인하기 위해 할 수있는 것들 중 하나 코드를 검사하는 것입니다. 이것은 실제로 우리가 응용 프로그램을 컴파일 할 수 있기 때문에 안드로이드 할 정말 쉽습니다. 아이폰 OS에서 당신은 IDA 프로 같은 디스어셈블러를 사용할 수 있습니다 응용 프로그램이 호출되고 무엇을하는지 API들 것을 볼 수 있습니다. 우리는 우리의 코드에 대한 우리 자신의 바이너리 정적 분석기를 썼다 우리는이 작업을 수행하고, 그래서 당신이 할 수있는 것은 당신이 말할 수 있습니다 장치는 기본적으로 날 감시 또는 저를 추적 무엇을합니까? 그리고 여기에 아이폰에 몇 가지 예제가 있습니다. 첫 번째 예는 휴대 전화에 UUID에 액세스하는 방법입니다. 이것은 실제로 애플은 단지 새로운 응용 프로그램에 대한 금지 무언가이다, 하지만 당신은 귀하의 휴대 전화에서 실행되는 수도 이전 응용 프로그램은 여전히​​이 작업을 수행 할 수 있습니다, 그래서 그 고유 ID를 추적하는 데 사용할 수 있습니다 많은 다른 응용 프로그램에서. 안드로이드에, 나는 여기에서 장치의 위치를​​ 얻기의 예를 들어 있습니다. 당신은, 그 API 호출이있는 경우 해당 응용 프로그램이 추적하고있는 것을 볼 수 있습니다 그리고 당신은 좋은 위치 또는 광범위한 위치를 점점 여부를 확인할 수 있습니다. 그리고 여기에 바닥에, 나는 블랙 베리에 대한 방법의 예를 응용 프로그램은받은 편지함에서 이메일 메시지에 액세스 할 수 있습니다. 이들은 당신이보고 검사 할 수 있습니다 물건의 종류입니다 응용 프로그램은 그 일을하는 경우. 두 번째 큰 악의적 인 행동의 범주 및이 지금 아마 가장 큰 종류이다, 이다 권한이없는 전화 걸기, 무단 프리미엄 SMS 문자 메시지 또는 허가되지 않은 지급. 휴대 전화에 대한 고유의 또 다른 것은 장치는 청구 계정에 매여있다, 활동은 휴대 전화에 일어날 때 그것은 비용을 만들 수 있습니다. 당신은 전화를 통해 물건을 구입하실 수 있습니다, 당신은 프리미엄 SMS 문자 메시지를 보낼 때 당신은 실제로 돈을주는거야 다른 쪽의 전화 번호의 예금주. 이러한 주식 시세를 얻을 또는 일일 별자리 또는 다른 것을 얻기 위하여 설치되었다, 하지만 그들은 SMS 문자를 전송하여 제품을 주문하도록 설정할 수 있습니다. 사람들은 문자 메시지를 전송하여 적십자에 돈을 제공합니다. 당신은 $ 10 그 방법을 제공 할 수 있습니다. 그들이 무슨 짓을했는지 공격자는 그들이 설정 외국에서 계정, 그들은 악성 코드에 포함 전화는 프리미엄 SMS 문자 메시지를 보낼 것입니다, 몇 번 하루, 당신이 썼다는 실현 월말에, 말 수십 또는 어쩌면 달러의 수백, 그들은 돈으로 도보 거리. 이것은이가 첫 번째 일이었다 너무 안좋아하는 안드로이드 마켓 플레이스 또는 구글 장소 - 그 당시 안드로이드 마켓 플레이스이었다 그것은 구글이 재생 - 구글에 대한 검사를 시작하는 것이 첫 번째 일을 지금의. 구글은 앱 스토어에서 안드로이드 앱을 배포하기 시작했을 때 그들은 아무것도 확인하지 않을 있다고 말했다. 우리는 그들이 서비스 약관을 깼다 통지를 받았습니다 일단 우리는 애플 리케이션을 꺼낼거야, 그러나 우리는 아무것도 확인하지 않을거야. 음, 약 일 년 전에 그것은이 프리미엄 SMS 문자 메시지 악성 코드에 너무 안좋아 이것은 그들이 검사 시작 첫 번째 일이라고. 응용 프로그램은 SMS 문자 메시지를 보낼 수있는 경우 그들은 더 이상 수동으로 응용 프로그램을 자세히 조사. 그들은이를 호출하는 API를 찾아, 지금 그 이후 구글은 확장했다, 하지만 그들은 찾기 시작 첫 번째 일이었다. 일부 SMS 문자 메시지를 한 일부 다른 응용 프로그램, 이 안드로이드 Qicsomos, 나는 그것이라고 생각한다. 이 CarrierIQ 나온이 모바일에이 현재의 이벤트가 발생했습니다 스파이웨어,은 사업자가 장치에 넣어 그래서 사람들은 자신의 휴대 전화는이에 취약 있는지 알고 싶어요 이것은 그 시험 무료 앱이었다. 음, 물론, 어떤이 응용 프로그램은 한 것은, 그것은 프리미엄 SMS 문자 메시지를 보냈습니다 그래서 당신이 스파이웨어에 감염하고 있는지 확인하기 위해 테스트하여 당신은 당신의 장치에 악성 코드를로드. 우리는 같은 일이 마지막으로 슈퍼 볼에서 발생했다. 매든 축구 게임의 가짜 버전이 있었다 해당 프리미엄 SMS 문자 메시지를 보냈습니다. 실제로 장치에 너무 봇 네트워크를 만들려고. 여기에 몇 가지 예제가 있습니다. 흥미롭게도, 애플은 꽤 똑똑 그들은 응용 프로그램이 모두에서 SMS 문자 메시지를 보낼 수 없습니다. 어떤 응용 프로그램은 그것을 할 수 없습니다. 즉, 취약점의 전체 클래스를 치우는의 좋은 방법입니다, 하지만 안드로이드에 당신은 그것을 할 수 있습니다, 물론, 블랙 베리에 당신도 할 수 있습니다. 그것은 블랙 베리에 당신이 필요로하는 모든 인터넷 권한입니다 흥미로운 SMS 문자 메시지를 전송한다. 우리가 보면 정말 다른 것은 우리가 뭔가 악성 있는지 찾을 때 그냥 어떤 종류의 것입니다 무단 네트워크 활동은 같은 네트워크 활동보고 응용 프로그램은 그 기능을 할 예정이다, 이 다른 네트워크 활동을 확인합니다. 아마 일할 수있는 응용 프로그램은 HTTP를 통해 데이터를 얻을 수있다, 하지만 이메일이나 SMS 또는 블루투스 또는 그런 일에 일을하는 경우에 이제 응용 프로그램은 잠재적으로 악의적 일 수 있었다, 그래서 이것은 당신이 검사 할 수있는 다른 것입니다. 그리고 여기에이 슬라이드에 그 몇 가지 예제가 있습니다. 우리가 악성 코드에 본 또 다른 흥미로운 점은 2009 년에 무슨 일이 있었 그것은 큰 방법으로 일어났다. 그것은 그 이후로 너무 많은 일이 있었는지 나도 몰라,하지만 앱했다 즉, 다른 응용 프로그램을 가장 한. ,이 애플 리케이션의 집합이고, 그것은 09Droid 공격 명명되었습니다 누군가는 작은 지역, 중소 은행이 많이 있다고 결정 온라인 뱅킹 응용 프로그램을 가지고 있지 않았다, 그래서 그들이 한 것은 그들이 50 온라인 뱅킹 응용 프로그램을 구축했다 그들이 한 모든 사용자 이름과 암호를 취할 것을 그리고 웹 사이트로 리디렉션합니다. 그래서 그들은 구글 마켓 플레이스에이 모두를 넣어, 안드로이드 마켓 플레이스에서, 누군가가 검색 할 때 볼 수있는 경우 자신의 은행 그들은 가짜 응용 프로그램을 찾을 것입니다 응용 프로그램을했다 자신의 자격 증명을 수집하고 자신의 웹 사이트로 리디렉션한다. 이 실제로하는 방법이되었다가 - 응용 프로그램은 몇 주 동안 거기 있었다 및 다운로드 수천 그리고 수천이 있었다. >>이 빛을 온 방법은 사람이 문제가이었다 애플리케이션 중 하나, 그리고 그들의 뱅크라는 함께 그들은 자신의 은행의 고객 지원 라인이라고 말했다, "나는 당신의 모바일 뱅킹 응용 프로그램에 문제가 있어요." "당신이 좀 도와 줄래?" 그리고 그들은 "우리는 모바일 뱅킹 응용 프로그램이 없습니다"고 말했다. 즉, 조사를 시작했다. 그 은행은 구글이라고하고 구글은 보면서 말했​​다 "와우, 같은 저자는, 50 은행 응용 프로그램을 작성했습니다"그들 모두를했다. 그러나 확실히이 다시 일어날 수 있습니다. 모든 다른 은행의 목록은 여기있다 즉,이 사기의 한 부분이었다. 응용 프로그램이 할 수있는 다른 것은 다른 응용 프로그램의 UI 존재한다. 실행 중에 그것은 페이스 북의 UI를 팝업 수 있습니다. 그것은 당신이 계속하려면 사용자 이름과 암호를 넣어야 말한다 또는 웹 사이트에 대한 모든 사용자 이름과 암호 UI를 넣어 어쩌면 사용자는 사용자를 속여하려고 그냥 사용 안으로 자신의 자격 증명을 퍼팅에 이건 정말 이메일 피싱 공격의 직선과 평행 누군가가 당신에게 전자 메일 메시지를 보내는 곳 당신에게 웹 사이트에 대한 기본적 가짜 UI를 제공 당신은에 액세스 할 수 있는지. 우리는 악성 코드를 찾아 다른 것은 시스템 수정합니다. 당신은 루트 권한을 필요로하는 모든 API 호출에 볼 수있다 제대로 실행합니다. 장치의 웹 프록시를 변경하면 응용 프로그램 일 것입니다 할 수 없을 것이다. 그러나 응용 프로그램은 해당 작업을 수행하는이 코드가있는 경우 당신은 아마 악성 응용 프로그램의 알고 또는 매우 높은 악성 응용 프로그램이 될 가능성, 그래서 어떻게 될까하는 응용 프로그램은 권한이 점점 더 커지고있는 몇 가지 방법이있을 것입니다. 그것은 몇 가지 권한 상승이 악용 것 그것은 권한을 에스컬레이션 응용 프로그램에서 다음 번 이들 시스템 수정을 할 것입니다. 당신은 권한 상승이 악성 코드를 찾을 수 있습니다 그것은 심지어 어떻게 권한 상승을 모르고 악용이 일어날 것입니다, 그 좋은, 쉬운 방법 악성 코드를 찾을 수 있습니다. DroidDream은 아마도 안드로이드 악성 코드의 가장 유명한 조각이었다. 나는 몇 일 동안 약 25 만 사용자에게 영향을 생각한다 그것을 발견하기 전에. 그들은 50 가짜 응용 프로그램을 재 포장, 안드로이드 앱 스토어에 넣어, 본질적으로는 권한을 상승 안드로이드 탈옥 코드를 사용 다음 명령을 설치하고 모든 피해자를 제어 및 설정 봇 그물에,하지만 당신은이 문제를 발견 한 수 응용 프로그램을 스캔하고 단지를 찾는다면 API는 필수 루트 권한을 제대로 실행하는 것을 호출합니다. 내가 프록시를 변경하는이 예를 들어 여기있다, 이 사실은 안드로이드에서만 사용할 수 있습니다. 당신은 내가 당신에게 안드로이드에 대한 예를 많이주는거야 볼 수 있습니다 가장 활성화 된 악성 코드 생태계는 곳이기 때문이다 그것은 악성 코드를 얻기 위해 공격자가 정말 쉽기 때문입니다 안드로이드 마켓 플레이스에. 그것은 애플 앱 스토어 (Apple App Store)에서 그렇게 그렇게 쉬운 일이 아니다 애플은 자신을 식별하는 개발자를 필요로하기 때문에 및 코드 서명. 그들은 실제로 당신이 누구인지 확인하고, 애플은 실제로 응용 프로그램을 자세히 조사하고 있습니다. 우리는 장치가 손상지고 해당 악성 코드를 많이 볼 수 없습니다. 나는, 정말 손상지고의 개인 정보 보호의 몇 가지 예에 대해 이야기합니다 그 정말 애플 장치에 무슨 일이 일어나고 있습니다. 악성 코드를 찾을 수있는 또 다른 것은, 기기의 위험 코드 논리 또는 시간 폭탄이다, 시간 폭탄은 아마 훨씬 쉽게 논리 폭탄보다를 찾을 수 있습니다. 그러나 시간 폭탄, 당신이 할 수있는 것은 당신이 볼 수있다 시간이 테스트되는 코드 또는 절대 시간에 장소는을 찾고 있습니다 응용 프로그램의 특정 기능에 문제가 발생하기 전에. 그리고 이것은, 사용자로부터 해당 활동을 숨기기 위해 할 수있는 그래서 밤에 늦게 일어나고. DroidDream는 오후 11시와 오전 8시 현지 시간에게 사이의 모든 활동을 한 사용자가 자신의 장치를 사용하지 않을 수도 있지만 그것을 수행하려고합니다. 사람들이 응용 프로그램의 행동 분석을 사용하는 경우 >>이 작업을 수행하는 또 다른 이유는, 응용 프로그램의 동작이 무엇인지 확인하기 위해 샌드 박스에서 응용 프로그램을 실행 그들은 활동을 할 수있는 시간 기반의 로직을 사용할 수 있습니다 앱이 샌드 박스에있는 경우. 애플과 같은 예를 들어, 앱 스토어 응용 프로그램을 실행하지만, 그들은 아마도, 말, 30 일에 대한 모든 응용 프로그램을 실행하지 마십시오 를 승인하기 전에, 그래서 당신은 넣을 수 있습니다 알았지 만 나쁜 일을 말했다 응용 프로그램의 논리 30 일 동안에, 응용 프로그램의 등록 날짜 후 30 일 또는 이후에 간 후 그것은 그것을 검사 사람들로부터 악성 코드 숨기기를 할 수 있습니다. 안티 바이러스 회사는 샌드 박스에서 물건을 실행하는 경우 또는 앱 스토어 자신이 도울 수있다 그 검사에서 그 숨 깁니다. 지금, 그것의 다른 측면은, 그것은 정적 분석을 쉽게 찾을 수 있습니다 그래서 실제로 당신이 모든 장소를 찾을 수있는 코드를 검사 응용 프로그램이 시간을 테스트하고 그 방법을 검사 곳. 그리고 여기에 나는이 3 가지 플랫폼에서 몇 가지 예를 시간은 응용 프로그램 제작자에 의해 확인 될 수있는 방법 그래서 당신은 당신이 정적으로 응용 프로그램을 검사하는 경우를 찾기 위해 알아. 그냥 다른 악성 활동의 전체 무리를했다 우리는 야생에서 본 적이 있지만 어떤 사람은 가장 널리 퍼진 것을? 노스 캐롤라이나 주립 모바일 게놈 프로젝트에서 그 같은 연구 일부 데이터를 게시, 4 영역은 기본적으로이 있었다 많은 활동이 어디에 그들은 보았다. 애플 리케이션의 37 %는, 권한 상승했​​다 그래서 그들은 거기에 탈옥 코드의 일부 유형을했다 그들은 권한을 상승을 시도 어디에 그들은 수 있도록 API 명령을 운영체제로 실행 않는다. 애플 리케이션의 45 % 밖에, 프리미엄 SMS를했다 그래서 직접 수익을 창출하려고하는 큰 비율이다. 93 %는 원격 제어를했다, 그래서 그들은 봇 넷, 모바일 로봇 그물을 설정했습니다. 그리고 45 %는 식별 정보를 수확 전화 번호, UUID를, GPS 위치, 사용자 계정, 같은 대부분의 악성 코드는 이러한 것들을 몇 가지 작업을 수행하려고하기 때문에이 100 개 이상까지 추가합니다. 나는 하반기로 전환하여 코드 취약점에 대해 이야기하겠습니다. 이것은 위험한 활동의​​ 후반이다. 개발자가 오류를 만드는 곳 본질적이다. 합법적 인 응용 프로그램을 작성하는 합법적 인 개발자 오류를 만들거나된다 모바일 플랫폼의 위험을 모르는 것입니다. 그들은 단지 안전한 모바일 응용 프로그램을 만드는 방법을 알고하지 않습니다, 때로는 개발자가 위험에 사용자를 넣어 걱정하지 않습니다. 때로는 자신의 비즈니스 모델의 일부가 될 수 있습니다 사용자의 개인 정보를 수확. 즉, 다른 카테고리의 종류, 그리고 그 이유는 악성의 일부 의견의 차이가 있기 때문에 합법적 인 시작 대 이상 출혈합니다 어떤 사용자가 원하는 어떤 사용자가 위험한 생각 사​​이 어떤 응용 프로그램 개발자가 위험한 것으로 간주합니다. 물론, 대부분의 경우 응용 프로그램 개발자의 데이터 아니다. 그리고 마지막으로, 이러한 상황이 발생하는 또 다른 방법은 개발자가에 링크 할 수 있습니다 그것의 취약점이나이 위험한 행동을 가진 공유 라이브러리 모르는 사이에. 첫 번째 범주는 민감한 데이터 유출이다, 응용 프로그램이 정보를 수집 할 때이입니다 위치, 주소록 정보, 소유자 정보 등 장치 떨어져 그 보냅니다. 그리고 장치 떨어져 일단, 우리는 그 정보를 무슨 일이 일어나고 있는지 알 수 없습니다. 이 응용 프로그램 개발자가 안전하지 않은 저장 될 수있다. 우리는 응용 프로그램 개발자가 위험에 노출 봤어요 그들이 저장하고있는 데이터가 촬영됩니다. 이것은 플로리다 아래 개발자에게 몇 달 전에 일어난 의 - 그것은 엄청난 수의 아이 패드의 UUID 및 장치 이름이 어디​​에 누군가가, 내가 익명이라고 생각하기 때문에, 유출 된 이 작업을 수행하는 주장이 개발자의 서버에 침입 아이 패드의 UUID의 수백만을 훔친 컴퓨터 이름. 아니 가장 위험한 정보 하지만이 경우는 사용자 이름과 암호를 저장했다 집 주소? 정보의 종류를 저장하는 응용 프로그램이 많이 있습니다. 위험이 있습니다. 개발자가 알아서하지 않는 경우 일어날 수있는 다른 일이 있습니다 데이터 채널을 확보하고, 그게 내가 얘기하는거야 또 다른 큰 취약점의하는, 데이터는 그대로 전송되고있다. 사용자가 공용 Wi-Fi 네트워크에있는 경우 또는 누군가가 어딘가에 인터넷을 스니핑 경로를 따라 데이터가 노출되고있다. 이 정보를 유출 한 아주 유명한 경우는 판도라와 일어, 이것은 우리가 베라 코드에 연구 무언가이다. 우리는 - 나는 그것이 연방 통상위원회 (Federal Trade Commission) 생각이 있었다는 것을 들었다 판도라에 무슨 조사. 우리는 "이 무슨 일이지?의 판도라의 응용 프로그램에 파고 시작하자"고 말했다. 그리고 우리가 결정하는 것은 수집 된 판도라 응용 프로그램이었다 성별과 나이, 그것은 또한 GPS 위치 및 판도라 애플리케이션을 액세스 그들은 합법적 인 이유라고 말했다 무엇을 위해 이런 짓을. 그들이 연주 - 판도라 된 음악은 음악 스트리밍 응용 프로그램이며, 그들이 연주 된 음악은 미국에서 사용이 허가 된, 그래서 그들은 그들이 가지고 자신의 라이센스 계약을 준수 확인했다 사용자가 미국에 있던 음악. 그들은 또한 부모의 자문을 준수하고 싶었 음악 주위에 성인 언어, 그리고 그것은 자발적 프로그램,하지만 그들은 그 준수 싶어 어린이 13 세 이하의 명시 적 가사를 재생할 수 없습니다. 그들은이 정보를 수집하기 위해 합법적 인 이유가 있었다. 이들 응용 프로그램은 그것을 할 수있는 권한을 가지고 있었다. 사용자는이 합법적 생각했다. 그러나 무슨 일이야? 그들은 3 또는 4 다른 광고 라이브러리에 연결됩니다. 지금 갑자기 모든 광고 라이브러리의 모든 이 같은 정보에 대한 액세스를 얻고있다. 광고 라이브러리, 당신은 광고 라이브러리의 코드를 보면 그들이하는 일은 모든 광고 라이브러리를 말합니다입니다 "내 응용 프로그램은 GPS 위치를 확인 할 수있는 권한이 있습니까?" "아? 좋아, 나에게 GPS 위치를 알 수 있지." 하나 하나의 광고 라이브러리는 않습니다, 및 응용 프로그램은 GPS 권한이없는 경우 그것을 얻을 수 없을 것입니다,하지만 않으면, 그것을 얻을 것이다. 이것은 광고 라이브러리 여기서 비즈니스 모델 사용자의 프라이버시에 대향된다. 그리고 당신이 나이를 알고있는 경우에 말할 것 밖에 연구가있었습니다 사람의 당신은 자신의 위치를​​ 알고 당신이 자신의 GPS 좌표를 가지고 있기 때문에 그들은 밤에 잠을 어디 그들은 아마도 자고있는 동안, 당신은 그 사람이 정확히 누구인지 당신은 가족의 구성원이 그 사람을 확인할 수 있기 때문이다. 정말이 광고주로 식별된다 정확하게는, 그것이 합법 것 같습니다 사람. 난 그냥 내 스트리밍 음악을 원하고,이 그것을 얻을 수있는 유일한 방법입니다. 음, 우리는이 문제를 노출시켰다. 우리는 몇 가지 블로그 게시물이를 썼다, 그것은 밝혀 그 롤링 스톤 잡지에서 사람 우리의 블로그 게시물을 읽고 그것에 대해 롤링 스톤에 자신의 블로그를 작성, 그리고 다음 날 판도라는 좋은 아이디어라고 생각 자신의 응용 프로그램에서 광고 라이브러리를 제거합니다. 내가 아는 한 그들은 단지 - 그들이 칭찬해야입니다. 나는 그들이 이런 짓을하고있다 응용 프로그램의 유일한 프리미엄 (freemium) 형태라고 생각. 다른 모든 프리미엄 (freemium) 앱은이 같은 문제를 가지고, 그래서 당신은 당신이 제공하는 데이터의 종류에 대해 생각을하고 있구나 그것은 모든 광고주에게 무슨 이러한 프리미엄 (freemium) 응용 프로그램 때문이다. 근위병은 공유 라이브러리에 대한 연구를하고 말했다, "의는 도서관 베스트 공유 라이브러리입니다 공유 무엇을 보자"이 데이터이었다. 그들은 53,000 애플 리케이션을 분석, 그리고 숫자 1 공유 라이브러리 몹이었다. 그것은 거기에 응용 프로그램의 38 %에 사실은 당신이 사용하고있는 응용 프로그램 때문에 38 % 가능성이 귀하의 개인 정보를 수확하는 및 광고 네트워크에 보내기. 아파치와 안드로이드는 8 %, 6 %였다, 다음 바닥, 구글 광고, 질풍에서 다른 사람 다운, 몹시와 천년 미디어, 이들은 다음, 흥미롭게도 모든 광고 회사이며, 4 % 페이스 북 라이브러리에 연결 아마 페이스 북을 통해 인증을 수행하는 그래서 앱이 페이스 북을 인증 할 수 있습니다. 하지만 그 또한 페이스 북이 코드를 제어하는​​ 회사를 의미한다 즉, 거기에 안드로이드 모바일 애플 리케이션의 4 %에서 실행중인 그리고 그들은 그 응용 프로그램이 얻을 수있는 권한이 있는지 모든 데이터에 액세스 할 수 있습니다. 페이스 북은 기본적으로 광고 공간을 판매하려고합니다. 즉, 자신의 비즈니스 모델이다. 당신은이 권한이 전체 생태계를 보면 그리고 당신이 그것을보고 시작 공유 라이브러리 당신은 아마 합법적 인 응용 프로그램에서 많은 위험이 있습니다. 판도라에 일어난 같은 비슷한 일 , 경로라는 응용 프로그램이 있었 및 경로가 도움이 친절한 개발자 인 줄 알았는데. 그들은 단지 당신에게 훌륭한 사용자 경험을 제공하기 위해 노력했다, 그것은 밝혀 그 사용자에게 메시지를 표시하거나 사용자에게 이야기하지 않고 아무것도 - 이것은, 아이폰과 안드로이드에 무슨 일이 있었 판도라 앱은 아이폰과에 있던 안드로이드 경로 응용 프로그램은 전체 주소록을 잡는 것을 그리고 설치하고 응용 프로그램을 실행 바로 그 때 경로에 업로드, 그들은 이것에 대해 말하지 않았다. 그들은 당신을 위해 정말 도움이되었다 생각 주소록에있는 모든 사람들과 공유 할 수 당신은 경로의 응용 프로그램을 사용하고 있는지. 글쎄, 확실히 경로이 자신의 회사에 대한 좋은 생각. 사용자에게 너무 큰되지 않습니다. 당신은 경우에, 어쩌면 대 한 일이라고 생각해야 이 응용 프로그램을 사용하여 친구의 자신의 수십가되어 있습니다 그러나 경로를 설치하는 회사의 CEO 거라면 다음 갑자기 자신의 전체 주소록 모두가 거기있다? 당신은 잠재적으로 가치있는 연락처 정보를 많이받을거야 많은 사람들을 위해. 뉴욕 타임즈의 기자는, 당신은 전화 번호를 얻을 수있을 자신의 주소록에서 전직 대통령에 대한, 그래서 분명히 중요한 정보를 많이는이 같은 뭔가 전송됩니다. 그 경로는 사과 이것에 대해 그렇게 큰 플랩이 있었다. 그들은 자신의 응용 프로그램을 변경하고, 심지어는 애플의 영향. 애플은 우리가 메시지를 표시하는 응용 프로그램 공급 업체를 강제하는 것입니다 "라고 말했다 그들은 그들의 전체 주소록을 수집하는 거라면. " >>이 여기에 무슨 일이 일어나고 있는지 같습니다 거기에 하나의 큰 개인 정보 보호 위반이 그리고 그것은 언론을 할 때 우리는 거기에 변경을 참조하십시오. 하지만 물론, 다른 것들이 거기에있다. 링크드 인 응용 프로그램은 일정 항목을 수확, 하지만 애플은 사용자가 그것에 대해 묻는 메시지가 나타하지 않습니다. 일정 항목도 그 중요한 정보가있을 수 있습니다. 어디서 선을 그어야하는거야? 이건 정말 종류의 진화 곳입니다 좋은 표준은 거기서 거기에 정말없는 곳 자신의 정보가 위험에 노출 될 때 사용자가 이해하기 그들이 알고있는거야 때 그것은 됐지. 우리는 안녕이라는 베라 코드에서 응용 프로그램을 작성 본질적으로 그것은 당신이 당신의 아이튠즈 디렉토리에서 응용 프로그램을 가리 키도록 허용 당신의 전체 주소록을 수확 된 모든 응용 프로그램을 확인합니다. 그리고 여기이 목록에서 볼 수 있듯이, 화가 조류, AIM, AroundMe. 왜 화가 조류는 주소록이 필요합니까? 잘 모르겠지만, 어떻게 든 않습니다. 이것은 많은, 많은 응용 프로그램이 할 일이있다. 당신은이에 대한 코드를 검사 할 수 있습니다. 아이폰, 안드로이드와 블랙 베리에 대한 잘 정의 된 API는있다 주소록에서 얻을 수 있습니다. 당신은 정말 쉽게에 대해 검사 할 수 있습니다, 이것은 우리가 우리의 안녕 응용 프로그램에서 한 것입니다. 다음 카테고리, 안전하지 않은 민감한 데이터 저장, 개발자가 핀 같은 것을 가지고 무언가 또는 계좌 번호입니다 또는 비밀번호와이 장치에 일반 텍스트로 저장합니다. 더 나쁜, 그들은 전화의 영역에 저장할 수 있습니다 이는 SD 카드와 같은 세계적으로 액세스 할 수 있습니다. 안드로이드는 SD 카드 수 있기 때문에 당신은 안드로이드에 더 자주를 참조하십시오. 아이폰 장치는하지 않습니다. 그러나 우리는 심지어이 씨티 그룹의 응용 프로그램에서 발생했다. 그들의 온라인 뱅킹 응용 프로그램은 안전하지 않은 계좌 번호를 저장 다만 분명히있는, 그래서 당신은 당신의 장치를 잃은 경우, 기본적으로 당신은 당신의 은행 계좌를 잃었다. 나는 개인적으로 내 아이폰에서 은행 업무를하지 않는 이유입니다. 나는 이런 종류의 활동을 수행하는 지금 너무 위험한 생각합니다. Skype는 같은 일을했다. 스카이프, 물론, 계정 잔액, 사용자 이름과 암호가 균형에 액세스하는. 그들은 모바일 장치에서 투명에 모든 정보를 저장했다. 나는 파일을 만드는 몇 가지 예를 그 오른쪽 권한이 또는 디스크에 기록하지 않는다 및 암호화 그것을위한 일이 필요 없습니다. 이 다음 지역, 안전하지 않은 중요한 데이터 전송, 나는이 몇 번을 언급하고 있기 때문에 공용 Wi-Fi를했습니다 이 절대적으로 할 필요가 앱 무언가이다, 이것은 우리가 가장 잘못 보는 아마. 내가 말할 - 실제로 것, 나는 실제 데이터를 가지고 있다고 생각, 하지만 절반 모바일 애플리케이션에 가깝 SSL을하는 망치. 그들은 단지 API를 제대로 사용하지 않습니다. 내 말은, 당신은 할 수있어 모두가 지침에 따라 API를 사용합니다 하지만 그들은 같은 일들이, 다른 쪽 끝에서 잘못된 인증서가 있는지 확인하지 않는다 다른 쪽 끝은 프로토콜 다운 그레이드 공격을하려고하면 확인하지. 개발자, 그들은 자신의 체크 박스를 얻으려면, 오른쪽? 이들 요구 사항은 판매하는 본을 사용하는 것이다. 그들은 판매하는이를 사용했습니다. 요구 안전하게 판매 이것을 사용하지 않는 것입니다 SSL을 사용하는 모든 응용 프로그램이 데이터를 보호하는 이유 등이 있습니다 가 꺼져 전송되는 것 같은 장치가 정말 검사해야 그가 올바르게 구현 된 확인하십시오. 그리고 여기 당신이 응용 프로그램을 볼 수있는 몇 가지 예를 HTTP가 아닌 HTTPS를 사용하고있을 수 있습니다. 경우에 따라 응용 프로그램은 HTTP로 다시 떨어질 것이다 HTTPS가 작동하지 않는 경우.에게 나는 그들이 인증서 검사를 비활성화 한 안드로이드에 여기에 다른 통화를 그래서 man-in-the-middle 공격이 발생할 수 있습니다. 잘못된 인증서 허용됩니다. 이는 공격자가 얻을 수있을거야 모든 경우입니다 사용자가 액세스하는 모든 데이터와 동일한 Wi-Fi 연결 즉, 인터넷을 통해 전송되는 것. 그리고 마지막으로, 여기이 마지막 범주는 하드 코딩 된 암호 및 키입니다. 우리는 실제로 많은 개발자가 같은 코딩 스타일 사용을 참조하십시오 그들은 웹 서버 응용 프로그램을 구축했을 때했던 것을 그래서 그들은 자바 서버 응용 프로그램을 구축하고, 그들은 키를 하드 코딩입니다. 글쎄, 당신은 서버 응용 프로그램을 구축 할 때, 그래, 키를 하드 코딩하는 것은 좋은 생각이 아니다. 그것은 어려운 변경한다. 누가 서버 측에 액세스 할 수 있기 때문에하지만 서버 측에서 그렇게 나쁘지 않아? 관리자 만. 하지만 당신은 동일한 코드를 가지고 당신은 모바일 응용 프로그램을 통해 부어있는 경우 이제 모바일 응용 프로그램이 해당 하드 키에 액세스 할 수 있는지가 모두, 우리는 실제로이에게 시간을 많이보고, 나는 몇 가지 통계가 우리는 이런 일이 참조하는 빈도에. 실제로 마스터 카드가 발표 예제 코드에 있었다 그들의 서비스를 사용하는 방법에. 예제 코드는 당신이 암호를 가지고하는 방법을 보여 주었다 그리고, 바로 거기에 하드 코딩 된 문자열에 넣어 우리는 개발자가 코드 조각을 복사 및 붙여 넣기가 얼마나 좋아하는지 알 그들은 무언가를 위해 노력하고, 그래서 당신의 코드를 복사하여 붙여 넣을 때 그들은 예를 코드로주고, 당신은 안전하지 않은 응용 프로그램이 있다고. 그리고 여기에서 우리는 몇 가지 예제가 있습니다. 이 첫 번째는 우리가 하드 코딩을 많이 볼 하나입니다 전송되는 URL에 데이터 오른쪽. 때때로 우리는 문자열 암호 = 암호를 참조하십시오. 즉, 블랙 베리와 안드로이드에 매우 감지하기 쉬운, 또는 문자열의 암호입니다. 실제로 때문에 거의 항상 확인하는 것이 매우 쉽게 개발자 이름의 암호를 들고있어 변수 암호의 일부 변화. 나는 우리가 베라 코드에서 정적 분석을 수행하는 것이 언급 그래서 우리는 수백 안드로이드와 아이폰 OS 응용 프로그램을 분석했습니다. 우리는 그들의 전체 모델을 구축했습니다, 우리는 그들을 스캔 할 수있어 다른 취약점, 내가 얘기했다 특히 취약점에 대한 나는 여기에 몇 가지 데이터가있다. 우리가보고하는 안드로이드 애플 리케이션의 68.5 % 암호화 코드를 세분화했다, 당신이 당신의 자신의 암호화 루틴을 만드는 경우에 우리를 위해, 우리가 감지 할 수있는, 좋은 생각,하지만 이것은 실제로 공개 된 API를 사용하지 않는 것이 플랫폼에 있지만 그와 같은 방식으로 하 암호화는 68.5 취약 할 것. 그리고이 사실은 우리에게 응용 프로그램을 전송하는 사람이기 때문에 그들은 보안 테스트를 할 수있는 좋은 아이디어라고 생각합니다. 이들은 아마 이미 안전하게 생각하는 사람입니다 그래서 아마 더 악화. I 제어 라인 피드 주입에 대해 얘기하지 않았다. 그것은 우리가 확인 뭔가,하지만 문제가 위험하지 않습니다. 정보 유출이 중요한 데이터가 장치 떨어져 전송되는 곳이다. 우리는 응용 프로그램의 40 %에 그 발견. 시간과 상태는 사람은, 악용 일반적으로 매우 어려운 경쟁 조건 유형의 문제입니다 그래서 나는 그것에 대해 얘기하지 않았다, 그러나 우리는 그것을 보았다. 23 %는 SQL 주입 문제를 가지고 있었다. 많은 사람들이 모르는 많은 응용 프로그램 데이터를 저장하기 위해 그들의 백 엔드에 작은 작은 SQL 데이터베이스를 사용한다. 음, 만약에 당신이 네트워크를 통해 잡아중인 데이터 거기에 SQL 주입 공격 문자열이 누군가가 그를 통해 장치를 손상시킬 수, 그래서 나는 우리가 웹 응용 프로그램의 약 40 %가이 문제를 찾을 생각 어떤 거대한 전염병 문제입니다. 우리는 모바일 애플 리케이션에 그것을 시간의 23 %를 찾아 많은 웹 애플리케이션은 모바일보다 SQL을 사용하기 때문에 그것은 아마. 그리고 우리는 여전히 크로스 사이트 스크립팅, 권한 부여 문제를 참조하십시오 당신은 당신의 하드 코딩 된 암호가 어디 다음 자격 증명 관리, 그건. 응용 프로그램의 5 %에​​서 우리는을 참조하십시오. 그리고 우리는 아이폰 OS에 일부 데이터가 있습니다. 81 %는 오류 처리 문제를 가지고 있었다. 이것은 코드 질 문제 이상의, 하지만 67 %는 암호화 문제를했다, 그래서 안드로이드 것만 큼 나쁘지 않다. 아마 API를 조금 쉽게, 아이폰 OS에 좀 더 예제 코드. 하지만 여전히 매우 높은 비율입니다. 우리는 정보 유출로 54 %를했다, 버퍼 관리 에러를 가진 30 %. 즉, 잠재적 메모리 손상 문제가있을 수 있습니다 장소입니다. 그것은 그 착취에 대한 문제의 많은 부분이 아니라고 밝혀 모든 코드에 서명해야합니다 아이폰 OS에 있기 때문에, 그래서 아이폰 OS에서 임의의 코드를 실행하는 공격자 어렵다. 코드 품질, 디렉토리 탐색, 그러나 여기에서 14.6 %로 다음 자격 증명 관리, 안드로이드보다 그렇게 더. 우리는 사람들이 제대로 암호를 처리하지 않았습니다. 그리고 숫자 오류 및 버퍼 오버 플로우, 사람들은 더 많은 아이폰 OS에 대한 코드의 품질 문제가 될 수 있습니다. 즉, 프레젠테이션을 위해이었다. 우리는 시간이인지 아닌지 모르겠어요. 질문이 있는지 모르겠어요. [남성] 분열과 안드로이드 마켓의 주위에 빠른 질문. 애플은 적어도 패치를 소유하고있다. 그들은 안드로이드 공간에있는 반면에 덜 거기를 얻는 좋은 일을하고 있어요. 당신은 거의 현재 유지하기 위해 휴대 전화를 탈옥해야 안드로이드의 현재 릴리스. 당신에 대해 - 생각하면 그래, 그게 큰 문제 등의 [남성] 왜 당신은 그것을 반복 할 수 없습니다? 아, 맞다, 그래서 질문은 무엇에 대한 분할했다 안드로이드 플랫폼의 운영 체제? 그게 어떻게 그 장치의 위험성에 어떤 영향을 줍니까? 무슨 일이 것은 때문에 실제로는 큰 문제입니다 오래된 장치, 누군가가 해당 장치의 탈옥과 함께 올 때, 본질적는 운영 체제가 업데이트 될 때까지 권한 상승, 그리고 어떤 악성 코드는 완전히 장치를 손상 취약점을 사용할 수 있습니다 그리고 우리가 안드로이드에 볼 수있는 것은 새로운 운영 체제를 얻기 위해서입니다 구글은 하드웨어 제조업체에게 운영 체제를 넣을 수 있고, 을 사용자 정의 할 수 있으며, 다음 캐리어를 정의하고 제공 할 수 있습니다. 당신은 기본적으로 여기에 3 움직이는 부품이 그리고 캐리어가 걱정하지 않는 것이 돌고, 및 하드웨어 제조 업체는 걱정하지 않는다, 구글은 충분히 그들을 괴롭히는되지 거기서 기본적으로 장치의 절반 이상, 아무것도 할 수 그들에게 이러한 권한 상승 취약점이 운영 시스템이, 당신의 안드로이드 장치에 악성 코드를 얻을 경우 그리고 그것은 더욱 문제입니다. 네, 대단히 감사합니다. [박수] [CS50.TV]