Kornia: an Open Source Differentiable Computer Vision Library for PyTorch

This work presents Kornia – an open source computer
vision library which consists of a set of differentiable rou-
tines and modules to solve generic computer vision prob-
lems. The package uses PyTorch as its main backend both
for efficiency and to take advantage of the reverse-mode
auto-differentiation to define and compute the gradient of
complex functions. Inspired by OpenCV, Kornia is com-
posed of a set of modules containing operators that can be
inserted inside neural networks to train models to perform
image transformations, camera calibration, epipolar geom-
etry, and low level image processing techniques, such as
filtering and edge detection that operate directly on high
dimensional tensor representations. Examples of classical
vision problems implemented using our framework are pro-
vided including a benchmark comparing to existing vision
libraries.

Referensi

  • https://arxiv.org/pdf/1910.02190.pdf
  • https://github.com/kornia/kornia
  • https://twitter.com/kornia_foss

PC Mainboard Schematics: Gigabyte

Gigabyte Motherboards:

Gigabyte GA-EG31M-S2

https://www.gigabyte.com/Motherboard/GA-EG31M-S2-rev-20

Gigabyte GA-EP31 DS3L

https://www.gigabyte.com/Motherboard/GA-EP31-DS3L-rev-10

GA-G33M-DS2R

https://www.gigabyte.com/Motherboard/GA-G33M-DS2R-rev-1x

GA-G31M-S3L

https://www.gigabyte.com/Motherboard/GA-G31-S3L-rev-1x

GA-G31M-S2L

https://www.gigabyte.com/id/Motherboard/GA-G31M-S2L-rev-10

GA-G31M-ES2L

https://www.gigabyte.com/id/Motherboard/GA-G31M-ES2L-rev-23/sp

Referensi

 

 

Belajar Penglihatan Komputer dari Prinsip Dasar

fdafda

Belajar dari prinsip dasar

Video di kanal youtube: :https://www.youtube.com/channel/UCf0WB91t8Ky6AuYcQV0CcLw/playlists

Daftar Slide: https://fpcv.cs.columbia.edu/Monographs

Daftar Slide

  • “Introduction to Computer Vision,” Shree K. Nayar,
    Monograph FPCV-0-1, First Principles of Computer Vision,
    Columbia University, New York, Feb. 2022
    [PDF] [bib] [©]
  • “Image Formation,”Shree K. Nayar,Monograph FPCV-1-1, First Principles of Computer Vision,Columbia University, New York, Feb. 2022[PDF] [bib] [©]
  • “Image Sensing,” Shree K. Nayar,Monograph FPCV-1-2, First Principles of Computer Vision,Columbia University, New York, Feb. 2022[PDF] [bib] [©]
  • “Binary Images,” Shree K. Nayar, Monograph FPCV-1-3, First Principles of Computer Vision,Columbia University, New York, Mar. 2022 [PDF] [bib] [©]
  • “Image Processing I,”
    Shree K. Nayar,
    Monograph FPCV-1-4, First Principles of Computer Vision,
    Columbia University, New York, Mar. 2022
    [PDF] [bib] [©]
  • “Image Processing II,”
    Shree K. Nayar,
    Monograph FPCV-1-5, First Principles of Computer Vision,
    Columbia University, New York, Mar. 2022
    [PDF] [bib] [©]
  • “Edge Detection,”
    Shree K. Nayar,
    Monograph FPCV-2-1, First Principles of Computer Vision,
    Columbia University, New York, May. 2022
    [PDF] [bib] [©]
  • “Boundary Detection,”
    Shree K. Nayar,
    Monograph FPCV-2-2, First Principles of Computer Vision,
    Columbia University, New York, Jun. 2022
    [PDF] [bib] [©]
  • “SIFT Detector,”
    Shree K. Nayar,
    Monograph FPCV-2-3, First Principles of Computer Vision,
    Columbia University, New York, Aug. 2022
    [PDF] [bib] [©]

 

Tips pemakaian Wireshark

Ethernet frame mengandung CRC di bagian belakangnya. Di kebanyakan NIC (Network Interface Card), CRC dari ethernet ini tidak dikirim ke software aplikasi. Jika terjadi kesalahan pada CRC, maka frame tersebut dianggap rusak, jadi tidak dikirim sama sekali.

CRC di ethernet frame tidak muncul di wireshark, karena sudah dipotong di NIC
Referensi: https://osqa-ask.wireshark.org/questions/20862/how-to-display-the-packets-crc-in-the-gui-and-how-to-edit-crc-with-bad-value/

Paket IPv4 outgoing biasanya berisi checksum header 0000. Checksum ini akan diisi oleh hardware di layer fisik. Tujuannya untuk mengurangi beban komputasi di CPU. Checksum 0000 ini dianggap kesalahan oleh WireShark. Untuk tidak menampilkan pesan kesalahan, kita dapat disable pengecekan checksum IPv4. Default setting wireshark adalah tidak mengecek checksum di header IPv4.

Prosedur mengaktifkan/menonaktifkan header checksump IPv4 dapat dilihat di artikel https://packetlife.net/blog/2008/aug/23/disabling-checksum-validation-wireshark/

Keamanan Aplikasi Database

Sistem basis data perlu tersambung dengan aplikasi yang menggunakan data di basis data tersebut. Aplikasi ini dapat menjadi sebagai jalur serangan ke suatu basis data.

Berikut ini mekanisme serangan melalui aplikasi:

  • Username:password untuk akses database tersimpan sebagai cleartext di aplikasi, atau di file konfigurasi aplikasi.
  • Jika file aplikasi atau file konfigurasi tersebut dapat diakses, maka penyerang dapat mengakses database sesuai dengan hak akses username yang bocor.
  • File konfigurasi umumnya menggunakan format yang mudah dibaca, seperti TXT, JSON, CSV , YAML dan sebagainya. Jika file ini dapat terbaca oleh penyerang, maka database dapat langsung diakses.
  • Konfigurasi yang ada di file aplikasi lebih sulit dibaca, namun tetap dapat dilakukan dengan reverse engineering

