blog.darkstar.work - a simple url encoder/decoder

 a simple url encoder/decoder
 http://blog.darkstar.work

Labels

Wirtschaft (149) Pressefreiheit (123) Österreich (120) IT (95) code (60) Staatsschulden (37) EZB (27) Pensionssystem (16)

2012-08-19

LAN: Innovation, BASE-Schreibweise und Ethernet-Varianten




Jahr

Innovation LAN
IEEE-Gruppe
BASE
Medium
1960
Studien und Forschungsarbeiten zu Paktenetzen, die LAN-tauglich sind
1969
Das ARPANET stimuliert die Forschungsarbeiten für Subnetze, die sich später zum Internet verbinden werden
1973
Beginn der Idee eines universellen "Ethernet". Vater des Ethernet ist Robert Metcalfe (Xerox). Einige Vorläufer/Prototypen waren bereits gebaut worden, Ethernet entstand aus den Verbesserungen, die in diesen Tests herausgefunden wurden.
1974
IBM definiert die "Systems Network Architecture", "SNA". SNA ist ein umfassendes hierachisches Netzwerksystem, das ursprünglich für Großrechner und "dumme" Terminals entwickelt wurde und später mit "peer-to-peer" Fähigkeiten erweitert wurde.
1976
Die CCITT definiert X.25 vulgo Datex-P, ein paketschaltendes WAN. Ethernet wird patentiert.
1979
Ethernet wird zum ersten Mal implementiert – eigentlicher Beginn der Geschichte der LANs
1980
Beginn des IEEE 802
1981
Token Ring wird erfunden
1984
Das OSI 7 Schichten Modell wird erfunden
1985

IEEE definiert die Normen 802.3 (aufbauend auf Ethernet) und 802.5 (aufbauend auf Token Ring)
802.3
10BASE-5, 10BASE-2
KoAx
1986
Erweiterung des 802.3 auf Telefonverkabelung
1987
802.3d
FOIRL
MMF
1990
FDDI
802.3I
10BASE-T
TP Cat-3
1992
DQDB
1993
ATM
802.3j
10BASE-F
MMF
1995
100 Mbps Ethernet
802.3u
100BASE-T4
100BASE-TX
100BASE-FX

TP Cat-3
TP Cat-5
MMF

1997
802.3y
100BASE-T2
TP Cat-3
1998
1.000 Mbps Ethernet
802.3z
1000BASE-SX
1000BASE-LX
1000BASE-CX

MMF
SMF
TP Cat-7 (?)
1999
802.3ab
1000BASE-T
TP Cat-7 (?)
2001
10.000 Mbps Ethernet
2002
802.3ae
10GBASE-LX
10GBASE-SR
10GBASE-LR
10GBASE-ER
10GBASE-LW
10GBASE-EW
1310nm auf SMF mit WDM
850nm auf MMF
qqq

Daher steht zB 10

2012-08-02

Sharing on public postings in Google+ is crossposting?

Sharing on public postings in Google+ has sometimes the same bad  effects as crossposting to many newsgroups on different servernodes in good old usenet.

Question: Might it be better to link to other public postings instead of sharing it?

Animated gif below illustrates a real sharing usecase:
 wrotes the first start posting, after some discussion  reshared it. than I wrote a followup to Serafinas reshared posting and somebody other rereshared Serafinas reshared posting.

Url to the real sharing usecase:
https://plus.google.com/u/0/107864812147929920439/posts/cYVhC4bjcYb



2012-06-09

Intransparentes Ausspionieren geht auf Rechnung der anderen

Durch geheime Spionage in Bezug auf immaterielle Rechtsgüter entstanden Kleinunternehmen bereits Kosten bzw. ein potentielles Risiko von externen ausspioniert zu werden! Warum das so ist, zeigt folgende tatsächliche Begebenheit:


In meiner letzten Firma installierte ich mir die Synchronisationssoftware  für mein privates Smartphone am Arbeitsplatz-PC. Das war legal und genehmigt. Nach der Installation passierten eigenartige Dinge. Ich hatte Grund zur Annahme, dass der IIS gepacht wurde. Mit Sicherheit konnte ich feststellen, dass eine Kommunikationsverbindung nach außen vom FirmenPC aufgemacht wurde und Daten übertragen wurden. Ich berichtete das alles sofort, machte ein Backup des eigenartigen Systemzustands und führte im Anschluss eine Systemwiederherstellung vor dem Zeitpunkt der Softwareinstallation durch. Ich postete diese Tatsachen in Google Buzz. Da sah ich, einige andere Leuten hatten zu diesem Thema schon detailliertere Beiträge mit besseren Analysen verfasst. Bevor das weitere Kreise ziehen konnte, meldete sich die asiatische Herstellerfirma sofort zu Wort: 


