Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Мазмұны
Кіріспе
Таинт тексеру – Perl, Ruby немесе Ballerina сияқты кейбір компьютерлік бағдарламалау тілдеріндегі мүмкіндік, ол қауіпсіздікті арттыру үшін жасалған, зиянды пайдаланушылардың хост компьютерде командаларды орындауына жол бермейді. Таинт тексерулер SQL инъекциясы немесе буфер асып кету шабуылдары сияқты техникалар арқылы шабуылға ұшыраған веб-сайттармен байланысты нақты қауіпсіздік тәуекелдерін анықтайды.
Taint checking is a feature in some computer programming languages, such as Perl, Ruby or Ballerina designed to increase security by preventing malicious users from executing commands on a host computer. Taint checks highlight specific security risks primarily associated with web sites which are attacked using techniques such as SQL injection or buffer overflow attack approaches.
Шолу
Таинт тексерудің қағидасы – сыртқы қолданушы өзгерте алатын кез келген айнымалы (мысалы, веб-формадағы өріс арқылы орнатылған айнымалы) потенциалды қауіпсіздік қаупін тудырады. Егер бұл айнымалы екінші айнымалыны анықтайтын өрнекте қолданылса, онда екінші айнымалы да күдікті болып есептеледі. Содан кейін таинт тексеру құралы сыртқы енгізілімге ұшырауы мүмкін айнымалылардың тізімін қалыптастыра отырып, айнымалыдан айнымалыға өтеді. Егер осы айнымалылардың кез келгені қауіпті командаларды орындау үшін қолданылса (мысалы, SQL дерекқорына немесе хост компьютердің операциялық жүйесіне тікелей командалар), таинт тексеруші бағдарламаның потенциалды қауіпті таинтталған айнымалыны пайдаланатыны туралы ескертеді. Компьютерлік бағдарламашы бағдарламаны қайта жобалап, қауіпті енгізілімге қауіпсіз қоршау құруы мүмкін. Таинт тексеруді толық араласпауды тексерудің консервативті жуықтауы немесе қауіпсіз ақпарат ағынының жалпы ұғымы ретінде қарастыруға болады. Ақпарат ағынын жүйеде тек бір орындалу ізбен тексеру мүмкін болмайтындықтан, таинтталған талдау нәтижелері осы жүйеге қолданылған ақпарат ағынының сипаттамалары туралы шамамен ақпаратты көрсетеді.
The concept behind taint checking is that any variable that can be modified by an outside user (for example a variable set by a field in a web form) poses a potential security risk. If that variable is used in an expression that sets a second variable, that second variable is now also suspicious. The taint checking tool can then proceed variable by variable forming a list of variables which are potentially influenced by outside input. If any of these variables is used to execute dangerous commands (such as direct commands to a SQL database or the host computer operating system), the taint checker warns that the program is using a potentially dangerous tainted variable. The computer programmer can then redesign the program to erect a safe wall around the dangerous input. Taint checking may be viewed as a conservative approximation of the full verification of non interference or the more general concept of secure information flow. Because information flow in a system cannot be verified by examining a single execution trace of that system, the results of taint analysis will necessarily reflect approximate information regarding the information flow characteristics of the system to which it is applied.
Тарих
Perl кем дегенде 3.0 нұсқасынан бастап (1989 жылы жарық көрген) setuid скрипттерінде деректерді ластау мүмкіндігін қолдады, бірақ бұл мүмкіндік 5.0 нұсқасына (1994 жылы жарық көрген) дейін толыққанды іске қосылмады. Дегенмен, қолдау эксперименталды деп есептелгендіктен, ол бастапқыда өшірілген күйде келді (қосу үшін пайдаланушының араласуы қажет болды) және деректерді ластау мүмкіндігінен пайдалану үшін сайт әзірлеушілері скрипттерді өзгертуге міндетті болды. Басқа браузер әзірлеушілері бұл мүмкіндікті ешқашан іске қоспады.
Perl supported tainting in setuid scripts from at least version 3.0 (released in 1989), though it was not until version 5.0 (released in 1994) However, since support was considered experimental, it shipped disabled (requiring user intervention to activate) and required page authors to modify scripts to benefit from it. Other browser vendors never implemented the functionality.