Hubungan Aplikasi dengan server basis data

Berikut ini ilustrasi hubungan antara server aplikasi dengan server basis data.

Server aplikasi dan server server database dapat berada di server terpisah maupun di server yang sama.

Komponen Aplikasi berbasis web

Berikut ini komponen-komponen pada aplikasi berbasis teknologi web

Database berfungsi menyimpan data yang sifatnya non-volatile atau persisten.

Aplikasi berfungsi mengakses dan memanimulasi data di database. Contoh aplikasi ini dibuat dengan bahasa PHP, Java, Python dan sebagainya. Biasanya ada library khusus di masing-masing bahasa pemrograman itu sebagai konektor ke database.

Web Server berfungsi menampilkan data dari aplikasi sesuai dengan format HTML. Contoh web server ini misalnya Apache web server.

Web Client berfungsi menampilkan data dari web server ke pengguna. Contoh web browser ini misalnya Firefox, Chrome, Safari, dan sebagainya.

Password Database dari Command Line

Berikut ini contoh kebocoran username & password karena mengakses database dari command line.

Perintah login mysql:

mysql -uusername –ppassword

Perintah itu akan kelihatan pada process list Linux dengan perintah ps –aux:

waskita@downloader:~ % ps aux | grep mysql

waskita 39543   0.0  0.1  32296  4588  0  I+    1:52PM      0:00.01 mysql -uroot -ppassword

waskita 39554   0.0  0.0  18804  1872  1  S+    1:53PM      0:00.00 grep mysql

Hal ini menjadi masalah kalau server yang dipakai adalah server dengan banyak user. Solusinya adalah  tidak mengetik password dari command line, tapi diketik ketika diminta oleh aplikasi mysql client.

Reverse Engineering Aplikasi

Aplikasi dapat berisi username dan password untuk mengakses database. Jika kode aplikasi ini bocor, maka akses ke database menjadi terbuka.

Reverse Engineer application software dapat dilakukan dengan berbagai cara:

  • binary aplikasi umumnya dapat diakses
  • kadang-kadang source code juga dapat diakses, misal aplikasi open source, atau kalau source code juga berhasil dibobol oleh penyerang.
  • vulnerability dapat dipelajari dari binary ataupun source code

Deployment aplikasi:

  • binary (C/C++)
  • bytecode (Java, .NET)
  • source (PHP, Python, Javascript)

Solusi menghindari reverse engineering adalah sebagai berikut:

  • Deployment compiled binary code. Kode yang dijalankan di server produksi adalah hasil kompilasi, bukan source code ataupun interpreted.
  • Obfuscated binary. Kode yang sudah dicompile dapat diacak sehingga secara fungsional sama, namun sangat sulit untuk direverse engineering.
  • Obfuscated source. Pada bahasa interpreted, tidak ada opsi kompilasi, sehingga software harus dijalankan dalam bentuk source code. Untuk menyulitkan penyerang, dapat dilakukan pengacakan source code supaya sulit dilacak cara kerjanya. Biasanya dengan cara mengganti nama-nama variabel dan mengubah struktur software secara umum.

Application Obfuscation

The main obfuscation categories are as follows:

  • Layout obfuscation, including identifier scrambling, removing of comments, and method locations
  • Data obfuscation, affecting the data structures and data encoding
  • Control obfuscation, including reordering techniques, adding irrelevant statements as “camouflage,” and more
  • Adding code that tries to “break” decompilers. For example, for many years the most commonly used decompiler for Java was a freeware program called Mocha. An obfuscator appropriately called HoseMocha appends extra instructions after the return instruction, which does not affect the execution of the program but causes Mocha to crash.

Monitor Login

  • Akses database dicatat dalam logfile , termasuk login
  • Dapat mengetahui siapa saja yang mengakses database
  • Perubahan akses (user baru, aplikasi baru, alamat baru). Serangan dapat nampak sebagai pola akses baru.

Data Obfuscation

  • Data obfuscation, affecting the data structures and data encoding. For example, a two-dimensional array may be converted into a onedimensional array and spread around. An iteration of the form:
  • int i=1;
  • while (i < 100) {
  • .. arr[i] ..
  • i++
  • }

SQL INJECTION MYTHS AND FALLACIES

  • http://bobby-tables.com/
  • http://www.slideshare.net/billkarwin/sql-injection-myths-and-fallacies

WHAT IS SQL INJECTION?

Contoh

http://example.com/show.php?bugid=1234

Hasil query SQL ke database

SELECT * FROM Bugs

WHERE bug_id = $_GET[‘bugid’]

user input

Contoh URL:
http://example.com/show.php?bugid=1234 OR TRUE

Hasil Query SQL:

SELECT * FROM Bugs

WHERE bug_id = 1234 OR TRUE

WORSE SQL INJECTION (1)

URL

http://example.com/changepass.php?acctid=1234 &pass=xyzzy

Hasil query SQL ke database

UPDATE Accounts

SET password = SHA2(‘$password’)

WHERE account_id = $account_id

URL:

http://example.com/changepass.php?acctid=1234 OR TRUE &pass=xyzzy’), admin=(‘1

Hasil query SQL:

UPDATE Accounts

SET password = SHA2(‘xyzzy’), admin=(‘1’)

WHERE account_id = 1234 OR TRUE

Catatan

•admin=(‘1’) -> mengubah akun administrator

•OR TRUE -> mengubah password semua akun

https://xkcd.com/327/Exploits of a Mom