6.1 KiB
Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!
Drugi načini podrške HackTricks-u:
- Ako želite da vidite vašu kompaniju reklamiranu na HackTricks-u ili preuzmete HackTricks u PDF formatu proverite SUBSCRIPTION PLANS!
- Nabavite zvanični PEASS & HackTricks swag
- Otkrijte The PEASS Family, našu kolekciju ekskluzivnih NFT-ova
- Pridružite se 💬 Discord grupi ili telegram grupi ili nas pratite na Twitter-u 🐦 @carlospolopm.
- Podelite svoje hakovanje trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.
Kod i više informacija na https://mas.owasp.org/MASTG/iOS/0x06h-Testing-Platform-Interaction/#object-persistence.
Serijalizacija objekata u iOS razvoju
U iOS-u, serijalizacija objekata podrazumeva pretvaranje objekata u format koji se može lako skladištiti ili preneti, a zatim njihovo rekonstruisanje iz ovog formata kada je potrebno. Dva glavna protokola, NSCoding
i NSSecureCoding
, olakšavaju ovaj proces za Objective-C ili NSObject
podklase, omogućavajući objektima da budu serijalizovani u NSData
, format koji obuhvata bajtne bafera.
Implementacija NSCoding
Da biste implementirali NSCoding
, klasa mora naslediti od NSObject
ili biti označena kao @objc
. Ovaj protokol zahteva implementaciju dve metode za kodiranje i dekodiranje instancnih promenljivih:
class CustomPoint: NSObject, NSCoding {
var x: Double = 0.0
var name: String = ""
func encode(with aCoder: NSCoder) {
aCoder.encode(x, forKey: "x")
aCoder.encode(name, forKey: "name")
}
required convenience init?(coder aDecoder: NSCoder) {
guard let name = aDecoder.decodeObject(forKey: "name") as? String else { return nil }
self.init(x: aDecoder.decodeDouble(forKey: "x"), name: name)
}
}
Poboljšanje sigurnosti pomoću NSSecureCoding
Da bi se umanjile ranjivosti u kojima napadači ubacuju podatke u već konstruisane objekte, NSSecureCoding
nudi unapređeni protokol. Klase koje se pridržavaju NSSecureCoding
moraju verifikovati tip objekata tokom dekodiranja, osiguravajući da se instanciraju samo očekivani tipovi objekata. Međutim, važno je napomenuti da iako NSSecureCoding
poboljšava sigurnost tipova, ne šifruje podatke niti osigurava njihovu celovitost, što zahteva dodatne mere za zaštitu osetljivih informacija:
static var supportsSecureCoding: Bool {
return true
}
let obj = decoder.decodeObject(of: MyClass.self, forKey: "myKey")
Arhiviranje podataka pomoću NSKeyedArchiver
NSKeyedArchiver
i njegov pandan, NSKeyedUnarchiver
, omogućavaju enkodiranje objekata u datoteku i kasnije njihovo vraćanje. Ovaj mehanizam je koristan za trajno čuvanje objekata:
NSKeyedArchiver.archiveRootObject(customPoint, toFile: "/path/to/archive")
let customPoint = NSKeyedUnarchiver.unarchiveObjectWithFile("/path/to/archive") as? CustomPoint
Korišćenje Codable
za pojednostavljenu serijalizaciju
Protokol Codable
u Swift-u kombinuje Decodable
i Encodable
, olakšavajući kodiranje i dekodiranje objekata poput String
, Int
, Double
, itd., bez dodatnog napora:
struct CustomPointStruct: Codable {
var x: Double
var name: String
}
Ovaj pristup podržava jednostavnu serijalizaciju u i iz lista svojstava i JSON-a, poboljšavajući obradu podataka u Swift aplikacijama.
Alternative za enkodiranje JSON-a i XML-a
Pored podrške ugrađene u jezik, postoji nekoliko biblioteka trećih strana koje nude mogućnosti enkodiranja/dekodiranja JSON-a i XML-a, pri čemu svaka ima svoje karakteristike performansi i sigurnosne razmatranja. Važno je pažljivo odabrati ove biblioteke, posebno kako bi se umanjile ranjivosti poput XXE (XML External Entities) napada konfiguracijom parsera radi sprečavanja obrade spoljnih entiteta.
Sigurnosna razmatranja
Prilikom serijalizacije podataka, posebno na datotečni sistem, važno je biti oprezan u vezi potencijalnog uključivanja osetljivih informacija. Serijalizovani podaci, ako se presretnu ili nepravilno rukuju, mogu izložiti aplikacije rizicima poput neovlašćenih radnji ili curenja podataka. Preporučuje se šifrovanje i potpisivanje serijalizovanih podataka radi poboljšanja sigurnosti.
Reference
Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!
Drugi načini podrške HackTricks-u:
- Ako želite videti oglašavanje vaše kompanije u HackTricks-u ili preuzeti HackTricks u PDF formatu, proverite PLANOVE ZA PRETPLATU!
- Nabavite zvanični PEASS & HackTricks swag
- Otkrijte The PEASS Family, našu kolekciju ekskluzivnih NFT-ova
- Pridružite se 💬 Discord grupi ili telegram grupi ili nas pratite na Twitter-u 🐦 @carlospolopm.
- Podelite svoje hakovanje trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.