IT & IoT Security | Cloud | It's all about the life itself

Nothing in life is as important as you think it is, while you are thinking about it.

WebSense Log’larının ArcSight Logger ile Gözlenmesi

Merhaba,

Bu yazımda HP Arcsight Logger ile WebSense log’larının alınması ve gözlenmesinden bahsedeceğim. Hangi kaynaktan log alıyorsak alalım,daha önceki yazılarımda da bahsettiğim gibi Connector kurulumu yapmamız gerekiyor. Connector kullanarak, hem log’ların Logger’a gönderilmeden filtrelenmesini hem de normalize edilmesini sağlayabiliriz. Bu bize efektif şekilde log management imkanı sunar.

Websense log’larının alınması için ArcSight Websense Web Security Suite SNMP smart connector’u hali hazırda bulunmaktadır. Bu connector ile SNMP aracılığıyla Websense logları connector’e iletilir. Websense üzerinde yapılması gereken bazı konfigurasyonlar vardır. Bunlar ;

Enable Alerting
Configure System Alerts
Configure Category Usage Alerts
Add Category Usage Alerts
Configure Protocol Usage Alerts
Add Protocol Usage Alerts
Configure CPM Alerting

SNMP ile örneğin Websense üzerinde, bir event “100 kere tekrarlar ise ArcSight’a gönder” şeklinde konfigurasyon yapılabilir. Ancak siz bütün event’lerin ArcSight Logger’ a iletilmesini istiyor iseniz bu connector uygun değildir.

Websense 7.7 version öncesinde syslog gönderme gibi bir opsiyon bulunmamaktaydı. Bu nedenle log’ları database’den okumak gerekiyordu. Bu nedenle bu yazımda Websense database’den log okuyacak ID-Based( Log’un yapısına göre değişebilir. Örneğin time-based de olabilir.Websense için ID-Based connector daha uygun olduğu için bunu seçtik.) bir Flex Connector kurulum ve konfigurasyonundan bahsedeceğim.

1- Öncelikle Websense üzerinde gerekli konfigurasyonların yapılması gerekir (Log’ların Websense DB üzerinden okunabilmesi için user’a db_datareader hakkının verilmesi, dbo.inttoip üzerinde ise user’a execute hakkının verilmesi gibi).

2- Websense database’i MS SQL server üzerindedir, default DB name’i wslogdb70 ‘dir ve partition’lar ise wslogdb70_x şeklinde devam eder(x=1,….).

3- Websense üzerinde yapılacaklar tamamlandıktan sonra Connector kurulumuna geçebiliriz.

4- Öncelikle connector base kurulumunu yapıyoruz her zamanki gibi. Bu kısımdan daha önceki yazılarımda bahsetmiştim.

5- Log ’lar Websense database’inden connector ile okunacağı için Connector kuracağımız sunucu üzerinde Websense’in MS SQL server’da duran database’ine ODBC bağlantısını da (işe başlamadan önce) yapmalıyız.

6- clip_image002

7- ODBC bağlanatısı yapabilmek için yukarıdaki resimde görüldüğü gibi &systemdrive%\Windows\SysWOW64 lokasyonundaki odbcad32.exe ‘yi çalıştırıyoruz.

8- Açılan pencerede System DSN tabında Add butonun tıklıyoruz.

9- clip_image004

10- Yukarıdaki resimde görüldüğü gibi bir isim belirleyip SQL Server ip adresini yazıyoruz.

11- clip_image006

12- Database’e bağlantı için yetkili account bilgilerini giriyoruz ve next diyoruz.

13- clip_image008

14- Websense database ismi default haliyle wslogdb70 şeklindedir. Bağlanmak istediğimiz db’yi seçiyoruz ve next diyoruz.

15- clip_image010

16- Yukarıdaki resimde Websense database’indeki dbo.incoming table field’larını görüyorsunuz. Flex Connector geliştirme esnasında bu field’lar gerekli olacaktır.

17- ODBC bağlantısını gerçekleştirdiysek connector ekleme işlemine başlayabiliriz.

18- Connector base kurulumunu daha önce tamamladıysanız, kurulum lokasyonunda config\bin dizininde komut satırı aracı ile runagentsetup.bat ‘ı çalıştırdığımızda aşağıdaki ekran karşımıza gelir.

19- clip_image012

20- Connector base kurulum sonrası yukarıdaki resimde görüldüğü gibi Add a connector seçeneği işaretlenir ve devam edilir.

21- clip_image014

22- Arcsight FlexConnector ID-Based DB connector tipini seçiyoruz.

23- clip_image016

24- Connector parametrelerinde database’e bağlanmak için kullandığınız yöntem için driver seçiyoruz. MS SQL database’e bağlandığımız için uygun driverı yani sun.jdbc.odbc.JdbcOdbcDriver ‘ını seçtik.

25- Database URL , ODBC konfigurasyonunda kullandığınız isim olacaktır. İlgili kullanıcı bilgileri daha önce DB ‘ye bağlanmak için kullandığınız kullanıcı bilgileridir.

