क्या एक दौड़ हालत है?
एक दौड़ हालत है जब कई प्रक्रियाओं का उपयोग और समवर्ती उसी डेटा हेरफेर, और निष्पादन का नतीजा होता है, जो में उपयोग होता है कि विशेष आदेश पर निर्भर करता है.
एक दौड़ हालत हित के एक हैकर जब दौड़ हालत विशेषाधिकृत प्रणाली पहुँच प्राप्त करने के लिए उपयोग किया जा सकता है.
जो एक दौड़ हालत illustrates निम्नलिखित कोड टुकड़ा पर विचार करें:
(पहुँच ( "/ tmp / datafile" अगर, R_OK) == 0) (
fd = खुला ( "/ tmp / datafile
प्रक्रिया () fd;
बंद () fd;
इस कोड को / tmp / datafile और फिर अस्थायी फ़ाइल बनाता है यह खोलता है.
संभावित दौड़ हालत को खोलने के लिए () और फोन का उपयोग करने के लिए फोन के बीच होता है ().
अगर एक हमलावर / tmp / के उपयोग के बीच datafile की सामग्री को बदल सकते हैं (), और वह है जो कि datafile का उपयोग करता है इस कार्यक्रम के कार्यों में हेरफेर कर सकते हैं () काम करता है, खोलो. यह दौड़ है.
क्योंकि आप "आप" जीत के पहले दौड़ "कई बार चलाने के लिए हो सकता है यह एक दौड़ हालत शोषण करने के लिए, कठिन हो सकता है." बाद के जोखिम को खोलता है और इससे पहले कि भेद्यता बंद तुम और तुम्हारे सामने बार के भेद्यता परीक्षण उपकरण हजारों की कमजोर कार्यक्रम चलाने के लिए निष्पादित करने के लिए expolit कोड प्राप्त हो सकती है. यह कभी कभी हमले `अच्छी का उपयोग करके एक अतिरिक्त धार देने के लिए संभव है` को वैध suid कार्यक्रम की प्राथमिकता को कम करने के लिए.
इस समारोह का अनुचित प्रयोग का उपयोग (), chown (), chgrp (), chmod (), mktemp (), tempnam (), tmpfile (), और tmpnam कॉल () एक दौड़ हालत के सामान्य कारण होते हैं.
|
जोखिम प्रबंधन Dummies के लिए
नवीनतम ब्लॉग पोस्ट
- SourceForge बनाम Freshmeat






