အတိုေကာက္ အေနနဲ႔ RIL လို႔လဲ ေခၚတဲ့ Radio Interface Layer ကေတာ့ Android ဖုန္း ရဲ့ Cellar communication နဲ႔ ပက္သက္တဲ့ လုပ္ငန္းေဆာင္တာ မွန္သမွ်ကို အဓီက လုပ္ေဆာင္တဲ့ component ျဖစ္ပါတယ္၊ Radio Interface Layer က celler modem အတြက္ Interface တစ္ခုကိုေထာက္ပံ့ေပးၿပီး mobile services လုပ္ငန္း စဥ္မ်ားကိုလုပ္ေဆာင္ႏိုင္ရန္ mobile network ကို ေထာက္ပံ့ေပးပါတယ္၊ RIL ကို cellular modem chips အျဖစ္ အမွီအခို ကင္းကင္း အလုပ္လုပ္ႏိုင္ေအာင္ ဒီဇိုင္း ဆြဲ ထားတာျဖစ္ပါတယ္၊ ခ်ံဳေျပာရရင္ Android ဖုန္း တစ္လံုးမွာ RIL က voice calls ေတြ text messaging ေတြ နဲ႔ mobile Internet ေတြနဲ႔ ပက္သက္တဲ့ လုပ္ငန္း စဥ္ေတြကို တာ၀န္ယူထားပါတယ္၊ အကယ္၍ RIL သာမရွိခဲ့ဘူးဆိုရင္ေတာ့ Android devices ေတြအေနနဲ႔ cellular network တစ္ခုနဲ႔ ခ်ိ္တ္ဆက္အလုပ္လုပ္ ႏိုင္မွာ မဟုတ္ပါဘူး၊ ဒီေတာ့ RIL က သာလွ်င္ Android device ကို smartphone ျဖစ္ေစတဲ့ hardware components ေတြထဲက အဓိက component တစ္ခုျဖစ္တယ္၊ ယေန႔ေခါတ္ရဲ့ celler communications ကိုေတာ့ mobile phone နဲ႔ smartphones ေတြမွာသာလွ်င္ ကန္႔သတ္အသံုးျပဳႏိုင္တာ မဟုတ္ေတာ့ဘဲ tablets နဲ႔ eBook readers ေတြမွာပါ RIL ကို build-in အျဖစ္ always-on mobile internet အေနနဲ႔ ထည့္သြင္း အသံုးျပဳလာၾကပါၿပီ၊ Mobile Internet က RIL တာ၀န္ယူထားတဲ့ အလုပ္လုပ္ေဆာင္တဲ့ အစိတ္အပိုင္း ျဖစ္တဲ့ အတြက္ RIL ေတြကို Android Devices ေတြအားလံုးမွာေတြ႔ႏိုင္မွာျဖစ္ပါတယ္၊
ဒီအခန္းမွာေတာ့ RIL ဘယ္လို အလုပ္လုပ္လဲ၊ RIL ကို ဘယ္လို ခြဲျခား စိတ္ျဖာ ေလ့လာႏိုင္သလဲ နဲ႔ ဘယ္နည္းနဲ႔ တိုက္ခိုက္ ႏိုင္မလဲ ဆိုတာကို ရွင္းျပ သင္ျပေပးပါမယ္၊ ဒီအခန္းမွာပဲ မတူညီတဲ့ RIL components ေတြရဲ့ ကြာျခား တဲ့ အခ်က္ေတြကို ရွင္းျပသြားမယ္ ဒီလိုဘဲ မတူညီတဲ့ RIL components ေတြဘယ္လို တြဲဖက္ အလုပ္လုပ္ေဆာင္ သလဲ ဆိုတာကိုလဲရွင္းျပသြားမယ္၊ ဒီအခန္းရဲ့ တိုက္ခိုက္ေရး အပိုင္းကေတာ့ Short Messaging Service(SMS) တိုက္ခိုက္ျခင္း အေၾကာင္းေပၚမွာ အဓီက ဦးတည္သြားမယ္၊ ဘယ္နည္းနဲ႔ Android device ေပၚက SMS ကို fuzz လုပ္ႏိုင္မလဲ ဆိုတာကို အဓိက ထားၿပီးရွင္းသြားမယ္၊ ဒီအခန္းရဲ့ ပထမအပိုင္းက RIL အေၾကာင္း အက်မ္းဖ်င္းနားလည္ဖို႔ နဲ႔ SMS message format အေၾကာင္းတို႔ ကို ရွင္းျပထားၿပီးပါတယ္၊ ဒီအခန္းရဲ့ ဒုတိယ အပိုင္းကေတာ့ RIL ရဲ့ instrumenting အေၾကာင္း ထဲကို အတြင္းက်က် ေလ့လာၿပီးေတာ့ Android ရဲ့ SMS တည္ေဆာက္ထားပံု အလုပ္လုပ္ပံုတို႔ကို ေလ့လာကာ fuzz လုပ္သြားမွာျဖစ္ပါတယ္၊ ဒီအခန္းကို အဆံုး အထိဖတ္ၿပီးသြားရင္ေတာ့ Android RIL နဲ႔ ပက္သက္လို႔ သိထားသင့္တဲ့ အခ်က္ေတြအားလံုးသိၿပီးျဖစ္သြား မွာ ျဖစ္သလို ကိုယ္ပိုင္ လံုးျခံဳေရးနဲ႔ ပက္သက္လို႔ တိုက္ခိုက္ ဖို႔ အတြက္ျဖစ္ေစ ကာကြယ္ဖို႔ အတြက္ျဖစ္ေစ ဘယ္လို ေဆာင္ရြက္ရမလဲ ဆိုတာကို ေကာင္းေကာင္း သိသြားမွာ ျဖစ္ပါတယ္၊
RIL အေၾကာင္း မိတ္ဆက္
The Android RIL ကို Android telephony service subsystem ကေန တကယ့္ radio interface ကို abstract လုပ္ရန္အတြက္ တည္ေဆာက္ထားတာပါ၊ RIL ကို Global System for Mobile Communication (GSM), Code Division Multiple Access(CDMA),3G, 4G Long Term Evolution (LTE) တုိ႔လို တို႔လို radio အမ်ိဳး အစားအားလံုးအတြက္ အလုပ္လုပ္ႏိုင္ရန္ အတြက္ ရည္ရြယ္ၿပီး ဒီဇိုင္း ဆြဲထားတာပါ၊ Cellular Communication နဲ႔ ပက္သက္တဲ့ network registration, voice calls, shoart message service(SMS), Packet data (IP communication) တို႔နဲ႔ သက္ဆိုင္သမွ် အခ်က္အလက္ေတြအားလံုးကို RIL က ကိုင္တြယ္အလုပ္လုပ္ပါတယ္၊ ဒီ့ အတြက္ေၾကာင့္ပဲ Andriod device မွာ RIL ရဲ့ ပါ၀င္ပက္သက္မူက မရွိမျဖစ္ အေနနဲ႔ အေရးႀကီးလွပါေပတယ္၊ Android RIL က Andriod ဖုန္းထဲကေန အျပင္ေလာကနဲ႔ ခ်ိတ္ဆက္ အလုပ္လုပ္ႏိုင္ (အျပင္ေလာကကို ေရာက္ရွိႏိုင္) တဲ့ software အပိုင္းေတြထဲက တစ္ခုျဖစ္ပါတယ္၊ သူ႔ကို တုိက္ခိုက္ႏိုင္မယ့္ အပိုင္းကလဲ service ေပၚက service host နဲ႔ ႏိုင္းယွဥ္ေနပါတယ္၊ Cellular network ကေန Android device ကို RIL ကို ျဖတ္ၿပီး ေပးပို႔ပါတယ္၊ ဒီအခ်က္ကို အေကာင္းဆံုးနားလည္ေအာင္ ရွင္းျပ ႏိုင္တာကေတာ့ SMS message တစ္ခု Android ဖုန္းထဲကို ဘယ္လို ေရာက္ရွိလာလဲ ဆိုတဲ့ ျဖစ္စဥ္ကို ေလ့လာျခင္းပါပဲ၊
Android device တစ္ခုဆီကို SMS message တစ္ခု ေပးပို႔တာနဲ႔ ထို message ကို အရင္ဦးဆံုး cellular modem ကေန လက္ခံပါတယ္၊ cellular modem က cell tower ကေနရလာတဲ့ physical transmission ကို decodes လုပ္တယ္၊ message ကို decode လုပ္ၿပီးသြားရင္ေတာ့ Android ရဲ့ အျခား အစိတ္အပိုင္ေတြကို ပို႔ပါတယ္၊ စတင္ပို႔တာကေတာ့ Linux kernal ျဖစ္ၿပီး အဲ့ဒီ့ကေန အျခားေသာ Android RIL ရဲ့ components ေတြကို အဆင့္ဆင့္ေရာက္ရွိသြားၿပီးေတာ့ ေနာက္ဆံုး မွာ SMS application ကိုေရာက္ပါတယ္၊ SMS ကို RIL ထဲကေန အဆင့္ဆင့္ ပို႔ေဆာင္တာကိုေတာ့ ဒီအခန္း တစ္ခန္းလံုးမွာ အေသးစိတ္ရွင္းျပသြားမွာပါ၊ ဒီေနရာမွာ စာအုပ္ရဲ့ အဓိက ရည္ရြယ္ခ်က္ျဖစ္တဲ့ RIL ကို ဘယ္လို တိုက္ခိုက္မလဲဆိုတာ ဆိုတာနဲ႔ ပက္သက္ၿပီးေလ့လာမွာျဖစ္ပါတယ္၊ ဒီလိုေလ့လာရာမွာ RIL ကို remotely တိုက္ခိုက္ႏိုင္တဲ့ အခ်က္ကို အဓိက ရွာေဖြၿပီးေတာ့ တိုက္ခိုက္သြားမွာျဖစ္ပါတယ္၊ ဒီလိုတိုက္ခိုက္ဖို႔ အတြက္လဲ RIL က remote attack surface ျဖစ္ေပၚေနတဲ့ software တစ္ခုကို ေထာက္ပန္႔ထားလို႔ပါ၊ RIL ကိုေအာင္ျမင္စြား တိုက္ခိုက္ႏိုင္ျခင္းက attacker (တိုက္ခိုက္သူေတြ) အတြက္ အျခား တိုက္ခိုက္လို႔ရႏိုင္မယ့္ လမ္းစေတြကိုေဖာ္ေပးခဲ့ပါတယ္၊ Tollfraud ကေတာ့ RIL ကိုေအာင္ျမင္စြာတိုက္ခိုက္ႏိုင္မယ့္ ျဖစ္ႏိုင္မယ့္ လမ္းစ တစ္ခုျဖစ္ပါတယ္၊ RIL ရဲ့ အဓီက function ကကို digital baseband နဲ႔ တြဲဖက္အလုပ္လုပ္ဖို႔ ျဖစ္တယ္၊ ဒါ့ေၾကာင့္ RIL ကို ထိန္းခ်ဳပ္ မယ္ဆိုတာက baseband ထဲကို ၀င္ေရာက္ႏိုင္ျခင္းနဲ႔ တိုက္ရိုက္ပက္သက္မူ ရွိေနပါတယ္၊ baseband ထဲကို ၀င္ေရာက္ခြင့္ရရင္ attacker က premium rate calls ေတြကို စတင္ႏိုင္သလို premium rate SMS message ေတြကိုလဲ ေပးပို႔ႏိုင္ပါၿပီ၊ ဒီအေျခအေနကိုေရာက္ရင္ေတာ့ attacker က စိတ္ႀကိဳက္ လိမ္လည္မူေတြလုပ္ႏိုင္သလို messages ေတြအႀကိမ္ႀကိမ္ ပို႔ျခင္း Phone အႀကိမ္ႀကိမ္ေခၚဆိုျခင္း Phone ေငြလြဲျခင္းတို႔လုပ္ၿပီးေတာ့ တိုက္ခိုက္လိုသူကို ေငြေၾကးကိစၥ ပါထိခိုက္ေအာင္ တိုက္ခိုက္ႏိုင္ပါၿပီ၊ ဒီလိုပဲ လွ်ိဳ႕၀ွက္ေထာက္လွမ္းဖို႔ ဆိုရင္လဲ စိတ္ႀကိဳက္ Phone calls နဲ႔ messages ေတြက တဆင့္ ေထာက္လွမ္းမူေတြျပဳလုပ္ႏိုင္ပါၿပီ၊ RIL က baseband ရဲ့ အျခား လုပ္ကိုင္ႏိုင္စြမ္းေတြျဖစ္တဲ့ auto-anser setting မ်ိဳးကိုလဲ ထိန္းခ်ဳပ္ႏိုင္ပါေသးတယ္၊ ဒီအခ်က္က ဖုန္းကို room bug အျဖစ္ေျပာင္းလဲႏို္င္တဲ့ အခ်က္ ျဖစ္ၿပီး enterprise environment အတြက္ တကယ့္ကို အႏၱရယ္ ရွိတဲ့အခ်က္ျဖစ္ပါတယ္၊ ေနာက္ထပ္ ျဖစ္ႏိုင္တဲ့ အခ်က္ကေတာ့ RIL ကေန တစ္ဆင့္ေပးပို႔သမွ် data ေတြကို ၾကားျဖတ္ဖမ္းျခင္းလဲ ျပဳလုပ္ႏိုင္ျခင္းပါ၊ RIL ကိုထိန္းခ်ဳပ္ႏိုင္ၿပီဆိုကတည္းကေတာ့ ပံမွန္ကာကြယ္မူေတြျဖစ္တဲ့ end-to-end encrypt ကို ဂရုစိုက္စရာ မလိုေတာ့ဘူးလို data ေတြကို စိတ္ႀကိဳက္သံုးရံုပဲ၊ အားလံုးကိုခ်ံဳၿပီးေျပာရရင္ RIL ကို ေအာင္ျမင္စြာ တိုက္ခိုက္ႏိုင္ရင္ RIL ကေထာက္ပံ့သမွ် အေရးႀကီးတဲ့ သတင္းအခ်က္အလက္ေတြ အားလံုးကို ရယူႏိုင္တယ္၊ ဒီလိုပဲ ဖုန္းေတြကို ပိုင္ရွင္ မသိေအာင္ တိုက္ခိုက္ၿပီး ေငြပါယူလို႔ရတယ္၊ (ဖုန္းက တဆင့္ အလိုေလွ်ာက္ ေငြလႊဲျခင္းမ်ိဳးပါ)၊
RIL Architecture
ဒီ section မွာ RIL နဲ႔ ပက္သက္တဲ့ အခ်က္အလက္ေတြ Android telephony stack နဲ႔ ပက္သက္တဲ့အခ်က္အလက္ေတြ ကို အက်မ္းဖ်င္း အေနနဲ႔ ေျပာၿပီးသြားၿပီ၊ အခု modern smartphones ေတြရဲ့ အမ်ားစု သံုးတဲ့ architectures ေတြအေၾကာင္းကို အက်မ္းဖ်င္း အေနနဲ႔ သေဘာေပါက္သြားၿပီ၊ ေဖာ္ျပထားတဲ့ architecture ကိုေတာ့ Android devices တိုင္းမွာေတြ႔ႏိုင္ပါတယ္၊
Smartphone Architecture
Mobile telephony stacks အေၾကာင္း ပိုၿပီးနားလည္ဖို႔ အတြက္ ဒီအခန္းမွာ mordern smartphone နဲ႔ ပက္သက္တဲ့design အေၾကာင္းကို ေလ့လာသြားၾကမယ္၊ cellular interface ပါ၀င္တဲ့ tablet ေတြကိုလဲ တူညီတဲ့ architecture ေတြနဲ႔ ပဲ တည္ေဆာက္ထားတာျဖစ္ပါတယ္ ခုေခါတ္ထြက္တဲ့ smartphone ေတြမွာ System အပိုင္း ႏွစ္ပိုင္းပါ၀င္ပါတယ္၊
ပထမ System ကိုေတာ့ application processor လို႔ေခၚတယ္၊ ဒီ system ရဲ့ subsstem မွာေတာ့ main processor ေတြအျဖစ္ multi-core ARM-baes central processing unit(CPU) ပါ၀င္တယ္၊ ဒီ subsytem ထဲမွာပဲ ခ်ိတ္ဆက္အလုပ္လုပ္တဲ့ hardwares ေတြျဖစ္တဲ့ display,tochstreen,storage, audio input နဲ႔ output ေတြပါ၀င္တယ္၊
ဒုတိယ system မွာေတာ့ cellular baseband (သို႔) celluar modem ပါ၀င္ပါတယ္၊ baseband က phone နဲ႔ cellular communication infracstructure အၾကား physical radio ခ်ိတ္ဆက္မူကို ကိုင္တြယ္အလုပ္လုပ္ပါတယ္၊ Basebands ေတြကို ARM CPU နဲ႔ digital signal processor(DSP) တို႔ကေန စီကုန္းထားတာျဖစ္တယ္(compose)၊ application processor နဲ႔ baseband အမ်ိဳးအစားေတြက ဖုန္းထုတ္လုပ္တဲ့ ကုမၼဏီေတြ နဲ႔ ဖုန္း အတြက္ အသံုးျပဳထားတဲ့ cellular network ေတြေပၚမွာ မူတည္ၿပီးေတာ့ ကြဲျပားမူရွိပါတယ္၊ အသံုးျပဳတဲ့ cellular network ဆိုတာ GSM network လား CDMA network လား 3G လား 4G Long Term Evolution (LTE) လားဆိုတဲ့ networks ေတြကိုေျပာပါတယ္၊
အထက္မွာေဖာ္ျပခဲ့တဲ့ subsystem ႏွစ္ခုက Device main board ေပၚမွာ တစ္ခုနဲ႔ တစ္ခု ခ်ိတ္ဆက္ေနၾကပါတယ္၊ ေစ်းႏွဳန္း သက္သာဖို႔ အတြက္ chipset ထုတ္လုပ္တဲ့ ကုမၼဏီေတြက sybsystem ႏွစ္ခုကို မခြဲထားေတာ့ပဲ chip တစ္ခုထဲမွာ ေပါင္းထည့္ၾကပါတယ္၊ ဒီလိုေပါင္းထည္လိုက္ေသာ္ျငား systems ေတြအလုပ္လုပ္ပံုက တစ္ခုနဲ႔ တစ္ခု အမွီအခိုကင္းပါတယ္၊ ေအာက္မွာေတာ့ modern smartphone တစ္ခုရဲ့ view ကို စိတ္ကူးပံု ေဖာ္ျပေပးထားတာပါ၊
Systems ႏွစ္ခုလံုးက interface ေတြက တကယ့္ components ေတြ နဲ႔ device ထုတ္လုပ္သူေတြ ေပၚမွာမွီခိုေနပါတယ္၊ အေတြ႔မ်ားတဲ့ interfaces ေတြကေတာ့ Serial Peripheral Interface (SPI) , Universal Serial Bus(USB), Universal Asynchronous Receiver/Transmitter (UART) န႔ဲ shared memory တို႔ ျဖစ္ပါတယ္၊ ဒီကြဲျပား ေသြဖယ္မူေၾကာင့္ပဲ RIL ကို flexible ျဖစ္ေအာင္ ဒီဇိုင္းဆြဲတည္ေဆာက္ထားတာျဖစ္ပါတယ္၊
အထက္က ပိုစ့္က waiferkolar ေရးထားတဲ့ Android Hack စာအုပ္ထဲက အခန္း ၁၁ Radio Interface Layout အား လက္ေတြ႔တိုက္ခိုက္ျခင္း အေၾကာင္း ထဲမွာပါတဲ့ မိတ္ဆက္အပိုင္းပါ၊ အထက္ကပိုစ့္က စာမ်က္ႏွာ ၃ မ်က္ႏွာေလာက္ပဲရွိပါေသးတယ္၊ မိတ္ဆက္အျဖစ္တင္ေပးတာပါ၊ တကယ့္စာအုပ္မွာပါ၀င္မယ့္ က႑ေတြကေတာ့
သင္ခန္းစာ ၁၁၊ Radio Interface Layer အား တိုက္ခိုက္ျခင္း
RIL (Radio Interface Layer မိတ္ဆက္)
RIL Architecture
Smartphone Architecture
Telephony Stack အေၾကာင္း
Telephony Stack လိုသလိုျပဳျပင္ျခင္း
The RIL Daemon (rild)
The Vendor-RIL API
Short Message Service (SMS) တိုက္ခိုက္ျခင္း
Messages ေပးပိုု႔ျခင္းႏွင့္ လက္ခံရယူျခင္း ဆင့္ကဲ ျဖစ္စဥ္၊
SMS Message ပို႔ရာတြင္ လက္ေတြ႔အသံုးျပဳ Format အေၾကာင္း
Interacting with the Modem
Modem အားနည္းခ်က္အား Fuzzing လုပ္၍ ရွာေဖြျခင္း
ဖုန္းထဲက SMS message မ်ားအား Fuzzing လုပ္၍ တိုက္ခိုက္ျခင္း
စာအုပ္က ၂၅ ရက္ေန႔ထြက္မွာပါ၊ ပံုႏွိပ္ထုတ္တာ မႏၱေလးမွာ ထုတ္ျဖစ္ၿပီး ခ်ဳပ္ေတာ့ရန္ကုန္မွာခ်ဳပ္ပါတယ္၊ စာအုပ္ကို သည္းခံၿပီးေစာင့္ေပးတဲ့ အတြက္ေက်းဇူးတင္ပါတယ္၊
Credit Brighter Myanmar
No comments:
Post a Comment