"Aufgrund von Digital Rights Management und den für Europa und USA rechtlichen Exportbestimmungen, die man erst zu spät erkannte, hatte wir ein System entwickeln müssen, dass Kopien von geschützten immateriellen Rechtsgütern, konkret Musik und Videos protokolliert."
"Wir als Hersteller hatten die Richtung Smartphone -> PC zuerst nicht für nötig gehalten, unsere Juristen sahen das aber anders. Aufgrund des Zeitdrucks kurz vor dem Launch ist Qualität etwas zu kurz gekommen und wir haben das Standard MFC Icon auf der Programmdatei  belassen, was auch natürlich von NO-Name  Firmen, Hobbybastlern oder Hackern auch oft so praktiziert wird. Man hat die Datei schnell in den Installer dazukopiert ohne vorhandene Signatur."


Da inzwischen auch sehr clevere/gescheite Leute das Programm analysiert hatten und sie das Statement vollkommen untermauerten, wurde plötzlich aus der bedrohlichen Chimäre des spionierenden asiatischen Smartphone- Herstellers, ein alltägliches IT-Missverständnis. Viele IT-ler egal ob GF, Manager, Programmierer, Tester oder Sysadmins hatten in ihrem Berufsleben schon einmal eine ähnliche Situationen erlebt und die Reaktion gegenüber dem Hersteller war allgemeines Verständnis. 
Nichts desto trotz gibt es schwarze Schafe unter den Firmen, die Kunden ausspionieren. 
Wo und wie viele das sind kann ich nicht sagen, dazu müsste ich in die Kristallkugel schauen. Die Kosten für die ganze Aktion trug mein damaliger Chef, dem ich auch noch weitere Nerven kostete, als ich später eine verbalen emotionalen Disput mit aggressiver halbstarker Rhetorik mit einer Hackergruppe anfing. Ich rechne ihm die beiden zugedrückten Augen hoch an und auch der Hackergruppe ihre richtige Einschätzung der Situation. (Ich war einfach etwas daneben)


P.S.: Im Nachhinein stellte sich noch dazu heraus, dass diese Protokollierung gar nie als Import/Export Bestimmung gefordert war, die Firmenjuristen hatten eine Interpretation herangezogen, die jeden Einwand, der auf ein Exportverbot abzielen könnte, sofort 100% widerlegen würde. 
P.P.S.: In der nächsten Softwareversion des Herstellers war dieses leidige Programm auch nicht mehr vorhanden.
P.P.P.S.: Es ist super wenn der Geschäftsführer eines Kleinunternehmens die Wahl zwischen: Ich lass mich ausspionieren bzw. die Jungs und Mädels untersuchen das auf meine Kosten hat, oder?

2012-06-07

Dekompilieren von Software um Spionage zu entdecken ist strafbar!?

Eigentlich ist bei closed source Ausspionieren von Kunden mittels der eigenen Software relativ gefahrloser, als bei OpenSource. Um Spionage-Routinen des Programms / der Bibliothek zu erkennen und zu beweisen muss man in vielen Fällen die vorhandene Software dekompilieren.


Das Untersuchen eines Programms auf vorhandene Spionage-Routinen einer gemieteten / geleasten / gekauften Software würde ich nicht unbedingt als die Schaffung interoperabler Schnittstellen sehen.
Also ist Dekompilieren auch zum Zweck der Sicherheit per Urheberrecht in Deutschland und Österreich verboten und kriminell, siehe:
http://dejure.org/gesetze/UrhG/69e.html 
http://www.jusline.at/40e_Dekompilierung_UrhG.html


Du als Kunde hast somit nicht das Recht gelieferte Software auf Ausspähroutinen per dekompilieren  zu untersuchen, daher die Frage:
Ist tracen des Netzwerktraffics eines Programmes auch bei Aufbrechen von SSL zur Analyse eigentlich gestattet?

2012-05-17

Too heavy optimization could trigger unwanted dangerous effects

All random occasional events, that occur from time to time, 
might imply a certain discrepancy between 
the estimated / preditcted / anticipated / expected system state.
and the real system state.

"A system is optimized too heavy, when a random occasional event might produce heavy damage or trigger a partial system collapse."

"A system is optimized to death, when any little random occasional event could trigger a total systemwide collapse."

2012-05-16

Simple Html Injection Detection for MS-SQL

A very simple prototype how html injection detection can be made on Microsoft SQLServer.
Please notice, that a full content injection detection is much more complex...

If Exists(Select Top 1 object_id 
  From tempdb.sys.tables Where name = '##InjWatch'
)
  Delete From ##InjWatch
Else
  Create Table ##InjWatch(
    ctext varchar(max), tab varchar(768), col varchar(768)
  );
GO 

Set TRANSACTION ISOLATION LEVEL read uncommitted;

