August 21, 2006

Security Hacking Conferences: Feeding your Technical Mind

Obviously, due to professional, personal and financial reasons, security professionals cannot attend all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 multiple security and hacking conferences that are held out cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re, worldwide, throughout cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 year. In order to stay current on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 latest security threats, tools, research and improvements, trying to feed our hungry technical minds, we can instead (although being cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re in person cannot be compared to...) access cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 conferences main homepages.

Almost all conferences have an archive section from where you can download cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 presentations (commonly in PDF or PowerPoint format) or even cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 event audio and video recordings. The following is an incomplete list of all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 major technical security hacking conferences all over cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 world:

NOTE: This list is continuously updated with new infosec conferences I hear about! [UPDATED: June 3, 2009]

But, if you are interested on being notified about new upcoming conferences and events, I strongly recommend cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365se Web sites and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir feeds:


BTW, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 official BlackHat US 2006 and DEFCON 14 archives will be completely released any time now. Meanwhile, you can access all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 material here. Thanks Mr.X for providing this early access!

Now, you have tons of material to read, listen and watch. Enjoy it!!

August 15, 2006

Sandboxing with SELinux in FC5

Since in November 2004, Joanna Rutkowska published "Red Pill... or how to detect VMM using (almost) one CPU instruction", tools for detecting when a program is running in a virtual machine have improved a lot. Pioneer or cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 programs mentioned by Ed Skoudis and Tom Liston are good examples of those tools. Using cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m (or cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 concepts behind cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m) malware authors can check if cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 program is running in a virtual environment and behave in a unsuspicious way. This concept has been previously demonstrated by us as a small example in RaDa.

But if we can not trust behavioral analysis running a binary in a virtual machine, how can you safely incorporate software from untrusted sources? This may happen very often to you independently of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 platform that you use. There are a lot of useful programs that come from untrusted sources, and you just can't spend cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 time reading its source code (in case it is available).

Don't worry! SELinux comes to your rescue. Among cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 different approaches to this problem, SELinux is cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 one that offers real control over cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 binary and as much isolation as needed for Linux binaries. SELinux takes advantage of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Linux Security Modules (LSM) framework to implement mandatory access control (MAC) in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Linux kernel. It is supported by most major distributions (i.e. all but SuSE that uses AppArmor.)

SELinux enforcement is coded in a kernel module, but cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 policy used can be changed dynamically allowing to implement different security models. Fedora Core 2 was, as far as I remember, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 first distribution that included SELinux and a strict policy file. That policy tried to restrict undesired behavior so much that using it was too complex for normal users. It is still available for later versions of Fedora, but cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 team that developed cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 policies decided to simplify cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 model to be able to achieve cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir goal: having a system where cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 user was protected from system applications that were listening on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 network. That was cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 origin of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 targeted policy that tries to isolate cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 programs that are used by malware for remote access, each one running in a different domain, while keeping cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 rest of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 system as if SELinux was not running.

Thus, what we can do is define our own domain for suspicious binary execution. In order to be able to do so, you need cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 checkpolicy package installed. If you are using yum, which I definitely recommend, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 command "yum install checkpolicy" should do. Then, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 easiest way is to run cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 policygentool:
cd /usr/share/selinux/devel/
policygentool mybinary /path/to/mybinary

After some questions about cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 program, it will create three files (mybinary.{fc,if,te}). The file context, used to label cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 files, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 public interfaces, that define cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 transitions to and from ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r domains, and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 type enforcement, that contains cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 rules for this domain. You can edit cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365se text files later. By now just try to compile cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m using:
make -f Makefile

A policy module file will be created mybinary.pp. That module can be loaded using semodule, and relabel cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 executable using restorecon:
semodule -i mybinary.pp
restorecon -v /usr/sbin/mybinary

Since cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 default policy is very restrictive for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 binary, SELinux will prevent it from doing much when running. However, this is exactly what you need to debug your policy. Execute cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 binary and collect avc (Access Vector Cache) messages. In Fedora Core 5, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 audit daemon is not installed by default, and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 avc messages can be found in /var/log/messages. But if you choose to install and enable cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 audit daemon, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 messages will be in /var/log/audit/audit.log.
audit2allow can cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n be used to translate cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 avc messages to allow rules to fix cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 policy files (mainly cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 type enforcement). audit2allow -R will attempt to find interfaces that match cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 allow rule.
Some help to edit your policy:
Some additional hints:
  • Limiting read access is only based in contexts. When you allow read or write access to a context, all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 files in that context are allowed. You can relabel some files, but cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n be sure that you can easily reinstall cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 system.
  • SELinux works mainly for Linux, but cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re are some ports of this solutions to FreeBSD and Mac OS X. There are some propietary solutions for Windows, like CA's eTrust Access Control, too.
  • There is a performance impact in running SELinux, but you are probably running it anyhow and using a VM isn't a better alternative in terms of performance.

Enjoy your sandbox!

August 08, 2006

Fake "Cannot find server" Web Pages

This is probably old news to many but it might save you some time if you didn't know before.

I've come across this simple trick to simulate having taken down a web server, being used in a real case I was investigating: suppose you find a trojan that steals information and sends it to a central web server; suppose you contact cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 ISP of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 web server and ask cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m to take cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 server down; suppose cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y respond accepting cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 request; finally, suppose you try to connect to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 server using your Internet Explorer and you get cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 following response:


Does that mean cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 web server is down? Well, not necessarily. The page you are seeing is just a regular HTML page. It may have been displayed by Internet Explorer itself because it wasn't able to contact cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 server OR it may have been sent back by cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 same server that pretends to be down!

Looking at your network traces will leave no doubt of which of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 two possibilities you are facing, but cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 point is: you need to check your traces. In my case, it was cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 last one.

By cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 way, if you look at cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 source code of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 page and see this javascript code, don't freak out: it's been copied from an original IE error page. It's cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 code that allows cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 user to click in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 "Detect Network Setttings" link (see cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 screenshot) and have IE autodetect cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 proxy settings:

[...]
<[REMOVETHIS]SCRIPT>function doNetDetect() {
saOC.NETDetectNextNavigate();
location.reload();
}
<[REMOVETHIS]/SCRIPT><[REMOVETHIS]body bgcolor="white">
<[REMOVETHIS]object id=saOC CLASSID='clsid:B45FF030-4447-11D2-85DE-00C04FA35C89' HEIGHT=0 width=0><[REMOVETHIS]/object>
[...]

The "object" tag creates an instance of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 SearchAssistantOC object, represented by that CLSID and contained in shdocvw.dll, and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 script invokes one of its methods, NETDetectNextNavigate(), that while officially undocumented it is known to do cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 proxy autoconfiguration I referred to before.

References:

1.- Documentation on DHTML:

http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtml/reference/dhtml_reference_entry.asp

2.- Documentation on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 "object" tag:

http://msdn.microsoft.com/workshop/author/dhtml/reference/objects/object.asp

3.- List of objects, properties and methods contained in shdocvw.dll (unofficial):

http://techsupt.winbatch.com/webcgi/webbatch.exe?techsupt/tsleft.web+WinBatch/OLE~COM~ADO~CDO~ADSI~LDAP/OLE~with~MSIE+SHDOCVW~dll~.txt