Tuesday, December 18, 2018

Analisa trafik di laman sesawang dengan Google Analytics

Data sangat penting untuk menentukan tindakan dan strategi yang akan diambil untuk memperbaiki perkhidmatan yang disediakan. Dalam kes laman sesawang, pengurus kandungan (Content Manager) boleh melihat masa, masa, lokasi dan kandungan yang menarik trafik ke laman sesawang. Sekiranya anda mempunyai laman sesawang peribadi atau menguruskan laman sesawang organisasi, anda tentunya ingin menjejak trafik ke laman sesawang anda. Anda ada beberapa kaedah untuk mengesan trafik. Salah satunya Google Analytics.

Google Analytics ialah perkhidmatan analisa web percuma dan premium yang ditawarkan oleh Google untuk menjejak dan melapor trafik laman sesawang. Berikut adalah kaedah untuk mula menjejaki aliran trafik ke laman sesawang menggunakan Google Analytics.

Prasyarat
Anda mempunyai akaun Google. Sekiranya belum, anda boleh Sign Up akaun Google.

Langkah-langkah
Sekiranya anda telah mempunyai akaun google, sila buka URL berikut:

https://analytics.google.com

Login, cipta akaun analytic yang baru, kemudian cipta "Property".

Cipta Property baru.
Masukkan maklumat berikut seperti: Nama website, URL Category dan Time Zone.

Setting Property baru.
Google Analytics akan menjana Tracking Code dan Javascript.

JavaScript ini membolehkan Google Analytics menganalisa trafik.
Sekiranya laman sesawang anda telah mempunyai opsyen Google Analytics Tracking Code, hanya Copy dan Paste Tracking Code. Sekiranya tiada, bolehlah Copy dan Paste JavaScript ke dalam code laman sesawang anda. 

Anda boleh cuba akses laman sesawang anda dan lihat laporan Real Time. Anda akan melihat statistik seperti di bawah mula dilaporkan.

Laporan trafik boleh dilihat secara Real Time

Antara contoh statistik ialah seperti di bawah

statistik trafik mengikut bilangan vs tarikh
Statistik mengikut geo lokasi, masa dan peranti (device)

Anda boleh boleh mencipta sehingga 50 "Property" atau laporan secara percuma untuk laman sesawang yang berlainan.

Selamat mencuba.


Monday, December 17, 2018

How to block Baidu using Cloudflare

Bots and crawlers sometimes don't play nice especially Baidu. It consumes your server bandwidth and resources. If you feel your website's content doesn't concern those in China, then it is better to block Baidu Spider from crawling your websites especially when it consumes your limited server resources. In my case, library OPAC using Koha Open Source Library System serve a lot of data about books and library resources which is queried from the database (e.g: maria DB or Mysql). Small libraries couldn't afford high-end server and pricey firewall. When crawled by spider extensively and repetitively like Baidu, mj12bot, Yandex... it consumes all the CPU resources.

Multiple bots, spiders and crawlers at the same time might have DDoS effect. CPU fully consumed and high RAM load.
Searching from library OPAC database requires a lot of CPU processing. Sometimes, the librarian couldn't do their daily tasks such as Cataloging, Check In and Check Out books due to server CPU and RAM completely occupied. Static web pages do not suffer from this kind of resource limitation.

Most of the advice is to set robots.txt and block spider from accessing your website's content. Rules such as:

User-agent: Baidu
User-agent: Baiduspider
User-agent: Baiduspider-video
User-agent: Baiduspider-image
Disallow: /
However, when I view apache logs, Bad Bots such as Baidu spider keep ignoring the robots.txt rules and consume most of the server bandwidth. After some research, I have advised the library to sign up with Cloudflare (it is FREE by the way) for protection.

The following are steps to block Baidu Spider from accessing your websites.

A. Prerequisites

  • Sign Up with Cloudflare
  • Assign your domain nameserver to Cloudflare nameserver.
B. Block Baidu
  • Set your subdomain through "Cloudflare Orange Cloud"

  • Using Cloudflare Firewall, set the following Rules. Select Field="User Agent", Operator="Contains", Value="Baiduspider/2.0". Click Save.

  • Done.. 
Continuously monitor server resources and web server logs.. After few hours, you can check the firewall events.

Firewall events shows Baidu Spider successfully block

Details of Firewall events. Baidu has been successfully blocked.

Thanks to Cloudflare, the library system resources now is freed.

CPU resources now < 10%.

If you want to completely block all bots, you can try Firewall Rules: Field="User Agent", Operator="Contains", Value="bot". You may also specifically identify each bots and add rules for each bot. Since Cloudflare only gives 5 Rules for Free account, I combine all the bots I want to block in one rule.

Bots can be combine using OR. So I use only one rule to block bots which mean I have another 4.

I am not an expert in web security, just research, try and error. I hope this article helps those who face similar problems. 

Sunday, December 16, 2018

CIMBClicks kena attack?