Declare
 CheckHtmlInjectCursor Cursor FAST_FORWARD READ_ONLY For 
  Select
    'Cast([' + c.name + '] As nvarchar(Max))' As c_cast,
    c.name As c_name, '' +
    s.name + '.[' +T.name + ']' As sT_name
  From sys.tables T
  Inner Join sys.columns c On c.object_id = T.object_id
    And c.max_length > 16
    And c.system_type_id In (
      Select system_type_id From sys.types Where name In (     
      -- TODO: check XML, 'user defined' string & binary types :(
        'varchar''nvarchar''char''nchar''text''ntext'   
      )
    ) 
  Inner Join sys.schemas s On s.schema_id = T.schema_id

Declare @c_cast varchar(1024),
        @c_name varchar(768), @sT_name varchar(768)
Open CheckHtmlInjectCursor
  Fetch Next From CheckHtmlInjectCursor 
    Into @c_cast, @c_name, @sT_name

  While
 (@@FETCH_STATUS = 0)
  Begin
    Declare @execSQL nvarchar(max
    Set @execSQL = 
    'Insert Into ##InjWatch(ctext, tab, col) ' + 
    'Select ' + @c_cast + ' As ctext, ''' + 
                @sT_name + ''' As tab, ''' +
                @c_name + ''' As col ' + 
    'From   ' + @sT_name + ' ' 
    'Where (' + @c_cast + ' Like ''%<%'' And + 
                @c_cast + Like  ''%>%'') ' + 
    '  Or   ' + @c_cast + Like  ''%script:%''+ 
    '  Or   ' + @c_cast + ' Like ''%://%''' + 
    '  Or   ' + @c_cast + ' Like ''%href%''' 
    '  Or   ' + @c_cast + ' Like ''%return%'''   

    Execute sp_executesql @execSQL; 
  
    Fetch Next From CheckHtmlInjectCursor 
      Into @c_cast, @c_name, @sT_name 
  End 

Close CheckHtmlInjectCursor 
Deallocate CheckHtmlInjectCursor 


Select Distinct * From ##InjWatch 
GO

Mysql Sample:
/* CREATE TEMPORARY TABLE Test.HtmlSQLInjection (
 Content Varchar(1024) NULL
    , TableName VARCHAR(512) NOT NULL
    , ColumnName VARCHAR(512) NOT NULL
    , SchemaName VARCHAR(512) NOT NULL
); */


USE test;
DELIMITER $$
DROP PROCEDURE IF EXISTS  cursor_proc $$
CREATE PROCEDURE cursor_proc()
BEGIN

DECLARE v_done INTEGER DEFAULT 0;
DECLARE v_s VARCHAR(512) DEFAULT '';
DECLARE v_t VARCHAR(512) DEFAULT '';
DECLARE v_c VARCHAR(512) DEFAULT '';
DECLARE v_queryString VARCHAR(1024) DEFAULT '';
DECLARE CheckHtmlInjectCursor CURSOR FOR 
 select  
  information_schema.TABLES.TABLE_SCHEMA, 
        information_schema.TABLES.TABLE_NAME,
        information_schema.COLUMNS.COLUMN_NAME
 From information_schema.TABLES CALL `test`.`cursor_proc`();
CALL `test`.`cursor_proc`();

 inner join information_schema.COLUMNS 
  on information_schema.TABLES.TABLE_NAME = information_schema.COLUMNS.TABLE_NAME
where information_schema.TABLES.TABLE_SCHEMA = information_schema.COLUMNS.TABLE_SCHEMA
 and information_schema.COLUMNS.DATA_TYPE in 
 ('char', 'varchar', 'binary', 'varbinary', 'blob', 'longblob', 'text', 'mediumtext', 'longtext')
    and information_schema.COLUMNS.CHARACTER_MAXIMUM_LENGTH > 15;

DECLARE CONTINUE HANDLER FOR NOT FOUND SET v_done = 1;

OPEN CheckHtmlInjectCursor;

read_loop: LOOP
  FETCH CheckHtmlInjectCursor INTO v_s, v_t, v_c;
 IF v_done = 1 THEN
      LEAVE read_loop;
      CLOSE CheckHtmlInjectCursor;
 END IF;
    SELECT v_c,  v_s, v_t;
    
   'SELECT ', v_c, ' FROM ', v_s, '.', v_t, '.', v_c, ' WHERE ', v_c, ' like ''%'' '));
    SET @queryString = (
  SELECT CONCAT(
   'SELECT ', v_c, '.',  v_s, '.', v_t, ' FROM ', v_t));
 PREPARE stmt FROM @queryString;
 EXECUTE stmt;
 DEALLOCATE PREPARE stmt; 
 */

END LOOP read_loop;
/* CLOSE CheckHtmlInjectCursor; */

END $$
 
DELIMITER ;