Справжня історія з моїх ранніх днів в Microsoft.
Ви не знали страху до того дня, як прокинетесь і побачите заголовок на ZDNet.com того ранку, як " Найгірший отвір безпеки Internet Explorer коли-небудь виявлено в" Blah ", де" Blah "- код, який ви написали самі півроку раніше .
Одразу після роботи я перевірив журнали змін та виявив, що хтось із іншої команди - хтось, якому ми довіряли вносити зміни в продукт - перевірив мій код, змінив купу параметрів реєстру безпеки без поважних причин, перевірив його ще раз і ніколи не отримав огляд коду і не розповів комусь про це. На сьогоднішній день я не маю уявлення, що на землі він думав, що робить; він пішов з компанії незабаром після цього. (З власної волі.)
(ОНОВЛЕННЯ: Кілька відповідей на питання, порушені в коментарях:
По-перше, зауважте, що я вирішу зайняти благодійну позицію, що зміни ключа безпеки були ненавмисними та ґрунтувалися на необережності чи незнайомості, а не на злобі. Я не маю жодних доказів так чи інакше, і вважаю, що розумно віднести помилки до помилки людини.
По-друге, наші системи перевірок зараз набагато, набагато міцніші, ніж вони були дванадцять років тому. Наприклад, зараз неможливо перевірити код без того, як система checkin надіслала список змін зацікавленим сторонам. Зокрема, зміни, здійснені пізно в судновому циклі, мають багато "процесу" навколо них, що забезпечує внесення правильних змін для забезпечення стабільності та безпеки продукту.)
У всякому разі, помилка полягала в тому, що об'єкт, який НЕ БЕЗПЕЧНО використовувати для Internet Explorer, випадково був випущений як позначений як "безпечний для сценаріїв". Об'єкт був здатний записувати двійкові файли - бібліотеки типу OLE Automation, насправді - на довільні місця на диску. Це означало, що зловмисник може створити бібліотеку типів, яка містить певні рядки ворожого коду, зберегти його до шляху, який був відомим виконуваним місцем, надати йому розширення чогось, що спричинило б запуск сценарію, і сподіваємось, що якось користувач випадково запустив би код. Я не знаю жодної успішної атаки "реального світу", яка використовувала цю вразливість, але з цим можна було випрацювати робочий подвиг.
Ми надіслали патч досить проклятим швидко для цього, дозвольте сказати.
Я викликав і згодом виправив ще багато дірок у безпеці в JScript, але жоден з них ніколи не дістався поблизу реклами, яку він зробив.