When I was casually examining my server log few months back, I noticed
something was going off beam. To my horror, the primary server crashed,
unable to take the load. Usually, I don't get that much traffic. Months
later, I realized that I was the victim of a DDOS attack. Being a hacker type
myself, I tried to investigate where I failed in my system administration.
And I started learning Raw Socket programming, in an effort to understand how
powerful it is under Linux. To my surprise, I realized any lamer can build up
Raw Socket applications and can effectively misuse this wonderful trait . I'd
like to share some of the interesting Raw Socket exploits. Don't ever try
this!
All along I was wondering if I could spoof my IP address and perform a SYN
Flood attack on a server using C with my Linux box (2.4.1), as I found out
that the hackers spoofed their source IP and ... (more)
(October 11, 2002) - Often it is necessary to encrypt confidential messages
and send them across a stream for better Data veracity. With JCE, you can
encrypt streams of data and decrypt them using public/private key pair or
using a single signature key file. The technique involves associating a
Cipher object to Input or Output Stream. Please note that JCE is different
from JSA and you need Java Cryptography Extension APIs to work with this
example. JDK 1.4 comes with JCE APIs.
Let's create a simple program, which initializes a KeyGenerator class,
instantiates a Cipher Object usin... (more)
Network systems based on service discovery can provide a consistent view of
their distributed components even during changing network conditions. The
ability of a system to heal itself during a network catastrophe, including
architectural change and system breakdown, will help the system to realign
its content traversal route intelligently and swiftly. This ability can be
obtained from various healing strategies like failure detection, consistency
maintenance, and distributed service activation techniques.
A complete understanding of the interactions among self-healing strategies ... (more)
Tell me one good reason why anyone would despise dynamic class loading in
Java. Chances are that no one will. Neither did I, until I reached a point
where I could not contain my despair seeing it being much used and abused.
RMI is an inherent evil. Say that to a group of Java programmers and try
staying there a while. These guys have developed extremely flexible and
robust network applications exploiting the clout of dynamic class loading.
Well RMI is good as an optimal distributed solution, but invoking runtime
instances from an arbitrary VM of different security context may compr... (more)
(April 24, 2003) - While designing Enterprise frameworks, you ought to be
very cautious about exposing runtime instances of classes encompassing secure
transaction or management core, outlining Intellectual Property of the
enterprise. Often it is required to create a proxy wrapper around objects so
method-invoke requests can be pre-processed before being associated with the
original instance. Very few Java developers are accustomed to abstract their
management objects by creating dynamic proxy wrappers.
java.lang.reflect.Proxy class provides methods for creating dynamic proxy
cla... (more)