Hari ini tular mengatakan laman sesawang bank terkemuka di Malaysia kena attack. Alhasilnya dikatakan ramai yang kehilangan duit melalui pengeluaran paypal.

Cuba periksa domain cimbclicks.com.my di dnsvis.net.

Ini hasilnya..


Rupa-rupanya domain sesawang ini tidak di'secure' dengan dnssec. Kemungkinan besar laman sesawang ini telah di'spoof' oleh pihak yang tidak bertanggungjawab.

Spoofing boleh dijelaskan menggunakan rajah berikut:
(Sumber:https://www.incapsula.com/web-application-security/dns-spoofing.html)

Apabila laman sesawang tersebut telah di'spoof', laman tersebut di'clone' oleh attacker. Pengguna di route ke website fake yang telah di'clone' oleh attacker bagi tujuan mengutip data login account pengguna. Attacker boleh menggunakan data tersebut untuk tujuan selanjutnya...

Boleh semak laman seesawang perbankan online anda di dnsviz.net. Semoga artikel ini bermanfaat.

Saturday, December 15, 2018

DNSSEC domain MyNIC menggunakan Cloudflare


Langkah demi langkah DNSSEC setup (MyNIC - Cloudflare)

Hari ini sementara menunggu kereta diservis di Pusat servis, saya ceritakan langkah-langkah setup DNSSEC MyNIC - Cloudflare kerana puas menggoogle, tidak ketemu manual atau documentasi tersebut. Saya menulis artikel ini sebagai rujukan saya pada masa akan datang dan kawan-kawan yang ingin merujuk.

Apa itu DNSSEC

Menurut Wikipedia, DNSSEC direka untuk mempertahankan aplikasi daripda menggunakan 'forged' atau manipulasi DNS data seperti ancaman "DNS cache poisoning". Semua transaksi daripada DNSSEC protected zone di'sign' secara digital. Dengan menyemak Digital SIgnature, DNS resolver boleh memastikan sama ada maklumat DNS (seperti TXT, MX, A record) tersebut sama (tidak diubah atau dimanipulasi) dengan maklumat yang dipaparkan oleh Zone Owner (pemilik). Ini dapat memastikan langkah-langkah keselamatan seterusnya untuk aplikasi lain seperti SSH fingerprints, IPSec Public Keys dan TLS Trust Anchors.

Senang cerita ia adalah protokol keselamatan untuk memastikan nama domain tersebut datang dari sumber yang betul lagi sahih ketika melayari laman sesawang domain tersebut. DNS Spoof dilakukan seperti rajah 1, manakala DNSSEC menggunakan kaedah seperti di rajah 2 untuk mengatasi ancaman DNS spoof.


(Rajah 1 -Sumber: https://www.keycdn.com/support/dns-spoofing ). Bayangkan attacker boleh memalukan sesebuah organisasi dengan mengalihkan trafik ke laman sesawang di mana kandungannya telah diubah atau laman sesawang yang mengandungi kandungan yang tidak senonoh.



Contohnya anda hendak login akaun anda di Lazada.com.my. Anda ingat anda login di lazada, rupanya-rupanya server lain yang sebiji macam lazada. Anda tentu tidak mahu nama pengguna dan  kata laluan anda jatuh ke tangan orang lain. DNSSEC bertujuan untuk mengelakkan domain seperti lazada.com.my dari di 'spoof' oleh pihak yang tidak bertanggungjawab. Dengan menggunakan digital signature, DNS resolver menyemak tandatangan digital daripada pemilik domain tersebut (Zone Owner) dan memastikan rekod-rekod yang dipaparkan oleh DNS adalah betul. Saya akan menulis satu artikel menerangkan apa itu DNS di sini.

Ancaman DNS spoof adalah serius dan boleh mengakibatkan kerugian jutaan ringgit dalam bentuk kehilangan urusan transaksi atau pencemaran imej untuk syarikat-syarikat besar seperti AirAsia.com, Lazada, Shopee dan lain-lain. Saham syarikat juga boleh merudum apabila melibatkan kerosakan kedibiliti.

Pra-Syarat

Sebelum mengikut langkah-langkah di di bawah nanti, anda perlulah mempunyai kelayakan seperti berikut:

- Anda telah mempunyai nama domain. Sekiranya belum, bolehlah beli daripada salah satu domain (.my, .com.my, .net.my dll... dengan hujungnya .my) name reseller MyNIC seperti Exabytes.my. Untuk TLD yang lain seperti .com, .net, .biz .. boleh lah beli dengan GoDaddy.com
- Anda adalah Technical Contact untuk domain tersebut. Sekiranya belum, bolehlah melantik diri sendiri sebagai Technical Contact di MyNIC. Sila ikuti artikel ini.
- Anda telah mempunyai akaun Cloudflare. Sign Up adalah PERCUMA.
- Anda telah mengubah nameserver ke Cloudflare. Anda boleh login ke Cloudflare untuk manage DNS.
- Periksa status DNS anda di http://dnsviz.net/

DNS yang belum di 'secure' menggunakan DNSSEC statusnya lebih kurang seperti ini:

Gambar di atas menunjukkan maklumat yang diberikan oleh nameserver domain tersebut belum di 'secure'. Maklumat-maklumat tersebut seperti A record, TXT record, NS (NameServer) record, MX (Mail eXchanger) record.

Setup DNSSEC

1. Login ke Cloudflare. Pilih nama domain dan pilih DNS. Scroll ke bawah. Klik Enable DNSSEC


2. Copy Digital Signature (DS) Record.

3. Login ke MyNIC. Pilih MyNIC Domain Management System. Klik DNSSEC --> Enable/Disable DNSSEC. Search domain name, select domain name berkenaan dan klik Enable, Agree to Term and Conditions dan Submit.



4. Update Key untuk DNSSEC. Klik Domain Name --> DNSSEC --> Update Key. Search domain name tadi, pilih dan klik Retrieve Key from server. Langkah ini untuk memuat turun Digital Signature key yang telah dicipta di Cloudflare selaku Domain Name Server.

Gambar di atas menunjukkan Digital Signature Key yang berjaya dimuat turun daripada DNS Cloudflare. Sekiranya langkah 1 tidak dibuat, ia akan memaparkan unable to Retrieve Key. Klik Update Key Status. Status akan bertukar kepada Pending Publish. Tunggu beberapa jam sebelum status bertukar kepada Publish.

Selepas itu boleh lah semak status DNS domain name anda di DNS Visualizer.

Sekarang DS Key saya dah published. Boleh lihat status di MyNIC. 

Status di dnsvis.net juga telah berubah seperti berikut:



Sekian, selamat mencuba.

Lawak PHP SQL

Minggu peperiksaan telah tiba. Seperti biasa pelajar bertungkus lumus menyiapkan tugasan yang diberikan. Tidak kurang pula yang buat 'last minute'. Time ni la ramai yang consult...

Antara soalan lawak yang saya tak tahan nak tergelak ialah seperti di bawah...

Kenapa coding php saya ada error ya? 🤣🤣🤣


Friday, December 14, 2018

Catching Up with Web Security

Dah lama tak update dengan web security semenjak menjadi mantan webmaster. Sesungguhnya kerjaya menjaga dan menguruskan aplikasi server sekitar hujung 90an dan awal 2000 dirasakan sudah mencabar.. namun belum cukup lagi mencabar sekiranya nak dibandingkan dengan cabaran masa kini... (berapa kali cabaran lah...)

Aplikasi server kini perlu mengambil kira banyak faktor.. antaranya ancaman-ancaman

  1. DoS dan DDoS attack - Denial of Services dan Distributed Denial of Services. Serangan ini bertujuan melumpuhkan aplikasi atau website. Kesannya, website yang diserang tidak boleh diakses dan boleh mengakibatkan kerugian kepada perniagaan.
  2. SQL Injection - Kaedah mendapatkan data sensitif seperti username dan password dengan memanipulasi kod SQL.
  3. Cross Scripting - Memasukkan kod programming di tempat yang tidak sepatutnya. Contohnya memasukkan java script di dalam form dengan harapan script tersebut akan di'execute'.
  4. Bots/Spider - Bot ni kerjanya mengindeks website supaya pengguna Internet membuat carian dan menjumpai website anda. Namum apabila terlampau banyak bot, ia akan membebankan server.
  5. Scraper - Data adalah bernilai terutama apabila ia telah diindeks, disusun, dan disimpulkan untuk tujuan marketing. Scraper adalah kaedah mendapatkan data-data tersebut daripada Internet. Scraper yang tidak bertanggungjawab boleh mengakibatkan kesan seperti DDoS dan Bots.
Kalau ada masa insyaAllah saya akan huraikan satu persatu.


Amzari.com is now alive!!

Asssalamualaikum and good morning..

Amzari.com is now alive after has been kept passive for few years. I keep this domain name from 2007 and use it for blogging. Now, I intended to blog again.. pray for my success and istiqamah. haha...

Previously I used wordpress for blogging. It is a bit tedious to maintain and upgrade wordpress. Back then in 2012, all these SQL injection, security issues, wordpress versioning and keep changing direction... It has been troublesome to keep up with the maintenance. At the end I decided to end the blog. The backup also gone with the expiring Bluehost hosting account. I just keep the domain name.. sayang ooo kalau terlepas ke tangan orang lain.

Now, I decided to use blogger which is easier. I just map my domain name to Cloudflare and point it towards ghs.googlehosted.com. Walla.. it is done! Just a few things need to setup such as HTTPS, SSL and etc.. I think the blog is good to go.

I am looking forward to produce good articles and have a new direction in 2019. Keep in touch..

Ciow...

Amzari
Shah Alam.


Analisa trafik di laman sesawang dengan Google Analytics

Data sangat penting untuk menentukan tindakan dan strategi yang akan diambil untuk memperbaiki perkhidmatan yang disediakan. Dalam kes lama...