براش مهم نیست حقیقتا 🤓
هر Commit. اونجا حداقل دو زمان داره:
Author Date
زمان ادعایی نوشتن تغییرات.
Committer Date
زمان ثبت Commit در تاریخچه Git.
اغلب ابزارها به این دو زمان اعتماد میکنند، اما Git خودش بررسی نمیکند که این تاریخها واقعی باشند.
سوال) آیا میشود همه را گول زد؟ خیر
محققان حرفهای فقط به تاریخ Commit نگاه نمیکنند. آنها سراغ شواهد دیگری میروند:
●زمان Push شدن به GitHub
●زمان ایجاد Repository
●لاگهای سرور
●Pull Requests
●Issues
●Tags
●🎫امضای GPG روی Commitها
●آرشیوهای اینترنتی
●Snapshots
یعنی اسنپ شات های قدیمی پروژه
✍اگر این دادهها با تاریخ Commit ناسازگار باشند، جعل آشکار میشود.
شهودی:
فرض کن روی یک دفترچه یاداشت بنویسید:
"این یادداشت را در سال ۱۳۹۸ نوشتهام."
نوشتن این جمله آسان است.
👀اما اگر دوربینهای مداربسته، رسید خرید خودکار، پیامکها و شاهدان نشان دهند که دفترچه را تازه دیروز خریدهای، آن تاریخ دیگر مدرک معتبری نیست.
( مصیبت چنین جعل کودکانهای نیست! مصیبت بالغ شدن و بالنده شدن در جعل است! ما آدمبزرگ ها جلوی چشم هیچ دوربینی اینکارها را نمیکنیم! پیامک هم نمیدهیم! اصلا رد و اثری بر جا نمیگذاریم!!! و غافل ازینکه [او همه چیز را دیده و ثبت و ضبط کرده]...این درد از همه اینحرفهای صدمنیهغاز دردتر است)
در Git نیز تاریخ Commit بیشتر یک ادعا است تا یک مدرک قطعی.
شاید همین پیام اصلی وایتپیپر «When Git History Lies» است: گاهی تاریخچه Git میتواند گمراهکننده باشد، بنابراین برای تحلیل امنیتی نباید فقط به آن تکیه کرد.
#Commit_Date_Spoofing
#Git
@toobabigdatascience