26- Configuration folder ise önceden geliştirilmiş olan flex agent properties dosyasıdır. websense.sdkibdatabase.properties dosyasının sadece prefix’i ( örnekte websense) yazılır. Seçtiğimiz connector tipine göre suffix algılanır. ID Based Flex Connector seçtiğimiz için suffix olarak sdkibdatabase.properties otomatik olarak connector tarafından algılanıp dosya bulunur. Bu dosya içeriği aşağıdaki gibidir.

version.order=1

version.id=2005

version.query=SELECT incoming.record_number from incoming

maxid.query=SELECT max(incoming.record_number) from incoming

query=SELECT record_number, \

date_time, port, protocols.name as Protocol, category.name as Category, \

disposition.description as ActionTaken, url, full_url, users.user_login_info as userID, \

dbo.inttoip(source_ip_int) as SrcIP, dbo.inttoip(destination_ip_int)as DstIP, \

dbo.inttoip(source_server_ip_int) as SourceServer, file_types.name as FileType, hits \

FROM incoming \

INNER JOIN category on incoming.category = category.category \

INNER JOIN protocols on incoming.protocol_id = protocols.id \

INNER JOIN disposition on disposition.disposition_code = incoming.disposition_code \

INNER JOIN users on incoming.user_id = users.user_id \

LEFT OUTER JOIN file_types on incoming.file_type_id = file_types.file_type_id \

WHERE record_number > ? ORDER BY record_number

id.field=record_number

uniqueid.fields=record_number

event.flexNumber1Label=__stringConstant(“Record Number”)

event.deviceProduct=__stringConstant(“Triton”)

event.deviceVendor=__stringConstant(“Websense”)

event.flexNumber1=record_number

event.deviceReceiptTime=date_time

event.destinationPort=port

event.fileType=Protocol

event.deviceEventCategory=Category

event.deviceEventClassId=ActionTaken

event.deviceCustomString1=url

event.deviceCustomString1Label=__stringConstant(“RequestURL”)

event.deviceCustomString2=full_url

event.deviceCustomString2Label=__stringConstant(“Request Full URL”)

event.sourceUserName=userID

event.sourceAddress=SrcIP

event.destinationAddress=DstIP

event.deviceAddress=SourceServer

event.deviceCustomNumber1=hits

event.deviceCustomNumber1Label=__stringConstant(“Hit Count”)

27- Yukarıdaki dosya belirtildiği isim ile connector kurulum lokasyonunda %installation_path%\current\user\agent\flexagent klasörü altına daha önceden kopyalanır.

28- Yukarıdaki dosya içeriğinde görüldüğü gibi websense logları ArcSight içerisindeki uygun field’lara atanır. ( Daha fazla bilgi için ArcSight FlexConnectors Developer’s Guide’dan faydalanabilirsiniz)

29- Yukarıdaki resimde configuration folder belirtilip devam edilir.

30- clip_image018

31- Yukarıdaki resimde görüldüğü gibi destination seçilir ve daha önceki yazılarımda da bahsettiğim gibi destination bilgileri girilir ve connector “servis” olarak eklenerek wizard tamamlanır.

32- Oluşan ArcSight FlexConnector ID-Based DB isimli servis start edilir.

33- Websense 7.7 sürümü ile birlikte syslog formatında log ArcSight Smart Connector’e gönderilmeye başladı. Bunun için aşağıdaki işlemleri Websense üzerinde yapabilirsiniz. Sonrasında ArcSight Syslog connector kurmanız yeterli olacaktır.

34- Websense Web Security içerisine Multiplexer servisi kurulduktan sonra SIEM konfigurasyonu için oluşan seçenekten hedef konfigurasyonu yapılır. Websense’in log’larını ileteceği ArcSight bileşeni bilgisi girilir.

35- clip_image020

36- Websense 7.7 log tipi yukarıdaki screenshot’ta da görüldüğü üzere aşağıdaki gibidir:

<159>%<:%b %d %H:%M:%S> %<-sourceServer> CEF:0|Websense|Security|%<productVersion>|%<categoryNumber>|Transaction %<dispositionString>|%<severity>| act=%<dispositionString> app=%<protocol> dvc=%<sourceServer> dst=%<destination> dhost=%<urlHost> dpt=%<port> src=%<source> spt=%<clientSourcePort> suser=%<=userPath> destinationTranslatedPort=%<proxySourcePort> rt=%<time>000 in=%<bytesSent> out=%<bytesReceived> requestMethod=%<method> requestClientApplication=%<=userAgent> reason=%<scanReasonString> cs1Label=Policy cs1=%<policyNames> cs2Label=DynCat cs2=%<dynamicCategory> cs3Label=ContentType cs3=%<=contentType> cn1Label=DispositionCode cn1=%<=dispositionNumber> cn2Label=ScanDuration cn2=%<scanDuration> request=%<=url>

37- Yukarıdaki resimde belirtilen bilgiler girilir ve ArcSight Syslog Connector tarafından syslog formatında alınabilir.

Websense log’ları artık Flexconnector ile alınıp belirtilen destination’a iletilir. Destination üzerinde search ve report işlemlerini yapabilirsiniz.

iyi çalışmalar.